目标检测主要完成“what”和“where”任务,即识别一张图像的哪些位置有哪些目标,通常的模型损失包含两部分:分类损失(classification loss)和回归损失(bounding box regression loss)。其中分类损失函数完成分类任务,常用交叉熵作为loss,在图像分类任务中已经达到了较好的效果,目标检测领域在构建损失模型时更多的关注于回归损失,即解决“where”的问题。
回归损失之一:smooth L1 loss
论文地址:Fast R-CNN
设为GT的坐标位置, 为预测坐标,定义bounding box loss:
smooth L1 loss的优点:
- 由于L1loss的导数等于±1,训练后期学习率较小,损失函数更新迟缓,容易在局部波动,难以收敛到更高精度。L2损失训练初期的导数较大,可能会出现梯度爆炸,训练不稳定,smoothL1避免了L2损失的不稳定性,一定程度上缓解了L1损失后期梯度不变的问题;
smooth L1 loss的不足:
- 对bounding box的评价指标为IoU,二者并不等价,优化IoU更直接有效。
回归损失之二:IoU loss
论文地址:UnitBox: An Advanced Object Detection Network
IoU loss的优点:
- 三组框具有相同的L1/L2 Loss,但IoU 同样差异很大说明L1,L2这些Loss用于回归任务时,不能等价于最后用于评测检测的IoU,直接计算IoU loss更加有效
IoU loss的不足:
- 当预测框和目标框不相交时,IoU(A,B)=0时,不能反映A,B距离的远近,此时损失函数不可导,IoU Loss 无法优化两个框不相交的情况
- 假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其IoU值是相同时,IoU值不能反映两个框是如何相交的
回归损失之三:GIoU loss
论文地址:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression
GIoU loss的优点:
- 具有尺度不变性
GIoU loss的不足:
- 当目标框完全包裹预测框的时候,IoU和GIoU的值都一样,此时GIoU退化为IoU, 无法区分其相对位置关系
回归损失之四:DIoU loss / CIoU loss
论文地址:Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression
DIoU/CIoU loss的优点:
- 具有尺度不变性
- DIoU Loss可以直接优化2个框直接的距离,比GIoU Loss收敛速度更快
- CIoU的惩罚项是在DIoU的惩罚项基础上加了一个影响因子,这个因子把预测框长宽比拟合目标框的长宽比考虑进去
总结:IoU loss对比: