0
点赞
收藏
分享

微信扫一扫

目标检测中的平均精度(mAP)详解--建议收藏+掌握



导读

本文将详细介绍目标检测中的平均精度(mAP),建议收藏并掌握。(公众号:OpenCV与AI深度学习)

背景介绍

    平均精度(mAP) 是用于评估机器学习模型的性能指标。它被PASCAL VOC、COCO、ImageNET 挑战、Google Open Image Challenge等基准挑战所使用。在 PASCAL VOC 中,平均平均精度( mAP)和平均精度 (AP)具有不同的含义。它们是针对单个 IoU 阈值(即 0.5)计算的。然而,在 MS COCO mAP和AP可以互换使用,它是针对一组 IoU 阈值 (0.5:.0.05.0.95) 计算的。


模型评估辅助指标

    在讨论平均精度 (mAP) 之前,了解以下指标也很重要,因为许多指标可以评估机器学习模型,每个指标都有其优点和权衡。

【1】联合交集--IOU

    Intersection over Union (IoU) 是量化两个区域之间重叠程度的指标。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_02

    如上图所示,IoU 度量评估预测的正确性。该值范围从 0 到 1。借助 IoU 阈值,我们可以确定预测是True Positive、False Positive还是False Negative。这些术语又是什么意思?这些术语共同构成了混淆矩阵。

【2】混淆矩阵

    为了理解混淆矩阵,让我们举一个分类问题的例子。模型必须识别图像中是否有热狗。预测可以是正确的,也可以是不正确的。根据输出和实际图像,可以进行以下预测组合。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_03

Ground Truth表示已知对象。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_04

目标检测中的平均精度(mAP)详解--建议收藏+掌握_召回率_05

    请注意,True Negative不适用于对象检测和分割。它正确地将对象的背景检测为背景。这相当于没有检测到任何东西。

【3】准确率(Precision)

    准确率表示实际正确的预测正样本的比例。数学定义如下:

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_06

【4】召回率(Recall)

    召回率表示正确预测的实际为正样本的比例。数学定义如下:

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_07


什么是平均精度(AP)

    平均精度 (AP)并不是精度 (P)的平均值。AP一词随着时间的推移而演变。为简单起见,我们可以说它是精确召回曲线下的面积。在这里,我们将通过一个简单的对象检测示例,学习如何手动计算平均精度(AP)。

【1】如何手动计算平均精度(AP)?

    让我们考虑以下具有各种类别的图像。YOLOv5 nano 模型正在预测对象上的边界框。IoU 阈值设置为 0.5,ground truths可以明显看出。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_召回率_08

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_09

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_10

‍    我们可以看到图像具有以下对象(Ground Truths)。

  • 2个人
  • 12条狗
  • 1 只泰迪熊
  • 1辆卡车

    YOLOv5 nano 模型预测了以下物体:

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_11

    平均精度 (AP) 是按类别计算的。稍后我们将讨论原因。现在,让我们开始计算狗类的AP 。要遵循的步骤如下:

记录每个 Dog 检测以及 Confidence 分数

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_12

计算精度和召回率

在这里,我们计算检测精度和召回值。按照以下步骤将数据制成表格。

按置信度降序对表进行排序。

将累计 TP 和 FP 制表(继续将当前值与上一行相加)。

计算逐行精度和召回率。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_召回率_13

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_14

绘制 Precision-Recall 图

    注意👉🏼:如果表中包含相同召回值的多个精度值,您可以考虑最高值并丢弃其余值。不这样做不会影响最终结果。这是为了简化情节。在我们的例子中,我们正在绘制所有内容。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_15

使用PASCAL VOC 11点插值法计算平均精度(AP)

2007 年 PASCAL VOC 挑战赛中引入了 11 点插值法。其中 Precision 值记录在 11 个等间距的 Recall 值中。平均精度定义如下:

精度值在 11 个召回值之间进行插值,即 0、0.1、0.2、0.3、…、1.0。插值后的 Precision 是Recall 值大于当前 Recall 值对应的最大 Precision。简单来说,就是右边的最大精度值。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_16

🤔为什么只对 11 个召回点进行精度插值❓

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

实际上,评估数据集是巨大的。当我们为所有预测绘制图表时,相邻点之间的差异将非常小。因此,要比较两个模型,11 点插值就足够了。

🤔 也是计算所有点的平均精度(AP)❓

是的,它是针对所有点计算的。其实这也是VOC在2010年采用的另一个评价指标,我们稍微讨论一下。现在,让我们继续使用 11 点插值法并绘制图形。

绘制最终插值图并计算Dog类的平均精度

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_17

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_18


目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_19

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_20

    同样,我们可以计算人、泰迪、绵羊和卡车的平均精度(AP)。确保为以下至少两个类别计算 AP,以便清楚理解。完成后,我们将继续计算平均精度(mAP)。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_21

什么是平均平均精度(AP)

    顾名思义,平均平均精度或 mAP是所有检测到的类的AP平均值。

    mAP = 1/n * sum(AP),其中 n 是类数。

    在上面的示例中,我们有 5 个类。因此,计算出的mAP为;

        mAP = 1/5 * (0.349 + 0.545 + 0 + 1 + 0.5)

         = 0.4788

         = 47.88 %

    在评估模型的同时得出 mAP;分别为每个类计算平均精度 (AP)。 

    现在让我们回到刚才跳过的问题。为什么不是一次计算所有类的平均精度(AP)❓

    让我们想想如果我们这样做会发生什么。您可以返回检测图表并通过组合所有类来计算AP。但是,这一次我们将无法观察到类方面的表现。考虑一个具有 3 个类的数据集,苹果、鸟和蝴蝶。让训练图像的数量分别为 1000 🍎、20 🦜和 1000 🦋。该模型势必无法识别鸟类。这只有在计算每类 AP 时才能识别。

评估指标的演变

    本文不一定限定于对象检测。我们将看看评估指标如何随时间变化及其背后的原因。

【1】ROC-AUC 公制,PASCAL VOC 2005

    该指标用于评估分类模型。在 PASCAL VOC 2005 中引入了 ROC(接收器操作特性)-AUC(曲线下面积)度量。绘制了对应于假阳性率 (FPR) 值的真阳性率 (TPR) 值。

    TPR = TP / (TP + FN)

    FPR = FP/(FP+FN)

【2】 11 点插值 AP,PASCAL VOC 2007

    我们已经讨论过 11 点插值法。它是在 2007 年的 PASCAL VOC 挑战赛中引入的。它以 IoU 阈值 0.5 计算。与 ROC-AUC 相比,该指标更敏感。该度量具有以下优点。

  • 提高可解释性。
  • 提高低召回率时的性能可见性。

【3】PR-AUC,帕斯卡 VOC 2010

    PR-AUC 是 Precision-Recall 曲线下的确切面积。与 11 点法不同,我们不必插入精度值。并且最终值不除以 11。这也是在 IoU 阈值 0.5 时计算的。

【4】101 点插值 AP,MS COCO 2014 | 可可地图

    到目前为止,PASCAL VOC 引入的指标是标准的基准测试系统。然而,随着时间的推移,模型开始饱和。据观察,即使是具有同等分数的模型也表现不一样。MS COCO 在 2014 年引入了 101 Point Interpolation AP。它是 PR 曲线下 AUC 的更好近似。

    此外,COCO 通过将mAP@0.5重新定义为mAP@ [0.5:0.05:0.95],使挑战变得更加严峻。早些时候,mAP 在 IoU 阈值 0.5 时进行了评估。COCO mAP 是针对一组 10 个不同的 IoU 阈值计算的,然后取平均值。它的范围从 0.5 到 0.95,步频为 0.05。

    除此之外,MS COCO 有 12 个指标用于评估目标检测模型。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_22

    请注意,MS COCO 将平均精度 (AP) 定义为mAP@ [0.5:.05:.95]。在这里,术语 AP 和 mAP 可以互换使用。时至今日,COCO mAP 是评估对象检测模型最流行的指标。

数据集和模型评估竞赛

    当今世界正在经历的人工智能热潮之所以成为可能,不仅是因为算法,还因为数据集。目前,有很多数据集被用于各种任务。我们将在这里讨论其中的一些。

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_23

【1】PASCAL VOC(视觉对象类)

目标检测中的平均精度(mAP)详解--建议收藏+掌握_召回率_24

    它于 2005 年首次推出,只有 4 个班级。最初,它用于分类和对象检测。2007年,引入了分割测试器,类别数量增加到20个。随着连续几年的进一步发展,数据集越来越大。根据 2012 年的最后一次更新,PASCAL VOC 有 11,530 张图像,有 20 个类别、27,450 个 ROI 注释对象和 6,929 个分割。

    与其他数据集相比,PASCAL VOC 数据集可能更小,但仍然是一个很好的数据集。虽然 VOC 挑战赛于 2012 年结束,但服务器仍然接受提交。 

【2】 ImageNet

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_25

    一个革命性的数据集,于 2009 年推出。许多人认为这是我们今天看到的 AI 繁荣的原因。当研究人员努力开发更好的算法时,ImageNET 专注于更好的数据集的想法。结果发现,即使是现有的算法在 ImageNET 数据集上训练时也表现得更好。截至今天,ImageNET 拥有超过 1500 万张包含 20,000 多个类别的图像。

    2010 年,PASCAL VOC 与 ImageNet 合作并联合打造了他们的比赛。            ILSVRC(ImageNET Large Scale Visual Recognition Challenge)由ImageNET组织的年度比赛一直持续到2017年。通过比赛,建立了突破性的基准。比赛使用包含 1000 个类别的 150k 图像的修剪集。2017 年,比赛转交给 Kaggle 进行托管。

【3】 MS COCO (Microsoft Common Objects in Context)

目标检测中的平均精度(mAP)详解--建议收藏+掌握_数据集_26

MS COCO 数据集最初于 2014 年发布,最后一次更新是在 2017 年。目前,它是最常用的数据集。COCO 包含 328k 图像,具有 80 个类和 150 万个对象实例。MS COCO 比赛及其规则是现行标准。但是,COCO 服务器从 2021 年开始不再接受提交。

【4】 LVIS(大词汇实例分割)

目标检测中的平均精度(mAP)详解--建议收藏+掌握_插值_27

    LVIS 是用于长尾实例分割的数据集。它有 164k 图像,由 1000 多个类别的注释组成。它的类别很长,训练样本很少。这意味着数据集是不平衡的,使其更具挑战性。

总 结

这就是平均精度(AP)和平均精度(mAP)。本文主要讨论了以下几点:

  • 平均精度 (mAP) 的构建块。
  • 用于分类、对象检测和分割的 mAP 具有不同的含义和用途。
  • 平均精度不是精度的平均值。它是PR曲线下的面积。
  • 平均精度 (AP) 是按类别计算的。
  • ROC-AUC 是 2007 年之前评估分类模型的标准指标。
  • 11 点插值 AP 于 2007 年推出。
  • All Point AP 在 2010 年晚些时候被采用。
  • PASCAL VOC 和 ImageNET 挑战使用了以 0.5 IoU 计算的 AP 和 mAP。
  • 目前,MS COCO 101 点平均精度(AP)被接受为标准指标。
  • 根据 MS COCO 定义,AP 和mAP@ [0.5:.05:.95] 相同。

参考链接:

​​https://learnopencv.com/mean-average-precision-map-object-detection-model-evaluation-metric/​​


举报

相关推荐

0 条评论