YOLOv11 网络结构详解:一文看懂 Backbone、Head、C3k2、SPPF 和 Detect 检测头
目录
- YOLOv11 网络结构详解:一文看懂 Backbone、Head、C3k2、SPPF 和 Detect 检测头
-
- 前言
- 1. YOLOv11 的整体结构
- 2. YOLOv11 的 yaml 文件怎么看?
- 3. scales:YOLOv11n、s、m、l、x 的区别
- 4. Backbone:主干特征提取网络
- 5. Conv 模块:下采样和通道扩展
- 6. C3k2 模块:YOLOv11 中的主要特征提取模块
- 7. SPPF 模块:扩大感受野
- 8. C2PSA 模块:增强特征表达
- 9. Head:多尺度特征融合网络
- 10. Upsample:上采样
- 11. Concat:特征拼接
- 12. YOLOv11 的特征融合过程
- 13. P3、P4、P5 多尺度检测是什么意思?
- 14. 为什么小目标更依赖 P3?
- 15. Detect 检测头输出什么?
- 16. YOLOv11n 的网络结构流程总结
- 17. 初学者应该怎么理解 YOLOv11 网络结构?
- 18. 总结
- 参考资料
前言
在使用 YOLOv11 进行目标检测时,我们经常会接触到 yolo11.yaml 或 yolo11n.yaml 这样的模型配置文件。
很多初学者第一次看到这些配置时,可能会有几个疑问:
backbone和head分别是什么意思?Conv、C3k2、SPPF、C2PSA这些模块分别起什么作用?- P3/8、P4/16、P5/32 代表什么?
- 为什么最后 Detect 要同时接收 3 个不同尺度的特征图?
- YOLOv11n、YOLOv11s、YOLOv11m、YOLOv11l、YOLOv11x 的区别在哪里?
本文就结合 YOLOv11 的 yaml 配置文件,从网络结构的角度对 YOLOv11 进行拆解,帮助大家理解模型是如何完成目标检测的。
1. YOLOv11 的整体结构
YOLOv11 的目标检测网络整体可以分为三个主要部分:
- Backbone:主干特征提取网络
- Head:多尺度特征融合网络
- Detect:检测头,输出最终预测结果
简单来说,YOLOv11 的数据流向可以理解为:
输入图像
↓
Backbone 提取多层特征
↓
Head 融合不同尺度特征
↓
Detect 在 P3、P4、P5 三个尺度上进行检测
↓
输出目标类别、位置和置信度
其中,Backbone 负责从图像中提取特征,Head 负责融合不同层次的特征,Detect 则负责根据融合后的特征图输出检测结果。
需要注意的是,在 Ultralytics 的 yaml 配置中,head 部分不仅包含最终的检测头,也包含了常说的 Neck,也就是多尺度特征融合部分。
2. YOLOv11 的 yaml 文件怎么看?
在 YOLOv11 的 yaml 文件中,每一层通常采用下面这种格式:
[from, repeats, module, args]
例如:
- [-1, 1, Conv, [64, 3, 2]]
这四个部分分别表示:
| 字段 | 含义 |
|---|---|
| from | 当前层的输入来自哪一层 |
| repeats | 当前模块重复多少次 |
| module | 使用的模块类型 |
| args | 传入模块的参数 |
以上面这一行为例:
- [-1, 1, Conv, [64, 3, 2]]
它的含义是:
-1:输入来自上一层;1:该模块重复 1 次;Conv:使用卷积模块;[64, 3, 2]:输出通道数为 64,卷积核大小为 3,步长为 2。
由于步长为 2,因此这一层会对输入特征图进行下采样,使特征图的高和宽变为原来的一半。
3. scales:YOLOv11n、s、m、l、x 的区别
YOLOv11 的配置文件中有这样一部分:
scales:
n: [0.50, 0.25, 1024]
s: [0.50, 0.50, 1024]
m: [0.50, 1.00, 512]
l: [1.00, 1.00, 512]
x: [1.00, 1.50, 512]
这里的 n、s、m、l、x 分别对应不同规模的模型:
- YOLOv11n
- YOLOv11s
- YOLOv11m
- YOLOv11l
- YOLOv11x
它们不是完全不同的五套网络结构,而是在同一个基础结构上,通过深度和宽度缩放得到的不同模型。
其中:
[depth, width, max_channels]
分别表示:
| 参数 | 含义 |
|---|---|
| depth | 控制网络深度,影响模块重复次数 |
| width | 控制网络宽度,影响通道数 |
| max_channels | 限制最大通道数 |
一般来说:
- YOLOv11n 参数量最小,速度最快,适合轻量化部署;
- YOLOv11s 在速度和精度之间比较均衡;
- YOLOv11m、YOLOv11l、YOLOv11x 模型更大,表达能力更强,但计算量和显存占用也更高。
因此,在实际项目中,并不是模型越大越好。
如果部署在边缘设备、嵌入式设备,或者对实时性要求比较高,可以优先考虑 YOLOv11n 或 YOLOv11s。
如果更关注检测精度,并且算力比较充足,可以尝试 YOLOv11m、YOLOv11l 或 YOLOv11x。
4. Backbone:主干特征提取网络
YOLOv11 的 Backbone 配置如下:
backbone:
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 2, C3k2, [256, False, 0.25]]</


1万+

被折叠的 条评论
为什么被折叠?



