在YOLO中,什么时候是1o b j我j= 11ijobj=1,以及什么是真实标签X一世xi和是的一世yi?

人工智能 深度学习 卷积神经网络 文件 物体识别 约洛
2021-10-21 08:17:33

我正在尝试实现 YOLO 神经网络的自定义版本。最初,它在论文You Only Look Once: Unified, Real-Time Object Detection (2016) 中进行了描述。我在理解他们使用的损失函数时遇到了一些问题。

基本信息:

  • 输入图像分为S×S网格(这给出了总S2细胞),每个细胞预测B边界框和c条件类概率。每个边界框预测5价值观:x,y,w,h,C(边界框的中心、宽度和高度以及置信度得分)。这使得 YOLO 的输出S×S×(5Bc)张量。

  • (x,y)坐标是相对于单元格的边界计算的,并且(w,h)是相对于整个图像的。

  • 我知道第一项会惩罚对边界框中心的错误预测;第二项惩罚错误的宽度和高度预测;第三项错误的置信度预测;第 4 个负责在单元格中没有物体时将置信度推至零;最后一项惩罚错误的类别预测。

我的问题:

不明白什么时候1ijobj应该1或者0. 在论文中,他们写道(第2.2 节。培训):

1ijobj表示j单元格中的第一个边界框预测器i对那个预测“负责”。

他们也写

请注意,损失函数仅在该网格单元中存在对象时才惩罚分类错误(因此前面讨论了条件类概率)。如果该预测器对地面实况框“负​​责”,它也只会惩罚边界框坐标误差

  • 那么,对于图像中的每个对象,是否应该恰好有一对ij这样1ijobj=1?

    • 如果这是正确的,这意味着地面实况边界框的中心应该落入i细胞,对吧?

    • 如果不是这种情况,当1ijobj=1,以及什么基本事实标签xiyi应该在这些情况下?

  • 另外,我假设基本事实pi(c)应该1如果有一个类的对象c在细胞中i,但是什么基本事实pi(c)如果单元格中有多个不同类的对象,应该等于?

YOlO 损失函数

1个回答

正确的解释(基于以下问题作者的评论):

是的,你是对的。实际上,每个对象只有一个单元格会导致损失1ijobj因素。该单元被识别为包含相应对象的地面实况框的中心(oid)的单元。

我对论文的原始(不正确)解释:

从我在论文中读到的内容来看,对于特定对象的网格中 所有单元格(您的原始建议),它并不是一个单一的边界框。

相反,对于每个对象和分配给该对象的每个单元格,只有一个边界框会导致损失。网络产生B网格中每个单元格的边界框,但我们只选择一个并且仅当该单元格实际上属于一个对象时。

每一个细胞i,它不是背景单元格,将只有一个框j, 这样1一世j对象=1

这是基于论文中的以下段落:

请注意,损失函数仅在该网格单元中存在对象时才惩罚分类错误(因此前面讨论了条件类概率)。如果该预测器对地面实况框“负​​责”(即具有该网格单元中任何预测器的最高 IOU),它也只会惩罚边界框坐标错误