mAP(Mean Average Precison)理解

在目标检测算法(如Faster RCNN, YOLO ,SSD)中mAP常做为一种基准来衡量算法的精确度好坏。

mAP的本质其实是多类检测中各类别最大召回率(recall)的一个平均值

计算mAP之前我们先要了解Precision和Recall也就是精确率和召回率。

精确率主要衡量模型做出预测的精准度,也就是TP在TP与FP和中的占比率

召回率主要用来衡量模型对positives的检测程度,也就是TP在TP与FN中的占比率

 

下面我们通过一个例子来讲一下AP (average precision)

比如在一副图片中我们总共有5个目标,首先我们根据预测的confidence对预测进行排序,假设在前四的预测中我们有2个正确(IoU > 0.5)的。

所以对前四的precision和recall

Precision = 2/4 = 0.5

Recall = 2/5 = 0.4

 

 

现在假设我们对于一个实验结果TOP10的Precision和Recall有如下表:

 

随着recall从0到1之间的提升,AP可以由计算十一个不同recall阶层最大precision的评价值而得到

进一步解释;

p_interp(r) 是超过r的recall中对应的最大precision值,例如rank6中recall是0.6

那么p_interp(0.6)就是大于0.6的所有recall中对应的最大的precision的值,对应上表我们得到

 P(0.6) = max(0.5,0.57,0.5,0.44,0.5)= 0.57

 

 

所以AP即0-1的p_interp(r)的均值

 

=(1.0*5 + 0.57*4 + 0.5*2)/ 11 

 

 

而mAP则是真的不同类别的AP的均值

 

 

参考:https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173

 

posted on 2018-06-29 11:45  klitech  阅读(10088)  评论(0编辑  收藏  举报

导航