【问题标题】:What is the mAP metric and how is it calculated? [closed]什么是 mAP 指标,它是如何计算的? [关闭]
【发布时间】:2016-07-16 10:31:02
【问题描述】:

在计算机视觉和物体检测中,常用的评估方法是mAP。 它是什么以及如何计算?

【问题讨论】:

    标签: machine-learning computer-vision detection metrics vision


    【解决方案1】:

    mAP 是平均精度。

    它在信息检索领域(参考[1][2])和多类分类(Object Detection)设置领域的使用是不同的。

    要为对象检测计算它,您需要根据模型预测计算数据中每个类别的平均精度。平均精度与类别的精度-召回曲线下的面积有关。然后取这些平均单个类精度的平均值,得到平均平均精度。

    要计算平均精度,请参阅[3]

    【讨论】:

    • 目标检测模型的最低 mAp 分数应该是多少
    • 真的有一篇原创论文,提出mAP的地方吗?
    【解决方案2】:

    引用来自上述Zisserman paper - 4.2 Evaluation of Results (Page 11)

    首先,“重叠标准”被定义为大于 0.5 的交集。 (例如,如果一个预测框满足这个关于真实框的标准,它被认为是一个检测)。然后使用这种“贪婪”方法在 GT 框和预测框之间进行匹配:

    一个方法输出的检测被分配给ground truth对象 按(递减)排序的顺序满足重叠标准 信心输出。图像中同一对象的多次检测 被认为是错误检测,例如5 次检测单个物体 计为 1 次正确检测和 4 次错误检测

    因此,每个预测框要么是真阳性,要么是假阳性。 每个ground-truth box都是True-Positive。 没有真正的否定。

    然后通过对精确召回曲线上的精确度值进行平均来计算平均精确度,其中召回率在 [0, 0.1, ..., 1] 范围内(例如 11 个精确度值的平均值)。更准确地说,我们考虑稍微修正的 PR 曲线,其中对于每个曲线点 (p, r),如果存在不同的曲线点 (p', r') 使得 p' > p 并且 r' >= r ,我们将 p 替换为这些点中的最大 p'。

    我仍然不清楚的是,对于那些从未检测到的 GT 框做了什么(即使置信度为 0)。这意味着精度-召回曲线永远无法达到某些召回值,这使得上面的平均精度计算未定义。

    编辑:

    简答:在recall不可达的区域,精度下降到0。

    解释这一点的一种方法是假设当置信度的阈值接近 0 时,无限数量的预测边界框会在整个图像中亮起。然后精度立即变为 0(因为只有有限数量的 GT 框),并且召回率在这条平坦的曲线上不断增长,直到达到 100%。

    【讨论】:

    • 这不是唯一不清楚的地方。考虑有两个预测框(P1,P2)和两个真实框(T1,T2)的情况,其中 P2 的置信度高于 P1。 P1 和 P2 都与 T1 重叠。由于 P2 具有更高的置信度,很明显 P2 应该被认为是 T1 的匹配项。没有给出的是,如果 P1 也与 T2 有一些 IOU 重叠,但低于与 T1 的 IOU,是否应该给 P1 “第二次机会”尝试将自己与 T2 匹配,还是不应该?
    • 有人可以澄清未检测到的 GT 盒子的问题吗?
    • @Jonathan:那么我们是否简单地丢弃 IoU=0.5 的预测的 PR 曲线下面积?
    • @Alex 否。IoU
    • @Martin 从github 可以看出,P1 不会有第二次机会,而是误报。
    【解决方案3】:

    对于检测,一种常用的方法来确定一个对象提议是否是 右边是 Intersection over Union (IoU, IU)。这需要集合A 提议的对象像素和真实对象像素的集合B 和 计算:

    通常,IoU > 0.5 表示成功,否则失败。对于每个类,可以计算出

    • 真阳性 TP(c):为 c 类提出了建议,实际上有 c 类的对象
    • 误报 FP(c):为 c 类提出了建议,但没有 c 类的对象
    • c 类的平均精度:

    mAP(平均精度)为:

    注意: 如果想要更好的建议,确实可以将 IoU 从 0.5 增加到更高的值(最高到 1.0,这将是完美的)。可以用 mAP@p 表示,其中 p \in (0, 1) 是 IoU。

    mAP@[.5:.95] 表示在多个阈值上计算mAP,然后再次平均

    编辑: 更多详细信息见COCOEvaluation metrics

    【讨论】:

    • 真的有一篇原创论文,提出mAP的地方吗?或者你从哪里得到的?
    • 不确定COCO论文是否是原始来源,但至少在我看来,这是目前为mAP设定定义的一篇。单击我帖子底部的评估指标链接时,您可以找到更多信息。这里还有关于 COCO arxiv.org/pdf/1405.0312.pdf 的论文,但是他们并没有花太多时间来详细说明评估。尽管如此,他们还是在这里引用了他们在 python 中可用的评估代码:github.com/cocodataset/cocoapi/blob/master/PythonAPI/…
    • 谢谢@mrk,我有一个问题:模型为每个边界框生成一个置信度值。这个置信度值如何影响您在上面解释的这些公式?
    【解决方案4】:

    我认为这里的重要部分是将对象检测如何被视为与至少存在一个excellent description of average precision 的标准信息检索问题相同。

    某些对象检测算法的输出是一组建议的边界框,每个边界框都有一个置信度和分类分数(每个类别一个分数)。现在让我们忽略分类分数,并使用置信度作为threshold binary classification 的输入。直观地说,平均精度是阈值/截止值的所有选择的聚合。可是等等;为了计算精度,我们需要知道一个框是否正确!

    这是令人困惑/困难的地方;与典型的信息检索问题相反,我们实际上在这里有一个额外的分类级别。也就是说,我们无法在框之间进行精确匹配,因此我们需要对边界框是否正确进行分类。解决方案本质上是对盒子尺寸进行硬编码分类;我们检查它是否与任何基本事实充分重叠以被认为是“正确的”。这部分的阈值是根据常识选择的。您正在处理的数据集可能会定义“正确”边界框的阈值是多少。大多数数据集只是将其设置为 0.5 IoU 并保持不变(我建议进行一些手动 IoU 计算 [它们并不难] 以了解 0.5 的 IoU 到底有多严格)。

    现在我们已经真正定义了“正确”的含义,我们可以使用与信息检索相同的过程。

    要找到平均平均精度 (mAP),您只需根据与这些框相关的分类分数的最大值对建议的框进行分层,然后对类的平均精度 (AP) 进行平均(取平均值)。

    TLDR;区分确定边界框预测是否“正确”(额外级别的分类)和评估框置信度如何通知您“正确”边界框预测(完全类似于信息检索案例)和典型描述mAP 会很有意义。


    值得注意的是Area under the Precision/Recall curve is the same thing as average precision,我们基本上是用梯形或右手法则来逼近这个区域来逼近积分。

    【讨论】:

      【解决方案5】:

      定义:mAP → 平均平均精度

      在大多数物体检测比赛中,要检测的类别很多,每次对模型的评估都是针对一个特定的类别进行的,评估结果是该类别的AP。

      每个类别评估时,计算所有AP的平均值作为模型的最终结果,即mAP。

      【讨论】:

      • 目标检测模型的最低 mAp 分数应该是多少
      【解决方案6】:

      Intersection Over Union (IOU) 是基于 Jaccard Index 的度量,用于评估两个边界框之间的重叠。它需要一个真实边界框和一个预测边界框。通过应用 IOU,我们可以判断检测是否有效(真阳性)或无效(假阳性)。 IOU 由预测边界框和地面之间的重叠区域给出真实边界框除以它们之间的联合区域。

      【讨论】:

      • 问题是关于 mAP 而不是关于 IoU。因此,您至少应该澄清 IoU 与 mAP 的关系。
      猜你喜欢
      • 2010-09-11
      • 2021-08-21
      • 2015-12-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      相关资源
      最近更新 更多