YOLO26 神经网络基本原理与架构解析
文章目录
摘要
YOLO(You Only Look Once)是目标检测领域最具影响力的单阶段检测算法之一。2024年发布的YOLO26作为最新版本,在网络深度和检测精度上都有显著提升。本文以YOLO26m为研究对象,从卷积神经网络基础出发,深入解析YOLO26的网络架构、核心模块工作原理,以及从图像输入到目标输出的完整检测流程。
1. 神经网络基础与图像表示
1.1 计算机中的图像
在计算机中,一张彩色图像可以表示为一个三维矩阵:
图像尺寸:高度 H × 宽度 W × 通道 C
例如:640 × 640 × 3
这里3代表RGB三个通道,每个像素点存储红、绿、蓝三个颜色值,取值范围0-255。
1.2 特征图的概念
传统图像:每个像素点有3个值(RGB)
特征图:每个"像素点"有更高维度的特征向量
以YOLO26第0层为例:
输入:640 × 640 × 3 (RGB图像)
↓
卷积层:3×3卷积核,输出64个通道,步长2
↓
输出:320 × 320 × 64
经过第0层后:
- 分辨率从640×640变为320×320(步长2导致尺寸减半)
- 每个位置从3个值(RGB)变为64个特征值
这64个特征值可以理解为:该位置学习到的64种"视觉特征",如边缘、纹理、形状等抽象信息。
2. YOLO26 网络架构详解
2.1 整体架构:三阶段设计
YOLO系列采用经典的"编码器-解码器"结构,分为三个阶段:
输入图像 (640×640×3)
↓
██████ BACKBONE ███████ (特征提取网络)
↓
██████ NECK ███████ (特征金字塔网络)
↓
██████ HEAD ███████ (检测头)
↓
目标检测结果
2.2 Backbone(主干网络)
Backbone负责从输入图像中提取多尺度特征,是整个网络的"特征提取器"。YOLO26m的Backbone共11层:
| 层级 | 模块 | 输入→输出 | 分辨率变化 | 功能说明 |
|---|---|---|---|---|
| 0 | Conv | 3→64 | 640→320 | 初始卷积,提取基础特征 |
| 1 | Conv | 64→128 | 320→160 | 通道扩展 |
| 2 | C3k2 | 128→256 | 160→160 | CSP瓶颈块,浅层特征提取 |
| 3 | Conv | 256→256 | 160→80 | 下采样 |
| 4 | C3k2 | 256→512 | 80→80 | CSP瓶颈块,中层特征提取 |
| 5 | Conv | 512→512 | 80→40 | 下采样 |
| 6 | C3k2 | 512→512 | 40→40 | CSP瓶颈块 |
| 7 | Conv | 512→512 | 40→20 | 下采样 |
| 8 | C3k2 | 512→512 | 20→20 | CSP瓶颈块,高层语义特征 |
| 9 | SPPF | 512→512 | 20→20 | 空间金字塔池化,多尺度融合 |
| 10 | C2PSA | 512→512 | 20→20 | 注意力机制,增强特征表达 |
分辨率变化流程:
640×640 (输入图像)
↓ 步长2
320×320 (轮廓、边缘特征)
↓ 步长2
160×160 (纹理、局部形状)
↓ 步长2
80×80 (部件、部分对象)
↓ 步长2
40×40 (较大目标区域)
↓ 步长2
20×20 (整体语义信息)
规律:随着网络加深,分辨率不断降低(特征图变小),但每个位置的特征维度增加(信息更抽象)。
2.3 Neck(特征金字塔网络)
Neck负责融合不同层级的特征,实现多尺度特征融合。主要包含两个操作:
(1)上采样 + 特征融合(自底向上)
20×20 特征 → 上采样 → 40×40 → Concat → 80×80
↑ ↑
上采样 特征融合
(2)下采样 + 特征融合(自顶向下)
80×80 特征 → 下采样 → 40×40 → Concat → 20×20
↓ ↓
下采样 特征融合
这种双向特征融合确保每个尺度的输出都包含浅层(细节)和深层(语义)信息。
2.4 Head(检测头)
检测头负责在特征图上预测目标位置和类别。YOLO26采用三个检测头,分别负责不同尺度的目标检测:
| 检测头 | 特征图尺寸 | 负责检测的目标 |
|---|---|---|
| P3 | 80×80 | 小目标 |
| P4 | 40×40 | 中等目标 |
| P5 | 20×20 | 大目标 |
每个检测位置输出:
- 4个值:边界框中心(x, y)和尺寸(w, h)
- 3个值:各类别概率(pedestrian, car, bike)
- 1个值:置信度分数
3. 核心模块详解
3.1 Conv(卷积层)
标准卷积模块是网络的基础组成单元:
输入 → 卷积 → BatchNorm → SiLU激活 → 输出
卷积操作:使用固定大小的卷积核在输入特征图上滑动,计算点积得到输出。
BatchNorm:批归一化,加速训练稳定收敛。
SiLU:Sigmoid Linear Unit,一种非线性激活函数。
3.2 C3k2 模块
C3k2是YOLO26的核心模块,采用CSP(Cross Stage Partial)结构:
输入
├── 分支1 → Bottleneck × 2 → Concat ──┐
│ → 输出
└── 分支2 → Conv ──────────────────────┘
Bottleneck结构:
Conv(1×1) → Conv(3×3) → 残差连接
C3k2的优势:
- 增强梯度流动,缓解梯度消失
- 减少计算量,提高推理速度
- 提升特征提取能力
3.3 SPPF 模块
Spatial Pyramid Pooling - Fast:
输入 → MaxPool(5×5) → ┐
↓ │
MaxPool(5×5) → ┼→ Concat → 输出
↓ │
MaxPool(5×5) → ┘
作用:通过三个连续的5×5最大池化,获取不同感受野的特征,最后拼接融合。多尺度信息有助于检测不同大小的目标。
3.4 C2PSA 模块
引入PSA(Pyramid Squeeze Attention)注意力机制:
输入 → 空间注意力 → 通道注意力 → 输出
作用:让网络自适应地"关注"重要特征,抑制无关信息,提升检测精度。
4. 从输入到输出:完整检测流程
4.1 推理过程
1. 输入新图像 (640×640×3)
2. Backbone特征提取
逐层卷积,得到多尺度特征图
3. Neck特征融合
双向FPN,融合不同层级特征
4. Head检测输出
三个尺度分别输出检测结果
5. 后处理(NMS)
- 过滤低置信度框
- 去除重复框
- 输出最终检测结果
4.2 网格检测原理
YOLO将特征图划分为网格,每个单元格负责检测落入其中的目标:
以80×80的特征图为例:
- 共6400个单元格
- 每个单元格预设3个锚框
- 每个锚框输出:位置(4) + 类别(3) + 置信度(1) = 8个值
4.3 NMS(非极大值抑制)
检测会产生多个重叠的边界框,NMS保留最佳结果:
1. 按置信度排序所有框
2. 保留置信度最高的框
3. 删除与保留框IoU重叠过高的其他框
4. 重复直到处理完所有框
5. 损失函数与训练
5.1 损失函数组成
训练时使用三个损失函数:
| 损失函数 | 作用 | 优化目标 |
|---|---|---|
| box_loss | 边界框回归 | 预测框与真实框越接近越好 |
| cls_loss | 分类损失 | 预测类别概率分布越接近真实分布越好 |
| dfl_loss | 分布聚焦损失 | 边框预测分布越集中越好 |
总损失 = box_loss + cls_loss + dfl_loss
5.2 训练流程
for epoch in range(epochs):
for batch in dataloader:
# 前向传播
predictions = model(images)
# 计算损失
loss = compute_loss(predictions, targets)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
6. YOLO26 性能指标
| 指标 | YOLO26m | 说明 |
|---|---|---|
| 参数量 | 20.4M | 模型大小 |
| FLOPs | 68.2G | 计算量 |
| mAP50-95 | 53.1% | COCO数据集精度 |
| GPU显存 | ~12GB | 推荐配置 |
7. YOLO系列发展脉络
| 版本 | 年份 | 主要创新 |
|---|---|---|
| YOLOv1 | 2015 | 首次实现单阶段检测 |
| YOLOv3 | 2018 | FPN多尺度检测 |
| YOLOv5 | 2020 | CSPDarknet + Pan |
| YOLOv8 | 2023 | C2f + Anchor-free |
| YOLO26 | 2024 | 更深网络 + 注意力机制 |
8. 总结
YOLO26是一个精心设计的深度神经网络,其核心思想是:
- 特征提取:通过11层卷积网络,将640×640×3的图像逐层抽象为20×20×512的特征图
- 多尺度融合:Neck阶段融合不同层级的特征,兼顾细节和语义信息
- 网格检测:在特征图的每个位置预测目标,实现端到端检测
理解YOLO的关键在于理解"特征"的含义——从最初的RGB值,到64维、256维、512维的特征向量,网络逐层提取越来越抽象、越来越有语义信息的内容,最终完成目标检测任务。
参考:
-ultralytics YOLO26 官方实现
- Redmon J, et al. “You Only Look Once: Unified, Real-Time Object Detection”
- Wang CY, et al. “YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information”
本文基于 YOLO26m (20.4M parameters) 架构分析
更多推荐


所有评论(0)