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用到了极致实现了精度和速度的双重跨越。”

相关新闻

C++ STL map与multimap:红黑树实现、核心操作与实战场景详解

C++ STL map与multimap:红黑树实现、核心操作与实战场景详解

1. 项目概述:从“字典”到“关联数组”的思维跃迁在C的世界里,处理数据对(Key-Value Pair)的需求无处不在。想象一下,你要写一个学生成绩管理系统,需要根据学号快速查到对应的姓名和分数;或者你…

2026/7/22 15:18:46 阅读更多 →
2026 三亚实体转型新思路,AI+GEO 数字化适配本地文旅业态

2026 三亚实体转型新思路,AI+GEO 数字化适配本地文旅业态

在数字化浪潮席卷全球的当下,实体行业纷纷寻求转型之道。对于三亚而言,如何利用先进技术适配本地独特的文旅业态,实现实体转型的新突破,成为了亟待解决的重要课题。其中,AI与GEO的融合为三亚实体转型带来了新思路。 一…

2026/7/22 15:18:46 阅读更多 →
Runway背景替换精准度提升92%的底层逻辑(Alpha通道校准与光照一致性算法深度拆解)

Runway背景替换精准度提升92%的底层逻辑(Alpha通道校准与光照一致性算法深度拆解)

更多请点击: https://intelliparadigm.com 第一章:Runway背景替换精准度提升92%的技术突破概览 Runway近期发布的Gen-3模型在视频背景替换任务中实现了质的飞跃——基于大规模多模态对齐数据集与自适应掩码优化机制,整体像素级IoU&#xff0…

2026/7/22 15:17:45 阅读更多 →

最新新闻

2026年天水电动机回收:揭秘厂家推荐背后的秘密

2026年天水电动机回收:揭秘厂家推荐背后的秘密

2026年天水电动机回收:揭秘厂家推荐背后的秘密大家好,我是你们的老朋友[博主昵称],今天我要和大家聊聊电动机回收这个话题。我们都知道,随着工业生产的不断发展,电动机作为工业设备的重要组成部分,其更新换…

2026/7/22 16:02:23 阅读更多 →
为什么选择钉钉消息防撤回补丁?对比其他防撤回工具的5大优势

为什么选择钉钉消息防撤回补丁?对比其他防撤回工具的5大优势

为什么选择钉钉消息防撤回补丁?对比其他防撤回工具的5大优势 【免费下载链接】DingTalkRevokeMsgPatcher 钉钉消息防撤回补丁PC版(原名:钉钉电脑版防撤回插件,也叫:钉钉防撤回补丁、钉钉消息防撤回补丁)由“…

2026/7/22 16:02:23 阅读更多 →
RabbitMQ Exporter高级功能:BERT编码与no_sort特性提升监控效率

RabbitMQ Exporter高级功能:BERT编码与no_sort特性提升监控效率

RabbitMQ Exporter高级功能:BERT编码与no_sort特性提升监控效率 【免费下载链接】rabbitmq_exporter Prometheus exporter for RabbitMQ 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq_exporter RabbitMQ Exporter是一款针对RabbitMQ的Prometheus监…

2026/7/22 16:02:23 阅读更多 →
spring事务管理以及事务的四大特性

spring事务管理以及事务的四大特性

一般放置在多次操作数据库上。

2026/7/22 16:02:23 阅读更多 →
机试技巧与STL实战:CS-BAOYAN高分学长的ACM模板分享

机试技巧与STL实战:CS-BAOYAN高分学长的ACM模板分享

机试技巧与STL实战:CS-BAOYAN高分学长的ACM模板分享 【免费下载链接】CS-BAOYAN 计算机保研交流群(QQ群号:605176069) 项目地址: https://gitcode.com/gh_mirrors/cs/CS-BAOYAN 计算机保研机试是提升竞争力的关键环节&…

2026/7/22 16:02:23 阅读更多 →
终极ComfyUI视频生成插件:LTXVideo完整使用指南与技巧

终极ComfyUI视频生成插件:LTXVideo完整使用指南与技巧

终极ComfyUI视频生成插件:LTXVideo完整使用指南与技巧 【免费下载链接】ComfyUI-LTXVideo LTX-Video Support for ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-LTXVideo 你是否想过用AI一键生成专业级视频内容?ComfyUI-LT…

2026/7/22 16:01:23 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻