目标检测 mAP指标

在这里插入图片描述

**TP、FP、FN、TN **

  • True Positive (TP): IoU>[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3D6wpuWA-1644416335625)(http://pic.mymur.cn//equation-20220209221808469)] ([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CaouZEK-1644416335625)(http://pic.mymur.cn//equation-20220209221808469-20220209221819617)] 一般取 0.5 ) 的检测框数量(同一 Ground Truth 只计算一次).

就是预测成功的

  • False Positive (FP): IoU<=[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z6Kx0hHB-1644416335626)(http://pic.mymur.cn//equation-20220209221808469-20220209221819617-20220209221828761)] 的检测框数量,或者是检测到同一个 GT 的多余检测框的数量

预测失败的: 一种:iou太小 一种:多个框都和一个GT重合(只能取一个重合最高的,其他的都是FP)

  • False Negative (FN): 没有检测到的 GT 的数量

就是被标为GT,但是没有预测到的

  • True Negative (TN): 在 mAP 评价指标中不会使用到

查准率、查全率

  • 查准率(Precision): TP/(TP + FP)

我的理解:被预测对的中,到底有多少是对的

  • 查全率(Recall): TP/(TP + FN)

理解:预测对的数量占所有标记GT的数量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9ws7Y5r-1644416335627)(https://www.zhihu.com/equation?tex=%5Ctext+%7B+Precision+%7D%3D%5Cfrac%7BT+P%7D%7BT+P%2BF+P%7D%3D%5Cfrac%7BT+P%7D%7B%5Ctext+%7B+all+detections+%7D%7D+%5C%5C)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fDVPQEK1-1644416335627)(https://www.zhihu.com/equation?tex=%5Ctext+%7BRecall%7D%3D%5Cfrac%7BT+P%7D%7BT+P%2BF+N%7D%3D%5Cfrac%7BT+P%7D%7B%5Ctext+%7B+all+ground+truths+%7D%7D+%5C%5C)]

all detctions 代表所有预测框的数量, all ground truths 代表所有 GT 的数量】

二者绘制的曲线称为 P-R 曲线

img

AP 是计算某一类 P-R 曲线下的面积,mAP 则是计算所有类别 P-R 曲线下面积的平均值

mAP解释:

假设我们有 7 张图片(Images1-Image7),这些图片有 15 个目标(绿色的框,GT 的数量,上文提及的 all ground truths)以及 24 个预测边框(红色的框,A-Y 编号表示,并且有一个置信度值)

绿色是:GT

红色:预测框

img

【根据上图以及说明,我们可以列出以下表格,其中 Images 代表图片的编号,Detections 代表预测边框的编号,Confidences 代表预测边框的置信度,TP or FP 代表预测的边框是标记为 TP 还是 FP(认为预测边框与 GT 的 IOU 值大于等于 0.3 就标记为 TP】

若一个 GT 有多个预测边框,则认为 IOU 最大且大于等于 0.3 的预测框标记为 TP,其他的标记为 FP,即一个 GT 只能有一个预测框标记为 TP),这里的 0.3 是随机取的一个值

img

可以绘制出 P-R 曲线(因为 AP 就是 P-R 曲线下面的面积),但是在此之前我们需要计算出 P-R 曲线上各个点的坐标,根据置信度从大到小排序所有的预测框,然后就可以计算 Precision 和 Recall 的值,见下表。(需要记住一个叫累加的概念,就是下图的 ACC TP 和 ACC FP

🏁:后面的计算都是通过ACC TP 和 ACC FP来的,all ground truths 上面有定义过了只要自己数一下

img

  • 标号为 1 的 Precision 和 Recall 的计算方式:Precision=TP/(TP+FP)=1/(1+0)=1,Recall=TP/(TP+FN)=TP/(all ground truths)=1/15=0.0666 (all ground truths 上面有定义过了
  • 标号 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

⚠️:这个可以很明显的看到,用到的TP其实是ACC TP (累加了标号1,2,3的值),包括后面的FP其实也是ACC FP

  • 其他的依次类推

然后就可以绘制出 P-R 曲线

img

得到 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] 的插值所得

img

得到一个类别的 AP 结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nX8iZuT-1644416335639)(https://www.zhihu.com/equation?tex=%5Cbegin%7Baligned%7D+%26A+P%3D%5Cfrac%7B1%7D%7B11%7D+%5Csum_%7Br+%5Cin%5C%7B0%2C0%2C1%2C+%5Cldots%2C+1%5C%7D%7D+%5Crho_%7B%5Ctext+%7Binterp+%7D%28r%29%7D%5C%5C+%26A+P%3D%5Cfrac%7B1%7D%7B11%7D%281%2B0.6666%2B0.4285%2B0.4285%2B0.4285%2B0%2B0%2B0%2B0%2B0%2B0%29%5C%5C+%26A+P%3D26.84+%5C%25+%5Cend%7Baligned%7D%5C%5C)]

要计算 mAP,就把所有类别的 AP 计算出来,然后求取平均即可。

㊗️:在VOC2010以前,只需要选取当Recall >= 0, 0.1, 0.2, …, 1共11个点时的Precision最大值,然后AP就是这11个Precision的平均值。

在VOC2010及以后,需要针对每一个不同的Recall值(包括0和1),选取其大于等于这些Recall值时的Precision最大值,然后计算PR曲线下面积作为AP值。

mAP计算示例

假设,对于Aeroplane类别,我们网络有以下输出(BB表示BoundingBox序号,IoU>0.5时GT=1):

BB  | confidence | GT
----------------------
BB1 |  0.9       | 1
----------------------
BB2 |  0.9       | 1
----------------------
BB1 |  0.8       | 1
----------------------
BB3 |  0.7       | 0
----------------------
BB4 |  0.7       | 0
----------------------
BB5 |  0.7       | 1
----------------------
BB6 |  0.7       | 0
----------------------
BB7 |  0.7       | 0
----------------------
BB8 |  0.7       | 1
----------------------
BB9 |  0.7       | 1
----------------------

因此,我们有 TP=5 (BB1, BB2, BB5, BB8, BB9), FP=5 (重复检测到的BB1也算FP)。除了表里检测到的5个GT以外,我们还有2个GT没被检测到,因此: FN = 2. 这时我们就可以按照Confidence的顺序给出各处的PR值,如下:

rank=1  precision=1.00 and recall=0.14
----------
rank=2  precision=1.00 and recall=0.29
----------
rank=3  precision=0.66 and recall=0.29
----------
rank=4  precision=0.50 and recall=0.29
----------
rank=5  precision=0.40 and recall=0.29
----------
rank=6  precision=0.50 and recall=0.43
----------
rank=7  precision=0.43 and recall=0.43
----------
rank=8  precision=0.38 and recall=0.43
----------
rank=9  precision=0.44 and recall=0.57
----------
rank=10 precision=0.50 and recall=0.71
----------

对于上述PR值,如果我们采用:

  1. VOC2010之前的方法,我们选取Recall >= 0, 0.1, …, 1的11处Percision的最大值:1, 1, 1, 0.5, 0.5, 0.5, 0.5, 0.5, 0, 0, 0。此时Aeroplane类别的 AP = 5.5 / 11 = 0.5
  2. VOC2010及以后的方法,对于Recall >= 0, 0.14, 0.29, 0.43, 0.57, 0.71, 1,我们选取此时Percision的最大值:1, 1, 1, 0.5, 0.5, 0.5, 0。此时Aeroplane类别的 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

mAP就是对每一个类别都计算出AP然后再计算AP平均值就好了

版权声明:本文为CSDN博主「hu炸炸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37959151/article/details/122850945

hu炸炸

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

目标检测中的数据格式转换工具Roboflow

目标检测中的数据格式转换工具、Roboflow Roboflow提供了您需要的所有工具,将原始图像转换为定制的训练有素的计算机视觉模型,并部署它在您的应用程序中使用。 Roboflow支持检测目标和分类模型。 支持多种标注格式的转换: