首先定义一个“重叠标准”,即交集比大于0.5。 (例如,如果预测框相对于地面实况框满足此标准,则视为检测)。然后使用这种“贪婪”方法在GT框和预测框之间进行匹配:
由方法输出的检测结果被分配给以置信度输出为排序条件的满足重叠标准的实况对象。 在图像中同一对象的多个检测结果被认为是误检,例如,单个对象的5个检测结果计为1次正确检测和4次误检
因此,每个预测框要么是真阳性,要么是假阳性。 每个实况框都是真阳性。 没有真阴性。
然后通过对精确率-召回率曲线上精确率值进行平均来计算平均精度,其中召回率在范围内[0、0.1、…,1] (例如,11个精度值的平均值)。 更精确地说,我们考虑了一个稍作修正的PR曲线,在该曲线点(p,r)处,如果存在不同的曲线点(p',r')使得p' > p且r' > = r,则将p替换为这些点中最大的p'。
对我来说仍然不清楚的是,对于那些从未检测到的GT框会发生什么情况(即使置信度为0)。 这意味着某些召回值永远无法到达精确率-召回率曲线,这使得上述平均精度计算未定义。
编辑:
简短回答:在召回率无法到达的区域,精确率下降至0。
解释这个问题的一种方式是假设当置信度阈值接近0时,无限数量的预测边界框在图像上随处点亮。此时,精确度立即降为0(因为只有有限数量的GT边界框),而召回率在这条平坦曲线上不断增长,直到达到100%。
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)取平均值(求平均)即可。定义:mAP → 平均精度均值。
在大多数目标检测比赛中,有许多需要检测的类别。每次评估模型时,都是针对特定类别进行评估,其结果为该类别的AP。
当所有类别都被评估后,将所有AP的平均值计算出来作为模型的最终结果,即mAP。