这一篇的目标是往里拆:Backbone 内部到底在做什么,为什么这样设计。光会说"Backbone 负责特征提取"是不够的,老师一追问——为什么这样提、为什么要下采样、通道数为什么越来越多、C2f 放这里是为了什么——就得能接住。


1. Backbone 是一条有节奏的特征提取链

Backbone 的本质不是堆很多层,而是按照"逐步压缩空间、逐步增强语义、逐步扩大感受野"的思路来组织网络。

它要完成三件事:把像素变成可用特征;让模型看到足够大范围的上下文;在计算量可控的前提下增强表达能力。后面所有的设计逻辑都围绕这三点展开。


2. Backbone 的整体变化趋势

输入 640×640×3,经过 Backbone 后特征图逐步变化:

320×320×C1​→160×160×C2​→80×80×C3​→40×40×C4​→20×20×C5​

两个趋势并行发生:空间尺寸 $H, W \downarrow$,通道数 $C \uparrow$

特征图越来越"粗",但每个位置携带的信息越来越"深"。


3. 卷积在 Backbone 里的作用

卷积在这里同时承担三件事:

  • 提取局部模式:边缘、纹理、局部形状等基础特征
  • 建立层次特征:浅层学简单特征,深层组合成复杂特征
  • 步长卷积完成下采样:提特征的同时缩小尺寸

所以 Backbone 里的卷积不是单一功能块,而是同时负责特征提取、特征变换和空间压缩。


4. 为什么一定要下采样

原因一:计算量。 卷积计算量正比于特征图面积:

FLOPs∝H×W×Cin​×Cout​×K2

一直在 640×640 上做卷积,计算和显存开销会极其夸张。

原因二:感受野。 下采样后,深层特征图上的一个点对应原图更大的区域,模型才能看到足够大的上下文来理解大目标或复杂背景。

原因三:层次化语义。 高分辨率适合细节,低分辨率适合抽象表示。Backbone 需要让网络完成 细节 → 局部结构 → 高层语义 的转化,下采样是这个过程的驱动机制。


5. 为什么下采样后通道数反而越来越多

明明空间尺寸在缩小,通道为什么越来越多?

因为网络要用更少的空间位置,承载更丰富的特征表达

  • 浅层:每个位置看得细,但语义浅
  • 深层:位置数量减少,但每个位置表达更丰富

通道数增加是在补偿空间压缩带来的信息损失,让模型在更抽象的层面上继续保持表达能力。


6. 每个 Stage 的结构节奏

把 Backbone 看成若干个 stage 组成的流水线,每个 stage 的节奏固定:

$F_{i+1} = M_i\bigl(D_i(F_i)\bigr)$

  • $D_i$:下采样(步长卷积)——推进层级,缩小尺寸、整理特征
  • $M_i$:特征提取模块(如 C2f)——强化当前层级,增强表达能力
  • 网络图里反复出现的 Conv → C2f → Conv → C2f,正是这个节奏的体现

卷积负责"推进层级",模块负责"强化当前层级"。


7. C2f:特征复用与信息流动

为什么不只堆普通卷积?

普通卷积堆叠像一条直路,信息只沿单一路径向前流,中间层特征利用不充分,不同层级之间缺乏丰富的组合方式。

C2f 的结构思路:

X→split→部分分支做进一步变换→concat→fuse

  1. 输入特征分成几个分支
  2. 部分分支经过若干 Bottleneck 处理,其余直接保留
  3. 把原始分支和中间分支一起拼接
  4. 再做一次融合卷积输出

这样设计的效果:浅层信息保留得更久,中间层特征不容易被覆盖,不同深度的特征可以同时参与最终表达。

C2f 的核心:特征复用 + 更顺畅的信息流动。


8. 为什么 Backbone 输出多层特征而不是一个结果

因为后面的 Neck 需要做多尺度融合。如果 Backbone 只输出最后一层,高分辨率的细节信息就丢了,Neck 也无法做充分的多尺度整合。

所以 Backbone 提供的是一个由浅到深的特征层级,本身就已经在为多尺度检测做准备。


9. 技术汇报怎么说

如果问"YOLOv8 的 Backbone 为什么要这样设计",

可以这样回答:

因为目标检测需要从输入图像中逐步提取由浅到深的层级特征。YOLOv8 的 Backbone 一方面通过卷积和步长下采样逐步压缩空间尺寸、扩大感受野;另一方面通过 C2f 等模块增强当前尺度上的特征表达与信息流动,从而在计算效率和特征能力之间取得平衡。空间尺寸减小有利于降低计算量并形成更高层语义;通道数增加则有助于在更抽象层面承载更丰富的特征表示。


10. 本篇主线

  • Backbone 按阶段逐步提取更强语义特征,不是暴力堆层
  • 下采样:降低计算量、扩大感受野、形成层次化语义
  • 通道数增加:在更抽象层面承载更丰富的特征表达
  • C2f:强调特征复用和信息流动,不是普通卷积堆叠
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐