一、YOLOv4 核心定位与优势
YOLOv4 是一款兼顾速度与精度的目标检测模型,核心优势在于 "亲民性" 和 "全面性"。
- 硬件门槛低,仅需单 GPU 即可完成训练,降低了实验与应用成本。
- 改进维度全,从数据增强、损失函数到网络结构,覆盖目标检测全流程优化点。
- 性能表现优,在精度上超越 YOLOv3、ASFF 等模型,同时保持实时检测(real-time)能力,从 PPT 中的 FPS 与精度对比图可见其在 V100 显卡上的高效表现。
二、两大核心改进体系
YOLOv4 的改进围绕 "Bag of freebies(BOF)" 和 "Bag of specials(BOS)" 两大体系展开,前者不影响推理速度,后者以轻微推理代价换精度提升。
(一)Bag of freebies(BOF):无推理代价的精度提升
该体系仅增加训练成本,通过优化数据和损失函数提升模型泛化能力。
- 数据增强技术
- Mosaic:将 4 张图像拼接成 1 张训练,扩大训练数据多样性,参考 CutMix 但提升数据利用率。
- 其他增强:包括 Random Erase(随机替换图像区域像素)、Hide and Seek(随机隐藏图像补丁)、Self-adversarial-training(SAT,引入噪音增加训练难度),以及亮度、对比度、缩放、翻转等常规调整。
- 网络正则化方法
- DropBlock:区别于 Dropout 随机丢弃 "点",DropBlock 直接丢弃 "区域",避免模型依赖局部特征,减少过拟合。
- Label Smoothing:缓解模型过拟合,将绝对标签(如 [0,1])调整为柔和标签(如 [0.05,0.95]),降低模型 "过度自信"。
- 损失函数优化
- 针对传统 IOU 损失 "无相交时无法计算梯度""相同 IOU 无法反映位置差异" 的问题,依次引入 GIOU、DIOU、CIOU 损失:
- GIOU:引入 "最小封闭形状 C",解决无相交时梯度消失问题。
- DIOU:优化 GIOU,直接计算预测框与真实框中心点距离,加速收敛。
- CIOU:兼顾 "重叠面积、中心点距离、长宽比" 三个几何因素,进一步提升定位精度。
- 针对传统 IOU 损失 "无相交时无法计算梯度""相同 IOU 无法反映位置差异" 的问题,依次引入 GIOU、DIOU、CIOU 损失:
- 后处理优化
- DIOU-NMS:在传统 NMS 基础上,结合中心点距离判断是否删除候选框,避免误删重叠但位置合理的框。
- Soft-NMS:不直接剔除低置信度框,而是降低其分数,保留更多潜在目标框。
(二)Bag of specials(BOS):低推理代价的结构优化
该体系通过改进网络结构和引入注意力机制,提升特征提取能力,仅增加少量推理成本。
- 特征提取优化
- SPPNet(空间金字塔池化):通过多尺度最大池化,让不同输入尺寸的特征图最终输出维度一致,无需在训练时调整输入大小。
- CSPNet(跨阶段部分网络):将每个 block 的特征图按通道拆分,一部分走网络计算,另一部分直接拼接至 block 输出,减少计算量的同时保留特征完整性。
- 注意力机制引入
- SAM(空间注意力模块):聚焦图像关键空间区域,通过 MaxPool、AvgPool 提炼空间特征,结构简单且速度快。
- CBAM(卷积块注意力模块):结合 "通道注意力" 和 "空间注意力",先筛选重要通道特征,再聚焦关键空间位置,提升特征利用率。
- 特征融合升级
- PAN(路径聚合网络):改进 FPN "自顶向下" 的单一特征传递模式,增加 "自底向上" 路径,让底层细节特征更容易传递到顶层,且在 YOLOv4 中采用 "拼接(concatenation)" 而非 "加法" 融合特征,保留更多信息。
- 激活函数与坐标回归优化
- Mish 激活函数:替代 ReLU,公式为\(f(\alpha)=\alpha \cdot \tanh(\ln(1+e^\alpha))\),避免 ReLU 的 "硬截断" 问题,更贴合实际数据分布,虽增加少量计算量,但精度提升明显。
- 缓解网格敏感性:在坐标回归激活函数前加入大于 1 的系数,解决 "目标在 grid 边界时,需极大预测值才能覆盖" 的问题,提升边界目标定位精度。
三、总结
YOLOv4 的核心逻辑是 "集成式优化"------ 将数据增强、正则化、损失函数、注意力机制、特征融合等领域的优秀技术整合,同时兼顾 "单 GPU 训练" 的亲民性,最终实现 "速度与精度" 的平衡。其改进思路围绕 "降低成本、提升泛化、优化特征" 展开,为后续目标检测模型提供了清晰的优化方向。