从什么方面来衡量物体检测器的性能?

From what aspect to measure the performance of an object detector?

我正在忙着测量物体检测器的预测结果。我从一些教程中了解到,在测试经过训练的对象检测器时,对于测试图像中的每个对象,都会提供以下信息:

    <object>
    <name>date</name>
    <pose>Unspecified</pose>
    <truncated>0</truncated>
    <difficult>0</difficult>
    <bndbox>
        <xmin>451</xmin>
        <ymin>182</ymin>
        <xmax>695</xmax>
        <ymax>359</ymax>
    </bndbox>
</object>

但是,我仍然不清楚 1) 对象检测器如何获取这些信息来测量准确性,以及 2) 在这种情况下如何计算 "loss"。是不是有点像严格比较?例如,如果对于对象 "date",我得到以下输出:

    <object>
    <name>date</name>
    <pose>Unspecified</pose>
    <truncated>0</truncated>
    <difficult>0</difficult>
    <bndbox>
        <xmin>461</xmin>  <---- different
        <ymin>182</ymin>
        <xmax>695</xmax>
        <ymax>359</ymax>
    </bndbox>
</object>

那我会认为我的物体检测器做错了吗?或者他们容忍一些小的增量,这样如果边界框有一个小的漂移,那么它是可以接受的。但是如果 "label" 是完全错误的,那肯定是错误的?

这对我来说就像 "blackbox",如果有人能对此有所启发,那就太好了。谢谢。

用于对象检测任务。通常的性能指标是 平均平均精度 (mAP).

1) 以上信息包含检测到的对象class 以及边界框。它们都是计算 mAP 所必需的。 Here 是一篇关于如何计算 mAP 的不错的博客。 mAP 计算中的一个关键概念称为 Intersection Over Union (IoU),它指定检测到的边界框与真实框重叠的程度。通常,检测到的边界框至少应具有高于阈值(例如 0.5)的 IoU,才能被视为正确定位对象。基于 IoU 阈值,可以将检测框标记为 'True positive'、'TN'、'FP' 和 'FN',以便可以计算进一步的精度指标。

2) 目标检测任务中的损失由两部分组成。 class化的损失和边界框回归的损失,总损失通常是这两者的加权和。 (因此他们可以调整以专注于边界框回归或 class化)

关于你给出的例子,检测结果已经正确class确定了对象,但是边界框并不完全准确,在这种情况下,classification loss为0,而边界框框回归损失不是。所以模型知道预测结果仍然不完美,必须进一步学习才能给出更好的预测。万一标签错了,只有classification loss。

实际loss的计算也和IoU有关。将为模型预定义一个 IoU,以选择将选择哪些预测边界框参与损失计算。这是必需的,因为通常很多预测框会围绕同一个对象堆叠在一起,因此最好选择其中一个或几个而不是全部。