代码之家  ›  专栏  ›  技术社区  ›  lllllllllllll

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

  •  0
  • lllllllllllll  · 技术社区  · 6 年前

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

        <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)如何计算这种情况下的“损失”。这是一种严格的比较吗?例如,如果对象“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>
    

    那么我会相信我的物体探测器出了什么问题?或者他们容忍一些小的三角形,这样如果边界框有一个小的漂移,那么它是可以接受的。但如果“标签”完全错了,那肯定是错的?

    这对我来说就像是一个“黑匣子”,如果有人能为这件事提供一些线索,那就太好了。非常感谢。

    0 回复  |  直到 6 年前
        1
  •  1
  •   danyfang    6 年前

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

    1) 上述信息包含检测到的对象类以及边界框。它们都是计算地图所必需的。 Here 这是一个关于地图如何计算的好博客。地图计算中的一个关键概念叫做 联合路口(IoU) ,它指定检测到的边界框与groundtruth框重叠的程度。通常,检测到的边界框应至少具有高于阈值(例如0.5)的IoU,才能算作正确定位对象。根据IoU阈值,检测框可以标记为“真阳性”、“TN”、“FP”和“FN”,以便计算进一步的准确度指标。

    2) 丢失目标检测任务由两部分组成。分类损失和包围盒回归损失,总损失通常是这两者的加权和。(因此,他们可以调整为关注边界框回归或分类)

    关于您给出的示例,检测结果正确地对对象进行了分类,但边界框并不完全准确,在这种情况下,分类损失为0,而边界框回归损失为0。因此,模型在某种程度上知道预测结果仍然不完美,需要进一步学习才能给出更好的预测。如果标签错误,只会导致分类丢失。

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