目标检测:mAP的具体计算方式

mAP: mean Average Precision (AP的平均值)


具体步骤
绘制PR曲线(Precision-Recall)

Precision(查准率) : T P T P + F P \frac{TP}{TP + FP} TP+FPTP

Recall (查全率): T P T P + F N \frac{TP}{TP+FN} TP+FNTP

  • True Positive (TP): IOU>threshold (threshold一般取 0.5 ) 的检测框数量(同一 Ground Truth 只计算一次)
  • False Positive (FP): IOU<=threshold 的检测框数量,或者是检测到同一个 Ground Truth 的多余检测框的数量
  • False Negative (FN): 没有检测到的 Ground Truth 的数量

在这里插入图片描述
AP : 计算P-R曲线下面积

mAP : 计算所有类别P-R曲线下面积的平均值


举例说明(https://www.zhihu.com/question/53405779

假设我们有 7 张图片(Images1-Image7)
这些图片有 15 个目标(绿色的框, Ground Truth 的数量)
24 个预测边框(红色的框,A-Y 编号表示,并且有一个置信度值)
在这里插入图片描述
我们可以列出以下表格

  • Images 代表图片的编号
  • Detections 代表预测边框的编号
  • Confidences 代表预测边框的置信度
  • TP or FP 代表预测的边框是标记为 TP 还是 FP
注意:
认为预测边框与 Ground Truth 的 IOU 值大于等于 threshold=0.3 就标记为 TP;
若一个 Ground Truth 有多个预测边框,则认为 IOU 最大且大于等于 threshold=0.3 的预测框标记为 TP
其他的标记为 FP,即一个 Ground Truth 只能有一个预测框标记为 TP,这里的 threshold=0.3 是随机取的一个值。

在这里插入图片描述
通过上表,我们可以绘制出 P-R 曲线
但是在此之前我们需要计算出 P-R 曲线上各个点的坐标
根据置信度从大到小排序所有的预测框,然后就可以计算 Precision 和 Recall 的值
在这里插入图片描述

  • 标号为 1 的 Precision 和 Recall 的计算方式:Precision=TP/(TP+FP)=1/(1+0)=1,Recall=TP/(TP+FN)=TP/(all ground truths)=1/15=0.0666
  • 标号 2:Precision=TP/(TP+FP)=1/(1+1)=0.5,Recall=TP/(TP+FN)=TP/(all ground truths)=1/15=0.0666
  • 标号 3:Precision=TP/(TP+FP)=2/(2+1)=0.6666,Recall=TP/(TP+FN)=TP/(all ground truths)=2/15=0.1333
  • 其他的依次类推

绘制P-R曲线

在这里插入图片描述
得到 P-R 曲线就可以计算 AP(P-R 曲线下的面积),要计算 P-R 下方的面积。
一般使用的是插值的方法,取 11 个点 [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] 的插值所得
在这里插入图片描述
得到一个类别的 AP 结果如下:
AP = 1 11 ∗ ( 1 + 0.666 + 0.4285 + 0.4285 + 0 + 0 + 0 + 0 + 0 + 0 ) \frac{1}{11} *(1+0.666+0.4285+0.4285+0+0+0+0+0+0) 111(1+0.666+0.4285+0.4285+0+0+0+0+0+0) = 26.84 %

计算所有类别的AP,取平均得到mAP!!!

おすすめ

転載: blog.csdn.net/qq_38973721/article/details/120652011