平均精度均值(mAP)——目标检测模型性能统计量

  在机器学习领域,对于大多数常见问题,通常会有多个模型可供选择。当然,每个模型会有自己的特性,并会受到不同因素的影响而表现不同。

  每个模型的好坏是通过评价它在某个数据集上的性能来判断的,这个数据集通常被叫做“验证/测试”数据集。这个性能由不同的统计量来度量,包括准确率( accuracy )、精确率( precision )、召回率( recall )等等。选择我们会根据某个特定的应用场景来选择相应的统计量。而对每个应用来说,找到一个可以客观地比较模型好坏的度量标准至关重要。

在本文,我们将会讨论目标检测问题中最常用的度量标准 --- 平均精度均值(Mean Average Precision, mAP)。

  大多数情况下,这些度量标准都很容易理解和计算。例如,在二类分类问题中,精确率和召回率都是简单和直观的统计量。  

  而另一方面,目标检测则是一个相对不同且很有意思的问题。

  即使你的目标检测器检测到一张图片中有猫,但是如果你找不到这只猫在图片中的具体位置,那么这个检测器也是没有任何用处的。

  由于你现在需要预测一张图片中目标是否出现及其具体位置,那么我们如何计算这个度量就变得相当有意思了。

  首先,让我们定义目标检测问题,这样我们可以对问题有一个统一的认识。

▌目标检测问题

  对于“目标检测问题”,我的意思是,给定一张图片,找到图中的所有目标,确定他们的位置并对他们进行分类。

  目标检测模型通常是在给定的固定类别上进行训练的,因此模型在图中只能定位和分类这些已有的类别。

  此外,目标的位置通常是用边界矩形/边界框的形式来确定的。

  因此,目标检测包含了两个任务,确定图片中目标的位置,以及对目标进行分类。

图1- 几个比较有名的图像处理问题,图片来自斯坦福大学 CS231n 课程幻灯片(第8讲)

  如下文所说,平均精度均值 mAP 是预测目标位置以及类别的这一类算法的性能度量标准。因此,从图1我们可以看到, mAP 对于评估目标定位模型、目标检测模型以及实例分割模型非常有用。

▌评估模型检测模型

  为什么选择 mAP?

  目标检测问题中,每张图片中可能会含有不同类别的不同目标。如前文所说,模型的分类和定位性能都需要被评估。

  因此,精确率,这个图像分类问题中使用的标准的评价度量,并不能直接用在这里。现在,是平均精度均值 mAP 发挥作用的时候了。我希望,读完本文之后你可以理解 mAP 的含义和意义。

  关于参考标准(Ground Truth)

  对于任何算法来说,度量的值总是把预测值和参考标准的信息进行比较之后计算得到的。我们只知道训练、验证和测试数据集的参考标准信息。

  在目标检测问题中,参考标准的信息包括图像,图像中目标的类别,以及每个目标的真实边界框。

  • 一个例子

  我们给定了真实图片(jpg, png 等格式)和其他解释性文字(边界框的坐标( x, y,宽度和高度)和类别),画在图片上的红色框和文本标签只是方便我们自己观看。

参考标准信息的可视化

  因此,对于这个特定的例子,我们的模型在训练期间得到的其实是这张图片:

实际图片

  以及三组定义了参考标准的数字(让我们假设这张图片的分辨率是 1000 x 800 像素,表中所有坐标的单位都是像素,坐标值大小是估计的)

  让我们实际操作一下,看看 mAP 是如何计算的。

  我会在另一篇文章介绍各种目标检测算法,包括它们的方法以及性能。现在,让我们假设我们手上已经有一个训练好的模型,而且我们将在验证数据集上评估它的结果。

▌计算 mAP

  让我们假设原始图片和参考标准的解释性文字如上文所述。训练数据和验证数据的所有图像以相同的方法进行了标注。

  训练好的模型会返回许多预测结果,但是这些预测结果中的大多数都会有非常低的置信度分数,因此我们只需考虑那些超过某个报告置信度分数的预测结果。

  我们用模型对原始图像进行处理,下面是目标检测模型在置信度阈值化之后返回的结果。

  带有边界框的图像:

来自我们模型的结果

  我们可以说这些检测结果是正确的,但是我们怎么量化呢?

  首先,我们需要知道每个检测结果的正确性。能够告诉我们一个给定的边界框的正确性的度量标准是“交并比”(Intersection over Union,  IoU)。这是一个非常简单的可视量。

  就文字而言,某些人可能会说这个量的名字本身就已经解释了自己的含义,但是我们需要更好的解释。我会简单地解释 IoU 的含义,对于那些很想深入了解 IoU 含义的读者,Adrian Rosebrock 有一篇写得非常好的文章,可以作为该内容的补充。

(https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/)

IoU

  交并比是预测边界框和参考边界框的交集和并集之间的比率。这个统计量也叫做 Jaccard 指数(Jaccard Index),是由 Paul Jaccard 在 20 世纪初首次提出的。

  要获得交集和并集的值,我们首先把预测边界框覆盖在参考边界框之上。(如图所示)

  现在对于每个类别,预测边界框和参考边界框的重叠部分叫做交集,而两个边界框跨越的所有区域叫做并集。

  我们仅以这匹马作为例子

  上图中类别为马的交集和并集区域看上去就像这样:

  这个例子中交集区域相当大

  交集覆盖的是边界框重合区域(蓝绿色区域),并集覆盖的是橙色和蓝绿色的所有区域。

  然后, IoU 可以像这样计算:

分辨正确检测结果和计算精确率

  利用 IoU ,我们现在要分辨检测结果是否正确。最常用的阈值是0.5:如果 IoU > 0.5,那么认为这是一个正确检测,否则认为这是一个错误检测。

  现在我们为模型生成的每一个检测框计算其 IoU 值(置信度阈值化之后)。利用该 IoU 值以及我们的 IoU 阈值(例如 0.5),我们为图片中的每一个类计算其正确检测的数量(A)。

  现在对于每一张图片,我们都有参考标准的数据,可以告诉我们在图片中某个特定类别的真实目标数量(B)。而且我们已经计算了正确预测的数量(A)(True Positives)。因此现在我们可以用这条公式计算模型对该类别的精确率(A/B)。

  给定的图片中类别 C 的精确率=图片中类别 C 的真正类数量/图片中类别 C 所有目标的数量

  对于一个给定的类别,让我们对验证集中的每张图片都计算它的精确率。假设我们的验证集中有 100 张图片,并且我们知道每张图片都包含了所有的类别(根据参考标准告诉我们的信息)。这样对于每个类别,我们会有 100 个精度率的值(每张图片一个值)。让我们对这些 100 个值进行平均。这个平均值叫做该类的平均精度(Average Precision)。

  某个类别(C)的平均精度=验证集中该类(C)的所有精确率的和/含有该类别(C)目标的图像数量

  现在,假设在我们整个数据集中有 20 个类别。对每一个类别,我们都会进行相同的操作:计算 IoU  -> 精确率(Precision)-> 平均精度(Average Precision)。所以我们会有 20 个不同的平均精度值。利用这些平均精度值,我们可以很轻松地判断我们的模型对任何给定的类别的性能。

  为了只用一个数字来表示一个模型的性能(一个度量解决所有问题),我们对所有类别的平均精度值计算其均值(average/mean)。这个新的值,就是我们的平均精度均值 mAP (Mean Average Precision)!!(我得说,这个命名非常有创意)

  平均精度均值=所有类别的平均精度值之和/所有类别的数目

  所以,平均精度均值即数据集中所有类别的平均精度的均值。

  当我们比较 mAP 值的时候要记得几个重要的点:

    • mAP 总是在固定的数据集上进行计算。
    • mAP 并不是量化模型输出的绝对度量,但它是一个不错的相对度量。当我们在流行的公开数据集上计算这个度量时,它可以很容易地被用来比较目标检测的新老方法的性能好坏,因此我们并不需要一个绝对度量。
    • 根据不同的类别在训练数据中的分布情况不同,平均精度值可能对于某些类别(这些类别有很好的训练数据)非常高,然后对于某些类别(这些类别有更少的数据或者坏数据)可能非常低。所以,你的 mAP 值可能看上去还不错,但是你的模型可能只对某些类别较好,而对某些类别的效果非常差。因此,当分析你的模型结果时,最好单独类别的平均精度值。这些值过低的话可能意味着需要添加更多的训练样本了。

原文地址:https://www.cnblogs.com/guoyaohua/p/9901614.html

时间: 2024-08-27 00:19:29

平均精度均值(mAP)——目标检测模型性能统计量的相关文章

分类和目标检测的性能评价指标

对于深度学习的网络模型,希望其速度快,内存小,精度高.因此需要量化指标来评价这些性能,常用的指标有:mAP(平均准确度均值,精度指标), FPS(每秒处理的图片数量或每张图片处理需要时间,同样硬件条件下的速度指标) , 模型参数大小(内存大小指标). 1.mAP (mean Avearage Precision) mAP指的是各类别的AP平均值,而AP指PR曲线的面积(precision和Recall关系曲线),因此得先了解下precision(精确率)和recall(召回率),以及相关的acc

奇点云三角肌「秀肌肉」,端化目标检测模型再获突破

人工智能正在驱动新一轮的商业变革,而算法技术则是推动核心底层技术的重要力量.算法崛起时代,技术浪潮可谓一日千里,算法工程师也只有不断精进自身技术,才能与时俱进.驭浪前行.近日,奇点云算法工程师三角肌在目标检测算法领域又有新突破. 摘要 卷积神经网络对目标检测的精度有着显著的提升,并且随着卷积神经网络的深度加深,对目标检测精度提升也越大,但是也需要更多的浮点计算.许多研究者通过知识蒸馏的方法,通过把一个更深更大的教师网络中的知识转移到一个小的学生网络中,以提高学生网络在目标检测中的效果.而大部分知

Mean Average Precision(MAP)平均精度均值

MAP(Mean Average Precision):单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值.主集合的平均准确率(MAP)是每个主题的平均准确率的平均值. MAP 是反映系统在全部相关文档上性能的单值指标.系统检索出来的相关文档越靠前(rank 越高),MAP就可能越高.如果系统没有返回相关文档,则准确率默认为0. 例如:假设有两个主题,主题1有4个相关网页,主题2有5个相关网页.某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7:对于主题2检索出3个

目标检测的评价标准mAP, Precision, Recall, Accuracy

目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 Average Precision mAP 参考资料 metrics 评价方法 注意,在多分类问题中,评价方法是逐个类计算的,不是所有类一起算,是只针对一个类算,每个类别有自己的指标值! TP , FP , TN , FN 概念 TP = 预测为positive 且ground-truth和预测一致

[转]目标检测入门之(一)综述(上)

导言:目标检测的任务表述 如何从图像中解析出可供计算机理解的信息,是机器视觉的中心问题.深度学习模型由于其强大的表示能力,加之数据量的积累和计算力的进步,成为机器视觉的热点研究方向. 那么,如何理解一张图片?根据后续任务的需要,有三个主要的层次. 图像理解的三个层次 一是分类(Classification),即是将图像结构化为某一类别的信息,用事先确定好的类别(string)或实例ID来描述图片.这一任务是最简单.最基础的图像理解任务,也是深度学习模型最先取得突破和实现大规模应用的任务.其中,I

小目标检测相关资料备忘

1.评价指标 mean Average Precision(mAP) https://blog.csdn.net/zl3090/article/details/82740727 https://www.cnblogs.com/eilearn/p/9071440.html https://blog.csdn.net/yangzzguang/article/details/80540375 https://blog.csdn.net/wangdongwei0/article/details/8303

基于深度学习的目标检测研究进展

前言 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位置.其实刚刚的这个过程就是目标检测,目标检测就是"给定一张图像或者视频帧,找出其中所有目标的位置,并给出每个目标的具体类别". 目标检测对于人来说是再简单不过的任务,但是对于计算机来说,它看到的是一些值为0~255的数组,因而很难直接得到图像中有人或者猫这种高层语义概念,也不清楚目标出现在

CS231n第八课:目标检测定位学习记录

结合视频第八集和笔记:http://chuansong.me/n/353443351445 本节课程从分类(Classification),定位(Localization)和检测(Detection)三个方面入手. 从上图可以直观的看到: 1.对于分类而言,就是对于给定的图片把其划分到给定的几种类别中某一种.很显然,图像中只能存在一种给定类别中的对象. 2.而定位就是找到对应的对象的位置区域,把它框选出来(即Bounding Box),这个选框除了位置信息(x,y)外还要包含其大小信息(w,h)

目标检测网络之 YOLOv2

YOLOv1基本思想 YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体. 每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率.bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化.置信度反映是否包含物体以及包含物体情况下位置的准确性,定义为\(Pr(Object) \times IOU^{truth}_{pred},