物体检测mAP计算方式(voc07)

  1. iou, 两个图片交并比超过0.5则认为检测正确

  2. precision=TP/(TP+FP), recall=TP/(TP+FN),在一张图片中,针对狗这个类别,TP代表狗被检测成狗,FP代表别的东西被检测成了狗,FN代表狗没有被检测出来

  3. 针对一张图片,对某一个类物体检测出来,按照score排序,选择不同的阈值(置信度阈值),会得到不同的precision和recall, 绘制一条precision,recall的曲线,曲线下面的面积就是AP值,VOC07取11个不同recall对应的precision取平均得到mAP

  4. PascalVOC2007,iou=0.5, 在3中得到的PR曲线中,从0到1取11个点,得到11个对应的precision,求这11个precision的平均值
    $$
    AP=\frac{1}{11}\sum_{r\in{(0,0.1,,,1)}}\rho_{interp(r)}
    $$

$\rho_{interp(r)}=max \rho(\hat{r})$这个意思是某个recall点上的precision是之后所有recall值对应的precision值中的最大值

  1. PascalVOC2011,相比较于2007的计算方式,2012不在使用11个点,而是对所有(recall,precison)点做连接,相邻两个点之间计算面积,得到AP值

  2. coco,coco计算了多个iou的mAP,其中一个最重要的是iou从0.5到0.95,每0.05一个步伐,计算所有iou的mAP,然后求平均

  3. VOC2012,对于某个recall,precision值取所有recall>recall中最大值

    img

    参考:

英文的这个教程写的很清楚

https://github.com/rafaelpadilla/Object-Detection-Metrics
https://blog.csdn.net/Blateyang/article/details/81054881
https://arleyzhang.github.io/articles/c521a01c/