前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >目标检测中的平均精度(mAP)详解--建议收藏+掌握

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

作者头像
Color Space
发布2022-09-26 10:24:20
5.9K0
发布2022-09-26 10:24:20
举报

导读

本文将详细介绍目标检测中的平均精度(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) 是量化两个区域之间重叠程度的指标。

如上图所示,IoU 度量评估预测的正确性。该值范围从 0 到 1。借助 IoU 阈值,我们可以确定预测是True Positive、False Positive还是False Negative。这些术语又是什么意思?这些术语共同构成了混淆矩阵。 【2】混淆矩阵 为了理解混淆矩阵,让我们举一个分类问题的例子。模型必须识别图像中是否有热狗。预测可以是正确的,也可以是不正确的。根据输出和实际图像,可以进行以下预测组合。

同样,这些术语也适用于对象检测和分割。但是,确切的含义并不相同。在目标检测中,预测的正确性(TP、FP 或 FN)是在 IoU 阈值的帮助下确定的。而在图像分割中,它是通过参考Ground Truth像素来决定的。Ground Truth表示已知对象。

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

【3】准确率(Precision)

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

【4】召回率(Recall)

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

什么是平均精度(AP) 平均精度 (AP)并不是精度 (P)的平均值。AP一词随着时间的推移而演变。为简单起见,我们可以说它是精确召回曲线下的面积。在这里,我们将通过一个简单的对象检测示例,学习如何手动计算平均精度(AP)。 【1】如何手动计算平均精度(AP)? 让我们考虑以下具有各种类别的图像。YOLOv5 nano 模型正在预测对象上的边界框。IoU 阈值设置为 0.5,ground truths可以明显看出。

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

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

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

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

  • 记录每个 Dog 检测以及 Confidence 分数
  • 计算精度和召回率 在这里,我们计算检测精度和召回值。按照以下步骤将数据制成表格。 按置信度降序对表进行排序。 将累计 TP 和 FP 制表(继续将当前值与上一行相加)。 计算逐行精度和召回率。
  • 绘制 Precision-Recall 图

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

  • 使用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。简单来说,就是右边的最大精度值。

🤔为什么只对 11 个召回点进行精度插值❓ 从论文中引用,以这种方式插入精度/召回曲线的目的是减少由示例排名的微小变化引起的精度/召回曲线“摆动”的影响。 实际上,评估数据集是巨大的。当我们为所有预测绘制图表时,相邻点之间的差异将非常小。因此,要比较两个模型,11 点插值就足够了。 🤔 也是计算所有点的平均精度(AP)❓ 是的,它是针对所有点计算的。其实这也是VOC在2010年采用的另一个评价指标,我们稍微讨论一下。现在,让我们继续使用 11 点插值法并绘制图形。

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

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

什么是平均平均精度(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 个指标用于评估目标检测模型。

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

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

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

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

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

【2】 ImageNet

一个革命性的数据集,于 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)

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

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

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/

—THE END—

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV与AI深度学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍 平均精度(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) 是量化两个区域之间重叠程度的指标。
  • 什么是平均精度(AP) 平均精度 (AP)并不是精度 (P)的平均值。AP一词随着时间的推移而演变。为简单起见,我们可以说它是精确召回曲线下的面积。在这里,我们将通过一个简单的对象检测示例,学习如何手动计算平均精度(AP)。 【1】如何手动计算平均精度(AP)? 让我们考虑以下具有各种类别的图像。YOLOv5 nano 模型正在预测对象上的边界框。IoU 阈值设置为 0.5,ground truths可以明显看出。
  • 什么是平均平均精度(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
  • 【2】 11 点插值 AP,PASCAL VOC 2007
  • 【3】PR-AUC,帕斯卡 VOC 2010
  • 【4】101 点插值 AP,MS COCO 2014 | 可可地图
  • 数据集和模型评估竞赛 当今世界正在经历的人工智能热潮之所以成为可能,不仅是因为算法,还因为数据集。目前,有很多数据集被用于各种任务。我们将在这里讨论其中的一些。
  • 【1】PASCAL VOC(视觉对象类)
  • 【2】 ImageNet
  • 【3】 MS COCO (Microsoft Common Objects in Context)
  • 【4】 LVIS(大词汇实例分割)
  • 总 结 这就是平均精度(AP)和平均精度(mAP)。本文主要讨论了以下几点:
  • 参考链接: https://learnopencv.com/mean-average-precision-map-object-detection-model-evaluation-metric/
  • —THE END—
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档