YOLOv4 知识点总结
一、整体介绍
- 核心定位:YOLOv4 聚焦目标检测的最优速度与精度(Optimal Speed and Accuracy of Object Detection),虽作者变更,但延续了 YOLO 系列的核心设计思路。
- 性能表现:从对比图可见,YOLOv4 在 FPS(速度,基于 V100 显卡)和精度指标上,优于 YOLOv3、EfficientDet(部分版本)、ASFF 等模型,兼顾实时性与检测效果。
二、YOLOv4 的核心贡献
- 亲民训练方案:支持单 GPU 高效训练,无需依赖多 GPU 集群,降低了设备门槛,后续多数小模块设计均围绕 “单 GPU 适配” 展开。
- 两大核心改进方向:从数据层面(提升数据质量与多样性)和网络设计层面(优化特征提取与利用)双管齐下,系统性提升模型性能。
- 全面消融实验:覆盖了多数可行的改进方向,验证了各模块的有效性,实验工作量大且完整,所有实验均基于单 GPU 完成。
三、Bag of Freebies(BOF,免费午餐策略)
定义:仅增加训练阶段的计算成本,不影响推理速度,却能显著提升模型精度的方法。
1. 数据增强技术
- 基础增强手段:调整图像的亮度、对比度、色调,以及随机缩放、剪切、翻转、旋转,扩大训练数据多样性。
- Mosaic 数据增强:参考 CutMix 思路,将4 张图像拼接为 1 张进行训练,提升模型对多场景、多目标的适应能力。
- Random Erase:用随机像素值或训练集的平均像素值,替换图像中的随机区域,增强模型对局部遮挡的鲁棒性。
- Hide and Seek:按一定概率随机隐藏图像中的部分补丁(patch),迫使模型关注更全面的特征,而非依赖局部信息。
- Self-adversarial-training(SAT,自对抗训练):通过向图像中引入噪音点,增加训练 “难度”,提升模型对干扰信息的抗干扰能力。
2. 网络正则化方法
- DropBlock:改进传统 Dropout(随机丢弃单个像素点),改为丢弃图像中的连续区域,避免模型过度依赖局部像素,缓解过拟合。
- Label Smoothing(标签平滑):针对神经网络易 “过度自信”(过拟合)的问题,软化标签值。例如原标签(0,1)会调整为(0.05, 0.95),最终效果是让特征簇内更紧密、簇间更分离。
3. 损失函数优化(解决 IOU 损失缺陷)
- 传统 IOU 损失的问题:当预测框与真实框无相交时,IOU=0,导致无法计算梯度;且相同 IOU 值无法反映框的实际位置差异(如距离、形状)。
- GIOU 损失:引入 “能包裹预测框与真实框的最小封闭形状 C”,公式为
LGIoU = 1 - IOU + (|C - B∪B_gt| / |C|)
,解决了 “无相交时梯度消失” 的问题,推动预测框向真实框靠近。 - DIOU 损失:在 IOU 基础上,直接优化预测框与真实框的中心点欧式距离 d,分母为最小封闭形状 C 的对角线长度,公式为
LDIoU = 1 - IOU + (d² / c²)
,收敛速度更快,且解决了 GIOU 的部分局限。 - CIOU 损失:进一步考虑长宽比一致性,需同时优化 “重叠面积、中心点距离、长宽比” 三个几何因素,公式中引入权重参数 α,更贴合目标检测的实际需求。