YOLOv8 网络参数详细解析
一、整体架构概览
这是一个 YOLOv8n(Nano) 模型的配置文件,具有 129层,315万参数,计算量 8.9 GFLOPS。
整体结构:
┌─────────────────┐
│ Input 640×640 │
├─────────────────┤
│ │
│ Backbone │───► 特征提取(10层)
│ │
├─────────────────┤
│ │
│ Neck │───► 特征融合(12层)
│ │
├─────────────────┤
│ │
│ Head │───► 检测输出(1层)
│ │
└─────────────────┘
二、参数详解
2.1 基本参数
nc: 80 # 检测类别数(COCO数据集80类)
scales:
n: [0.33, 0.25, 1024] # 深度因子, 宽度因子, 最大通道数
缩放参数含义:
-
深度因子 0.33:将基础模块的重复次数缩放为原来的0.33倍
-
宽度因子 0.25:将通道数缩放为原来的0.25倍
-
最大通道数 1024:通道数的上限
2.2 骨干网络(Backbone)解析
2.2.1 骨干网络结构表
| 0 | -1 | 1 | Conv | [64, 3, 2] | 320×320×64 | P1/2 – 2倍下采样 |
| 1 | -1 | 1 | Conv | [128, 3, 2] | 160×160×128 | P2/4 – 4倍下采样 |
| 2 | -1 | 3 | C2f | [128, True] | 160×160×128 | 特征提取 |
| 3 | -1 | 1 | Conv | [256, 3, 2] | 80×80×256 | P3/8 – 8倍下采样 |
| 4 | -1 | 6 | C2f | [256, True] | 80×80×256 | 特征提取 |
| 5 | -1 | 1 | Conv | [512, 3, 2] | 40×40×512 | P4/16 – 16倍下采样 |
| 6 | -1 | 6 | C2f | [512, True] | 40×40×512 | 特征提取 |
| 7 | -1 | 1 | Conv | [1024, 3, 2] | 20×20×1024 | P5/32 – 32倍下采样 |
| 8 | -1 | 3 | C2f | [1024, True] | 20×20×1024 | 特征提取 |
| 9 | -1 | 1 | SPPF | [1024, 5] | 20×20×1024 | 空间金字塔池化 |
2.2.2 关键模块说明
1. Conv模块:
# args: [输出通道, 卷积核大小, 步长]
Conv(输入通道, 输出通道, 卷积核=3, 步长=2, padding=1)
2. C2f模块(改进的CSP结构):
# args: [输出通道, shortcut]
C2f(输入通道, 输出通道, n=重复次数, shortcut=True)
-
n=3/6:Bottleneck模块的重复次数
-
shortcut=True:使用残差连接
-
相比C3模块,C2f有更多的分支连接
3. SPPF模块(空间金字塔快速池化):
# args: [输出通道, 池化核大小]
SPPF(输入通道, 输出通道, k=5)
-
将输入分别通过5×5、5×5、5×5的最大池化
-
然后拼接结果,增加感受野
2.3 颈部网络(Neck)解析
2.3.1 颈部网络结构表
| 10 | -1 | 1 | nn.Upsample | [None, 2, "nearest"] | 层9 | 40×40×1024 | 2倍上采样 |
| 11 | [-1, 6] | 1 | Concat | [1] | 层10,6 | 40×40×1536 | 拼接P4特征 |
| 12 | -1 | 3 | C2f | [512] | 层11 | 40×40×512 | 特征融合 |
| 13 | -1 | 1 | nn.Upsample | [None, 2, "nearest"] | 层12 | 80×80×512 | 2倍上采样 |
| 14 | [-1, 4] | 1 | Concat | [1] | 层13,4 | 80×80×768 | 拼接P3特征 |
| 15 | -1 | 3 | C2f | [256] | 层14 | 80×80×256 | P3/8输出 |
| 16 | -1 | 1 | Conv | [256, 3, 2] | 层15 | 40×40×256 | 下采样 |
| 17 | [-1, 12] | 1 | Concat | [1] | 层16,12 | 40×40×768 | 拼接中间特征 |
| 18 | -1 | 3 | C2f | [512] | 层17 | 40×40×512 | P4/16输出 |
| 19 | -1 | 1 | Conv | [512, 3, 2] | 层18 | 20×20×512 | 下采样 |
| 20 | [-1, 9] | 1 | Concat | [1] | 层19,9 | 20×20×1536 | 拼接P5特征 |
| 21 | -1 | 3 | C2f | [1024] | 层20 | 20×20×1024 | P5/32输出 |
2.3.2 特征金字塔结构(FPN+PAN)
[骨干网络]
│
P5: 20×20×1024
│
SPPF(层9)
│
┌──────┴──────┐
│ │
Upsample 保留P5
(2倍上采样) │
│ │
Concat(P4) │
(层11: 40×40×1536) │
│ │
C2f(层12) │
(40×40×512) │
│ │
┌───┴──────┐ │
│ │ │
Upsample 保留P4 │
(2倍上采样) (40×40×512) │
│ │ │
Concat(P3) │ │
(层14: 80×80×768) │ │
│ │ │
C2f(层15) │ │
(80×80×256)───┐ │ │
│ │ │ │
Conv下采样 │ │ │
(层16: 40×40×256) │ │
│ │ │ │
Concat(层12) │ │
(层17: 40×40×768) │ │
│ │ │ │
C2f(层18) │ │
(40×40×512)───┐ │ │
│ │ │ │
Conv下采样 │ │ │
(层19: 20×20×512) │ │
│ │ │ │
Concat(层9) │ │
(层20: 20×20×1536)│ │
│ │ │ │
C2f(层21) │ │
(20×20×1024) │ │
│ │ │
└──────────┴──────┘
│
Detect(层22)
[P3, P4, P5 三尺度检测]
2.4 检测头(Head)
– [[15, 18, 21], 1, Detect, [nc]] # 检测层
Detect模块参数:
-
输入:[层15, 层18, 层21] 三个尺度的特征图
-
输出:每个尺度预测框的位置、置信度、类别
三尺度检测:
P3/8(层15):80×80分辨率 → 检测小目标
-
高分辨率,细节丰富
-
适合小物体检测
P4/16(层18):40×40分辨率 → 检测中目标
-
中等分辨率
-
平衡细节和语义信息
P5/32(层21):20×20分辨率 → 检测大目标
-
低分辨率,语义信息强
-
适合大物体检测
三、特征图维度变化
假设输入图像为 640×640×3:
阶段 层数 操作 输出维度 下采样倍数
——————————————————————–
输入 – – 640×640×3 1x
P1/2 0 Conv, stride=2 320×320×64 2x
P2/4 1 Conv, stride=2 160×160×128 4x
2 C2f×3 160×160×128 4x
P3/8 3 Conv, stride=2 80×80×256 8x
4 C2f×6 80×80×256 8x
P4/16 5 Conv, stride=2 40×40×512 16x
6 C2f×6 40×40×512 16x
P5/32 7 Conv, stride=2 20×20×1024 32x
8 C2f×3 20×20×1024 32x
9 SPPF 20×20×1024 32x
——————————————————————–
Neck 10 Upsample×2 40×40×1024 16x
11 Concat(P4) 40×40×1536 16x
12 C2f×3 40×40×512 16x
13 Upsample×2 80×80×512 8x
14 Concat(P3) 80×80×768 8x
15 C2f×3 80×80×256 8x ← P3输出
16 Conv, stride=2 40×40×256 16x
17 Concat(层12) 40×40×768 16x
18 C2f×3 40×40×512 16x ← P4输出
19 Conv, stride=2 20×20×512 32x
20 Concat(层9) 20×20×1536 32x
21 C2f×3 20×20×1024 32x ← P5输出
四、计算量分析
4.1 参数分布
总参数: 3,157,200
├── 骨干网络: ~45%
├── 颈部网络: ~50%
└── 检测头: ~5%
4.2 计算复杂度
总计算量: 8.9 GFLOPS
骨干网络主要计算层:
1. 层4 (C2f×6): ~1.2 GFLOPS
2. 层6 (C2f×6): ~2.4 GFLOPS
3. 层8 (C2f×3): ~2.0 GFLOPS
五、设计特点
5.1 创新点
C2f模块:代替C3,更多的跨层连接
SPPF代替SPP:计算效率更高
解耦头:分类和回归任务分离(在Detect内部实现)
Anchor-Free:不需要预设锚框
5.2 性能优势
多尺度检测:P3/8, P4/16, P5/32三个尺度
特征融合充分:FPN+PAN结构,双向特征金字塔
计算效率高:深度可分离卷积、轻量级设计
5.3 适用场景
-
小目标检测:关注P3/8输出
-
实时检测:8.9 GFLOPS适合移动端
-
通用检测:平衡速度与精度
网硕互联帮助中心






评论前必须登录!
注册