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