YOLOv8架构详解

📌YOLOv8架构详解

  • [YOLOv8 架构图](#YOLOv8 架构图)
  • [YOLOv8 Backbone部分](#YOLOv8 Backbone部分)
  • [YOLOv8 Head部分](#YOLOv8 Head部分)

在视觉深度学习中,通常将模型分为 2~3 个组成部分:backbone、neck(可选) 和 head。

  • Backbone (主干网络)负责从输入图像中提取特征,将图像转化为具有丰富语义信息的特征表示。
  • Neck (颈部,连接部)是一个中间层,用于对来自 backbone 的特征进行融合,以提升模型的性能。
  • Head (任务头)是模型的最后一层,其结构会根据不同的任务而有所不同。例如,在图像分类任务中,我们通常会使用 softmax 分类器作为 Head,而在目标检测任务中,我们则可能会使用边界框回归器和分类器作为 Head。

YOLOv8 架构图

关于下面经典的架构图的简要说明:

  • 图的上面部分为 YOLOv8 架构的概要图(包括 Backbone,Head)。YOLOv8 没有使用Neck 这个概念,但其架构图中 Head 中类似 PANet 功能的部分也可以归为 Neck。
  • 图右中位置 Detail 为各个组件的详细架构示例,另说明了不同模型大小的参数选择。
  • 图左 + 图下部分,以分步的方式列出了完整的数据流。
  • 每个框的右上角的数字为层的编号,可以和后面的示例输出 1 对照看。

可以看出,YOLOv8 Backbone 为 0~9 层,10~21 层为 YOLOv8 Head。

YOLOv8 Backbone部分

见图中第 0~9 层。分别为

  • Conv + Conv + C2f
  • Conv + C2f(对齐特征金字塔 P3)
  • Conv + C2f(对齐特征金字塔 P4)
  • Conv + C2f + SPPF(对齐特征金字塔 P5)

YOLOv8 Head部分

Neck和Head结构

第一种解释:

在YOLOv8 的yaml文件中并没有显示地划分出Neck部分,实际上Neck网络结构就是其Head 网络结构中部分的前半部分。

head部分整体图:

yaml 复制代码
head:

  ###neck###
  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 6], 1, Concat, [1]]  # cat backbone P4
  - [-1, 3, C2f, [512]]  # 12

  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 4], 1, Concat, [1]]  # cat backbone P3
  - [-1, 3, C2f, [256]]  # 15 (P3/8-small)
  ###########
  
  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 12], 1, Concat, [1]]  # cat head P4
  - [-1, 3, C2f, [512]]  # 18 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 9], 1, Concat, [1]]  # cat head P5
  - [-1, 3, C2f, [1024]]  # 21 (P5/32-large)

  - [[15, 18, 21], 1, Detect, [nc]]  # Detect(P3, P4, P5)

yaml配置文件中,注释段落即为Neck结构


第二种解释:

yaml 复制代码
head:

  ###neck###
  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 6], 1, Concat, [1]]  # cat backbone P4
  - [-1, 3, C2f, [512]]  # 12

  - [-1, 1, nn.Upsample, [None, 2, 'nearest']]
  - [[-1, 4], 1, Concat, [1]]  # cat backbone P3
  - [-1, 3, C2f, [256]]  # 15 (P3/8-small)
  
  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 12], 1, Concat, [1]]  # cat head P4
  - [-1, 3, C2f, [512]]  # 18 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 9], 1, Concat, [1]]  # cat head P5
  - [-1, 3, C2f, [1024]]  # 21 (P5/32-large)
  ###########
  
  - [[15, 18, 21], 1, Detect, [nc]]  # Detect(P3, P4, P5)

yaml配置文件中,注释段落即为Neck结构,即除去检测头其余部分都是Neck部分

分清楚Neck和Head 部分,可以很方便的对YOLOv8不同部分进行改进,实现任务涨点!


整理不易🚀🚀,关注和收藏后拿走📌📌欢迎留言🧐👋📣
欢迎专注我的公众号AdaCoding 和 Github:AdaCoding123

相关推荐
格林威10 小时前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现沙滩小人检测识别(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉
lxmyzzs10 小时前
【打怪升级 - 03】YOLO11/YOLO12/YOLOv10/YOLOv8 完全指南:从理论到代码实战,新手入门必看教程
人工智能·神经网络·yolo·目标检测·计算机视觉
格林威13 小时前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现轮船检测识别(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·视觉检测
Coovally AI模型快速验证15 小时前
避开算力坑!无人机桥梁检测场景下YOLO模型选型指南
人工智能·深度学习·yolo·计算机视觉·目标跟踪·无人机
超龄超能程序猿19 小时前
图片查重从设计到实现(4)图片向量化存储-Milvus 单机版部署
人工智能·yolo·机器学习
格林威1 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现持械检测(C#代码,UI界面版)
人工智能·深度学习·数码相机·yolo·计算机视觉
sanzk2 天前
yolo--qt可视化开发
yolo
停走的风2 天前
Yolo底层原理学习(V1~V3)(第一篇)
人工智能·深度学习·神经网络·学习·yolo
北京地铁1号线2 天前
YOLO12论文阅读:Attention-Centric Real-Time Object Detectors
论文阅读·yolo·目标检测
虚假程序设计3 天前
海康工业三相机联动串口触发系统:从 0 到 1 的踩坑笔记
数码相机·yolo·机器学习