1、什么是mAP?
mAP(mean Average precision)表示各类别的平均AP
2、什么是AP?
PR曲线下的面积
3、什么是PR曲线?
以Precision为y轴,以Recall为x轴所画的曲线
4、什么是Precision和Recall
Precision: TP / (TP FP),精确率,也叫查准率,在所有的预测正类中有多少真正类。
Recall: TP / (TP FN),召回率,也叫查全率,在所有的真正类中有多少真正类被正确预测出来,与漏检率相对。
对于目标检测的任务场景,其中:
- TP: IoU>0.5的检测框数量(同一Ground Truth只计算一次)
- FP: IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量
- FN: 没有检测到的GT的数量
5、怎么画PR曲线?
(1)对检测框按得分从大到小排序
(2)对不同的IoU阈值计算出Precision和Recall,以recall为横轴,precision为纵轴画出曲线。
6、如何计算AP?
下图给出的是PASCAL VOC CHALLENGE自2010年的计算方法。该方法假设这N个样本中有M个正例,那么会得到M个recall值(1/M, 2/M, …, M/M),对于每个recall值 r,可以计算出对应(r’ > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。注意到最终计算的面积是蓝色区域的部分:
下面是改自faster rcnn中计算AP的代码:
https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/datasets/voc_eval.py
输出:
7、如何计算mAP?
AP衡量一个类别的检测好坏,mAP则是衡量多个类别检测的好坏。把所有类的AP值取平均即可得mAP。比如有两类,类A的AP值是0.5,类B的AP值是0.2,那么mAP=(0.5 0.2)/ 2=0.35。
,