指标有检测精度和检测速度之分:
mAP是一个容易混淆的概念。计算mAP之前先考虑我们有的数值:图片原label的bbox、模型预测的bbox、模型预测的bbox的置信度、模型预测的bbox中目标类别的分类置信度。在YOLO中,最后两个数值会乘起来表示一个置信度数值。
此外,我们还需要确定“IoU数值阈值”和“置信度阈值”,模型的预测能满足“IoU数值阈值”与“置信度阈值”(NMS算法)的结果参与最终混淆矩阵计算。
目标检测有多个类别,一个类别计算出的AP数值,所有类别平均AP数值称为mAP(mean Average Precision)。
原label的bbox与模型预测的bbox的交并比为IoU:
精确率公式:
召回率公式:
精确率和召回率是由混淆矩阵中的数值得到,其中的TP、FP、TN、FN都是会“IoU数值阈值”和“置信度阈值”影响的。
举例来说,当IoU取值为0.5,对于某一个类别,取不同“置信度阈值”,我们会得到不同的TP、FP、TN、FN,也就是不同的P和R,则可以绘制P-R曲线:
得到P-R曲线之后,计算P-R曲线下方的面积【也称为AUC】即是这个类别的AP数值(最大为1)。计算方法多种多样,可以自行搜索。
即是IoU取值为0.5,计算出模型的mAP数值。
即是 IoU ∈ [0.5 : 0.05 : 0.95] ,每一个IoU计算出一个mAP,最后求平均值。
显然,mAP_0.5,0.95,0.05的数值会比mAP_0.5的数值要小,因为IoU越大,mAP一般就会越小。
参考:
https://www.bilibili.com/video/BV13k4y1m7DY/?vd_source=01d48741bf4b441465aae4f2a5c8e70a