人工智能|大白话YOLOv3,YOLOv4
欢迎来到人工智能的世界博客主页卿云阁欢迎关注点赞收藏⭐️留言首发时间2026年4月24日✉️希望可以和大家一起完成进阶之路作者水平很有限如果发现错误请留言轰炸哦万分感谢目录YOLOv3骨干网络颈部网络检测头部YOLOv4CSPDarknet-53YOLOv3YOLOv3 的网络结构可分为三部分骨干网络Darknet-53、颈部网络FPN 特征金字塔、检测头部多尺度输出整体呈“全卷积 残差连接 多尺度融合”设计无池化层、无全连接层灵活适配任意 32 倍数的输入尺寸默认 416×416。骨干网络输入图像首先经过基础CBL 模块进行初步特征提取。CBL 由卷积层、批量归一化层与激活函数组合构成是骨干网络的基础运算单元。完成初始卷积后特征依次送入后续五组残差模块。每组残差模块内部先通过补零操作保证特征尺寸不变再串联一层 CBL 模块之后堆叠若干残差单元。残差单元的结构设计与 ResNet 保持一致依靠短路连接缓解深层网络的梯度消失问题。五组残差模块内残差单元的堆叠数量依次为 1、2、8、8、4。整体依靠多层残差结构逐层提取浅层细节特征与深层语义特征完成多尺度特征的高效编码。更直观一些Darknet‑53 全卷积 5 次下采样 16 个残差块 共 53 个卷积层没有池化、没有全连接层分类头会去掉。输入416×416×3 图像。输出3 个特征图 → 13×13、26×26、52×52送给 YOLOv3 检测头。CBL 块Conv BN LeakyReLU卷积3×3 或 1×1BN加速训练、防梯度爆炸LeakyReLU带小斜率的激活避免 “死亡神经元”Residual 残差块每个残差块是1×1 CBL → 降维通道减半3×3 CBL → 升维通道复原短路连接输入直接加到输出上add不是 concatAdd数值相加通道不变用于残差。Concat通道拼接通道变多用于特征融合。输入 416×416×3 ↓ CBL(32) ↓ 下采样(64) → Res×1 ↓ 下采样(128) → Res×2 ↓ 下采样(256) → Res×8 → 输出 52×52×256 ↓ 下采样(512) → Res×8 → 输出 26×26×512 ↓ 下采样(1024) → Res×4 → 输出 13×13×1024颈部网络在骨干网络输出的13×13 深层特征基础上首先堆叠五层连续的 CBL模块随后衔接一层CBL最后通过普通卷积层进行维度变换最终输出尺寸为13×13×225的特征张量用于大目标检测。同时YOLOv3会在五层 CBL 模块之后引出一条分支该分支先经过一层 CBL 做特征调整再执行上采样操作。上采样能够将13×13的小尺寸特征图放大为26×26以此提升特征分辨率。常见的上采样方式包含两种最近邻插值通过直接复制邻近像素数值完成放大双线性插值结合周边像素加权平均计算新像素使放大效果更加平滑。放大后的特征图会与骨干网络倒数第二层输出的26×26浅层特征图进行通道拼接融合。拼接完成后再次依次堆叠五层 CBL、一层CBL 与普通卷积层最终输出26×26×225的特征张量负责中等目标检测。同理模型继续在对应五层 CBL 后开辟分支将融合后的中层特征进一步上采样并与骨干网络倒数第三层输出的52×52浅层高分辨率特征完成拼接。经过相同的五层 CBL、单层 CBL 以及普通卷积层层级结构处理后输出52×52×225的特征张量专门用于小目标检测。依托多尺度上采样与跨层特征拼接融合的方式YOLOv3 同时兼顾浅层细节信息与深层语义信息大幅提升不同尺寸目标的检测精度。原始图像输入骨干网络后由浅至深逐层完成特征提取。随着网络层层下采样特征图的空间分辨率不断降低通道语义信息持续增强。同时骨干网络后方三组残差模块会分别引出分支输出52×52、26×26、13×13三种不同尺度的基础特征图为后续多尺度融合提供原始特征。再来看颈部网络结构其整体遵循自上而下的融合逻辑以骨干网络最顶层的小尺寸深层特征为起点通过上采样操作逐级放大特征图分辨率再借助通道拼接的方式将放大后的深层特征与骨干网络对应层级的浅层高分辨特征相互融合。每一级特征融合完成后都会保留独立分支最终经过单层 CBL 模块与普通卷积层的映射变换生成三组不同尺度的预测张量这一部分即为检测网络的Head 检测头。YOLOv3 的颈部网络核心采用FPN 特征金字塔结构。FPN 构建了一条自上而下的特征融合通路能够把深层网络丰富的强语义信息逐层传递并融合到浅层细粒度特征中。既保留了浅层特征的位置、轮廓等细节信息又融入了深层特征的目标分类与全局语义能力从而大幅提升模型对大、中、小不同尺寸目标的检测效果。检测头部模型最终会输出三组不同尺寸的三维预测特征矩阵依托三种尺度的特征图开展多尺度检测。该设计的核心目的是让模型不仅能够精准识别图像中的大型目标同时兼顾中等目标与小型目标的检测能力全面适配不同尺寸的检测需求。每个网格单元对应一个255 维的特征张量该维度信息平均分为三组分别对应每个网格预设的 3个锚框。单组锚框包含 85 个预测参数涵盖目标坐标偏移、边框尺寸、置信度以及各类别概率信息。【以 YOLOv3 某一层特征图为例比如 13×13 大目标层第一段 85 维 → 负责第 1 号大锚框的微调预测第二段 85 维 → 负责第 2 号中等锚框的微调预测第三段 85 维 → 负责第 3 号超大锚框的微调预测简单说三个锚框高矮、胖瘦、长宽比完全不一样。一个偏向宽框、一个偏向高框、一个偏向正方框专门适配现实里不同形状的物体。同一个网格里可能同时存在多个物体物体有大有小、有宽有窄一个锚框不够用提前准备 3 种不同形状的锚框当模板三段向量分别独立去修正各自锚框的位置、大小、置信度、类别。】13×13的深层特征图感受野范围最大全局语义信息更强主要用于检测画面内的大型目标26×26中等尺度特征图感受野适中负责中等目标检测52×52浅层高分辨率特征图细节丰富、感受野更小专门优化小目标识别。网络会为三种尺度特征图分别匹配尺寸适配的先验锚框锚框规格与预测框数量一一对应通过合理分配锚框进一步提升边界框回归精度保障多尺度目标的检测效果。YOLOv4CSPDarknet-53就是 YOLOv4 的主干特征提取网络 名字拆开CSP Darknet-53Darknet-53YOLOv3 的主干一共 53 个卷积层用残差块Residual加深网络不怕梯度消失。CSP跨阶段部分连接YOLOv4 新加的核心技巧把计算量砍了约 20%还更好训练。CBM层其实就是把激活函数替换了Mish激活函数更加的平滑梯度收敛会更快。而且只用在网络的第一层其它层还是用CBL。残差单元残差单元种的CBL变成了CBM。残差模块残差模块的改动稍微的大一些多了几个CBM然后还做了一个拼接操作残差模块的名字也变成了CSP。空间金字塔池化SPP其实就是用了3个不同尺寸的池化核然后做了一个拼接操作。把通道数增加了。它的作用是一个是13*13的卷积核显著增加了感受野二是三种不同尺寸的池化核完成了多种尺寸的特征提取。解决了大目标检测强小目标检测弱的问题而且计算量很小可以加快推理速度。CSPDarknet-53Neck部分骨干网络输出完成后首先接入三层连续的 CBL模块随后串联SPP 空间金字塔池化模块再堆叠三层 CBL做特征整合最终输出尺寸为13×13×512的深层特征图。在此基础上特征先经过一层 CBL 调整通道再通过上采样操作将特征图尺寸放大至 26×26。放大后的特征与骨干网络倒数第二层输出的 26×26浅层特征图进行通道拼接融合融合完成后经过五层 CBL 模块进一步提纯特征得到26×26×256的特征张量。该特征继续经由一层CBL 与上采样处理分辨率提升至 52×52、通道压缩为 128再和骨干网络倒数第三层输出的52×52高分辨率特征拼接完成浅层细节特征的融合增强。与此同时网络还存在反向下采样分支从浅层特征开始逐步通过卷积压缩特征图尺寸与上层融合后的特征依次拼接、互补。YOLOv4 的颈部网络存在两条双向融合路径第一条为自上而下通过上采样逐级放大深层小尺寸特征不断融合浅层高分辨率特征强化细节信息第二条为自下而上依靠卷积下采样逐步缩小浅层特征尺寸逐层融合深层语义信息。双向双路径的特征融合结构结合 SPP 多尺度池化充分结合浅层细节与深层语义最终完成三组不同尺度预测张量的输出大幅提升多尺寸目标的检测能力。YOLOv3 的颈部网络仅采用单向 FPN 自上而下融合依靠上采样逐级放大深层特征融合浅层细节信息。而 YOLOv4 在 Neck 模块额外新增了一条自下而上的下采样分支通过卷积逐步缩小浅层特征图尺寸反向传递底层定位细节与上层强语义特征相互融合。这种自上而下 自下而上的双向特征融合结构即为 PANet 结构。双向融合弥补了单向 FPN 的不足既利用深层特征的全局语义又强化浅层特征的位置与轮廓信息让大小目标的特征融合更充分有效提升多尺度目标的检测精度。【1】参考大白话讲明白YOLOv4的CSPDarknet-53网络架构 #YOLO #yolov4 #目标识别 #知识前沿派对 #深度学习 - 抖音