一、YOLOv4 整体定位
1. 核心背景与设计思路
YOLOv4 虽更换了作者,但始终延续 YOLO 系列"单阶段检测 + 回归思想"的核心框架。其核心设计思路是吸收当时主流目标检测框架的优势,实现模型速度与检测精度的极致平衡。
2. 性能表现
从性能对比来看,在实时检测(FPS>30)场景下,YOLOv4 的 AP(检测精度)远超同期的 YOLOv3、EfficientDet 等模型,真正实现了"又快又准"的检测效果。
二、YOLOv4 核心优化:Bag of Freebies(BOF)
BOF(免费训练优化)的核心定义的是:不增加模型复杂度、不提升推理计算量,仅通过训练阶段的优化(如数据预处理、损失函数改进等)提升检测精度,即"仅增加训练成本,不影响推理速度"。
1. 数据增强:从基础到进阶
(1)基础数据增强
包含亮度、对比度、色调调整,以及随机缩放、剪切、翻转、旋转等操作,是 CNN 模型训练中的常规数据增强手段,用于丰富训练样本多样性。
(2)Mosaic 马赛克增强
灵感源自 CutMix 方法,具体做法是将 4 张不同图像拼接成 1 张训练图像。其核心优势的是:大幅丰富小目标出现的场景,提升模型对小目标的鲁棒性;同时单张图像包含更多语义信息,有效降低模型对大 batch size 的依赖。
(3)Random Erase 与 Hide and Seek
Random Erase:用随机值或训练集平均像素值替换图像局部区域,强制模型学习全局特征,而非过度依赖局部纹理信息。
Hide and Seek:按一定概率随机隐藏图像中的局部补丁,与 Random Erase 原理相近,可进一步提升模型的抗干扰能力,避免过拟合。
(4)SAT(Self-adversarial-training 对抗训练)
核心原理是在训练过程中为图像引入微小噪声,人为增加训练难度,让模型在对抗干扰的过程中学习。最终可提升模型对噪声、光照变化的鲁棒性,有效防止模型过拟合。
2. 网络正则化:DropBlock
DropBlock 是谷歌 2018 年提出的 CNN 专用正则化方法,核心目的是解决模型过拟合问题,其效果优于传统 Dropout,具体对比如下:
传统 Dropout:随机屏蔽独立的特征点,在 CNN 中效果有限------相邻特征点仍可传递信息,无法彻底避免冗余特征的影响。
DropBlock:随机屏蔽连续的特征区域,强制模型学习更鲁棒的全局特征,减少特征冗余连接,正则化效果更显著。
3. 标签平滑(Label Smoothing)
核心目的:防止模型对预测结果"过度自信",从而避免过拟合。
核心原理:将"硬标签"(如 [0,1])软化为"软标签",例如设置平滑系数为 0.1 时,标签可调整为 [0.05, 0.95]。
实际效果:降低模型对错误标签的敏感度,提升模型的泛化能力,让模型在未见过的测试样本上表现更稳定。
4. 损失函数的演进:从 IoU 到 CIoU
(1)基础 IoU 损失
计算方式:IoU(交并比)= 预测框与真实框的交集面积 / 并集面积,损失值常用 1 - IoU 表示。
存在缺陷:当预测框与真实框无交集时,IoU 值为 0,无法计算梯度,导致模型无法正常学习;同时,相同 IoU 值无法区分框的实际位置关系(如一个框在真实框左上角、一个在右下角,IoU 相同但回归难度差异较大)。
(2)GIoU 损失(Generalized IoU)
公式:,其中 C 是包含预测框(A)和真实框(B)的最小封闭形状。
核心改进:解决了 IoU 损失在预测框与真实框无交集时无法计算梯度的问题,能引导预测框向真实框方向靠近。
仍有缺陷:当两个框存在包含关系(如预测框完全在真实框内部)时,GIoU 会退化为 IoU,无法区分两者的位置差异,影响回归精度。
(3)DIoU 损失(Distance IoU)
公式:
参数说明:分子是预测框与真实框中心点的欧式距离的平方;分母是覆盖两个框的最小矩形对角线长度的平方。
核心改进:直接优化预测框与真实框的中心点距离,彻底解决了 GIoU 在包含关系下的退化问题,同时加快了模型的收敛速度。
(4)CIoU 损失(Complete IoU)
公式:
参数说明:,用于衡量预测框与真实框的长宽比差异;
是权重参数,用于平衡各项损失。
核心改进:同时考虑了重叠面积(IoU)、中心点距离、长宽比三个几何因素,回归精度更优,是 YOLOv4 最终采用的损失函数。
三、后处理优化:NMS 的改进
NMS(非极大值抑制)是目标检测后处理的核心步骤,用于过滤冗余预测框,YOLOv4 对传统 NMS 进行了两项关键改进:
1. DIoU-NMS
传统 NMS 仅根据 IoU 值过滤冗余框,容易误删重叠的相邻目标(如密集场景中的目标)。
DIoU-NMS 改进点:同时考虑 IoU 值和中心点距离,公式为:
实际效果:对密集目标检测更友好,有效减少相邻目标的误删,提升检测准确率。
2. Soft-NMS
核心思想:摒弃传统 NMS"直接删除重叠框"的方式,采用"置信度衰减"策略,即按重叠程度降低冗余框的置信度,而非直接置零。
公式:
实际效果:有效解决传统 NMS 中相邻目标被误删的问题,显著提升密集场景下的目标检测率。
四、网络结构优化:Bag of Specials(BOS)
BOS(轻量推理优化)的定义是:少量增加模型推理代价,但能显著提升检测精度的优化方法,YOLOv4 引入了多项此类改进,核心如下:
1. SPP-Net(空间金字塔池化)
核心作用:解决 CNN 模型固定输入尺寸的限制,通过金字塔池化层将不同尺寸的特征图转化为固定长度的特征向量。
核心优势:无需固定输入图像尺寸,可处理任意大小的图像;同时能扩大模型感受野,提升对多尺度目标的检测鲁棒性。
2. CSPNet(跨阶段局部网络)
核心思想:将输入特征图按通道(channel)拆分为两部分,一部分通过残差网络进行特征提取,另一部分直接拼接(concat)到输出端,实现特征的高效传递。
解决的核心问题:增强 CNN 模型的特征学习能力;降低内存占用和计算瓶颈;在实现模型轻量化的同时,保持检测精度,是 YOLOv4 主干网络 CSPDarknet53 的核心组成部分。
3. 注意力机制:CBAM 与 SAM
CBAM(卷积块注意力模块):结合通道注意力和空间注意力,可灵活嵌入任何 CNN 网络,能自适应强化关键特征、抑制无用特征。
SAM(空间注意力模块):YOLOv4 实际采用的注意力模块,聚焦于空间维度,能精准强化图像中的关键区域(如目标区域),提升特征提取的针对性。
4. PAN(路径聚合网络)
背景:传统 FPN(特征金字塔网络)仅通过自顶向下的路径传递高层特征,底层细节特征(对小目标检测至关重要)的传递效率较低。
核心改进:引入自底向上的捷径路径,让底层细节特征能够快速传递到顶层特征图中,实现高低层特征的高效融合。
核心优势:大幅提升底层细节信息的利用率,对小目标检测性能的提升尤为显著。
五、YOLOv4 完整优化总结
| 优化类别 | 具体方法 | 核心效果 |
|---|---|---|
| BOF(免费训练优化) | Mosaic增强、Random Erase、DropBlock、标签平滑、CIoU损失 | 不影响推理速度,显著提升检测精度,降低过拟合风险 |
| BOS(轻量推理优化) | CSPDarknet53、SPP、PAN、SAM注意力、DIoU-NMS、Soft-NMS | 少量增加推理代价,大幅提升模型检测性能,优化多尺度、密集目标检测效果 |