YOLOv4 学习总结

一、YOLOv4 核心定位与优势

YOLOv4 是一款兼顾速度与精度的目标检测模型,核心优势在于 "亲民性" 和 "全面性"。

  1. 硬件门槛低,仅需单 GPU 即可完成训练,降低了实验与应用成本。
  2. 改进维度全,从数据增强、损失函数到网络结构,覆盖目标检测全流程优化点。
  3. 性能表现优,在精度上超越 YOLOv3、ASFF 等模型,同时保持实时检测(real-time)能力,从 PPT 中的 FPS 与精度对比图可见其在 V100 显卡上的高效表现。

二、两大核心改进体系

YOLOv4 的改进围绕 "Bag of freebies(BOF)" 和 "Bag of specials(BOS)" 两大体系展开,前者不影响推理速度,后者以轻微推理代价换精度提升。

(一)Bag of freebies(BOF):无推理代价的精度提升

该体系仅增加训练成本,通过优化数据和损失函数提升模型泛化能力。

  1. 数据增强技术
    • Mosaic:将 4 张图像拼接成 1 张训练,扩大训练数据多样性,参考 CutMix 但提升数据利用率。
    • 其他增强:包括 Random Erase(随机替换图像区域像素)、Hide and Seek(随机隐藏图像补丁)、Self-adversarial-training(SAT,引入噪音增加训练难度),以及亮度、对比度、缩放、翻转等常规调整。
  2. 网络正则化方法
    • DropBlock:区别于 Dropout 随机丢弃 "点",DropBlock 直接丢弃 "区域",避免模型依赖局部特征,减少过拟合。
    • Label Smoothing:缓解模型过拟合,将绝对标签(如 [0,1])调整为柔和标签(如 [0.05,0.95]),降低模型 "过度自信"。
  3. 损失函数优化
    • 针对传统 IOU 损失 "无相交时无法计算梯度""相同 IOU 无法反映位置差异" 的问题,依次引入 GIOU、DIOU、CIOU 损失:
      • GIOU:引入 "最小封闭形状 C",解决无相交时梯度消失问题。
      • DIOU:优化 GIOU,直接计算预测框与真实框中心点距离,加速收敛。
      • CIOU:兼顾 "重叠面积、中心点距离、长宽比" 三个几何因素,进一步提升定位精度。
  4. 后处理优化
    • DIOU-NMS:在传统 NMS 基础上,结合中心点距离判断是否删除候选框,避免误删重叠但位置合理的框。
    • Soft-NMS:不直接剔除低置信度框,而是降低其分数,保留更多潜在目标框。

(二)Bag of specials(BOS):低推理代价的结构优化

该体系通过改进网络结构和引入注意力机制,提升特征提取能力,仅增加少量推理成本。

  1. 特征提取优化
    • SPPNet(空间金字塔池化):通过多尺度最大池化,让不同输入尺寸的特征图最终输出维度一致,无需在训练时调整输入大小。
    • CSPNet(跨阶段部分网络):将每个 block 的特征图按通道拆分,一部分走网络计算,另一部分直接拼接至 block 输出,减少计算量的同时保留特征完整性。
  2. 注意力机制引入
    • SAM(空间注意力模块):聚焦图像关键空间区域,通过 MaxPool、AvgPool 提炼空间特征,结构简单且速度快。
    • CBAM(卷积块注意力模块):结合 "通道注意力" 和 "空间注意力",先筛选重要通道特征,再聚焦关键空间位置,提升特征利用率。
  3. 特征融合升级
    • PAN(路径聚合网络):改进 FPN "自顶向下" 的单一特征传递模式,增加 "自底向上" 路径,让底层细节特征更容易传递到顶层,且在 YOLOv4 中采用 "拼接(concatenation)" 而非 "加法" 融合特征,保留更多信息。
  4. 激活函数与坐标回归优化
    • Mish 激活函数:替代 ReLU,公式为\(f(\alpha)=\alpha \cdot \tanh(\ln(1+e^\alpha))\),避免 ReLU 的 "硬截断" 问题,更贴合实际数据分布,虽增加少量计算量,但精度提升明显。
    • 缓解网格敏感性:在坐标回归激活函数前加入大于 1 的系数,解决 "目标在 grid 边界时,需极大预测值才能覆盖" 的问题,提升边界目标定位精度。

三、总结

YOLOv4 的核心逻辑是 "集成式优化"------ 将数据增强、正则化、损失函数、注意力机制、特征融合等领域的优秀技术整合,同时兼顾 "单 GPU 训练" 的亲民性,最终实现 "速度与精度" 的平衡。其改进思路围绕 "降低成本、提升泛化、优化特征" 展开,为后续目标检测模型提供了清晰的优化方向。

相关推荐
FriendshipT3 小时前
目标检测:使用自己的数据集微调DEIMv2进行物体检测
人工智能·pytorch·python·目标检测·计算机视觉
海森大数据3 小时前
三步破局:一致性轨迹强化学习开启扩散语言模型“又快又好”推理新时代
人工智能·语言模型·自然语言处理
Tencent_TCB3 小时前
云开发CloudBase AI+实战:快速搭建AI小程序全流程指南
人工智能·ai·小程序·ai编程·云开发
Sunhen_Qiletian3 小时前
基于OpenCV与Python的身份证号码识别案例详解
人工智能·opencv·计算机视觉
AustinCyy3 小时前
【论文笔记】Introduction to Explainable AI
论文阅读·人工智能
岁月宁静4 小时前
在富文本编辑器中封装实用的 AI 写作助手功能
前端·vue.js·人工智能
末世灯光4 小时前
时间序列入门第一问:它和普通数据有什么不一样?(附 3 类典型案例)
人工智能·python·机器学习·时序数据
Yann-企业信息化4 小时前
AI 开发工具对比:Dify 与 Coze Studio(开源版)差异对比
人工智能·开源
2401_836900334 小时前
YOLOv4:集大成的目标检测王者
人工智能·yolov4