Contents — find the section you need

YOLO 系列一直是应用最广泛的实用目标检测方法之一,自 2023 年发布 YOLOv8 以来,该系列一直在持续发展。Ultralytics 于 2024 年 9 月 10 日发布了 YOLO11,它保留了 YOLOv8 的“主干 → 颈部 → 头部”结构,但重新设计了内部模块。本文将结合官方文档和模型定义 YAML 文件中的原始信息,并辅以公式和图表,验证 YOLO11 的改进之处和保留之处。

本文基于 Ultralytics 官方文档 (docs.ultralytics.com)、官方 GitHub 仓库中的配置文件以及预印本“YOLOv11 揭秘”(arXiv:2604.03349)。

0. 您将学到什么

  • YOLO11 相对于 YOLOv8 的具体改进,包括 C3k2 和 C2PSA

  • 无锚点检测头如何预测坐标,包括 DFL

  • 用于训练的损失函数和数据增强方法

  • 使用官方测量数据,在五种尺寸(n/s/m/l/x)下,准确率、参数数量和速度的变化情况

  • 何时选择 YOLO11,何时考虑其他方案

1. 什么是 YOLO11?

YOLO11 是由 Ultralytics 开发和发布的新一代实时目标检测模型。它保留了YOLOv8的三阶段“骨干、颈部和头部”设计,用新设计的C3k2替换了其特征提取模块,并在骨干末端添加了C2PSA空间注意力模块。相同的通用架构在一个框架内涵盖了检测、分割、姿态估计、分类、定向边界框(OBB)和跟踪等任务。

2. 为什么需要进行此次重新设计?

当时,YOLOv8被广泛用作单阶段检测器,具有很高的精度-速度平衡性,但仍有两个方面需要改进。首先是参数效率。如果能够用更少的参数和浮点运算次数(FLOPs)达到相同的精度,那么在边缘设备和电池供电机器人上的部署将更加实用。其次是缺乏明确的机制来学习在特征图中应该关注哪些区域。YOLOv8的骨干网络使用卷积来构建特征,但没有专门的机制来将重要区域与背景分离。 C3k2 和 C2PSA 分别解决了这两个问题。

3. 输入是什么?

与许多其他 YOLO 检测器一样,YOLO11 接受一张经过调整大小和填充的固定尺寸 RGB 图像(默认为 640 × 640 像素)。在训练和推理过程中,输入都以批处理的 [B, 3, H, W] 张量形式处理。无需任何特殊的预处理,例如专有归一化或图像块分割:经过标准增强(例如 Mosaic)后的图像将直接传递给主干网络。

4. 预测什么?

对于图像中的每个对象,输出包含一个类别、边界框坐标和一个置信度分数。YOLO11 使用一个解耦头部,将分类和边界框回归分支分开。它也是无锚框的,因此可以直接回归坐标而无需预定义的锚框。 YOLO11 的思想在于预测每个网格位置到目标边界的距离,这使得它与 FCOS 系列无锚点检测器相联系。移除针对多种长宽比和尺度的预定义框,可以减少超参数调优,并提高对具有极端长宽比目标的泛化能力。

5. 基本架构

与 YOLOv8 类似,YOLO11 也遵循三阶段“主干 → 颈部 → 头部”的结构。不同之处在于这些阶段的内容。

Diagram 1 · Use the button to switch views
YOLO11 basic pipeline Flow from a 640 by 640 input image through a backbone containing C3k2 blocks, SPPF, and C2PSA spatial attention, into multi-scale P3/P4/P5 features, bidirectional fusion in a PAN-FPN neck, and an anchor-free detection head. Input image 640×640 Backbone C3k2 blocks SPPF C2PSA (spatial attention) Multi-scale P3/P4/P5 Neck PAN-FPN C3k2 blocks High- and low-level features fused both ways Head Anchor-free Box branch: DFL Cls branch: depthwise separable convolution Class + box coordinates + confidence

图 1 — YOLO11 的主干网、颈部和头部。蓝色高亮框表示与 YOLOv8 相比有所更改的部分。C3k2 替换了主干网和颈部的基本模块,而 C2PSA 则被添加到主干网的末端,紧接在 SPPF 之后。

主干网输出三种分辨率的特征图:P3、P4 和 P5。颈部(PAN-FPN:路径聚合网络 + 特征金字塔网络)融合了两个方向上的高分辨率和低分辨率特征,使得同一个网络能够检测小型和大型物体。这种多尺度融合框架与 YOLOv8 相同。

变化之处在于,C2f 被 C3k2 取代,成为基本模块,并且 C2PSA 被插入到主干输出端。

6. 组件的技术细节

C3k2 — C2f 的泛化

YOLOv8 使用具有 CSP(跨阶段部分)结构的 C2f 模块作为其基本单元。C2f 将输入通道分成两条路径,一条路径经过多个瓶颈模块,另一条路径作为捷径,然后将两条路径的输出以及每个瓶颈模块的中间输出连接起来,最后通过 1 × 1 卷积进行合并。

YOLO11 保留了重复内部模块的思想,但使内部模块类型可配置。在官方模型定义(YAML)中,C3k2 中的每个块根据构造函数标志可以是以下几种类型之一:

  1. 普通的 Bottleneck(用于小型 n 模型)

  2. C3k 块(一种内核大小可配置的 C3 结构,与 c3k=True 一起用于中型和大型 m/l/x 模型)

  3. Bottleneck + PSABlock 对(用于骨干网末端的 C2PSA 内部)

换句话说,C3k2 是一个通用块:它保留了 C2f 的理念,同时允许其内部瓶颈根据模型大小和位置从轻量级块扩展到配备注意力机制的块。一个实现细节是,通过切换这些内部组件,一个 YAML 配置即可涵盖所有五种尺寸:n/s/m/l/x。

C2PSA — 为骨干网络添加空间注意力

C2PSA(跨阶段部分空间注意力模块)是 YOLO11 中新增的一个模块,紧接在 SPPF(空间金字塔池化 - 快速,一个利用多种池化尺寸扩展感受野的模块)之后。C2PSA 也遵循 CSP 结构:一条路径经过多个 PSABlock。每个 PSABlock 都结合了多头自注意力机制 (MHSA) 和一个两层前馈网络 (FFN),并通过残差路径连接。

z = x + \text{MHSA}(x), \qquad y = z + \text{FFN}(z)

其中,x 是输入特征,\text{MHSA} 是多头自注意力机制,\text{FFN} 是两层前馈网络。与 YOLOv8 仅使用卷积的骨干网络相比,C2PSA 使用自注意力机制直接学习特征图中远距离位置之间的关系。它补充了卷积的局部感受野,并有助于将权重集中在图像的重要区域。

无锚框检测头和分布式焦点损失 (DFL)

YOLO11 的检测头将分类和边界框回归分离成两个独立的分支。它不使用预定义的锚框;相反,特征图上的每个网格点直接预测到目标边界的距离。对于四个方向中的每一个,边界框回归分支输出一个基于 \text{reg\_max}=16 个离散区间的概率分布,并使用其期望值作为连续距离。这就是分布式焦点损失 (DFL) 背后的思想,它继承自 YOLOv8,并由 Li 等人在“广义焦点损失”(NeurIPS 2020) 中提出。

\hat{d} = \sum_{i=0}^{\text{reg\_max}-1} P(i) \cdot i, \qquad \sum_{i=0}^{\text{reg\_max}-1} P(i) = 1

该模型并非直接回归到边界的单个实数距离,而是学习一个基于可能区间的离散分布。这使得训练更加稳定,同时允许分布表达轮廓模糊或被遮挡物体的不确定性。YOLO11 还改进了分类分支,使用深度可分离卷积,与普通卷积相比,减少了参数数量和计算量。

损失函数和训练方案

YOLO11 的训练损失是以下损失的加权和:用于框回归的 CIoU(完全 IoU)损失、用于坐标分布的 DFL 损失以及用于分类的 BCE(二元交叉熵)损失。

\mathcal{L} = \lambda_{box}\,\mathcal{L}_{CIoU} + \lambda_{dfl}\,\mathcal{L}_{DFL} + \lambda_{cls}\,\mathcal{L}_{BCE}

CIoU 损失不仅评估 IoU(重叠率),还评估框中心之间的距离以及它们的长宽比匹配程度。

\mathcal{L}_{CIoU} = 1 - IoU + \frac{\rho^2(b, b^{gt})}{c^2} + \alpha v, \qquad v = \frac{4}{\pi^2}\left(\arctan\frac{w^{gt}}{h^{gt}} - \arctan\frac{w}{h}\right)^2

\rho(b, b^{gt}) 表示预测框中心与真实框中心之间的欧氏距离,c 表示包含两个框的最小矩形的对角线长度,v 表示宽高比不匹配,\alpha 是一个系数,当 IoU 增大时,该系数赋予 v 更大的权重。当框不重叠时,单独优化 IoU 几乎无法提供梯度;中心距离和宽高比项可以缓解这个问题。

训练使用了多种数据增强方法,包括 Mosaic(拼接多幅图像)、MixUp(混合两幅图像)、Copy-Paste(将一个对象区域粘贴到另一幅图像中)、RandAugment(自动选择随机变换)和 Erasing(移除随机矩形区域)。这些细节遵循“YOLOv11 揭秘”(arXiv:2604.03349)中的描述。

7. 模型变体比较

YOLO11 提供五种不同参数数量和计算需求的模型:n(nano)、s(small)、m(medium)、l(large)和 x(extra-large)。以下是 Ultralytics 官方文档中报告的基于 COCO val2017 数据集(输入图像尺寸为 640 像素)的基准测试值。

| 模型 | mAP50-95 | 参数 | 浮点运算次数 | CPU ONNX 推理 | T4 TensorRT 推理 | |---|---|---|---|---|---|---| | YOLO11n | 39.5 | 2.6M | 6.5B | 56.1 ± 0.8 ms | 1.5 ± 0.0 ms | | YOLO11s | 47.0 | 9.4M | 21.6B | 90.0 ± 1.2 ms | 2.5 ± 0.0 ms | | YOLO11m | 51.5 | 20.1M | 68.1B | 183.2 ± 2.0 ms | 4.7 ± 0.1 ms | | YOLO11l | 53.4 | 25.3M | 87.2B | 238.6 ± 1.4 ms | 6.2 ± 0.1 ms | | YOLO11x | 54.7 | 56.9M | 195.3B | 462.8 ± 6.7 ms | 11.3 ± 0.2 ms |

来源:Ultralytics YOLO11 官方文档。CPU ONNX 推理使用 ONNX Runtime;T4 TensorRT 推理在 NVIDIA T4 GPU 上以 FP16 格式进行。

有两个实际要点值得注意。首先,参数数量从 n 到 x 大约增长了 22 倍,而 mAP50-95 仅提升了约 15 个点,从 39.5 提升到 54.7:准确率和模型大小并非线性关系。其次,考虑 m 和 l 之间的差距。参数数量仅从 2010 万增加到 2530 万,而 mAP 从 51.5 提升到 53.4,GPU 推理时间从 4.7 毫秒增加到 6.2 毫秒。因此,从 m 到 l 的收益略低于从 n → s → m 的递增。这些数据支持在边缘部署中使用 n/s 模型,而在以准确率为优先的固定系统中使用 l/x 模型。

与 YOLOv8 的定量比较

将 Ultralytics 文档中报告的 YOLOv8 值与 YOLO11 值并列,可以更直观地展现代际变化。

模型 mAP50-95 (v8 → v11) 参数 (v8 → v11) FLOPs (v8 → v11) CPU ONNX 推理 (v8 → v11)
n 37.3 → 39.5 3.2M → 2.6M 8.7B → 6.5B 80.4ms → 56.1ms
s 44.9 → 47.0 11.2M → 9.4M 28.6B → 21.6B 128.4ms → 90.0ms
米 50.2 → 51.5 25.9M → 20.1M 78.9B → 68.1B 234.7 毫秒 → 183.2 毫秒
我 52.9 → 53.4 43.7M → 25.3M 165.1B → 87.2B 375.2 毫秒 → 238.6 毫秒
x 53.9 → 54.7 68.2M → 56.9M 257.8B → 195.3B 479.1 毫秒 → 462.8 毫秒

数据来源:YOLOv8 官方文档 和 YOLO11 官方文档(COCO val2017,640 像素,两者均采用 CPU ONNX 推理)。

对于 l 尺寸,参数数量从 4370 万减少到 2530 万,几乎减少了一半,而 mAP 略有提升。这正是 C3k2 和 C2PSA 的参数效率优势最为显著之处。对于 x 尺寸,参数数量和 FLOPs 大幅下降,但 CPU 推理时间仅略有提升,这表明 C2PSA 中的自注意力机制计算可能会成为大型模型的瓶颈。

简而言之,YOLO11 正在朝着以更少的参数和 FLOPs 实现至少与 YOLOv8 相当的 mAP 的方向发展。但这并不意味着它总是优于 YOLOv8:根据任务和数据集的不同,老一代模型仍然可能拥有更高的绝对准确率。 目标检测趋势文章也讨论了这一点。

YOLO11 的功能拓展

YOLO11 的功能不仅限于目标检测。通过仅替换头部,同时保持主干和颈部不变,该框架涵盖了实例分割 (YOLO11-seg)、姿态估计 (YOLO11-pose,通过回归关键点坐标)、分类 (YOLO11-cls)、定向边界框检测 (YOLO11-obb,同样通过回归倾斜物体的方向) 以及跨多帧跟踪。由于 C3k2 和 C2PSA 改进了主干,它们的优势在这些任务中得以共享。这也表明,YOLO11 的设计目标是成为一个通用的视觉识别基础,而不仅仅是一个目标检测模型。

8. 它的不足之处

YOLO11 保留了 YOLO 系列模型的常见弱点。小型和远距离物体的检测仍然困难。由于主干网络的分辨率会逐渐降低,一个只有几个像素宽的物体在到达更深层时,其几乎所有特征都会丢失。C2PSA 可以部分缓解这个问题,但无法从根本上解决。

包含大量相似物体的密集场景也是一大挑战。DFL 和 CIoU 可以改善边界回归,但边界重叠的相邻物体(例如人群或果园中密集排列的水果)仍然会产生误检和漏检。

对域偏移的敏感性是基于 CNN 的检测器普遍存在的问题。在光照、天气或相机角度与训练数据差异较大的情况下,准确率可能会急剧下降。C2PSA 的感受野不如基于 Transformer 的 DETR 系列广泛,因此 YOLO11 在这方面可能不够鲁棒。

YOLO11 也以 AGPL-3.0 许可证发布。如果商业部署需要对源代码保密,则需要 Ultralytics 企业许可证。这并非技术上的缺陷,而是一个容易被忽视的实际限制。

9. 实际应用中的选择

对于边缘设备和电池供电机器人,推理速度和参数数量通常是制约因素,因此 YOLO11n/s 是首选。n 模型大约 56 毫秒的 CPU 推理时间使其能够在 Raspberry Pi 级别的嵌入式硬件上运行,具体运行时间取决于系统的其他部分。

对于无人机和其他移动平台的空中巡检,小目标检测至关重要。与其简单地选择更大的 YOLO11 模型,不如提高输入分辨率或使用分块推理。一些报告指出,可变形注意力 DETR 变体在这方面具有优势,因此当精度是首要考虑因素时,RT-DETR 和其他模型系列也是合理的比较对象。

对于使用固定仓库或工厂摄像头进行巡检,当 GPU 资源充足且精度是首要考虑因素时,YOLO11l/x 也是不错的选择。即使如此,基于 Transformer 的检测器(例如 RF-DETR)在 COCO 数据集上也取得了超过 60 mAP 的成绩,因此 YOLO 不再是唯一选择。详情请参阅目标检测趋势文章。

对于研究和原型开发而言,Ultralytics 的 Python 包的成熟度是选择 YOLO11 的一个实际理由:训练、推理和导出只需几行代码即可完成。如果其许可限制可以接受,那么快速获得可用的基线仍然是其主要优势。

10. 三行总结

  • YOLO11 保留了 YOLOv8 的骨干-颈部-头部结构,用 C3k2 替换了其基本模块,并通过 C2PSA 添加了空间注意力机制。

  • 其无锚点头部将边界距离预测为 DFL 分布的期望值,而 CIoU 则联合优化重叠度、中心距离和纵横比。

参数效率随着参数数量从 n 增加到 x 而提高,但小目标、密集场景和域偏移仍然是 YOLO 系列检测器面临的常见挑战。

如需更深入地了解目标检测和语义分割,请参阅目标检测和语义分割:简介。如需了解 YOLO 系列的最新发展趋势,包括无 NMS 方法以及来自 DETR 模型的竞争,请参阅目标检测趋势文章。

参考资料

检查你的理解
高检测分数是否保证位置和类别正确?

分数是模型输出,并非正确性的保证。请将不同阈值下的精确率和召回率与检测到的框的定位准确率分开评估。

What to read next

Review the background目标检测与语义分割入门——从图像中读取“物体位置”Continue the seriesSegFormer详解——为什么没有位置编码的Transformer也能用于视频分割Explore another aspect of this field基准测试本地LLM:首次响应、生成率和内存