跳转至内容

Ultralytics YOLO26

概述

Ultralytics YOLO26 是 YOLO 系列实时对象检测器的最新演进,从头开始专为边缘和低功耗设备而设计。它引入了简化的设计,消除了不必要的复杂性,同时集成了有针对性的创新,以实现更快、更轻、更易于访问的部署。

Ultralytics YOLO26 比较图

试用UltralyticsUltralytics

Ultralytics 直接探索并运行YOLO26模型。

YOLO26 的架构遵循三个核心原则:

  • 简洁性: YOLO26是一个原生的端到端模型,直接生成预测结果,无需非极大值抑制(NMS)。通过消除这一后处理步骤,推理变得更快、更轻量,并且更容易部署到实际系统中。这种突破性方法最初由清华大学的王傲在YOLOv10中开创,并在YOLO26中得到了进一步发展。
  • 部署效率: 端到端设计消除了管道的整个阶段,从而大大简化了集成,减少了延迟,并使部署在各种环境中更加稳健。
  • 训练创新:YOLO26 引入了MuSGD 优化器,它是 SGDMuon 的混合体——灵感来源于 Moonshot AI 在 LLM 训练中 Kimi K2 的突破。该优化器带来了增强的稳定性和更快的收敛,将语言模型中的优化进展转移到计算机视觉领域。
  • 任务特定优化:YOLO26 针对专业任务引入了有针对性的改进,包括用于 Segmentation 的语义分割损失和多尺度原型模块,用于高精度 姿势估计 的残差对数似然估计 (RLE),以及通过角度损失优化解码以解决 旋转框检测 中的边界问题。

这些创新共同提供了一个模型系列,该模型系列在小对象上实现了更高的精度,提供了无缝部署,并且在 CPU 上的运行速度提高了 43% — 使 YOLO26 成为迄今为止资源受限环境中最实用和可部署的 YOLO 模型之一。

主要功能

  • DFL 移除
    分布式焦点损失(DFL)模块虽然有效,但常常使导出复杂化并限制了硬件兼容性。YOLO26 完全移除了 DFL,简化了推理过程,并拓宽了对边缘和低功耗设备的支持。

  • 端到端无NMS推理
    与依赖NMS作为独立后处理步骤的传统检测器不同,YOLO26是原生端到端的。预测结果直接生成,减少了延迟,并使集成到生产系统更快、更轻量、更可靠。

  • ProgLoss + STAL
    改进的损失函数提高了检测精度,在小目标识别方面有显著改进,这是物联网、机器人、航空影像和其他边缘应用的关键要求。

  • MuSGD Optimizer
    一种新型混合优化器,结合了SGDMuon。灵感来自 Moonshot AI 的Kimi K2,MuSGD 将 LLM 训练中的先进优化方法引入计算机视觉,从而实现更稳定的训练和更快的收敛。

  • CPU推理速度提升高达43%
    YOLO26专为边缘计算优化,提供显著更快的CPU推理,确保在没有GPU的设备上实现实时性能。

  • 实例分割增强
    引入语义分割损失以改善模型收敛,以及升级的原型模块,该模块利用多尺度信息以获得卓越的掩膜质量。

  • 精确姿势估计
    集成残差对数似然估计 (RLE),以实现更精确的关键点定位,并优化解码过程以提高推理速度。

  • 优化旋转框检测解码
    引入专门的角度损失以提高方形物体的检测精度,并优化旋转框检测解码以解决边界不连续性问题。

Ultralytics YOLO26 端到端对比图


支持的任务和模式

YOLO26 基于早期 Ultralytics YOLO 版本建立的多功能模型系列,为各种计算机视觉任务提供增强支持:

模型文件名任务推理验证训练导出
YOLO26yolo26n.pt yolo26s.pt yolo26m.pt yolo26l.pt yolo26x.pt检测
YOLO26-segyolo26n-seg.pt yolo26s-seg.pt yolo26m-seg.pt yolo26l-seg.pt yolo26x-seg.pt实例分割
YOLO26-姿势估计yolo26n-pose.pt yolo26s-pose.pt yolo26m-pose.pt yolo26l-pose.pt yolo26x-pose.pt姿势/关键点
YOLO26-obbyolo26n-obb.pt yolo26s-obb.pt yolo26m-obb.pt yolo26l-obb.pt yolo26x-obb.pt定向检测
YOLO26-clsyolo26n-cls.pt yolo26s-cls.pt yolo26m-cls.pt yolo26l-cls.pt yolo26x-cls.pt分类

这种统一的框架确保 YOLO26 适用于实时检测、分割、分类、姿势估计和定向对象检测,所有这些都支持训练、验证、推理和导出。


性能指标

性能

请参阅detect 文档,以获取这些在COCO上训练的模型的使用示例,其中包括80个预训练类别。

模型尺寸
(像素)
mAPval
50-95
mAPval
50-95(e2e)
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.9

请参阅segment 文档,以获取这些在COCO上训练的模型的使用示例,其中包括80个预训练类别。

模型尺寸
(像素)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

请参阅分类文档,以获取这些在ImageNet上训练的模型的使用示例,其中包括1000个预训练类别。

模型尺寸
(像素)
acc
top1
acc
top5
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B) at 224
YOLO26n-cls22471.490.15.0 ± 0.31.1 ± 0.02.80.5
YOLO26s-cls22476.092.97.9 ± 0.21.3 ± 0.06.71.6
YOLO26m-cls22478.194.217.2 ± 0.42.0 ± 0.011.64.9
YOLO26l-cls22479.094.623.2 ± 0.32.8 ± 0.014.16.2
YOLO26x-cls22479.995.041.4 ± 0.93.8 ± 0.029.613.6

请参阅姿势估计文档,以获取这些在COCO上训练的模型的使用示例,其中包括1个预训练类别,“person”。

模型尺寸
(像素)
mAP姿势估计
50-95(e2e)
mAP姿势估计
50(e2e)
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLO26n-姿势估计64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-姿势估计64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-姿势估计64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-姿势估计64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-姿势估计64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7

请参阅定向 detect 文档,以获取这些在DOTAv1上训练的模型的使用示例,其中包括15个预训练类别。

模型尺寸
(像素)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLO26n-obb102452.478.997.7 ± 0.92.8 ± 0.02.514.0
YOLO26s-obb102454.880.9218.0 ± 1.44.9 ± 0.19.855.1
YOLO26m-obb102455.381.0579.2 ± 3.810.2 ± 0.321.2183.3
YOLO26l-obb102456.281.6735.6 ± 3.113.0 ± 0.225.6230.0
YOLO26x-obb102456.781.71485.7 ± 11.530.5 ± 0.957.6516.5

使用示例

本节提供简单的YOLO26训练和推理示例。有关这些及其他模式的完整文档,请参阅预测训练验证导出文档页面。

请注意,以下示例适用于YOLO26 Detect模型,用于目标检测。有关其他支持的任务,请参阅SegmentClassify旋转框检测姿势估计文档。

示例

PyTorch pretrained *.pt 模型以及配置 *.yaml 文件可以传递给 YOLO() 类在 Python 中创建模型实例:

from ultralytics import YOLO

# Load a COCO-pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLO26n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

可以使用 CLI 命令直接运行模型:

# Load a COCO-pretrained YOLO26n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolo26n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLO26n model and run inference on the 'bus.jpg' image
yolo predict model=yolo26n.pt source=path/to/bus.jpg

双头架构

YOLO26采用双头架构,为不同部署场景提供灵活性:

  • 一对一头(默认)生成端到端预测结果,不NMS(非最大似然)处理,输出 (N, 300, 6) 每张图像最多可检测300个目标。该检测头经过优化,可实现快速推理和简化部署。
  • 一对多头生成需要NMS 传统YOLO ,输出 (N, nc + 4, 8400) 其中 nc 是类别数量。这种头部通常以额外处理为代价,能实现略高的准确率。

您可以在导出、预测或验证过程中切换预测头:

from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Use one-to-one head (default, no NMS required)
results = model.predict("image.jpg")  # inference
metrics = model.val(data="coco.yaml")  # validation
model.export(format="onnx")  # export

# Use one-to-many head (requires NMS)
results = model.predict("image.jpg", end2end=False)  # inference
metrics = model.val(data="coco.yaml", end2end=False)  # validation
model.export(format="onnx", end2end=False)  # export
# Use one-to-one head (default, no NMS required)
yolo predict model=yolo26n.pt source=image.jpg
yolo val model=yolo26n.pt data=coco.yaml
yolo export model=yolo26n.pt format=onnx

# Use one-to-many head (requires NMS)
yolo predict model=yolo26n.pt source=image.jpg end2end=False
yolo val model=yolo26n.pt data=coco.yaml end2end=False
yolo export model=yolo26n.pt format=onnx end2end=False

选择取决于您的部署需求:若追求最高速度和简便性,请选用一对一处理器;若精度是首要考量,则应选用多对一处理器。

YOLOE-26:开放词汇实例分割

YOLOE-26将高性能YOLO26架构与YOLOE系列的开放词汇能力相结合。它通过使用文本提示视觉提示无提示模式进行零样本推理,实现对任何目标类别的实时检测和分割,有效消除了固定类别训练的限制。

通过利用YOLO26的免NMS、端到端设计,YOLOE-26提供了快速的开放世界推理。这使其成为动态环境中边缘应用的强大解决方案,其中感兴趣的目标代表着广泛且不断演进的词汇。

性能

请参阅YOLOE文档,了解这些模型在Objects365v1GQAFlickr30k数据集上训练的使用示例。

模型尺寸
(像素)
提示类型mAPminival
50-95(e2e)
mAPminival
50-95
mAPrmAPcmAPf参数
(M)
FLOPs
(B)
YOLOE-26n-seg640文本/视觉23.7 / 20.924.7 / 21.920.5 / 17.624.1 / 22.326.1 / 22.44.86.0
YOLOE-26s-seg640文本/视觉29.9 / 27.130.8 / 28.623.9 / 25.129.6 / 27.833.0 / 29.913.121.7
YOLOE-26m-seg640文本/视觉35.4 / 31.335.4 / 33.931.1 / 33.434.7 / 34.036.9 / 33.827.970.1
YOLOE-26l-seg640文本/视觉36.8 / 33.737.8 / 36.335.1 / 37.637.6 / 36.238.5 / 36.132.388.3
YOLOE-26x-seg640文本/视觉39.5 / 36.240.6 / 38.537.4 / 35.340.9 / 38.841.0 / 38.869.9196.7

请参阅YOLOE文档,了解这些模型在Objects365v1GQAFlickr30k数据集上训练的使用示例。

模型尺寸
(像素)
mAPminival
50-95(e2e)
mAPminival
50(e2e)
参数
(M)
FLOPs
(B)
YOLOE-26n-seg-pf64016.622.76.515.8
YOLOE-26s-seg-pf64021.428.616.235.5
YOLOE-26m-seg-pf64025.733.636.2122.1
YOLOE-26l-seg-pf64027.235.440.6140.4
YOLOE-26x-seg-pf64029.938.786.3314.4

使用示例

YOLOE-26 支持基于文本和基于视觉的提示。使用提示非常简单——只需通过 predict 方法,如下所示:

示例

文本提示允许您通过文本描述指定要 detect 的类别。以下代码展示了如何使用 YOLOE-26 来 detect 图像中的人物和公交车:

from ultralytics import YOLO

# Initialize model
model = YOLO("yoloe-26l-seg.pt")  # or select yoloe-26s/m-seg.pt for different sizes

# Set text prompt to detect person and bus. You only need to do this once after you load the model.
names = ["person", "bus"]
model.set_classes(names, model.get_text_pe(names))

# Run detection on the given image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

通过展示目标类别的视觉示例(而不是用文字描述),视觉提示允许您引导模型。

import numpy as np

from ultralytics import YOLO
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor

# Initialize model
model = YOLO("yoloe-26l-seg.pt")

# Define visual prompts using bounding boxes and their corresponding class IDs.
# Each box highlights an example of the object you want the model to detect.
visual_prompts = dict(
    bboxes=np.array(
        [
            [221.52, 405.8, 344.98, 857.54],  # Box enclosing person
            [120, 425, 160, 445],  # Box enclosing glasses
        ],
    ),
    cls=np.array(
        [
            0,  # ID to be assigned for person
            1,  # ID to be assigned for glasses
        ]
    ),
)

# Run inference on an image, using the provided visual prompts as guidance
results = model.predict(
    "ultralytics/assets/bus.jpg",
    visual_prompts=visual_prompts,
    predictor=YOLOEVPSegPredictor,
)

# Show results
results[0].show()

YOLOE-26 包含免提示变体,这些变体自带内置词汇表。这些模型不需要任何提示,并且像传统的 YOLO 模型一样工作。它们不依赖用户提供的标签或视觉示例,而是根据 Recognize Anything Model Plus (RAM++) 使用的标签集,从 4,585 个预定义类别列表中 detect 对象。

from ultralytics import YOLO

# Initialize model
model = YOLO("yoloe-26l-seg-pf.pt")

# Run prediction. No prompts required.
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()

要深入了解提示技术、从头开始训练以及完整的用法示例,请访问 YOLOE 文档

引用和致谢

Ultralytics YOLO26 发布

由于模型快速发展的特性,Ultralytics 尚未发布 YOLO26 的正式研究论文。相反,我们专注于提供最先进的模型并使其易于使用。有关 YOLO 功能、架构和用法的最新更新,请访问我们的 GitHub 存储库文档

如果您在工作中使用 YOLO26 或其他 Ultralytics 软件,请引用它:

@software{yolo26_ultralytics,
  author = {Glenn Jocher and Jing Qiu},
  title = {Ultralytics YOLO26},
  version = {26.0.0},
  year = {2026},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

DOI 待定。YOLO26 在 AGPL-3.0Enterprise 许可下可用。


常见问题

与 YOLO11 相比,YOLO26 的主要改进是什么?

  • DFL 移除:简化导出并扩展边缘兼容性
  • 端到端无NMS推理: 消除NMS,实现更快、更简单的部署
  • ProgLoss + STAL:提高准确性,尤其是在小物体上
  • MuSGD Optimizer:结合 SGD 和 Muon(灵感来自 Moonshot 的 Kimi K2),实现更稳定、高效的训练
  • CPU 推理速度提高高达 43%:CPU 设备的主要性能提升

YOLO26 支持哪些任务?

YOLO26 是一个统一的模型系列,为多种计算机视觉任务提供端到端支持:

每个尺寸变体(n、s、m、l、x)都支持所有任务,并通过 YOLOE-26 支持开放词汇版本。

为什么 YOLO26 针对边缘部署进行了优化?

YOLO26 提供 最先进的边缘性能,具有:

  • CPU 推理速度提高高达 43%
  • 减小的模型尺寸和内存占用
  • 为兼容性简化的架构(无 DFL,无 NMS)
  • 灵活的导出格式,包括 TensorRT、ONNX、CoreML、TFLite 和 OpenVINO

如何开始使用 YOLO26?

YOLO26 模型于 2026 年 1 月 14 日发布,可供下载。安装或更新 ultralytics 包并加载模型:

from ultralytics import YOLO

# Load a pretrained YOLO26 nano model
model = YOLO("yolo26n.pt")

# Run inference on an image
results = model("image.jpg")

有关训练、验证和导出说明,请参阅 用法示例 部分。



📅 创建于 3 个月前 ✏️ 更新于 0 天前
glenn-jocherY-T-GLaughing-qraimbekovmfcakyonlmycrosspderrenger

评论