YOLOv4简单基础学习

一、YOLOv4 整体概况

YOLOv4 在目标检测领域兼顾速度与精度,核心优势是支持单 GPU 训练,降低了设备门槛。其核心改进思路围绕两大层面展开,分别是数据层面的优化和网络设计层面的升级,同时通过全面的消融实验验证了各模块效果。

从性能表现来看,在 FPS(帧率)与精度的权衡上,YOLOv4 表现出色。例如在 V100 显卡上,其精度优于 YOLOv3、ASFF 等模型,同时能保持较好的实时检测能力(real-time),在同类目标检测模型中处于领先梯队。

二、核心改进:Bag of Freebies(BOF)

BOF 类方法仅增加训练成本,不影响推理速度,却能显著提升模型精度,主要涵盖数据增强、网络正则化和损失函数优化三大方向。

(一)数据增强

  1. 基础增强手段:通过调整图像亮度、对比度、色调,以及随机缩放、剪切、翻转、旋转等操作,扩大训练数据的多样性。
  2. Mosaic 数据增强:参考 CutMix 思路,将 4 张图像拼接成 1 张进行训练,丰富了图像背景和目标分布,提升模型对复杂场景的适应能力。
  3. 其他增强方式
    • Random Erase:用随机值或训练集平均像素值替换图像的部分区域。
    • Hide and Seek:按概率随机隐藏图像中的一些补丁,迫使模型关注更多关键特征。
    • Self-adversarial-training(SAT):通过引入噪音点增加训练难度,提升模型的鲁棒性。

(二)网络正则化

  1. DropBlock:区别于传统 Dropout 随机丢弃单个点,DropBlock 会丢弃图像中的一个区域,能更有效地防止模型过拟合,保留特征的空间关联性。
  2. Label Smoothing:缓解模型过拟合问题。例如将原本(0,1)的标签调整为(0.05, 0.95),避免模型对预测结果过度自信,使类别簇内更紧密、簇间更分离。

(三)损失函数优化

YOLOv4 针对传统 IOU 损失的缺陷,逐步优化损失函数,具体演进如下:

损失函数 核心改进 解决的问题
IOU 损失 以预测框与真实框的交并比为核心计算损失 无相交时 IOU=0,无法进行梯度计算;相同 IOU 值无法反映预测框与真实框的实际位置差异
GIOU 损失 引入能包含预测框与真实框的最小封闭形状 C 在预测框与真实框无重叠时,仍能引导预测框向真实框移动
DIOU 损失 计算预测框与真实框中心点的欧式距离 d,并结合最小封闭形状对角线长度 c 直接优化中心点距离,加快收敛速度,解决 GIOU 在某些场景下优化效果不佳的问题
CIOU 损失 同时考虑重叠面积、中心点距离和长宽比三个几何因素 进一步提升边界框回归精度,更贴合目标检测的实际需求

此外,在目标框筛选阶段,YOLOv4 还改进了 NMS(非极大值抑制):

  • DIOU-NMS:不仅考虑 IOU 值,还结合两个框中心点的距离,能更合理地剔除冗余框。
  • Soft-NMS:不直接剔除低置信度框,而是降低其置信分数,避免误删重叠的目标框,更 "柔和" 地筛选目标。

三、核心改进:Bag of Specials(BOS)

BOS 类方法会增加少量推断代价,但能显著提升模型精度,主要聚焦于网络结构的细节优化,包括特征提取、注意力机制和特征融合等方向。

(一)特征提取优化

  1. SPPNet(Spatial Pyramid Pooling):通过多尺度最大池化,使不同输入大小的图像能输出一致的特征,无需在训练时调整输入数据大小,提升模型适应性。
  2. CSPNet(Cross Stage Partial Network):将每个 block 的特征图按 channel 维度拆分为两部分,一部分正常通过网络,另一部分直接拼接至 block 输出,减少计算量的同时保留关键特征。

(二)注意力机制

  1. SAM(Spatial Attention Module):空间注意力机制,通过对特征图的通道进行最大池化和平均池化,聚焦图像中的关键空间区域,提升目标区域的特征权重。
  2. CBAM(Convolutional Block Attention Module):结合通道注意力和空间注意力,先对通道维度筛选重要特征,再对空间维度聚焦关键区域,进一步增强有效特征的表达。
  3. YOLOv4 专属空间注意力模块:简化了传统注意力机制的结构,在保证精度提升的同时,降低计算复杂度,加快推理速度。

(三)特征融合优化

PAN(Path Aggregation Network):在 FPN(自顶向下特征融合)的基础上,增加自底向上的路径,使底层细节特征更容易传递到顶层,同时通过拼接(而非加法)的方式融合特征,保留更丰富的特征信息,提升小目标检测能力。

(四)激活函数与坐标回归优化

  1. Mish 激活函数:公式为\(f(\alpha)=\alpha \cdot \tanh(\ln(1+e^\alpha))\),相比 ReLU 更符合实际数据分布,能提升模型效果,但会增加少量计算量。
  2. 消除网格敏感性:在坐标回归预测值的激活函数前添加一个大于 1 的系数,解决目标处于 grid 边界时,需要极大数值才能表示边界的问题,提升坐标回归精度。

四、学习总结

YOLOv4 的核心价值在于 "集大成" 与 "实用性":它整合了近年来目标检测领域的诸多优秀技术,同时通过单 GPU 训练的设计降低了使用门槛。其改进逻辑清晰,从数据层面提升模型泛化能力,从网络层面优化特征提取与融合,最终实现了速度与精度的平衡,成为目标检测领域的经典模型之一,也为后续 YOLO 系列模型的发展奠定了基础。

相关推荐
找了一圈尾巴1 小时前
LLM-as-a-Judge-论文学习(中)
学习·模型评估
Ttang231 小时前
【AI学习1】了解开源大模型
人工智能·学习·开源
望忆1 小时前
关于《Contrastive Learning for Cold-Start Recommendation》的学习
学习
知识分享小能手2 小时前
CentOS Stream 9入门学习教程,从入门到精通, Linux文本编辑器 —— 语法详解与实战案例(5)
linux·学习·centos
van久2 小时前
.Net Core 学习:Razor Pages -- 依赖注入
学习·.netcore
YangYang9YangYan2 小时前
2026年中专计算机专业证书报考指南:高性价比认证与职业路径规划
大数据·人工智能·学习·计算机视觉
严文文-Chris3 小时前
【半监督学习常见算法】
学习·算法·机器学习
Coding茶水间3 小时前
基于深度学习的35种鸟类检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
深蓝海拓3 小时前
YOLO v11的学习记录(八) 使用自定义数据从头训练一个目标检测的模型
学习·yolo
篮球只打两年半3 小时前
普罗米修斯监控系统学习实践报告
学习