Yolo系列之Yolov4的改进及网络框架

Yolov4的网络框架及改进对比

1 YOLOv4

1.1 概念

YOLOv4(You Only Look Once version 4)是2020年推出的先进目标检测系统由Alexey Bochkovskiy团队开发,在YOLOv3的基础上进行了多项优化,兼顾速度与精度,适用于自动驾驶、安防监控、工业检测等实时场景。

1.2 核心特点

  • CSPDarknet53主干网络降低计算量,Mish激活增强非线性。
  • SPP+PANet实现多尺度特征融合,提升小目标检测能力。
  • Mosaic+CIoU+DIoU-NMS优化训练过程,兼顾速度与精度。
  • 模块化设计为后续研究(如YOLOv5/v7)奠定基础。

1.3 优缺点

  • 优点

    • 实时性与高精度平衡:在Tesla V100上达到65 FPS的实时速度,同时COCO AP提升至43.5%(YOLOv3为33%),显著优于同期模型(如Faster R-CNN仅7 FPS)。

    • 高效的训练策略
      单卡训练友好:优化后的数据增强(Mosaic)和正则化(DropBlock)允许在1080Ti/2080Ti等消费级GPU上高效训练。
      收敛速度快:采用CIoU Loss和CmBN技术,训练周期比YOLOv3缩短约20%。

    • 创新的网络结构
      CSPDarknet53主干:通过CSP结构减少30%计算量,Mish激活函数提升特征表达能力。
      多尺度特征融合SPP+PANet组合增强了对不同尺寸目标(尤其是小物体)的检测能力。

    • 鲁棒性强:Mosaic数据增强模拟复杂场景,DIoU-NMS解决密集目标误检问题,适合实际应用(如交通监控中的车辆重叠)。

    • 模块化设计:解耦的Backbone-Neck-Head结构便于定制化(如替换主干为ResNet或EfficientNet)。

  • 缺点

    • 计算资源需求较高:相比轻量级模型(如YOLOv4-tiny),完整版YOLOv4需较高算力,边缘设备(如树莓派)需量化或剪枝才能部署。
    • 小目标检测仍有局限:尽管SPP+PANet改善了小目标检测,但在极端密集小目标场景(如无人机航拍的人群)仍可能漏检。
    • 训练调参复杂:需精细调节超参数(如Anchor尺寸、学习率),Mosaic增强可能引入噪声,对新手不友好。
    • 硬件兼容性问题:官方实现基于Darknet框架,工业部署时需转换为TensorRT或ONNX,可能遇到算子不支持问题。

2 Bag of Freebies (BoF)


2.1 概念

Bag of freebies 指的是那些不增加模型复杂度,也不增加推理的计算量,通过改进模型和数据的预处理,来提高模型的准确度只增加训练成本,但是能显著提高精度,并不影响推理速度
包括:

  • 数据增强:调整亮度、对比度、色调、随机缩放、剪切、翻转、旋转
  • 网络正则化:Dropout、Dropblock
  • 类别不平衡损失函数设计等

2.2 数据增强

  • CutMix增强
    随机裁剪部分图像并替换为另一张图的片段

在这里插入图片描述

  • Mosaic 数据增强
    4 张训练图像 随机缩放、裁剪、拼接成一张大图进行训练。
    在这里插入图片描述

  • Random Erase:用随机值或训练集的平均像素值替换图像的区域

  • Hide and Seek:根据概率设置随机隐藏一些补丁,通过模拟遮挡场景来提高模型的泛化能力
    在这里插入图片描述

  • SAT(Self-Adversarial Training SAT)
    通过引入添加噪声点,使其更难检测,增强模型对噪声的适应能力

在这里插入图片描述

2.3 网络正则化

  • DropBlock
    DropBlock是谷歌在2018年提出的一种用于卷积神经网络(CNN)的正则化方法。这是一种用于解决过拟合问题的技术,在训练神经网络时非常有用,类似 Dropout,但丢弃的是连续区域(block)非单个神经元
    DropBlock不是随机屏蔽掉一部分特征(注意是对特征图进行屏蔽),而是随机屏蔽掉多个部分连续的区域。这种方法有助于减少神经网络中的冗余连接,从而提高模型的泛化能力
    在这里插入图片描述

2.4 Label Smoothing标签平滑

将分类标签从硬标签(如 [0, 1])改为软标签(如 [0.05, 0.95])
在这里插入图片描述

2.5 损失函数改进

  • IoU:
    在这里插入图片描述
    没有相交则IOU=0无法梯度计算,相同的IOU却反映不出实际情况
    在这里插入图片描述

  • GIoU
    不重叠情况下能让预测框尽可能朝着真实框前进
    在这里插入图片描述
    无法解决包含情况
    在这里插入图片描述

  • DIoU
    直接优化距离,速度更快
    在这里插入图片描述
    可以解决GIOU问题
    在这里插入图片描述

  • CIoU
    损失函数必须考虑三个几何因素:重叠面积,中心点距离,长宽比,其中α可以当做权重参数
    在这里插入图片描述

3 Bag of Specials (BoS)


3.1概念

是指那些略微增加计算复杂度但能显著提升检测性能的技术模块,yolov4在网络细节部分加入了很多改进,引入了各种能让特征提取更好的方法如注意力机制,网络细节设计,特征金字塔等。

3.2 非极大值抑制的改进

NMS用于过滤掉冗余的检测框并保留最准确的框。在目标检测中,算法会输出多个检测框,但有些框可能是冗余的,这时候就需要进行后处理。如果一个物体在另一个物体重叠区域出现,即当两个目标框接近时,分数更低的框就会因为与之重叠面积过大而被删掉,从而导致对该物体的检测失败并降低了算法的平均检测
在这里插入图片描述

DIOU-NMS和原始的NMS不同,DIoU-NMS不仅考虑了IoU的值,还考虑了两个Box中心点之间的距离,使用了新的公式决定一个Box是否被删除核心思想:若两个框中心点距离较远,即使IoU较高,也不轻易抑制(更适合密集场景)
在这里插入图片描述
将当前检测框得分乘以一个权重函数,该函数会衰减与最高得分检测框M有重叠的相邻检测框的分数越是与M框高度重叠的检测框,其得分衰减越严重,为此选择高斯函数为权重函数,从而修改其删除检测框的规则(δ通常取0.3)。

3.3 网络框架改进

3.3.1 SPP Net网络

何凯明提出的一种网络结构,可以不用考虑图像大小输出图像固定长度并且在图像变形情况下表现稳定。这种方法在速度上比R-CNN快24-102倍,并且在不同的数据集上面得到验证。
SPP Net在最后一个卷积层后,接入了金字塔池化层保证传到下一层全连接层的输入固定。普通的CNN结构中加入了ROI池化层(ROI Pooling)可以使得网络的输入图像可以是任意尺寸的,输出则不变,同样是一个固定维数的向量。
在这里插入图片描述

3.3.2 CSPNet

作者Chien-Yao Wang于2019年提出的一种新的网络结构,它可以增强CNN的学习能力,并且在轻量化的同时保持准确性

  • 每一个block按照特征图的channel维度拆分为2部分
  • 一份正常执行残差网络另一份直接concat到block的输出
    在这里插入图片描述
  • CSPNet主要是为了解决三个问题:增强CNN的学习能力;降低内存成本;以及减少计算瓶颈
    它通过将梯度的变化从头到尾地集成到特征图中,从而减少了计算量的同时保证了准确率。在特征金字塔生成过程中采用跨通道池来压缩特征映射,可以减少内存使用。同时,CSPNet方法可以减少模型计算量和提高运行速度,还能和多种网络结构结合在一起。
3.3.3 注意力机制
  • CBAM(Convolutional Block Attention Module)是一种针对深度神经网络的注意力机制模块用于提高模型在分类、检测和分割等任务中的表现。它结合了通道注意力和空间注意力,几乎可以嵌入任何CNN网络中,在稍微增加一点计算量和参数量的情况下,可以大大增强模型性能
    在这里插入图片描述

  • yolov4中用的是SAM,也就是空间的注意力机制,增强关键特征提取能力
    在这里插入图片描述

3.3.4 PAN

FPN通过横向连接和自上而下(top-down)的模型来进一步增强特征信息,提高目标检测的性能。 PAN改进 FPN增加自底向上的路径聚合,优化小目标检测性能
在这里插入图片描述

3.3.5 Mish激活函数

替代传统的 ReLU,Mish 激活函数在深层网络中表现更好,能缓解梯度消失问题,提升模型精度
在这里插入图片描述
没有一棒子打死,对极负舍弃,计算量增加但效率提高
在这里插入图片描述

3.3.6 网格改进

原网格无法取中心点位于边缘的部分
在这里插入图片描述
取不到0,1
在这里插入图片描述
为了缓解这种情况可以在激活函数前加上一个系数(大于1的)使其可以位于边缘
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a3c5b8f1dcfe40d99caac75b215caddd.png

4 整体网络框架

YOLOv4 采用模块化设计,分为 Backbone(主干网络)Neck(特征融合层) 和 Head(检测头) 三部分

  • Backbone(主干网络):CSPDarknet53
    • CSP结构:将输入特征图拆分为两部分,一部分直接传递,另一部分经过密集卷积块(Dense Block)处理,最后合并。
    • Mish激活函数
    • DropBlock:类似Dropout,但丢弃连续区域的特征块(而非随机像素),更适合卷积网络。
  • Neck(特征融合层):SPP多尺度池化 + PANetTop-down路径、Bottom-up路径
  • Head(检测头):沿用YOLOv3的锚框(Anchor)和多尺度预测,使用CIoU Loss和DIoU-NMS
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值