YOLOv5全面解析教程③:更快更好的边界框回归损失
作者|Fengwen、BBuf
边界框回归是目标检测的关键步骤,在现有方法中,虽然
最近,已经提出了 IoU 损失和 generalized IoU (GIoU) Loss 作为评估 IoU 的指标 ,但仍然存在收敛速度慢和回归不准确的问题。在本文中,我们通过结合预测框和目标框之间的归一化距离来提出距离 -IoU (DIoU) Loss,它在训练中的收敛速度比 IoU 和 GIoU Loss 快得多。
单阶段-检测,如YOLO系列 (Redmon et al. 2016; Red- mon and Farhadi 2017; 2018) 和SSD (Liu et al. 2016; Fu et al. 2017), 两阶段检测,如 R-CNN系列检测 (Girshick et al. 2014; Girshick 2015; Ren et al. 2015; He et al. 2017), 甚至是多阶段的检测, 像Cascade R-CNN (Cai and Vasconcelos 2018). 尽管存在这些不 同的检测框架,但边界框回归预测一个矩形框来定位目标对象仍然是其中关键步骤。
代码仓库地址:
https://github.com/Oneflow-Inc/one-yolov5
1
前言
IoU
IoU介绍
是真实回归框(gt:ground-truth), 是预测回归框。
IoU loss
IoU Loss 优缺点分析
GIoU
GIoU介绍
GIoU loss
GIoU 优缺点分析
IoU & GIoU 分析
(补充说明: 为什么要进行模型实验?因为仅仅从检测结果来分析边界框回归的过程很难,因为在不受控制的基准中的回归情况往往不全面比如:不同的距离(distances),不同的尺度(scales)和不同的长宽比(aspect ratios)。相反,进行模拟实验,在实验中综合考虑回归情况,然后就可以很容易地分析给定损失函数的问题。)
模拟实验
1. 距离: 在以半径为 3 的(10,10)为中心的圆形区域内,均匀选择5000个点, 放置7个尺度、7个长宽比的锚框。在这些情况下,重叠和不重叠的方框都被包括。
然后通过给定损失函数
其中
IoU 和 GIoU 损失的限制
从图4(a)中很容易看出,IoU损失只适用于与目标框重叠的情况。由于∇B总是0,没有重叠的锚框将不会移动。通过添加一个惩罚项见公式(3),
GIoU 损失能够更好地缓解非重叠案例的问题,如图所示4(b), 但GIoU的损失显著扩大了盆地,即GIoU的工作面积。但是,在水平方向和垂直方向的情况下,仍然很可能有很大的误差。这是因为GIoU损失中的惩罚项是用来最小化|C−A∪B|,但是C−A∪B的面积通常很小或为0(当两个盒子有包含关系时),然后GIoU几乎退化为IoU损失。只要以适当地学习速率运行足够的迭代GIoU 损失能收敛到很好的解决方案,但收敛速度却是非常慢。从几何上来说,从如图1所示的回归步骤来看,GIoU实际上增大了预测的框大小,用来和目标框重叠,然后IoU项用于预测框与目标框匹配,产生非常缓慢的收敛。
DIoU & CIoU
第一,是否可以直接最小化预测框和目标框之间的归一化距离,以实现更快的收敛? 第二,当与目标框有重叠甚至包含时,如何使回归更准确、更快?
DIoU loss
DIoU 和 IoU/GIoU 损失比较
DIoU损失对回归问题的尺度仍然是不变的
与GIoU损失类似, DIoU损失可以在与目标框不重叠时为边界框提供移动方向。
当两个边界框完美匹配时,
当两个框都很远时,
如图1和图3所示,DIoU损失可以直接最小化两个框的距离, 因此收敛速度比GIoU损失要快得多。 对于两个框是包含关系的情况(图2),或在水平和垂直方向的情况(图6)下,DIoU损失可以回归非常快,而GIoU损失几乎退化为IoU损失,即
Complete IoU Loss
接着我们回答了第二个问题,提出了边界框回归的良好损失应该要考虑三个重要的几何因素,即重叠面积、中心点距离和长宽比。通过统一坐标IoU损失考虑了重叠区域,而GIoU损失严重依赖于IoU损失。我们提出的DIoU损失旨在同时考虑边界框的重叠面积和中心点距离。然而,边界框的长宽比的一致性也是一个重要的几何因素。因此,基于DIoU损失,通过添加长宽比的一致性来提出CIoU损失:
NMS(Non-Maximum Suppression)
2
介绍
IoU-Net (Jiang et al. 2018) 提出了一个新的网络分支来预测定位置信度来指导NMS。最近,自适应NMS(Liu,Huang,和Wang 2019)和 Softer-NMS(He et al. 2019)被提出分别研究适当的阈值策略和加权平均策略。在本工作中,简单将DIoU作为原始NMS的标准,在抑制冗余框时,同时考虑边界框的重叠面积和两个中心点之间的距离。
DioU-NMS
3
小结
参考文章
https://github.com/Zzh-tju/DIoU/blob/master/README.md#introduction
https://github.com/Zzh-tju/DIoU/blob/master/README.md#introduction
IoU: https://arxiv.org/pdf/1608.01471.pdf
GIoU: https://giou.stanford.edu/GIoU.pdf
DIoU: https://arxiv.org/pdf/1911.08287.pdf
OneFlow v0.9.0正式发布 Sam Altman的成功学|升维指南 李白:你的模型权重很不错,可惜被我没收了 比快更快,开源Stable Diffusion刷新作图速度 OneEmbedding:单卡训练TB级推荐模型不是梦 GLM训练加速:性能最高提升3倍,显存节省1/3 “零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍