【问题标题】:Why we use mAp score for evaluate object detectors in deep learning?为什么我们使用 mAp 分数来评估深度学习中的对象检测器?
【发布时间】:2018-02-16 01:40:46
【问题描述】:

在这个Tensorflow detection model zoo 中,他们提到了不同检测架构的 COCO mAp 分数。他们还表示,map 得分越高,准确度越高。不明白的是这是如何计算的?它的最高分数是多少?为什么这个 mAp 分数因数据集而异?

【问题讨论】:

    标签: deep-learning object-detection


    【解决方案1】:

    要了解 MAP(平均平均精度),我先从 AP(平均精度)开始。

    假设我们正在搜索一朵花的图像,并且我们提供了我们的 图像检索系统一朵玫瑰的样本图片(查询),我们得到 返回一堆排名图像(从最有可能到最不可能)。 通常不是所有的都是正确的。所以我们计算精度为 每个正确返回的图像,然后取平均值。


    示例:

    如果我们返回的结果是1, 0, 0, 1, 1, 1,其中1 是一朵花的图像, 而0 不是,那么每个正确点的精度是:

    Precision at each correct image = 1/1, 0, 0, 2/4, 3/5, 4/6
    Summation of these precisions = 83/30
    Average Precision = (Precision summation)/(total correct images) = 83/120
    

    旁注:

    本节详细解释了计算每个正确图像的精度,以防您仍然对上述分数感到困惑。

    出于说明目的,让1, 0, 0, 1, 1, 1 存储在一个数组中,因此results[0] = 1results[1] = 0 等。

    totalCorrectImages = 0, totalImagesSeen = 0, pointPrecision = 0

    pointPrecision 的公式是totalCorrectImages / totalImagesSeen

    results[0], totalCorrectImages = 1, totalImagesSeen = 1 因此pointPrecision = 1

    由于results[1] != 1,我们忽略它,但totalImagesSeen = 2 && totalCorrectImages = 1

    自从results[2] != 1totalImagesSeen = 3 && totalCorrectImages = 1

    results[3], totalCorrectImages = 2, totalImagesSeen = 4 因此pointPrecision = 2/4

    results[4], totalCorrectImages = 3, totalImagesSeen = 5 因此pointPrecision = 3/5

    results[5], totalCorrectImages = 4, totalImagesSeen = 6 因此pointPrecision = 4/6


    一种简单的解释方法是产生一个零和 那些将提供所需的AP。例如,0.5 的 AP 可以 有像0, 1, 0, 1, 0, 1, ... 这样的结果,其中每一秒的图像是 正确,而0.333 的 AP 具有 0, 0, 1, 0, 0, 1, 0, 0, 1, ...,其中 每三张图片都是正确的。

    对于0.1 的 AP,每 10 个图像将是正确的,即 绝对是一个糟糕的检索系统。另一方面,对于上面的 AP 0.5,我们会在顶部结果中遇到更多正确的图像而不是错误的图像,这绝对是一个好兆头。

    MAP 只是 AP 的扩展。您只需对一定数量的查询取所有 AP 分数的平均值。上述对 AP 分数的解释也适用于 MAP。 MAP 范围从 0 到 100,越高越好。

    Wikipedia上的AP公式

    Wikipedia上的MAP公式

    感谢blog

    编辑我:

    同样的概念也适用于对象检测。在这种情况下,您将计算每个班级的 AP。这是由给定类的精确召回曲线下的面积给出的。从这一点上,您可以找到它们的平均值来达到 mAP。

    更多详情,请参阅2012 Pascal VOC Dev Kit 的第 3.4.1 和 4.4 节。相关论文可以在here找到。

    【讨论】:

    • 您好,您能解释一下“所以我们计算每个正确返回的图像的精度”是什么意思吗?
    • 我相信这句话之后提供的示例回答了您的问题。您仅根据正确的预测计算精度,而忽略错误的预测。
    • 那么 AP 到底是什么。最后一件事?
    • 好吧,在计算图像检测时会有所不同。我在问map在SSD等检测中的作用。
    • @ShamaneSiriwardhana Dude,它的概念相同。我以01 为例来帮助您理解其背后的概念。对于对象检测,您将计算每个类的平均精度。这是由给定类的精确召回曲线下的面积给出的。从这一点开始,您可以找到平均值,这些平均值又会为您提供 mAP。阅读Pascal VOC doc的第3.4.1和4.4节,官方论文可以找到here
    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 2018-07-07
    • 2018-06-25
    • 2013-05-08
    • 2014-12-05
    • 2017-12-22
    • 1970-01-01
    • 2019-06-07
    相关资源
    最近更新 更多