YOLO11 是 Ultralytics 在 2024 年 9 月 10 日发布的官方模型系列,但官方同时明确说明:YOLO11 没有正式研究论文,最权威的信息来源是官方文档、模型 YAML 和源码。 所以“关键创新点”这部分,最好按 官方文档 + 源码实现 来理解。([Ultralytics Docs][1])

1. YOLO11 是什么

官方把 YOLO11 定位为一个 统一的多任务视觉模型家族,不仅有检测版,还包括实例分割、分类、姿态估计和 OBB(旋转框)版本;这些版本都支持 Inference、Validation、Training 和 Export。官方模型页还给出了检测版的 COCO 指标:YOLO11n/s/m/l/x 在 640 输入下的 mAP50-95 分别约为 39.5 / 47.0 / 51.5 / 53.4 / 54.7,同时给出了 CPU ONNX 和 T4 TensorRT10 的速度、参数量和 FLOPs。([Ultralytics Docs][1])

2. 整体网络结构图

按官方 yolo11.yaml,YOLO11 检测版的主拓扑可以概括成这样:

Input
 └─ Backbone
    ├─ Conv(64, 3x3, s=2)                  -> P1/2
    ├─ Conv(128, 3x3, s=2)                 -> P2/4
    ├─ C3k2(256, repeats=2)
    ├─ Conv(256, 3x3, s=2)                 -> P3/8
    ├─ C3k2(512, repeats=2)
    ├─ Conv(512, 3x3, s=2)                 -> P4/16
    ├─ C3k2(512, repeats=2, c3k=True)
    ├─ Conv(1024, 3x3, s=2)                -> P5/32
    ├─ C3k2(1024, repeats=2, c3k=True)
    ├─ SPPF
    └─ C2PSA

 └─ Neck
    ├─ Upsample + Concat(P4) + C3k2
    ├─ Upsample + Concat(P3) + C3k2        -> P3/8 small
    ├─ Downsample + Concat + C3k2          -> P4/16 medium
    ├─ Downsample + Concat + C3k2          -> P5/32 large
    └─ Detect(P3, P4, P5)

Outputs:
  P3/8   small objects
  P4/16  medium objects
  P5/32  large objects

这张图基本就是官方 yolo11.yaml 的文字展开:Backbone 由 Conv + C3k2 + SPPF + C2PSA 组成,Head/Neck 走两次上采样拼接、两次下采样拼接,最后接 Detect(P3, P4, P5) 三个检测层。官方 YAML 还给出了 n/s/m/l/x 的复合缩放系数。([GitHub][2])

3. Backbone:YOLO11 的核心

如果把 YOLO11 和 YOLOv8 放在一起看,官方对比页给出的最明确结论是:YOLO11 用 C3k2 替换了 YOLOv8 里常见的 C2f,并在 Backbone 中加入了 C2PSA。 官方还说,YOLO11 的这套改动目标是 提升特征提取效率,同时减少计算开销。([Ultralytics Docs][3])

从源码参考页看,C3k2 本质上是 基于 C2f 扩展出来的块。它允许内部用普通 Bottleneck,也可以切换成 C3k,还预留了 attention 版本;而 C3k 自身又是一个 可自定义卷积核大小的 C3 模块。这意味着 YOLO11 不是简单“换个名字”,而是在保持 CSP/分阶段聚合思路的同时,把中间的局部特征提取块做得更灵活。([Ultralytics Docs][4])

4. C2PSA:YOLO11 里新的block

C2PSA 是 YOLO11 里最容易被忽略、但很关键的一个模块。官方参考页对它的定义是:带注意力机制的特征提取模块;它会先把输入分成两部分,对其中一部分堆叠 PSABlock,然后再拼回去输出。官方文档还特别说明:C2PSA 本质上和 PSA 相同,只是重构成了更适合堆叠多个 PSABlock 的形式。 ([Ultralytics Docs][4])

官方对比页给出的高层解释更直观:YOLO11 在 Backbone 中加入 C2PSA,是为了让模型更关注关键区域,从而提升 小目标遮挡场景 下的表现。这个说法来自官方对比文档,不是我额外推断。([Ultralytics Docs][3])

5. Neck:还是 PAN/FPN 思路,但和 Backbone 同步换成了 C3k2

yolo11.yaml 看,YOLO11 的 Neck 依旧是你熟悉的 YOLO 多尺度融合范式:
先把深层特征上采样,与浅一层 Backbone 特征拼接;再继续上采样,与更浅层拼接;随后再两次下采样,把信息重新汇聚回中高层,形成 P3/P4/P5 三个检测分支。不同的是,YOLO11 在这些融合块里大量继续使用 C3k2。这也是官方所说“改进 Backbone 和 Neck 架构”的具体落地。([GitHub][2])

6. Detection Head:YOLO11 的输出特征

YOLO11 的检测 YAML 最后一层是 Detect,不是单独一个“YOLO11 专属 head”名字。当前 Ultralytics 源码里的 Detect 头有两个很关键的特征:

第一,它把 框回归分支分类分支 分开了;源码里 cv2 负责 box,cv3 负责 class。第二,它使用了 DFL 风格回归reg_max 默认参与输出维度计算,self.no = nc + self.reg_max * 4。这也说明 YOLO11 原始输出不是旧 YOLOv5/7 那种 x,y,w,h,obj,cls... 结构;至少在当前官方 Detect 实现里,输出是 4×reg_max 的框分布 + nc 个分类分数。([GitHub][5])

这对部署很重要:如果用旧版 C++/ONNX 后处理代码,默认按 obj × cls 去解析 YOLO11 输出,往往会错,因为当前官方 Detect 头不是那个张量定义。([GitHub][5])

7. 关键创新点

理解 YOLO11 的“创新主线”,关注以下 4 条。

第一条,更高的参数利用率。官方模型页明确写到:YOLO11m 在 COCO 上的 mAP 高于 YOLOv8m,同时参数减少 22%。官方对比页也给出类似结论:YOLO11 在保持甚至提升精度的同时,减少了参数量和 FLOPs。([Ultralytics Docs][1])

第二条,C3k2 取代大量 C2f。这可以理解成:YOLO11 继续保留了 Ultralytics 近几代模型重视的 CSP/分阶段聚合思路,但把内部基本块换成了更灵活的 C3k2/C3k 路线。([Ultralytics Docs][3])

第三条,在最深层引入 C2PSA 注意力。这不是“全网到处堆注意力”,而是只在 Backbone 末端深层加入注意力增强块,兼顾收益和开销。YAML 里也能直接看到:SPPF 后面紧跟的就是 C2PSA。([GitHub][2])

第四条,延续 Ultralytics 统一多任务生态。YOLO11 不是只做检测,而是同一套框架下同时覆盖 detection、segmentation、classification、pose 和 OBB,这对真实项目非常重要,因为后续切任务时迁移成本更低。([Ultralytics Docs][1])

8. YOLO11 和 YOLOv8 的关系

其实不是“YOLO11 推翻了 YOLOv8”,而是:YOLO11 是在 YOLOv8 这条 Ultralytics 技术路线上继续收敛和提效。 官方对比页给出的直白表述就是:YOLO11 用 C3k2 + C2PSA 替换和增强了 YOLOv8 的一些关键部分,从而在参数更省的前提下换来更好的精度。([Ultralytics Docs][3])

9. 部署:YOLO11 能导出到哪些后端

Ultralytics 的通用 Export 文档适用于 YOLO11。官方列出的导出格式非常全:TorchScript、ONNX、OpenVINO、TensorRT、CoreML、TF SavedModel、PB、TFLite、Edge TPU、TF.js、PaddlePaddle、MNN、NCNN、IMX500、RKNN、ExecuTorch、Axelera 等都在支持列表里。官方还给出经验结论:TensorRT 最多可带来约 5× GPU speedup,ONNX 或 OpenVINO 最多可带来约 3× CPU speedup。 ([Ultralytics Docs][6])

10. 不同部署场景模型选型

NVIDIA GPU / Jetson,首选一般是 TensorRT,因为官方把它定位成高性能 NVIDIA 推理后端,还支持 FP16/INT8、层融合和动态内存优化。([Ultralytics Docs][7])

通用服务端 / C++ / 跨平台推理,最稳的一般是 ONNX。Ultralytics 的导出模式支持 dynamicsimplify 等选项,适合自己接 ONNX Runtime、OpenCV DNN 或其他推理框架。([Ultralytics Docs][6])

Intel CPU/GPU/NPU,官方更推荐 OpenVINO;文档明确说它可以带来最多约 3× CPU 提速,并能直接跑在 Intel GPU 和 NPU 上。([Ultralytics Docs][8])

移动端或资源受限边缘设备,可以优先考虑 NCNN、TFLite、MNN、RKNN。官方导出页已把这些列为一等支持格式,NCNN 文档也给了导出和加载 *_ncnn_model/ 的用法。([Ultralytics Docs][6])

11. 官方用法和导出命令

YOLO11 官方模型页已经给出 Python 和 CLI 的基本用法:先 YOLO("yolo11n.pt") 加载模型,再 model.train(...) 或直接 model("path/to/bus.jpg") 预测。Export 文档则说明,所有官方模型和自训练权重都可以用同一个 export 接口导出。([Ultralytics Docs][1])

Python 常用写法可以直接这样:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx")
model.export(format="engine", half=True)      # TensorRT FP16
model.export(format="openvino")
model.export(format="ncnn")

CLI 常用写法是:

yolo predict model=yolo11n.pt source=path/to/bus.jpg
yolo export model=yolo11n.pt format=onnx
yolo export model=yolo11n.pt format=engine half=True
yolo export model=yolo11n.pt format=openvino
yolo export model=yolo11n.pt format=ncnn

上面这些命令形式,前半部分来自 YOLO11 模型页的 YOLO("yolo11n.pt") / yolo predict 用法,后半部分来自 Ultralytics 的通用 Export 接口说明。([Ultralytics Docs][1])

12. 自定义部署时注意的坑

最常见的坑有三个。

第一,不要直接套用 YOLOv5/7 的旧后处理张量定义。YOLO11 当前 Detect 源码已经说明了输出通道设计不同。([GitHub][5])

第二,确认导出格式是否启用了动态输入、FP16 或 INT8。官方 Export 文档把这些都列成正式参数,不同选项会直接影响兼容性、速度和精度。([Ultralytics Docs][6])

第三,根据硬件选后端,不要只盯着 ONNX 一个格式。官方自己就把 TensorRT、OpenVINO、NCNN、MNN、RKNN 分成了不同硬件生态下的主要路线。([Ultralytics Docs][6])

13. 总结

YOLO11 = 在 Ultralytics YOLOv8 路线上继续演化出来的高效版:用 C3k2 提升主干/颈部的参数利用率,用 C2PSA 在深层增强关键区域建模,再配合 Ultralytics 统一的 Detect 头和完整导出链路,把精度、速度和部署可用性一起往前推了一步。 这也是为什么官方会把它描述成“更高精度、更少参数、适合边缘到云端多环境部署”的一代模型。([Ultralytics Docs][1])

参考链接:
[1]: https://docs.ultralytics.com/models/yolo11/ “Ultralytics YOLO11 - Ultralytics YOLO Docs”
[2]: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/models/11/yolo11.yaml “ultralytics/ultralytics/cfg/models/11/yolo11.yaml at main · ultralytics/ultralytics · GitHub”
[3]: https://docs.ultralytics.com/compare/yolo11-vs-yolov8/ “YOLO11 vs YOLOv8: A Comprehensive Technical Comparison of Real-Time Vision Models”
[4]: https://docs.ultralytics.com/reference/nn/modules/block/ “Reference for ultralytics/nn/modules/block.py - Ultralytics YOLO Docs”
[5]: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/nn/modules/head.py “ultralytics/ultralytics/nn/modules/head.py at main · ultralytics/ultralytics · GitHub”
[6]: https://docs.ultralytics.com/modes/export/ “Model Export with Ultralytics YOLO - Ultralytics YOLO Docs”
[7]: https://docs.ultralytics.com/integrations/tensorrt/ “TensorRT Export for YOLO26 Models - Ultralytics YOLO Docs”
[8]: https://docs.ultralytics.com/integrations/openvino/ “Intel OpenVINO Export - Ultralytics YOLO Docs”

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐