发布时间:2023-03-23 文章分类:电脑基础 投稿人:樱花 字号: 默认 | | 超大 打印

指标

指标有检测精度和检测速度之分:
【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05

mAP

mAP是一个容易混淆的概念。计算mAP之前先考虑我们有的数值:图片原label的bbox、模型预测的bbox、模型预测的bbox的置信度、模型预测的bbox中目标类别的分类置信度。在YOLO中,最后两个数值会乘起来表示一个置信度数值。

此外,我们还需要确定“IoU数值阈值”和“置信度阈值”,模型的预测能满足“IoU数值阈值”与“置信度阈值”(NMS算法)的结果参与最终混淆矩阵计算。

目标检测有多个类别,一个类别计算出的AP数值,所有类别平均AP数值称为mAP(mean Average Precision)。

原label的bbox与模型预测的bbox的交并比为IoU:
【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05

精确率公式:
【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05
召回率公式:
【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05
精确率和召回率是由混淆矩阵中的数值得到,其中的TP、FP、TN、FN都是会“IoU数值阈值”和“置信度阈值”影响的。

举例来说,当IoU取值为0.5,对于某一个类别,取不同“置信度阈值”,我们会得到不同的TP、FP、TN、FN,也就是不同的P和R,则可以绘制P-R曲线:
【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05

得到P-R曲线之后,计算P-R曲线下方的面积【也称为AUC】即是这个类别的AP数值(最大为1)。计算方法多种多样,可以自行搜索。

mAP_0.5

即是IoU取值为0.5,计算出模型的mAP数值。

mAP_0.5,0.95,0.05

即是 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