拆解mAP(Mean Average Precision)

如果您遇到过PASCAL Visual Object Classes (VOC)MS Common Objects in Context (COCO)挑战,或者涉及过信息检索和重识别(ReID)的项目,那么您可能会非常熟悉称为mAP的度量。

mAP或有时简称为AP是一种流行的度量标准,用于衡量信息检索和对象检测任务的模型的性能。

本文希望计算出目标检测和信息检索任务的mAP。本文还将探讨为什么mAP是信息检索和目标检测任务的合适且常用的度量。

大纲

  1. 基础知识
  2. 信息检索中的AP和mAP
  3. 目标检测中的AP和mAP

1.基础知识

精度和查全率是判断分类模型性能的两个常用指标。要理解mAP,我们首先需要回顾精度和查全率。

更“著名”的“精度”和“查全率”

T P = T r u e P o s i t i v e ( 模 型 预 测 为 正 样 本 , 实 际 为 正 样 本 ) T N = T r u e N e g a t i v e ( 模 型 预 测 为 负 样 本 , 实 际 为 负 样 本 ) F P = F a l s e P o s i t i v e ( 模 型 预 测 为 正 样 本 , 实 际 为 负 样 本 ) F N = F a l s e N e g a t i v e ( 模 型 将 预 测 为 负 样 本 , 实 际 为 正 样 本 ) TP=True Positive(模型预测为正样本,实际为正样本)\\ TN=True Negative(模型预测为负样本,实际为负样本)\\ FP=False Positive(模型预测为正样本,实际为负样本)\\ FN=False Negative(模型将预测为负样本,实际为正样本) \\ TP=TruePositive()TN=TrueNegative()FP=FalsePositive()FN=FalseNegative()
在统计学和数据科学领域,给定类别的分类精度,即正预测值,是真阳性(TP)与总预测阳性数之比。公式如下所示:
分类中给定类的精度公式
同样,分类中给定类别的召回率,即真阳性率或灵敏度,定义为TP与数据集中所有阳性之和的比值。公式如下所示:
分类中给定类的召回率公式
对于一个给定的分类模型,它的精确度和查全率之间存在权衡。如果我们使用神经网络,这种权衡可以通过模型的最后一层softmax阈值进行调整。

为了提高精确度,我们需要减少FP的数量,这样做会减少我们的召回量。同样地,减少FN的数量会增加我们的召回率并降低精确度。在信息检索和对象检测的情况下,我们通常希望我们的精度较高(我们的预测阳性为TP)。
在这里插入图片描述
精确度和召回率通常与准确性、f1评分、ROC(receiver operating characteristics)等指标一起使用。

不那么“出名”的“精度”和“查全率”

然而,当涉及到信息检索时,定义是不同的。
信息检索精度公式
默认情况下,精度将考虑所有检索到的文档,但是,它也可以在给定检索到的文档数量(通常称为cut-off rank)下进行评估,在这种情况下,只通过考虑最上面的查询来评估模型。这种测量称为k点的精度或P@K。

让我们用一个例子来更好地理解这个公式。
定义一个典型的信息检索任务
信息检索中的一个典型任务是用户向数据库提供查询,并检索与查询非常相似的信息。现在让我们用一个带有三个真值的例子来执行精度计算。
我们将定义以下变量:

  • Q为用户查询
  • G为数据库中标记数据的集合
  • D(i,j)是一个分数函数,表示对象i与j的相似程度
  • G’为G根据分数函数d(,)排序后的有序集
  • k是G’的索引
    用户使用文档Q查询G
    在计算出Q与G中的每个元素的d(,)后,我们可以根据d(,)对G进行排序,得到G '。假设模型返回如下G ':
    模型返回排序后的查询结果G'
    利用上面的Precision公式,我们得到:
    P@1 = 1/1 = 1
    P@2 = 1/2 = 0.5
    P@3 = 1/3 = 0.33
    P@4 = 2/4 = 0.5
    P@5 = 3/5 = 0.6
    P@n = 3/n

类似地,Wiki定义的召回公式如下:
信息检索的召回率公式
在这种情况下,查全率本身通常不用作指标。

2.信息检索中的AP和mAP

熟悉precision@k之后,我们可以继续计算平均精度。这将使我们更好地衡量我们的模型对查询结果G '进行排序的能力。
AP@n公式
其中GTP为ground truth positive的总数,n为您感兴趣的文档总数,P@k为precision@k, rel@k为相关函数。相关性函数是一个指示函数,如果rank k的文档是相关的,则该函数等于1,否则等于0。

回想一下精度的定义,我们现在将使用它来计算G '中的每个文档的AP。使用上面的同一个例子:
计算给定查询Q的AP, GTP=3
这个查询的总AP是0.7。需要注意的是,由于我们知道只有三个GTP, AP@5将等于整个AP。

对于另一个查询Q,如果返回的G '是这样排序的,我们可以得到一个完美的AP为1:
计算给定查询Q的完美AP, GTP=3
在这种情况下,AP所做的是惩罚那些不能以TPs为首的G '排序的模型。它提供了一个数字,可以根据评分函数d(,)量化排序的优劣。通过将精度的总和除以总GTP而不是除以G的长度,可以为只有几个GTP的查询提供更好的表示。
计算mAP
对于每个查询Q,我们可以计算一个相应的AP。用户可以对这个标记的数据库进行任意多的查询。mAP只是使用所进行的所有查询的平均值。
信息检索mAP公式

3. 目标检测中的AP和mAP

计算AP(传统IoU = 0.5)

a. IOU交并比
为了计算用于目标检测的AP,我们首先需要了解IoU。IoU由预测边界框与真实边界框的交面积与并面积之比给出。
在这里插入图片描述
IoU将用于确定预测边界框(BB)是TP、FP还是FN。由于假设每张图像中都有一个对象,所以TN不进行评估。让我们考虑以下图像:
图像中标记有人和马的真实边界框
这个图像包含了一个人和一匹马,以及它们相应的真实边界框。我们先不去管那匹马。我们在这张图像上运行我们的目标检测模型,并接收到一个预测的人的边界框。传统上,如果IoU为> 0.5,我们将预测定义为TP。可能出现的情况如下:

  • True Positive (IoU > 0.5)
    在这里插入图片描述
    IoU为预测BB(黄色)和GT BB(蓝色)> 0.5,分类正确
  • False Positive
    BB被认为是FP有两种可能的情况:
    a. IoU < 0.5
    b. 重复的BB
    在这里插入图片描述
    一个预测的BB(黄色)将被认为是FP的不同场景。
  • False Negative
    当我们的目标检测模型未检测到目标时,则认为是假阴性。两种可能的情况如下:
    a. 当根本没有检测到对象的时候
    根本没有检测到对象
    b. 当预测BB的IoU > 0.5但分类错误时,预测BB为FN
    在这里插入图片描述
    FN BB作为预测类是马而不是人.
精度/召回率曲线(PR曲线)

在正式定义了TP、FP和FN之后,我们现在可以在测试集计算对给定类的检测的精度和召回率。每个BB都有它的置信度,通常由它的softmax层给出,并用于对输出进行排序。请注意,这与信息检索案例非常相似,只是我们没有使用相似度函数d(,)来提供排名,而是使用模型预测的BB的置信度。

计算AP

在绘制PR曲线之前,我们首先需要知道插值精度。插值精度p_interp是在每个召回水平r上通过取该r的最大测量精度来计算的。公式如下:
给定召回值的插值精度(r)
其中p® ~是召回量r ~时的测量精度。 P i n t e r p ( r ) P_{interp}(r) Pinterp(r)是超过r的recall中对应最大的precision值,例如 P i n t e r p ( 0.6 ) P_{interp}(0.6) Pinterp(0.6)就是大于0.6的所有recall中对应的最大的precision的值。

对PR曲线进行插值的目的是减少检测排序的微小变化所引起的“摆动”的影响。
现在,我们可以开始绘制PR曲线了。考虑一个带有3TP和4FP的person类的示例。我们计算相应的精度,查全率,和插值精度。
在这里插入图片描述
以3TP和4FP为例绘制PR曲线的计算表。行对应于BB,人分类按其各自的softmax置信度排序。

在这里插入图片描述
然后通过取PR曲线下的面积来计算AP。这是通过将召回平均分割为11个部分来实现的:{0,0.1,0.2,…,0.9,1}。我们得到如下结果:
计算上述示例中的AP

计算mAP

用于对象检测的mAP是所有类计算出的AP的平均值。同样需要注意的是,有些论文可以互换使用AP和mAP

其他计算AP的方法

COCO提供了六种新的AP计算方法,其中三种方法是在不同的 IoU 下对 BB 进行阈值处理:

  • AP:在 IoU= 0.50: 0.05: 0.95的AP(主要指标)
  • AP@IOU=0.50(如上所述的传统计算方法)
  • AP@IOU=0.75(BB的IOU要大于0.75)
    对于主要指标的AP, 0.5:0.05:0.95意味着从IoU = 0.5开始,步长为0.05,我们增加到IoU = 0.95。这将导致计算AP阈值在10个不同的IOU。平均值是为了提供一个单一的数字,奖励那些更擅长定位的探测器。

其余三种方法是跨尺度计算AP:

  • A P s m a l l AP^{small} APsmall:小对象AP,面积小于32² px
  • A P m e d i u m AP^{medium} APmedium:中等对象AP,面积介于32² px与96² px之间
  • A P s m a l l AP^{small} APsmall:大对象AP,面积大于96² px
    这将允许更好地区分模型,因为一些数据集比其他数据集有更多的小对象。

参考目录

https://towardsdatascience.com/breaking-down-mean-average-precision-map-ae462f623a52

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值