mAP是目标检测中常用的一个度量检测结果的评价标准,全称是mean average precision,理解这个概念之前,需要了解一些其他的概念。文章主要分为三部分:关于mAP的几个概念,PR曲线以及常见的三种计算mAP的方式。
1、相关概念
1)第一组:
True Positives(TP):真正例 (以为是正,实际是的)
FALSE Positives(FP): 假正例 (以为是正,实际不是)
True Negatives(TN):真负例 (以为是负,实际是的) 这个参数后面没用上
FALSE Negatives(FP): 假负例 (以为是负,实际不是)
关于这四个名词可以这样理解,第二个字代表预测结果,第一个字表示预测的对还是错。
目标检测中TP、FP的理解:
一般首先设定一个confidence score,如果大于这个阈值,才会被认为正样本,即Positives
TP:IoU>0.5的检测框数量 (同一GT只计算一次)
FP: IoU<=0.5的检测框,或者是检测到同一个GT的多余检测框的数量
FN: 没有检测到的GT的数量(即置信度小于阈值)
2)第二组
precision = TP / (TP+FP) 精度(查准率,即你认为是正样本中实际有多少是正样本)
recall = TP / (TP+TN) 召回率(查全率,所有的正样本中你找出了多少)
2、P-R曲线
查准率和查全率一般不可兼得,以recall为横坐标,precision为纵坐标,就可以得到p-r曲线。
根据两者的定义可以知道,随着选定的用于评估的样本数目的增多,recall值会越来越高,但precision的值整体上会呈现出一个下降的趋势。
3、三种计算mAP的方式
mAP 是用于衡量该模型在所有类上检测性能好坏的指标,就是所有类上AP的平均值。计算mAP,首先要计算AP。
常见计算AP的三种方式:
1)11-Point(VOC2007使用)默认召回率间隔为{0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0}
2)MaxIntegral(VOC2010及以后)最大值积分法。这种方式更为精确,一般mAP值也会大一些。
3)Integral 普通积分法
计算示例:
rank 的数值即参与计算的元素数目。所有元素按照confidence score从高到低的顺序排列,只取置信度高的。
高于阈值的元素共有十个,依次计算precision和recall值。
1)若为11 point方式,则recall依次取数组内的11个元素,依次取大于该recall的最大precision值参与计算,即为:1,1,1,0.5,0.5,0.5,0.5,0.5,0,0,0,平均值为0.5
注意:recall取0.5时的最大值还是0.5
2)若为MaxIntegral方式,则recall取实际的数据,即:0.14,0.29,0.43,0.57,0.71还有0和1,计算AP = (0.14-0)*1 + (0.29-0.14)*1 + (0.43-0.29)*0.5 + (0.57-0.43)*0.5 + (0.71-0.57)*0.5 + (1-0.71)*0 = 0.5
(即若N个样本中有M个正例,则共有M+1个recall值,{0,1/M,2/M,.....M/M})