在计算机视觉和目标检测中,常用的评估方法是mAP。它是什么,如何计算?
Answers:
引文摘自上述Zisserman论文-4.2结果评估(第11页):
首先,“重叠标准”定义为大于0.5的交叉重叠。(例如,如果预测的盒子相对于地面真盒子满足此标准,则视为检测)。然后使用这种“贪婪”方法在GT盒和预测盒之间进行匹配:
将一种方法输出的检测结果分配给满足重叠标准的地面真实对象,并按(递减)置信度输出进行排序。图像中对同一对象的多次检测被认为是错误检测,例如,将单个对象的5次检测计为1次正确检测和4次错误检测
因此,每个预测的框都是True或False。每个地面真相框都是“正正”的。没有真否定词。
然后,通过平均召回率在[0、0.1,...,1]范围内的精确召回曲线上的精度值(例如11个精确值的平均值)来计算平均精度。更准确地说,我们考虑略微校正的PR曲线,其中对于每个曲线点(p,r),如果存在不同的曲线点(p',r'),使得p'> p并且r'> = r ,我们用这些点的最大p'替换p。
对我来说,仍不清楚的是那些从未被检测到的GT盒(即使置信度为0)如何处理。这意味着存在某些召回值,精确度-召回曲线将永远无法达到,这使得上述平均精确度计算不确定。
编辑:
简短的答案:在无法召回的区域中,精度降至0。
一种解释的方法是假设当置信度的阈值接近0时,整个图像将无数个预测的边界框点亮。然后,精度立即变为0(因为只有有限数量的GT盒),并且召回率在此平坦曲线上不断增长,直到达到100%。
为了进行检测,确定一个对象提议是否正确的一种常见方法是“联合路口”(IoU,IU)。这将采用
A
建议的对象像素集和真实的对象像素集,B
并计算:
通常,IoU> 0.5表示这是命中,否则是失败。对于每个类别,可以计算出
那么,mAP(平均平均精度)为:
注意: 如果需要更好的建议,则可以将IoU从0.5增加到更高的值(最理想的是增加到1.0)。可以用mAP @ p表示这一点,其中p \ in(0,1)是IoU。
mAP@[.5:.95]
表示在多个阈值上计算出mAP,然后再次取平均值
编辑: 有关更多详细信息,请参阅COCO评估指标
我认为这里的重要部分是链接如何将对象检测视为与标准信息检索问题相同,对于该问题至少存在一个关于平均精度的出色描述。
某些对象检测算法的输出是一组建议的边界框,并且每个边界框都有一个置信度和分类分数(每类一个分数)。现在让我们忽略分类分数,并使用置信度作为阈值二进制分类的输入。直观地,平均精度是阈值/截止值的所有选择的总和。可是等等; 为了计算精度,我们需要知道一个盒子是否正确!
这是令人困惑/困难的地方;与典型的信息检索问题相反,我们实际上在这里有一个额外的分类级别。也就是说,我们无法在框之间进行精确匹配,因此我们需要对边界框是否正确进行分类。解决的方法是对包装盒的尺寸进行硬编码分类。我们会检查它是否与任何基本事实有足够的重叠以被视为“正确”。这部分的阈值是根据常识选择的。您正在处理的数据集可能会定义“正确”边界框的阈值。大多数数据集只是将其设置为0.5 IoU,然后将其设置为该值(我建议进行一些手动IoU计算([不难],以体会0.5 IoU的严格程度)。
现在我们已经定义了“正确”的含义,我们可以使用与信息检索相同的过程。
要找到平均平均精度(mAP),您只需根据与这些框相关的最大分类得分对建议的框进行分层,然后对各个类别的平均精度(AP)进行平均(取平均值)即可。
TLDR;在确定边界框预测是否为“正确”(分类的额外级别)与评估框的置信度向您告知“正确”边界框预测(完全类似于信息检索的情况)和以下方面的典型描述之间进行区分:地图将是有道理的。
值得注意的是,Precision / Recall曲线下的Area与平均precision相同,并且我们实际上是使用梯形或右手定则来近似该面积以近似积分。