目标检测算法map_「目标检测」什么是mAP

1、什么是mAP?

mAP(mean Average Precision)表示各类别的平均AP

2、什么是AP?

PR曲线下的面积

3、什么是PR曲线?

以Precision为y轴,以Recall为x轴所画的曲线

4、什么是Precision和Recall

目标检测算法map_「目标检测」什么是mAP_第1张图片

Precision: TP / (TP + FP),精确率,也叫查准率,在所有的预测正类中有多少真正类。

Recall: TP / (TP + FN),召回率,也叫查全率,在所有的真正类中有多少真正类被正确预测出来,与漏检率相对。

对于目标检测的任务场景,其中:

  • TP: IoU>0.5的检测框数量(同一Ground Truth只计算一次)
  • FP: IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量
  • FN: 没有检测到的GT的数量

5、怎么画PR曲线?

(1)对检测框按得分从大到小排序

目标检测算法map_「目标检测」什么是mAP_第2张图片

(2)对不同的IoU阈值计算出Precision和Recall,以recall为横轴,precision为纵轴画出曲线。

目标检测算法map_「目标检测」什么是mAP_第3张图片

6、如何计算AP?

下图给出的是PASCAL VOC CHALLENGE自2010年的计算方法。该方法假设这N个样本中有M个正例,那么会得到M个recall值(1/M, 2/M, …, M/M),对于每个recall值 r,可以计算出对应(r’ > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。注意到最终计算的面积是蓝色区域的部分:

目标检测算法map_「目标检测」什么是mAP_第4张图片

下面是改自faster rcnn中计算AP的代码:

https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/datasets/voc_eval.py

目标检测算法map_「目标检测」什么是mAP_第5张图片

输出:

目标检测算法map_「目标检测」什么是mAP_第6张图片

7、如何计算mAP?

AP衡量一个类别的检测好坏,mAP则是衡量多个类别检测的好坏。把所有类的AP值取平均即可得mAP。比如有两类,类A的AP值是0.5,类B的AP值是0.2,那么mAP=(0.5 + 0.2)/ 2=0.35。

你可能感兴趣的:(目标检测算法map)