目标检测评价指标mAP
全类平均精度(mean Average Precision, mAP)
用于评估目标检测模型性能。
接下来围绕下面的例子逐步介绍mAP
的计算。在下面的7
张图片中共有15
个目标,用绿色框标出;并且有24
个检测框,用红色框标出,百分比数值表示置信度。
交并比
交并比(Intersection over Union, IoU)
是产生的检测框与真实检测框的交集与并集的比值。
查准率和查全率
对于一组图像的目标检测结果来说,假如规定IoU
大于某一阈值就把检测结果视为真正例TP
,否则视为假正例FP
;并且如果出现多个检测重叠一个真值的情况,只有最高置信度的检测框被视为TP
,其他则视为FP
。
接下来计算两个指标:查准率或精确率Precision
,即预测为正的样本中的正确率TP/All Detections
;查全率或召回率Recall
,即正确检测出的正样本占所有正样本的比例TP/All Ground Truths
。
对于上面的例子,按照置信度由高到低做出如下表格:
表格的前三列分别是图片编号、检测框编号和置信度;TP
FP
列标识出这个检测框是否为一个真正例;Acc TP
Acc FP
列是截至此行累计的TP
和FP
个数,用于Precision
和Recall
的计算;Precision
列由Acc TP/(Acc TP + Acc FP)
得到;Recall
列由Acc TP/15
得到(共有15
个目标,因此All Ground Truths
=15
)。
平均精度AP
平均精度(Average Precision, AP)
由近似计算Precision
-Recall
曲线下面积得出。
通常的计算方法是取曲线11
点插值,不过无论如何计算,最后的含义都是希望得到近似的曲线下面积。因此在这里不展开介绍计算过程,而是讨论“曲线下面积”是如何与“平均精度”建立起联系的。
个人理解
当我们说模型在一个类别上预测精度是80%
时,直观上的体会是“模型的10
个预测框中,大约有8
个是对目标的正确预测”。然而这并不能与Precision
-Recall
曲线下的面积建立起直观的联系。但注意到曲线的纵坐标的含义就是精度,从这个角度出发,以下是对AP
指标的个人理解:
下面是一个常见的Precision
-Recall
曲线示意图。尽管现实任务中的曲线通常是不平滑、不单调的,但大致可以用图中的较为理想的曲线走势描述。我们通常用平衡点去衡量一个模型的好坏,也就是曲线上Precision
=Recall
的点。
模型在平衡点处的精度与曲线下面积有没有联系呢?下图的蓝色折线D
将曲线A
的平衡点两侧的两段单调递减的曲线近似为直线,如果以折线D
下面积近似曲线A
下面积,将黄色三角形补到右侧后,可以发现蓝色折线D
下的面积恰好反映了平衡点处的精度。
因此可以认为,平均精度AP
某种意义上是用Precision
-Recall
曲线下面积近似反映了平衡点处的Precision
值。
全类平均精度mAP
上述步骤算出的是针对一个类别的平均精度AP
,而全类平均精度mAP
是所有检测到的类别的AP
均值。
为什么要分类计算AP,再取均值?
评估模型在目标检测任务上的性能时,通常用所有类别的AP
的平均值,而不是将所有类别的检测结果混在一起,直接计算出一个数值,其中一个原因是:
当类别数量不平衡时,可能某个少样本类别的检测效果很差。如果混在一起计算,由于该类别样本数量较少,因此并不会对最终的结果产生很大的影响。此时对模型的性能评估是不准确的。因此需要逐类测量AP
再取均值,作为最终的mAP
检测结果。
参考资料
本文的部分内容、图片来源于: