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 系列模型的发展奠定了基础。

相关推荐
敲敲了个代码19 小时前
11月3-5年Web前端开发面试需要达到的强度
前端·vue.js·学习·react.js·面试·职场和发展·web
提娜米苏19 小时前
Bash Shell脚本学习——唇读数据集格式修复脚本
开发语言·学习·bash
青衫码上行20 小时前
【Java Web学习 | 第十篇】JavaScript(4) 对象
java·开发语言·前端·javascript·学习
淮北49421 小时前
linux系统学习(10.shell基础)
linux·运维·服务器·学习
zhangfeng113321 小时前
学习文本大模型的学习路径,各种大模型对比和分类以及各个大模型对硬件的要求,开源大模型有哪些
学习·分类·开源
青衫码上行21 小时前
【Java Web学习 | 第九篇】JavaScript(3) 数组+函数
java·开发语言·前端·javascript·学习
峥嵘life1 天前
Android16 更新fastboot版本解决fastbootd模式识别不到设备问题
android·学习
HalvmånEver1 天前
Linux:基础开发工具(一)
linux·运维·服务器·开发语言·学习·进阶学习
d111111111d1 天前
STM32外设学习-串口数据包笔记-(数据包的了解)
笔记·stm32·单片机·嵌入式硬件·学习
AndrewHZ1 天前
【图像处理基石】什么是光流法?
图像处理·算法·计算机视觉·目标跟踪·cv·光流法·行为识别