Ultralytics YOLO27: 加入候补名单。
Get Started

YOLOv10 与 YOLO26 对比#

实时目标检测已从依赖复杂后处理的架构转向精简的端到端模型。本文从技术角度比较了这一转变中的两个里程碑:将无 NMS 训练引入 YOLO 系列的学术模型 YOLOv10,以及面向生产、多任务的 Ultralytics YOLO26 模型系列。通过考察它们的架构、训练方法和实际部署能力,开发者可以在构建下一款视觉 AI 应用时做出明智选择。

YOLOv10:无需 NMS 的实时检测#

YOLOv10 于 2024 年 5 月发布,旨在解决实时目标检测中长期存在的瓶颈之一:非极大值抑制(NMS)。传统目标检测器严重依赖 NMS 来筛除冗余边界框,这会在推理期间增加不稳定的延迟,并使边缘部署更加复杂。

清华大学团队提出了一种用于无 NMS 训练的一致双重分配策略。借助这一策略,模型无需后处理筛选步骤即可准确预测边界框,从而直接降低推理延迟,并降低在硬件加速器上部署的门槛。该模型虽然适用于标准检测,但主要专注于边界框预测,并不原生支持实例分割或姿态估计等任务。

进一步了解 YOLOv10

YOLO26:边缘与云端视觉 AI 的新标准#

YOLO26 基于 YOLOv10 引入的无 NMS 理念构建,是目前推荐的 Ultralytics 模型系列。它面向研究和生产部署,通过可选的一对一检测头(nms=False)提供端到端无 NMS 设计,可跳过 NMS 后处理,简化在受支持硬件上的部署。

YOLO26 还带来了多项架构改动。移除 Distribution Focal Loss(DFL)可简化模型导出流程,并提升模型与低功耗边缘 AI 设备的兼容性。得益于这些结构改动,YOLO26n 的 CPU 推理速度最高比 YOLO11n 快 43%,因此在可能无法使用 GPU 加速的 IoT 和机器人应用中是很有竞争力的选择。

MuSGD 优化器结合了 SGD 和 Muon,是一种受 LLM 训练技术启发的混合优化器,也能提升训练稳定性并加快收敛。YOLO26 将 ProgLoss + STAL(渐进式损失与小目标感知标签分配)结合起来,通过渐进式损失和针对小目标的标签分配,提升小目标识别能力。它还引入了针对特定任务的改进,包括用于分割的多尺度原型方法、用于姿态估计的残差对数似然估计(RLE),以及用于解决定向边界框(OBB)检测边界问题的专用角度损失。

企业部署

对于希望扩展计算机视觉工作流的团队,Ultralytics Platform 可直接支持 YOLO26,提供数据标注、云端训练和一键部署,无需搭建复杂的 MLOps 基础设施。

技术性能对比#

评估这些模型时,精度、模型大小和推理速度之间的平衡至关重要。下表展示了这两类模型在不同规模下的性能,评估使用的是标准 COCO 数据集。

模型尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv10n64038.5-1.842.36.7
YOLOv10s64046.3-2.497.221.6
YOLOv10m64051.1-4.7415.459.1
YOLOv10b64052.5-5.7419.192.0
YOLOv10l64053.2-7.2824.4120.3
YOLOv10x64054.4-10.7029.5160.4
YOLO26n64040.938.91.72.45.5
YOLO26s64048.687.22.59.520.9
YOLO26m64053.1220.04.720.468.4
YOLO26l64055.0286.26.224.886.8
YOLO26x64057.5525.811.855.7194.4

YOLO26 在各个尺寸级别都能取得更高的 mAP(平均精度均值),同时保持相近的 T4 TensorRT 速度。移除 YOLO26 中的 DFL 也有助于提升其 CPU ONNX 性能;表格未报告 YOLOv10 的 CPU ONNX 速度。

训练方法与生态系统#

模型的实用性取决于支持它的生态系统。YOLOv10 提供了基于 PyTorch 和 Ultralytics 软件包构建的可靠学术实现,但它只支持目标检测。

相比之下,YOLO26 完全集成在持续维护的 Ultralytics 生态系统中。作为基于 CNN 的模型,与 RT-DETR 等基于 Transformer 的模型相比,它训练时所需的内存更少,因此可以在消费级硬件上训练。统一 API 会自动处理数据增强和日志记录,还可以通过 model.tune() 进行超参数调优。

代码示例:训练 YOLO26#

只需几行 Python 代码即可训练和导出 YOLO26:

from ultralytics import YOLO

# 加载经过高度优化的 YOLO26 small 模型
model = YOLO("yolo26s.pt")

# 使用 COCO8 示例数据集训练模型
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
)

# 将无 NMS 的一对一检测头导出为 TensorRT
model.export(format="engine", nms=False)

实际应用与使用场景#

选择合适的架构,很大程度上取决于部署限制。

高速边缘计算#

对于部署在 CPU、机器人平台或较旧移动设备上的应用,YOLO26 更快的 CPU 推理速度使其成为更理想的选择。它不依赖 DFL 的架构和可选的无 NMS 检测头可以轻松导出为 OpenVINO 和 TensorRT 等格式,非常适合智能城市基础设施中的实时视频分析。

高级多任务视觉#

YOLOv10 仅限于边界框检测,因此需要执行其他任务的项目应选择 YOLO26。除了检测,YOLO26 还支持实例分割、语义分割、深度估计、分类、姿态估计和定向边界框,并针对从医学影像到体育分析的各种应用提供特定任务的检测头和损失函数。

其他选项

如果项目需要开放词汇检测,可以考虑 YOLOE 或 YOLO-World。对于现有工作流,YOLO11 仍是 Ultralytics 框架中得到全面支持的替代方案。

用例与建议#

选择 YOLOv10 还是 YOLO26,取决于你的具体项目需求、部署限制和生态系统偏好。

何时选择 YOLOv10#

以下场景适合使用 YOLOv10:

  • 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
  • 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
  • 延迟稳定性要求高的应用:对推理时间可预测性要求很高的部署场景,例如机器人或自动驾驶系统。

何时选择 YOLO26#

以下场景推荐使用 YOLO26:

  • 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
  • 仅使用 CPU 的环境:没有专用 GPU 加速的设备。在这类设备上,YOLO26n 的 CPU 运行速度最高可比 YOLO11n 快 43%。
  • 小目标检测:具有挑战性的场景,例如无人机航拍图像或 IoT 传感器分析。在这些场景中,ProgLoss 和 STAL 可以提升微小目标的检测精度。

结论#

从 YOLOv10 到 YOLO26,体现了模型从学术概念验证迈向可用于生产的转变。YOLO26 采用 YOLOv10 引入的无 NMS 设计,并加入 MuSGD 优化器、ProgLoss 和更简单的边缘设备导出流程,在各种模型尺寸下都能实现更高精度,并支持更多任务。对于希望兼顾速度、精度和易用性的开发者,推荐选择 YOLO26。

评论