我正在尝试实现 YOLO 神经网络的自定义版本。最初,它在论文You Only Look Once: Unified, Real-Time Object Detection (2016) 中进行了描述。我在理解他们使用的损失函数时遇到了一些问题。
基本信息:
输入图像分为网格(这给出了总细胞),每个细胞预测边界框和条件类概率。每个边界框预测价值观:(边界框的中心、宽度和高度以及置信度得分)。这使得 YOLO 的输出张量。
这坐标是相对于单元格的边界计算的,并且是相对于整个图像的。
我知道第一项会惩罚对边界框中心的错误预测;第二项惩罚错误的宽度和高度预测;第三项错误的置信度预测;第 4 个负责在单元格中没有物体时将置信度推至零;最后一项惩罚错误的类别预测。
我的问题:
不明白什么时候应该或者. 在论文中,他们写道(第2.2 节。培训):
表示单元格中的第一个边界框预测器对那个预测“负责”。
他们也写
请注意,损失函数仅在该网格单元中存在对象时才惩罚分类错误(因此前面讨论了条件类概率)。如果该预测器对地面实况框“负责”,它也只会惩罚边界框坐标误差
那么,对于图像中的每个对象,是否应该恰好有一对这样?
如果这是正确的,这意味着地面实况边界框的中心应该落入细胞,对吧?
如果不是这种情况,当,以及什么基本事实标签和应该在这些情况下?
另外,我假设基本事实应该如果有一个类的对象在细胞中,但是什么基本事实如果单元格中有多个不同类的对象,应该等于?