zoukankan      html  css  js  c++  java
  • MAP的计算方法(简单总结)

    MAP的计算方法

    在计算MAP之前,要对TP/TN/FP/FN,precision/recall的计算有一定的了解。

    一句话概括AP:recall在【0-1】范围内的平均precision

    一句话概括MAP:所有类别的平均AP

    得出PR曲线

    一般来说,p-r曲线是p越大,r越小;p越小,r越大,跟具体的计算方式有关。

    需要的内容:预测值,标签值

    过程:

    1.首先将所有的预测框按照得分从高到低排序

    2.分别与同一张图片、同一类别的所有GTs计算IOU

    3.根据阈值,判断这个预测框属于TP或者FP

    4.得出当前阶段的precision和recall.(意思就是在遍历过程中,每判断一个预测框,就计算一次p、r)计算方法与以往有所不同:

        precision = 当前遍历所检测的TP预测框个数   /    当前遍历检测到的TP和FP

        recall       = 当前遍历所检测的TP预测框个数  /     所有GT的个数

    主要区别就在当前,目的是为了模仿取不同阈值每次遍历所有框计算pr曲线,用这种方法的时间复杂度是O(n).

    所以一开始recall很低,precision很高,因为precision的分母基数小。

    计算AP

    现在不同的数据集计算AP方式略有不同,但总体都是一个微分计算PR曲线面积的思想。

    voc2007的计算方式是先平滑曲线,对于每个点取其右边最大的precision值,连成直线。(也叫插值AP法)

    然后取11个点(在recall坐标轴每个0.1取一个点),直接平均11个点的precision的和。

    voc2012的方法是直接计算平滑后的曲线与recall轴围成的面积。结果更加准确。

    COCO map

    coco计算ap的时候采用的是101个插值点,考虑更为精细。

    并且还计算了不同iou阈值的ap,下面结果的第一行就是iou阈值在(0.5-0.95)内每个0.05取一个值计算ap,然后取平均

    还计算了不同的尺度对应的 ap,下图三行到六行是包括small 、medium 、large.

    以下图为例是coco的结果指标:

     参考:

    pytorch物体检测实战---董洪义

    https://zhuanlan.zhihu.com/p/60834912

  • 相关阅读:
    android Serializable 和 Parcelable 区别
    Android HttpClient 用法以及乱码解决
    android 头像选择以及裁剪
    播放动画
    跑马灯效果
    Paint基本属性
    安卓开发中的各种事件
    View类和surfaceView详细介绍
    hadoop资源
    wsdl文件转换为java
  • 原文地址:https://www.cnblogs.com/ywheunji/p/13376090.html
Copyright © 2011-2022 走看看