一、整体定位与核心优势
YOLOv4 是一款兼顾速度与精度的目标检测模型,核心优势是单 GPU 即可完成高效训练,同时继承了 YOLO 系列的技术精髓,实验工作量充足且性能领先。
1. 性能表现
从对比图可见,YOLOv4 在 FPS(帧率,反映推理速度)和精度(纵轴指标)平衡上优于 YOLOv3、EfficientDet(D0-D4)、ASFF 等模型,能满足实时检测需求。
2. 三大核心贡献
亲民训练:无需多 GPU,单 GPU 即可训练出高性能模型,降低设备门槛。
双维度优化:从数据层面 (数据增强)和网络设计层面(结构改进)双管齐下提升性能。
充分消融实验:覆盖多数关键改进点的验证实验,确保每个模块的有效性。
二、核心优化策略一:Bag of Freebies(BOF)
定义:仅增加训练阶段成本,不影响推理速度,却能显著提升模型精度的方法,核心围绕数据增强、正则化、损失函数优化展开。
1. 数据增强(提升泛化能力)
增强方法 | 核心逻辑 |
---|---|
Mosaic 拼接 | 参考 CutMix,将 4 张图像拼接成 1 张进行训练,扩大训练数据多样性 |
Random Erase | 用随机值或训练集平均像素值,替换图像中的随机区域 |
Hide and Seek | 按概率随机隐藏图像中的部分补丁(小块区域) |
传统增强 | 调整亮度、对比度、色调,以及随机缩放、剪切、翻转、旋转 |
CutMix/Mixup | 对比实验显示,CutMix 在 ImageNet 分类(78.6%)、Pascal VOC 检测(76.7% mAP)上效果优于 Mixup 和 Cutout |
2. 网络正则化(缓解过拟合)
DropBlock:区别于 Dropout 随机遮挡 "点",DropBlock 遮挡 "区域",更贴合目标检测中 "目标是区域化存在" 的特点,避免随机点遮挡失效。
Label Smoothing:缓解模型过拟合("过度自信"),将硬标签(如 [0,1])软化,例如转换为 [0.05, 0.95],使模型预测更稳健,最终实现 "簇内更紧密、簇间更分离" 的特征分布。
3. 损失函数优化(解决 IOU 缺陷)
YOLOv4 针对传统 IOU 损失的不足,迭代出多代损失函数:
传统 IOU 损失问题:无相交时 IOU=0,梯度无法计算;相同 IOU 值无法区分预测框与真实框的实际位置差异。
GIOU 损失:引入 "最小封闭框 C"(能同时包含预测框 A 和真实框 B),通过计算 C 与 A∪B 的占比,解决无相交时梯度消失问题。
DIOU 损失 :进一步优化,直接计算预测框与真实框的中心点欧式距离 d,并结合最小封闭框对角线长度 c,让预测框更快向真实框靠拢。
CIOU 损失:在 DIOU 基础上,增加 "长宽比" 因素,同时考虑 "重叠面积、中心点距离、长宽比" 三个几何维度,更贴合目标检测的定位需求。
4. Self-adversarial-training(SAT)
通过向图像引入噪音点,人为增加训练 "难度",迫使模型学习更鲁棒的特征,提升抗干扰能力。
三、核心优化策略二:Bag of Specials(BOS)
定义:略微增加推理阶段成本,但能显著提升模型精度的方法,核心围绕网络结构改进、注意力机制展开(前 14 页重点内容如下)。
1. 特征处理结构
SPPNet(空间金字塔池化):解决 YOLOv3 训练时需固定输入大小的问题,通过多尺度最大池化,将不同尺寸的输入特征图统一为固定尺寸,适配后续网络。
CSPNet(Cross Stage Partial Network):将每个 block 的特征图按 channel 拆分为两部分,一部分正常通过网络层(如 ResBlock),另一部分直接拼接(concat)到该 block 的输出,减少计算量的同时保留关键特征。
2. 注意力机制
SAM(空间注意力机制):聚焦图像中 "对检测有用的空间区域",通过 MaxPool、AvgPool 提炼通道特征后,生成空间注意力权重,增强关键区域特征。
CBAM(卷积块注意力机制):结合 "通道注意力" 和 "空间注意力",先筛选重要通道,再聚焦重要空间区域,是 CV 领域常用的注意力模块,YOLOv4 也借鉴了其核心思路。
四、其他关键改进
- NMS 优化 :
- DIOU-NMS:替代传统 NMS,不仅考虑 IoU 值,还加入 "中心点距离",避免误删相邻目标。
- Soft-NMS:不直接剔除 IoU 超阈值的框,而是降低其置信度,更 "柔和" 地筛选目标,减少漏检。
- 消除网格敏感性:坐标回归预测值原本在 0-1 之间,在网格边界处难以表示,通过在激活函数前加 "大于 1 的系数",缓解边界定位难题。