Ultralytics YOLO27#
YOLO27 模型正在进行最终研发,预计将于今年晚些时候发布。**模型目前尚未开放使用,且尚未确定发布日期。**本页面预览即将推出的模型;功能和基准测试结果可能会在发布前发生变化。以下代码示例将在模型和软件包支持发布后使用,目前的公开软件包无法运行这些示例。目前不会发布模型权重、配置和实现代码。加入 YOLO27 候补名单,第一时间了解发布消息。
概述#
Ultralytics YOLO27 是一系列实时视觉模型,其检测模型采用两种互补的设计:紧凑型 N 和 S 模型采用精简的 CNN 架构,较大型的 M 和 L 模型采用基于查询且无需 NMS 的架构。两种设计都通过同一接口部署。N 和 S 检测模型默认使用带 NMS 的一对多检测头;使用 nms=False 选择它们的无 NMS 检测头。
YOLO27 是 Ultralytics YOLO 系列即将推出的模型系列,接替 YOLO26。该系列包含四种尺寸 — N、S、M 和 L — 并支持目标检测、实例分割、语义分割、深度估计、分类、姿态估计和有向目标检测。两种设计的划分仅适用于检测;其他所有任务都使用 CNN 架构。
在四种检测尺度下,YOLO27 在 COCO 上的 mAP 达到 42.3-60.4,在 NVIDIA RTX PRO 6000 上的延迟为 0.62-2.32 ms;使用更大的 800 像素输入时,YOLO27l 的 mAP 最高可达 61.2。YOLO27l 是首个在 COCO 上 mAP 超过 60 的 Ultralytics 模型,而紧凑型 YOLO27n/s 在速度基本相同的情况下,准确率优于 YOLO26n/s。
from ultralytics import YOLO
model = YOLO("yolo27n.pt") # 加载预训练的 YOLO27n 模型
results = model("path/to/bus.jpg") # 运行推理主要功能#
-
双尺度检测 标准检测器会在三张特征图上预测目标 — 精细、中等和粗略特征图。YOLO27 N 和 S 移除了中等特征图,仅在精细特征图(用于小目标)和粗略特征图(用于大目标)上进行预测,并通过对融合特征进行固定缩放来平衡两个尺度。这样可以大幅减少检测头的计算量,使模型运行更快,同时训练可靠性与完整的三尺度设计相当。
-
更强的小目标检测能力 模型加宽了早期的高分辨率特征阶段,以捕捉更多细粒度细节。结合保留的精细预测特征图,这能改善小目标的定位和回归 — 小目标是紧凑型模型最难处理的类别。
-
前景对齐监督 训练期间,一个额外的轻量级分支会学习在每个位置区分“目标”和“背景”。该分支旨在缩小训练时使用的密集一对多监督与生成最终预测的一对一检测头之间的差距 — 将 YOLO26n/s 上 0.9/0.8 mAP 的准确率差距降至 YOLO27n/s 上仅 0.4 mAP,使部署的一对一检测头几乎保留训练时的全部准确率。该分支仅用于训练,在推理和导出时会被移除,因此不会增加部署成本。
-
无需 NMS 的基于查询检测 较大型模型采用Transformer解码器取代密集预测,该解码器会优化固定数量的目标查询,并直接输出最终检测结果 — 无需进行非极大值抑制后处理。YOLO27m 将该解码器与经过验证的 YOLO26 风格卷积主干网络搭配使用,而 YOLO27l 保留相同的 FPN/PAN 颈部网络,并换用 UltraViT 主干网络,在其最深层阶段使用自注意力来捕捉全局上下文。
-
统一简洁的接口 两种架构都通过相同的
YOLOPython 接口使用。系统会根据模型自动选择合适的训练、验证、预测和导出流程,因此,为某一种 YOLO27 尺度编写的代码无需修改即可用于其他尺度。
我应该使用哪种 YOLO27?#
以下建议适用于 YOLO27 发布后选择模型的场景。目前启动项目,请使用 YOLO26。
- YOLO27n / YOLO27s — 适用于边缘设备、无人机和实时视频:这是该系列中速度最快的模型,双尺度设计提升了小目标检测能力。有关特定设备的部署信息,请参阅 NVIDIA Jetson 和 Raspberry Pi。
- YOLO27m — 适用于 GPU 的准确率与速度平衡之选:在延迟相近的情况下,准确率优于 YOLO26m,是生产环境 GPU 部署的默认选择。
- YOLO27l — 适用于对准确率要求极高的应用:这是首个在 COCO 上 mAP 超过 60 的 Ultralytics 模型,使用更大的输入尺寸时 mAP 可达 61.2,同时仍能在 GPU 上实时运行。
如需与其他系列进行比较,请参阅所有 Ultralytics 模型。如需在自己的硬件上而非我们的硬件上衡量准确率与速度之间的权衡,请参阅 Benchmark mode。
支持的任务和模式#
下表预览了 YOLO27 四种模型尺度计划支持的任务和模式。勾号表示计划在发布时支持,并不代表目前已公开提供;表中列出的所有模型文件均尚未发布。
| 模型 | 文件名 | 任务 | 训练 | 验证 | 推理 | 导出 |
|---|---|---|---|---|---|---|
| YOLO27 | yolo27n.pt yolo27s.pt yolo27m.pt yolo27l.pt | 检测 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-seg | yolo27n-seg.pt yolo27s-seg.pt yolo27m-seg.pt yolo27l-seg.pt | 实例分割 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-sem | yolo27n-sem.pt yolo27s-sem.pt yolo27m-sem.pt yolo27l-sem.pt | 语义分割 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-depth | yolo27n-depth.pt yolo27s-depth.pt yolo27m-depth.pt yolo27l-depth.pt | 深度估计 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-cls | yolo27n-cls.pt yolo27s-cls.pt yolo27m-cls.pt yolo27l-cls.pt | 分类 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-pose | yolo27n-pose.pt yolo27s-pose.pt yolo27m-pose.pt yolo27l-pose.pt | 姿态/关键点 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-obb | yolo27n-obb.pt yolo27s-obb.pt yolo27m-obb.pt yolo27l-obb.pt | 有向检测 | ✅ | ✅ | ✅ | ✅ |
YOLO27 Detect、Segment、Pose 和 OBB 模型也支持 Track 模式,该模式在 predict 之上运行,可在视频帧间跟踪多个目标。
YOLO27 检测在同一接口下采用两种设计:N 和 S 尺度使用精简的 CNN 架构,而 M 和 L 尺度使用基于查询且无需 NMS 的架构。其他所有任务都使用 CNN 架构。
性能指标#
检测准确率在 COCO 验证集上报告。有关 mAP、精确率和召回率的说明,请参阅 YOLO 性能指标。推理速度在用于 GPU 的 NVIDIA RTX PRO 6000(TensorRT 11,FP16)和用于 CPU 的 AMD EPYC 9655(ONNX Runtime,FP32)上测量。发布后,可使用 yolo val model=yolo27n.pt data=coco.yaml 复现准确率数据。
这些研究结果可能会在最终研发期间发生变化。公开权重和复现说明将在发布时一并提供。
有关使用这些在 COCO 上训练的模型的示例,请参阅检测文档;这些模型包含 80 个预训练类别。表格使用 640 像素输入;概述中也报告了 YOLO27l 使用 800 像素输入的结果。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 RTX PRO 6000 TensorRT11 (ms) | 参数量 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO27n | 640 | 42.3 | 16.1 ± 1.6 | 0.62 ± 0.00 | 3.0 | 7.2 |
| YOLO27s | 640 | 49.6 | 33.2 ± 0.1 | 0.79 ± 0.00 | 11.8 | 28.2 |
| YOLO27m | 640 | 55.8 | 67.2 ± 0.3 | 1.39 ± 0.00 | 22.8 | 65.0 |
| YOLO27l | 640 | 60.4 | 149.6 ± 1.4 | 2.32 ± 0.00 | 72.3 | 165.3 |
Params 和 FLOPs 数值针对融合后的模型计算,融合过程包括 Conv/BatchNorm 折叠和移除未使用的检测分支。对于检测任务,速度测量选用不含 NMS 的检测头,并使用 nms=False;N/S 的精度取决于所选检测头。预训练检查点保留完整的训练架构,因此计数可能更高。
用法示例#
本节提供简单的 YOLO27 训练和推理示例。有关这些模式及其他 模式的完整文档,请参阅预测、训练、 验证和导出文档页面。有关自定义数据集,请参阅获得最佳训练效果的技巧和超参数调优指南。
请注意,下面的示例适用于 YOLO27 检测模型,用于目标 检测。有关支持的其他任务,请参阅分割和分类文档。
你可以将 PyTorch 预训练的 *.pt 模型以及配置
*.yaml 文件传递给 YOLO() 类,以在 Python 中创建模型实例:
from ultralytics import YOLO
# 加载使用 COCO 预训练的 YOLO27n 模型
model = YOLO("yolo27n.pt")
# 使用 YOLO27n 模型对“bus.jpg”图像进行推理
results = model("path/to/bus.jpg")
# 使用 COCO8 示例数据集训练模型 100 个 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)常见问题#
- 双尺度检测(N/S):舍弃中尺度预测图,使检测头更快,同时保持有竞争力的精度
- 增强小目标检测(N/S):加宽前段特征阶段,提升小目标定位效果
- 前景对齐监督(N/S):将一对多与一对一检测之间的精度差距从 YOLO26n/s 上的 0.9/0.8 mAP 缩小到 YOLO27n/s 上的 0.4 mAP,且不增加推理开销
- 基于查询的不含 NMS 检测(M/L):Transformer 解码器直接输出最终检测结果
- 统一的简洁接口:两种架构都通过同一个
YOLO类运行
暂时不要——YOLO27 尚未发布。目前的项目请继续使用 YOLO26。初步结果显示,各种模型尺寸的精度都有提升,其中 YOLO27l 在 COCO 上超过了 60 mAP。迁移前,请先用最终发布的模型评估它们是否适合你的工作负载。
发布后,YOLO27 计划沿用 YOLO26 的
YOLO类以及相同的 train/val/predict/export API——模型会自动选择合适的 pipeline(CNN 或基于查询的架构)。待 YOLO27 支持和权重可用后,将yolo26n.pt换成yolo27n.pt就是预期的模型选择变更。大多数检测器会在不同分辨率的三张特征图上进行预测。YOLO27 N 和 S 保留小目标所依赖的细粒度特征图,以及大目标所需的粗粒度特征图,并跳过中间尺度的特征图。这样可以显著减少检测头的计算量,而上述训练改进则使精度与延迟之间的权衡保持竞争力。
YOLO27l 是首个在 COCO 上超过 60 mAP 的 Ultralytics 模型:输入尺寸为 640 像素时达到 60.4 mAP(在 NVIDIA RTX PRO 6000 上耗时 2.3 ms),输入尺寸为 800 像素时达到 61.2 mAP(耗时 2.9 ms)。它结合了 UltraViT 主干网络、多尺度特征融合和基于查询的检测器,可直接生成最终检测结果,无需 NMS。
YOLO27 正在进行最终的 R&D,预计于今年晚些时候推出。目前尚未确定发布日期。模型权重和实现代码目前尚未公开。