Yolo系列算法学习笔记——YOLOv4 知识点梳理与总结

发布时间:2026/7/22 15:18:39
Yolo系列算法学习笔记——YOLOv4 知识点梳理与总结 回到目录[算法学习笔记系列索引]目录一、核心思想博采众长的优化集成YOLOv3 的局限 → YOLOv4 的改进方向改进过程演化二、网络架构CSPDarknet53 SPP PANet️ BackboneCSPDarknet53什么是CSP结构Darknet-53 → CSPDarknet53 的演进 NeckSPP PANet核心升级1. SPP模块空间金字塔池化2. PANet路径聚合网络三、损失函数CIoU Loss核心改进CIoU的数学公式为什么CIoU比MSE/IoU更好四、训练策略Bag of Freebies免费午餐1. Mosaic数据增强核心创新2. CutMix数据增强3. DropBlock正则化4. 自对抗训练SAT5. CmBNCross-iteration Batch Normalization6. 其他优化五、YOLOv3 vs. YOLOv4 全面对比六、总结一、核心思想博采众长的优化集成YOLOv4的核心理念是“集大成者”——它没有提出颠覆性的理论而是系统性地筛选并整合了当时计算机视觉领域大量被验证有效的“tricks”精准解决了YOLOv3的痛点实现了精度AP提升10%速度FPS提升12%的跨越式进步。YOLOv3 的局限 → YOLOv4 的改进方向YOLOv3的局限YOLOv4的改进Darknet-53特征提取能力有提升空间引入CSPDarknet53更强更高效仅用FPN单向融合浅层细节传递衰减引入SPP PANet多尺度感受野双向融合边界框损失函数不够精确MSE/IoU采用CIoU Loss考虑中心距和长宽比训练策略和数据增强相对传统引入Mosaic、CutMix、DropBlock、CmBN等改进过程演化%%{init: { theme: base, themeVariables: { fontSize: 16px }, flowchart: { useMaxWidth: false, padding: 6, nodeSpacing: 35, rankSpacing: 35 } }}%% graph TD A[YOLOv3 的局限] -- B[主干网络不够强] A -- C[单尺度FPN融合不足] A -- D[损失函数不够精确] A -- E[训练策略传统] B -- F[引入 CSPDarknet53] C -- G[引入 SPP PANet] D -- H[引入 CIoU Loss] E -- I[引入 Mosaic、CutMix、DropBlock、CmBN] F -- J[YOLOv4] G -- J H -- J I -- J J -- K[精度 AP ↑ 10%] J -- L[速度 FPS ↑ 12%]二、网络架构CSPDarknet53 SPP PANetYOLOv4的整体架构可以清晰地分为三个部分Backbone主干网络→ Neck特征融合→ Head检测头。️ BackboneCSPDarknet53CSPDarknet53是YOLOv4的主干网络它是在Darknet53的基础上引入了CSPCross Stage Partial结构。什么是CSP结构CSP结构本质上是一种网络设计范式通过“拆分-处理-合并”三步走在降低计算量的同时保持精度。以一个CSP残差块为例输入尺寸 112×112×128步骤操作张量尺寸变化说明1. 拆分Split沿通道维度一分为二128 → 64 64分支1进入残差块分支2直接跳过2. 分支1处理1×1降维(64→32) → 3×3卷积(32) → 1×1升维(32→64) → Add残差(112,112,64)只有一半数据经过昂贵计算3. 分支2跳过不做任何计算(112,112,64)原始特征直接保留4. 合并Concat通道维度拼接64 64 128输出尺寸不变但计算量降低约20%CSP的价值计算量降低只有一半通道进入残差块FLOPs降低约20%梯度流更丰富拼接操作为梯度提供了额外“高速公路”缓解梯度消失特征重用保留DenseNet“特征重用”的优点同时截断冗余梯度信息Darknet-53 → CSPDarknet53 的演进对比维度Darknet-53 (YOLOv3)CSPDarknet53 (YOLOv4)残差块结构标准瓶颈1×1→3×3→1×1残差CSP瓶颈拆分→半通道处理→拼接计算量基准降低约20%特征提取能力强更强梯度流优化参数量基准略有减少 NeckSPP PANet核心升级YOLOv4的Neck部分是对YOLOv3的FPN的重大升级引入了SPP模块和PANet结构。1. SPP模块空间金字塔池化目标在不改变空间尺寸的前提下极大扩展感受野融合多尺度特征。计算过程以输入 19×19×1024 为例# 输入特征图 x: (B, 1024, 19, 19) # 四个并行的最大池化层步长1填充自动匹配 pool1 MaxPool2d(kernel1, stride1, padding0) # → (B,1024,19,19) pool2 MaxPool2d(kernel5, stride1, padding2) # → (B,1024,19,19) pool3 MaxPool2d(kernel9, stride1, padding4) # → (B,1024,19,19) pool4 MaxPool2d(kernel13, stride1, padding6) # → (B,1024,19,19) # 通道维度拼接 out torch.cat([pool1(x), pool2(x), pool3(x), pool4(x)], dim1) # → (B, 4096, 19, 19) # 通道数翻4倍关键数学原理保持空间尺寸不变池化输出尺寸公式输出 (输入 2×Padding - Kernel) / Stride 1当Stride1Padding (K-1)/2时K1, Pad0 → 输出 (190-1)/11 19 ✅K5, Pad2 → 输出 (194-5)/11 19 ✅K9, Pad4 → 输出 (198-9)/11 19 ✅K13, Pad6 → 输出 (1912-13)/11 19 ✅物理效果每一个输出点都融合了 1×1原始、5×5局部、9×9区域、13×13几乎全局四个尺度的“最强响应”感受野大幅扩展。2. PANet路径聚合网络目标在FPN自顶向下的基础上增加自底向上的路径让浅层的位置信息也能高效传递到深层。YOLOv3的FPN单向13×13 (深层语义) ──上采样──→ 26×26 ──上采样──→ 52×52 (浅层细节)→ 语义信息从上往下传但位置信息无法从下往上传递YOLOv4的PANet双向自顶向下语义传递 13×13 ──上采样→ 26×26 ──上采样→ 52×52 自底向上位置传递 52×52 ──下采样→ 26×26 ──下采样→ 13×13→ 两条路径融合形成信息闭环语义和位置充分交融注YOLOv4在PANet中融合方式采用拼接Concat而非原始PANet论文的相加以保留更完整的特征信息。三、损失函数CIoU Loss核心改进YOLOv4采用CIoU LossComplete IoU Loss替代了YOLOv3的MSE/IoU Loss从三个几何维度全面评估预测框与真实框的相似度。CIoU的数学公式\text{CIoU} \text{IoU} - \frac{\rho^2(b, b^{gt})}{c^2} - \alpha \cdot v符号含义物理意义\text{IoU}交并比衡量重叠面积\frac{\rho^2(b, b^{gt})}{c^2}中心点距离/对角线长度²衡量中心点距离\alpha \cdot v权重 × 长宽比一致性衡量长宽比差异其中v \frac{4}{\pi^2} \left( \arctan\frac{w^{gt}}{h^{gt}} - \arctan\frac{w}{h} \right)^2长宽比惩罚项\alpha \frac{v}{(1 - \text{IoU}) v}权衡权重CIoU Loss 1 - CIoU为什么CIoU比MSE/IoU更好损失函数考虑重叠面积考虑中心距离考虑长宽比问题MSE (V3)❌ 间接❌❌坐标独立回归缺乏整体性IoU Loss✅❌❌两框无重叠时梯度为0GIoU Loss✅❌❌无法区分中心对齐差异DIoU Loss✅✅❌长宽比不一致时仍有偏差CIoU Loss (V4)✅✅✅全面评估最精准四、训练策略Bag of Freebies免费午餐YOLOv4引入了一系列强大的训练策略在不增加推理成本的前提下大幅提升精度。1. Mosaic数据增强核心创新操作将4张图片随机缩放、裁剪、排布后拼接成1张新图片效果极大丰富小目标训练样本减少对大Batch Size的依赖4张拼1张 等效Batch Size翻4倍让模型同时学习不同尺度和背景2. CutMix数据增强操作将一张图片的部分区域裁剪掉用另一张图片的对应区域填充效果提升模型鲁棒性防止过拟合比MixUp更有效3. DropBlock正则化操作连续丢弃特征图上的矩形区域而非Dropout的随机点效果迫使网络学习更鲁棒的特征防止过拟合4. 自对抗训练SAT操作对图像添加微小扰动生成对抗样本效果增强模型对干扰的抵抗能力5. CmBNCross-iteration Batch Normalization操作在多个迭代之间统计BN信息效果小Batch Size训练时保持稳定6. 其他优化Mish激活函数替代Leaky ReLU提供更平滑的非线性标签平滑防止过拟合提升泛化能力五、YOLOv3 vs. YOLOv4 全面对比模块YOLOv3YOLOv4改进效果主干网络Darknet-53CSPDarknet53计算量↓20%特征提取↑Neck结构FPNSPP PANet感受野↑特征融合↑激活函数Leaky ReLUMish精度↑损失函数MSE / IoU LossCIoU Loss定位精度↑↑数据增强基础方法Mosaic, CutMix泛化能力↑↑正则化DropoutDropBlock防过拟合↑BN策略标准BNCmBN小Batch训练稳定↑六、总结“YOLOv4的本质是在YOLOv3的基础上做了全方位的‘精准补强’①主干网络用CSP结构对Darknet53进行改造在降低计算量的同时增强了梯度流②Neck结构用SPP扩大感受野用PANet打通双向信息通道让多尺度特征融合更充分③损失函数用CIoU取代MSE同时考虑重叠面积、中心距离和长宽比定位更精准④训练策略引入Mosaic、CutMix、DropBlock等一系列‘免费午餐’在不增加推理成本的前提下大幅提升泛化能力。YOLOv4没有发明新的理论但它把当时所有被验证有效的tricks用到了极致实现了精度和速度的双重跨越。”