YOLO26 计算机视觉 - YOLO26 模型架构解析

大家好,我是 Java1234 小锋老师。最近正在更新《一天学会 YOLO26 计算机视觉 机器视觉 视频教程》系列专辑,感谢大家的支持与关注。

本课程将系统讲解 YOLO26 的完整知识体系,涵盖 YOLO26 简介、HelloWorld 项目实现、模型架构解析、图片与视频推理、摄像头实时检测、数据集与标注、训练自己的 YOLO26 模型、多任务(分割 / 姿态 / 分类 / OBB)以及模型导出等内容。

视频教程+课件+源码打包下载 :

链接:https://pan.baidu.com/s/1_NzaNr0Wln6kv1rdiQnUTg

提取码:0000

具体位置:进入【第三十一期】技术目录即可找到。

YOLO26 计算机视觉 - YOLO26 模型架构解析

1,整体架构:Backbone → Neck → Head

YOLO26 与所有 Ultralytics YOLO 模型一样,遵循经典的三段式流水线:

2,骨干网络 Backbone 详解

Backbone 负责从输入图像中提取多尺度语义特征,YOLO26 的骨干继承 YOLO11 设计并做了 SPPF 残差增强。

上图 :YOLO26 骨干网络 --- 逐层下采样 + C3k2 特征提取 + SPPF 空间池化 + C2PSA 注意力

2.1 各阶段详解
层索引 模块 输出尺度 通道数 作用
0 Conv s=2 P1/2 64 初始下采样
1-2 Conv + C3k2 P2/4 128→256 浅层特征
3-4 Conv + C3k2 P3/8 256→512 小目标特征 ★
5-6 Conv + C3k2 P4/16 512 中目标特征 ★
7-8 Conv + C3k2 P5/32 1024 大目标特征 ★
9 SPPF (残差) P5/32 1024 扩大感受野
10 C2PSA P5/32 1024 全局注意力

P3、P4、P5 三个尺度的特征图会被 Neck 和 Head 共同使用。P3 负责小物体,P5 负责大物体。

2.2 基础单元 Conv

所有大模块的基础单元是 Conv 块 (定义于 conv.py):

复制代码
Conv = Conv2d → BatchNorm → SiLU
  • Conv2d:标准 2D 卷积
  • BatchNorm:批归一化,稳定训练
  • SiLU (Swish):平滑激活函数,x · sigmoid(x)
2.3 SPPF 残差连接(YOLO26 新增)

SPPF(Spatial Pyramid Pooling - Fast)通过串联 3 次 MaxPool(kernel=5) 等效于 SPP(k=5,9,13),但计算量更低。

YOLO26 的创新:在 SPPF 输出端增加残差连接:

python 复制代码
# YOLO26 SPPF 伪代码
def forward(self, x):
    y = self.cv2(torch.cat([x, pool(x), pool²(x), pool³(x)], dim=1))
    return y + x  # ← YOLO26 新增残差 shortcut

当 c1 == c2 == 1024 时,输入输出通道一致,可以直接相加。这有助于:

  • 缓解深层网络的梯度消失
  • 保留原始空间信息

3,颈部网络 Neck:FPN + PAN

Neck 的核心任务是让不同尺度的特征图互相融合,使小物体也能获得大感受野的语义信息,大物体也能保留精细的空间定位。

图:Neck 的 FPN(自顶向下)+ PAN(自底向上)双向融合路径

3.1 FPN:自顶向下(Top-Down)

FPN 将高层语义信息传递到低层:

复制代码
P5 (1024ch) ──Upsample×2──┐
                           ├── Concat ── C3k2 ──→ 融合 P4
P4 (512ch)  ──────────────┘

融合 P4 ──Upsample×2──┐
                       ├── Concat ── C3k2 ──→ 融合 P3 (小目标)
P3 (512ch) ───────────┘

作用:让 P3 特征图"看到"全局语义,提升小目标检测能力。

3.2 PAN:自底向上(Bottom-Up)

PAN 将低层定位信息传递回高层:

复制代码
融合 P3 ──Conv s=2──┐
                     ├── Concat ── C3k2 ──→ 增强 P4
融合 P4 ────────────┘

增强 P4 ──Conv s=2──┐
                     ├── Concat ── C3k2 ──→ 增强 P5 (大目标)
P5 (1024ch) ────────┘

作用:让 P5 特征图保留精细空间细节,提升大目标定位精度。

3.3 Neck 输出

Neck 最终输出三个融合特征图,分别送入 Detect 头:

输出 尺度 步长 适合检测
层 16 P3/8 8 小物体 (< 32×32 px)
层 19 P4/16 16 中等物体
层 22 P5/32 32 大物体 (> 96×96 px)

4, 检测头 Detect:双头设计与端到端推理

YOLO26 检测头最大的架构变革是引入**双头(Dual-Head)**设计,实现原生 NMS-Free 推理。

图 :YOLO26 双头检测 --- One-to-One(推理)与 One-to-Many(训练辅助)

4.1 解耦头结构

每个金字塔层级上,Detect 头运行两个并行分支:

复制代码
特征图 ──┬── Box Branch (cv2):  Conv 3×3 → Conv 3×3 → Conv2d(4, 1×1)
         │   输出: 4 个坐标 (x, y, w, h) --- 直接回归,无 DFL
         │
         └── Class Branch (cv3): DWConv → Conv 1×1 → DWConv → Conv2d(nc, 1×1)
             输出: nc 个类别分数
  • Box Branch:3 层卷积,最终输出 4 通道(直接坐标回归)
  • Class Branch:深度可分离卷积(DWConv),更轻量
4.2 One-to-One Head(默认推理头)
属性 值
输出形状 (N, 300, 6)
最大检测数 300 个/图
是否需要 NMS 否
标签分配 TAL topk=7 → topk2=1(唯一匹配)

每个真实目标只对应一个预测,模型内部自行处理重复框,推理时直接输出最终结果。

4.3 One-to-Many Head(训练辅助头)
属性 值
输出形状 (N, nc+4, 8400)
锚点数 8400 (80×80 + 40×40 + 20×20)
是否需要 NMS 是
标签分配 TAL topk=10(多正样本)

提供更丰富的正样本监督,帮助 One-to-One 头学习更好的特征表示。

4.4 双头设计的优势
复制代码
训练阶段:  One-to-Many (密集监督) + One-to-One (端到端监督)
                ↓ Progressive Loss 渐进过渡
推理阶段:  仅使用 One-to-One → 无 NMS → 更快更简单

这是一个精度-速度旋钮:追求极致精度可选 One-to-Many + NMS;追求部署简洁则用 One-to-One。

相关推荐
冬奇Lab3 小时前
LLM 驱动的自动化测试系列(06):移动端自动化(二)——DroidRun/Mobilerun 的角色级模型拆分
人工智能·测试
冬奇Lab4 小时前
一天一个开源项目(第230篇):HandRaw-Style —— 把 327 种手绘风格、165 种排版、36 种配色编号化,让 AI 画图不再每次都飘
人工智能·开源·资讯
罗西的思考4 小时前
从陶哲轩的访谈看:AI 数学研究方法论 & 给其它行业的启示
人工智能
学...4 小时前
软件学报 2023 论文《面向复杂约束优化问题的进化算法综述》阅读笔记
人工智能·ga·cmop
xhy_07074 小时前
AI 在同一步上反复打转怎么办?WES Code 循环检测怎么用
人工智能·大模型·ai编程·wes code
鱼宵5 小时前
Spring AI 提示词模板:{变量} 参数化 + few-shot,一条提示词反复用
java·人工智能·spring·few-shot·提示词工程·springai
蜗牛互联网5 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
架构师那点事儿5 小时前
大模型如何私有化部署到生产环境
人工智能·架构·llm
HeyAI人工智能5 小时前
官网内容优化 vs 企业级 RAG:AI 搜索时代,企业到底该先做什么?
人工智能·aigc
黑妹天下第一乖5 小时前
第09讲 · 多媒体与音频 SDK:硬件编解码与端侧语音
人工智能·嵌入式硬件·深度学习·机器人·音视频·iot