欣欣向荣,心有所“奈”——点亮你的新年vlog,传递无限快乐!
YOLOv8 网络参数详细解析
整体架构概览这是一个YOLOv8nNano模型的配置文件具有129层315万参数计算量
9 GFLOPS。
整体结构 ┌─────────────────┐ │ Input 640×640 │ ├─────────────────┤ │ │ │ Backbone │───► 特征提取10层 │ │ ├─────────────────┤ │ │ │ Neck │───► 特征融合12层 │ │ ├─────────────────┤ │ │ │ Head │───► 检测输出1层 │ │ └─────────────────┘
参数详解
1 基本参数nc: 80 # 检测类别数COCO数据集80类 scales: n: [
33,
25, 1024] # 深度因子, 宽度因子, 最大通道数缩放参数含义深度因子
33将基础模块的重复次数缩放为原来的
33倍宽度因子
25将通道数缩放为原来的
25倍最大通道数 1024通道数的上限
2 骨干网络Backbone解析
2.
1 骨干网络结构表序号fromrepeatsmoduleargs输出特征图说明
Conv[64, 3, 2]320×320×64P1/2- 2倍下采样
Conv[128, 3, 2]160×160×128P2/4- 4倍下采样
C2f[128, True]160×160×128特征提取
Conv[256, 3, 2]80×80×256P3/8- 8倍下采样
C2f[256, True]80×80×256特征提取
Conv[512, 3, 2]40×40×512P4/16- 16倍下采样
C2f[512, True]40×40×512特征提取
Conv[1024, 3, 2]20×20×1024P5/32- 32倍下采样
C2f[1024, True]20×20×1024特征提取
SPPF[1024, 5]20×20×1024空间金字塔池化
2.
2 关键模块说明
Conv模块# args: [输出通道, 卷积核大小, 步长] Conv(输入通道, 输出通道, 卷积核3, 步长2, padding
1)
C2f模块改进的CSP结构# args: [输出通道, shortcut] C2f(输入通道, 输出通道, n重复次数, shortcutTrue)n3/6Bottleneck模块的重复次数shortcutTrue使用残差连接相比C3模块C2f有更多的分支连接
SPPF模块空间金字塔快速池化# args: [输出通道, 池化核大小] SPPF(输入通道, 输出通道, k
将输入分别通过5×
5×
5×5的最大池化然后拼接结果增加感受野
3 颈部网络Neck解析
2.
1 颈部网络结构表序号fromrepeatsmoduleargs输入来源输出特征图说明
nn.Upsample[None, 2, nearest]层940×40×10242倍上采样11[-1, 6]1Concat[1]层10,640×40×1536拼接P4特征
C2f[512]层1140×40×512特征融合
nn.Upsample[None, 2, nearest]层1280×80×5122倍上采样14[-1, 4]1Concat[1]层13,480×80×768拼接P3特征
C2f[256]层1480×80×256P3/8输出
Conv[256, 3, 2]层1540×40×256下采样17[-1, 12]1Concat[1]层16,1240×40×768拼接中间特征
C2f[512]层1740×40×512P4/16输出
Conv[512, 3, 2]层1820×20×512下采样20[-1, 9]1Concat[1]层19,920×20×1536拼接P5特征
C2f[1024]层2020×20×1024P5/32输出
2.
2 特征金字塔结构FPNPAN[骨干网络] │ P5: 20×20×1024 │ SPPF(层
│ ┌──────┴──────┐ │ │ Upsample 保留P5 (2倍上采样) │ │ │ Concat(P
│ (层11: 40×40×
│ │ │ C2f(层
│ (40×40×
│ │ │ ┌───┴──────┐ │ │ │ │ Upsample 保留P4 │ (2倍上采样) (40×40×
│ │ │ │ Concat(P
│ │ (层14: 80×80×
│ │ │ │ │ C2f(层
│ │ (80×80×
───┐ │ │ │ │ │ │ Conv下采样 │ │ │ (层16: 40×40×
│ │ │ │ │ │ Concat(层
│ │ (层17: 40×40×
│ │ │ │ │ │ C2f(层
│ │ (40×40×
───┐ │ │ │ │ │ │ Conv下采样 │ │ │ (层19: 20×20×
│ │ │ │ │ │ Concat(层
│ │ (层20: 20×20×
│ │ │ │ │ │ C2f(层
│ │ (20×20×
│ │ │ │ │ └──────────┴──────┘ │ Detect(层
[P3, P4, P5 三尺度检测]
4 检测头Head- [[15, 18, 21], 1, Detect, [nc]] # 检测层Detect模块参数输入[层15, 层18, 层21]三个尺度的特征图输出每个尺度预测框的位置、置信度、类别三尺度检测P3/8层1580×80分辨率 → 检测小目标高分辨率细节丰富适合小物体检测P4/16层1840×40分辨率 → 检测中目标中等分辨率平衡细节和语义信息P5/32层2120×20分辨率 → 检测大目标低分辨率语义信息强适合大物体检测
特征图维度变化假设输入图像为640×640×3阶段 层数 操作 输出维度 下采样倍数 -------------------------------------------------------------------- 输入 - - 640×640×3 1x P1/2 0 Conv, stride2 320×320×64 2x P2/4 1 Conv, stride2 160×160×128 4x 2 C2f×3 160×160×128 4x P3/8 3 Conv, stride2 80×80×256 8x 4 C2f×6 80×80×256 8x P4/16 5 Conv, stride2 40×40×512 16x 6 C2f×6 40×40×512 16x P5/32 7 Conv, stride2 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(P
40×40×1536 16x 12 C2f×3 40×40×512 16x 13 Upsample×2 80×80×512 8x 14 Concat(P
80×80×768 8x 15 C2f×3 80×80×256 8x ← P3输出 16 Conv, stride2 40×40×256 16x 17 Concat(层
40×40×768 16x 18 C2f×3 40×40×512 16x ← P4输出 19 Conv, stride2 20×20×512 32x 20 Concat(层
20×20×1536 32x 21 C2f×3 20×20×1024 32x ← P5输出
计算量分析
1 参数分布总参数: 3,157,200 ├── 骨干网络: ~45% ├── 颈部网络: ~50% └── 检测头: ~5%
2 计算复杂度总计算量:
9 GFLOPS 骨干网络主要计算层
层4 (C2f×
: ~
2 GFLOPS
层6 (C2f×
: ~
4 GFLOPS
层8 (C2f×
: ~
0 GFLOPS
设计特点
1 创新点C2f模块代替C3更多的跨层连接SPPF代替SPP计算效率更高解耦头分类和回归任务分离在Detect内部实现Anchor-Free不需要预设锚框
2 性能优势多尺度检测P3/8, P4/16, P5/32三个尺度特征融合充分FPNPAN结构双向特征金字塔计算效率高深度可分离卷积、轻量级设计
3 适用场景小目标检测关注P3/8输出实时检测
9 GFLOPS适合移动端通用检测平衡速度与精度
9178真实成长小视频-9178真实成长小视频应用