目标检测中的“神奇指南”——平均精度(mAP)

发布时间 2023-04-07 15:40:47作者: 曼孚科技

想象一下,你是一名私家侦探,接到一项神秘的任务,需要在一群人中找出一个罪犯。你必须仔细观察每个人的特征,比如身高、体型、发型、服装等等,从而识别出目标。

这听起来似乎很简单,但是当人群中人头攒动、各种因素干扰时,你会发现自己很难进行准确的识别。

目标检测任务也是如此。只不过,我们的“人群”是一张张复杂的图像,而我们要寻找的目标则是各种各样的物体。这时,平均精度(mAP)就像是我们的“神奇指南”,可以帮助我们从杂乱无章的图像中,准确地找到目标。

提到mAP,不得不介绍一个名词——精度(AP),想得到mAP,需先确定AP值。

AP的计算原理是将所有物体按照置信度从高到低排列,然后逐个计算它们的准确率和召回率,最终得出的相应值,该比值可以反映出目标检测算法的整体性能和准确度。

如果一个算法的AP很高,意味着它在目标检测任务中表现出色,可以得到更好的效果。

当然,AP并不是万能的。它仅仅是目标检测中的一项指标,还需要和其他指标一起综合考虑,才能真正地评估一个目标检测算法的性能。

下面,本文将围绕AP概念,简要介绍常见的模型评价语。

 

一.什么是AP、mAP?

1. 相关概念

AP值的计算需要一系列指标做铺垫,其中涉及的名词如下:

(1)IOU:IOU是一个比值,是预测框与实际框的相交部分与两者全部面积的比值;

(2)TP:被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数;

(3)FP:被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

(4)FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

(5)TN:被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

 

 

2. 计算公式

目标检测任务中,需要两个指标衡量模型的AP值,即精确率(P)与召回率(R)。TP与FP的分类标准为IOU,P与R的分类标准为置信度。

精确率的计算公式为precision = TP/(TP+FP),即模型给出的所有正样本中,正确预测的结果所占比例。

召回率的计算公式为recal=TP / (TP + FN),即模型给出的所有预测结果中,正确预测的结果所占比例。

 

 

3. P-R曲线

P-R曲线是所有precision-recall点连成的曲线,用于计算AP值。通常来讲,P在纵轴,R在横轴,P值越高,R值越低。

 

 

AP是PR曲线下的面积,它是精度和召回率的函数,取值范围在0到1之间。AP越高,代表模型越好。如果PR曲线下的面积为1,则代表模型的性能最佳。

 

 

得到AP值后,mAP的计算就变得很简单了,就是取所有 AP 的平均值。

 

二.为什么选择mAP?

在解释这点之前,先来分析下目标检测的特性。

1. 目标检测问题

目标检测任务是对图像中的目标位置物体进行分类,是计算机视觉领域的核心技术之一。

该技术通常是在一组固定类上训练,所以模型只能定位和分类图像中已有的类别,这正是其相对不同且有趣的地方。

模型不仅要识别物体,也要精准的找到物体位置。举个例子,即使你的目标检测器检测到一张图片中有猫,但是如果你找不到这只猫在图片中的具体位置,那么这个检测器便没有任何用处。

对整个任务来说,每张图片都可能包含不同类别的不同目标。因此,精确率,这个图像分类问题中常用的标准评价度量,并不能直接用在这里,需要mAP作为目标检测算法模型的重要衡量指标。

2. mAP的用处

mAP作为预测目标位置及类别类算法的性能度量指标,对评估目标定位模型、目标检测模型以及实例分割模型非常有用。

 

 

如上文所述,IOU是预测边界框和参考边界框的交集和并集之间的比率,利用这个比值,可以知晓每个检测结果的正确性。

将IOU与阈值进行比较,最常用的阈值是0.5,如果 IoU > 0.5,那么认为这是一个正确检测,否则认为这是一错误的检测。

 

 

以此类推,计算出所有检测框的IOU值,求解其P与R,最终得出mAP值,利用这些平均精度值,便可以轻松地判断模型对任何给定类别的性能。

 

三.影响mAP值的因素分析与探讨

如果说AP 衡量的是训练好的模型在每个类别上的好坏,那么mAP 衡量的则是模型在所有类别上的好坏,

1. mAP对模型质量的影响

mAP不仅在目标检测任务中扮演着重要的角色,同时也会对模型的整体表现产生深远影响,例如模型的准确性、稳定性、普适性与优化等方面的影响。

1)模型的准确性:较高的mAP意味着模型能够更准确地检测出目标物体,提高了模型的准确性。

2)模型的稳定性:较高的mAP能够帮助评估模型在不同场景和数据集下的稳定性,从而提高模型的泛化能力和鲁棒性。

3)模型的普适性一些高精度要求的场景,如自动驾驶,需要更高的mAP来保证安全性。而在一些相对低要求的场景,如智能安防,mAP可以适度降低,以换取更高的实时性和效率。

4)模型的优化:mAP也是检验模型性能的重要指标之一,通过对mAP的监控和分析,可以发现模型的不足之处,针对性地进行模型优化和改进。

那么,mAP值的决定因素有哪些?

2. mAP值受哪些因素控制?

mAP值是评估目标检测算法性能的重要指标之一,它可以受到多个因素的影响。以下是常见的六种影响因素:

1)目标类别数量:目标类别数量对mAP值有着显著影响,当数量较少时,模型通常可以获得较高的mAP值,而当数量增加时,模型的mAP值可能会降低。

2)目标大小:较小的目标通常更难以被准确检测,因此模型在处理小目标时会出现性能下降的情况,从而导致mAP值的下降。

3)目标遮挡程度:目标被其他物体遮挡的程度也会影响mAP值的大小。如果目标被遮挡的程度较大,模型就更难以准确地检测出目标。

4)数据集质量:数据集对模型的训练和测试有着重要影响,如果数据集的质量和多样性较差,会直接影响模型的泛化能力和检测准确性,导致mAP值下降。

5)模型结构与参数:模型结构和参数设置也会影响mAP值,如果模型结构不合理或参数设置不当,便会影响模型的检测性能,从而影响mAP值的大小。

5)检测阈值:在目标检测中,设置检测阈值可以调整模型的召回率和准确率,从而影响的mAP值的变化。

以上五点,便是影响mAP的常见因素,在建立模型时需着重注意这些因素,以提高模型的预测准确性。

 

总结

掌握评估机器学习模型的能力与掌握训练模型一样重要。本文主要阐述了mAP对目标检测算法性能检测的重要性,作为目标检测的常用评估指标,mAP可以衡量不同阈值下的模型性能表现、帮助调整模型参数、优化模型表现等。

不仅如此,mAP的计算方法难度适中,易于理解和使用。因此,在进行目标检测算法性能评估时,应尽可能地提高对mAP的理解和应用能力,以便更好地评估模型性能,进一步提高模型的精度和实用性。