摘要

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层:

层级模块输入→输出分辨率变化功能说明
0Conv3→64640→320初始卷积,提取基础特征
1Conv64→128320→160通道扩展
2C3k2128→256160→160CSP瓶颈块,浅层特征提取
3Conv256→256160→80下采样
4C3k2256→51280→80CSP瓶颈块,中层特征提取
5Conv512→51280→40下采样
6C3k2512→51240→40CSP瓶颈块
7Conv512→51240→20下采样
8C3k2512→51220→20CSP瓶颈块,高层语义特征
9SPPF512→51220→20空间金字塔池化,多尺度融合
10C2PSA512→51220→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采用三个检测头,分别负责不同尺度的目标检测:

检测头特征图尺寸负责检测的目标
P380×80小目标
P440×40中等目标
P520×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模型大小
FLOPs68.2G计算量
mAP50-9553.1%COCO数据集精度
GPU显存~12GB推荐配置

7. YOLO系列发展脉络

版本年份主要创新
YOLOv12015首次实现单阶段检测
YOLOv32018FPN多尺度检测
YOLOv52020CSPDarknet + Pan
YOLOv82023C2f + Anchor-free
YOLO262024更深网络 + 注意力机制

8. 总结

YOLO26是一个精心设计的深度神经网络,其核心思想是:

  1. 特征提取:通过11层卷积网络,将640×640×3的图像逐层抽象为20×20×512的特征图
  2. 多尺度融合:Neck阶段融合不同层级的特征,兼顾细节和语义信息
  3. 网格检测:在特征图的每个位置预测目标,实现端到端检测

理解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) 架构分析

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐