一文搞懂MAP值

补充 其他资料

https://blog.csdn.net/qq_35916487/article/details/89076570
https://blog.csdn.net/qq_17550379/article/details/79875784

一文搞懂map值

翻译:https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173
目标检测中的mAP(平均精度)

英文全称:mean Average Precision

AP(平均精度)是衡量目标检测算法好坏的常用指标,在Faster R-CNN,SSD等算法中作为评估指标。
AP等于recall值取0-1时,precision值的平均值。你现在没听懂没关系,它实际上非常简单,我们用一个例子来说明。但在此之前,我们将首先快速回顾准确度(Precision),召回率(recall)和IoU这三个概念。

Precision & recall

Precision:衡量你的模型预测准确度。即预测的数目中正确的百分比,比如你预测100个图片是苹果,其中80个真的是苹果,那么你的Precision为0.8

recall:召回表明你找到所有的苹果的数目。例如,总共有100张苹果图片,你成功找到其中50张,那么你的recall为0.5

他们的定义如下:
在这里插入图片描述

假如我们以预测癌症为例子,情况如下:
在这里插入图片描述

IOU(Intersection over union)

IoU表示2个形状之间的重叠情况。我们用它来衡量我们预测的边界与标签的(真实物体边界)重的程度。在一些数据集中,我们认为预测值与标签IOU大于0.5为预测正确,小于0.5为预测错误,这表明我们的模型通常需要一个预定义的IOU值。
在这里插入图片描述

AP

让我们创建一个简单的例子用于演示AP是怎么计算出来的。在此示例中,整个数据集仅包含5个苹果。我们收集所有图像中针对苹果的所有预测,并根据预测的置信水平按降序排列。第二列表示预测是否正确。在此示例中,如果IoU≥0.5,则预测是正确的。
在这里插入图片描述

按照这个逻辑,我们的前三行被认为预测值是苹果。
那么

Precision = 2/3 = 0.67。
recall = 2/5 = 0.4

随着我们降低预测排名,recall值会增加。然而,Precision具有锯齿形图案 - 它随着误报而下降并且再次以真正的正面上升。

在这里插入图片描述

让我们根据recall值绘制Precision值,以查看这种锯齿形图案。
在这里插入图片描述

平均精度(AP)的一般定义是以上锯齿形所包含的面积:
在这里插入图片描述

Precision和recall总是在0和1之间。因此,AP也在0和1之间。在为对象检测计算AP之前,我们通常首先平滑锯齿形图案,如绿色线条所示。
在这里插入图片描述

在图形上,在每个召回级别,我们将每个Precision值替换为该recall值右侧的最大Precision值。
在这里插入图片描述

因此橙色线转换为绿线,曲线将单调减少而不是锯齿形图案。对于排名的微小变化,计算出的AP值将不那么可疑。在数学上,我们用召回的精度值ȓ替换任何召回的最大精度≥ȓ。

在这里插入图片描述

Interpolated AP(插值AP)

PASCAL VOC是一种流行的物体检测数据集。对于PASCAL VOC挑战,如果IoU≥0.5,则预测为正。此外,如果检测到同一对象的多个检测,则将第一个检测为正数,而将其余检测为负数

在Pascal VOC2008中,计算11点插值AP的平均值
在这里插入图片描述

首先,我们将recall值从0分为1.0分为11分 - 0,0.1,0.2,…,0.9和1.0。接下来,我们计算这11个recall值的最大Precision值的平均值。

在这里插入图片描述

在我们的例子中,AP =(5×1.0 + 4×0.57 + 2×0.5)/ 11

以下是更精确的数学定义。
在这里插入图片描述

当AP ᵣ变成非常小,我们可以假设其余的条款是零。也就是说,在召回达到100%之前,我们不一定要做出预测。如果可能的最大精度水平下降到可以忽略的水平,我们可以停止。对于PASCAL VOC中的20个不同类别,我们为每个类别计算AP,并为这20个AP结果提供平均值。

根据原始研究人员的说法,在计算AP时使用11个插值点的意图是:

以这种方式插入精度/召回曲线的意图是减少精确/召回曲线中“摆动”的影响,这是由于示例排名的微小变化引起的。

然而,这种插值方法是一个近似值,它有两个问题。它不太精确。其次,它失去了测量低AP方法差异的能力。因此,PASCAL VOC在2008年之后采用了不同的AP计算。

AP (Area under curve AUC)

对于后来的Pascal VOC竞赛,只要最大Precision值下降,VOC2010-2012就会以所有独特的召回值(r 1,r 2,…)对曲线进行采样。通过这种改变,我们在去除之字形后测量精确回忆曲线下的确切面积。
在这里插入图片描述

不需要近似或插值。我们不是采样11个点,而是每当它下降时采样p(rᵢ)并将AP计算为矩形块的总和。
在这里插入图片描述

该定义称为曲线下面积(AUC)。如下所示,由于插值点不能覆盖精度下降的位置,因此两种方法都会发散。
在这里插入图片描述

COCO MAP

最新的研究成果倾向于只在COCO数据集上面进行检测。在COCO mAP中,在计算中使用101点内插AP定义,在COCO mAP中,在计算中使用101点内插AP定义。对于COCO,AP是多个IoU的平均值(考虑正匹配的最小IoU)。AP @ [。5:.95]对应于IoU的平均AP,从0.5到0.95,步长为0.05。对于COCO竞赛,AP是80个类别的平均超过10个IoU级别(AP @ [。50:.05:.95]:从0.5到0.95开始,步长为0.05)。以下是为COCO数据集收集的一些其他指标。
在这里插入图片描述

And, this is the AP result for the YOLOv3 detector.
在这里插入图片描述

在上图中,AP @ .75表示IoU = 0.75的AP。

mAP(平均精度)是AP的平均值。在某些情况下,我们计算每个类的AP并对其进行平均。但在某些情况下,它们意味着同样的事情。例如,在COCO上下文中,AP和mAP之间没有区别。以下是COCO的直接引用:

AP是所有类别的平均值。传统上,这称为“平均精度”(mAP)。我们不区分AP和mAP(以及AR和mAR),并假设从上下文中可以看出区别。

在ImageNet中,使用AUC方法。因此,即使它们在测量AP中遵循相同的原理,精确的计算也可能根据数据集而变化。幸运的是,开发工具包可用于计算此指标。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值