04 March 2023
Paper: Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
目标检测中常用的边框回归损失函数有以下几种:
Smooth L1 Loss 是 Faster R-CNN 中使用的IOU损失函数,它通过平滑L1范数来减少偏差,使训练更加稳定。当预测框与真实框之间的距离小于 1 时,损失函数采用二次函数,否则采用 L1 范数函数。其计算公式为:
IOU Loss 是一种基于IOU(Intersection over Union)的损失函数,它计算预测框和真实框的IOU值,然后使用 1 减去 IOU 值作为损失值。其计算公式为:
IOU Loss的优点是简单明了,容易实现,而且对于小目标具有良好的表现。但是,IOU Loss 对于大目标的性能较差,因为它只考虑了重叠区域的面积,没有考虑距离和长宽比等因素,会出现检测框非重叠造成的梯度消失问题。
GIoU Loss 是一种基于 GIoU(Generalized Intersection over Union)的损失函数,它不仅考虑了预测框和真实框的重叠部分,还考虑了它们之间的距离和相交面积的比率。其计算公式为:
虽然 GIOU 可以解决检测框非重叠造成的梯度消失问题,但是当真实框和预测框不重叠时,GIoU 无法准确惩罚预测框,从而影响模型拟合。
具体来说,当真实框和预测框不重叠时,GIoU 会将预测框的中心点设置为真实框的中心点,将它们之间的距离作为惩罚项,但这种做法存在问题,因为此时预测框不应该被视为正确的预测。这样一来,即使预测框与真实框之间的距离很大,GIoU仍然会将它们视为有效的预测,导致误差增加。
如下图第一行为 使用GIOU 损失函数训练,模型输出的预测;而第二行为 DIOU。
DIoU Loss 是一种基于 DIoU(Distance Intersection over Union)的损失函数,它在GIoU 的基础上加入了预测框和真实框中心点距离的惩罚项,使得预测框更加接近真实框。其计算公式为:
CIoU Loss是一种基于 CIoU(Complete Intersection over Union)的损失函数,它在DIoU的基础上加入了预测框和真实框长宽比的惩罚项,使得预测框更加接近真实框的比例。其计算公式为:
长宽比惩罚项 $v$的计算公式为:
$r$ 的计算公式为: