YOLO26 与 YOLOv10 对比#
计算机视觉应用持续要求模型更快、更准确、更高效。本指南对比了两种重要的实时目标检测架构 YOLO26 和 YOLOv10,分析它们的架构、性能指标和部署能力,帮助开发者和研究人员为视觉应用选择合适的模型。
免 NMS 架构的发展#
多年来,YOLO(You Only Look Once)系列一直依赖非极大值抑制 (NMS)来过滤后处理中的冗余边界框。NMS 虽然有效,却会增加推理延迟,并使模型难以部署到 Raspberry Pi 等边缘设备或专用神经处理单元 (NPU) 上。
YOLOv10 将端到端、无需 NMS 的设计引入了 YOLO 系列。Ultralytics YOLO26 将这一方案优化为适用于生产环境的可选一对一检测头,并将其扩展到更多任务。
YOLOv10:无需 NMS 的实时检测#
- 日期: 2024-05-23
- 作者: Ao Wang、Hui Chen、Lihao Liu 等
- 组织: 清华大学
- 资源:arXiv 论文 | GitHub 代码仓库
YOLOv10 由清华大学的研究人员开发,引入了一致的双重分配策略,从而消除了对 NMS 的需求。通过采用以效率和准确率为导向的整体模型设计,它减少了计算冗余,同时保持了良好的 mAP(平均精度均值)。
优势:
- 无 NMS 架构: YOLO 系列中首个无 NMS 设计,可降低实时应用的延迟。
- 效率: 与早期模型相比,在参数量和推理速度之间实现了良好的权衡。
不足:
- 任务支持有限: 主要专注于标准目标检测,原生不支持分割或姿态估计等高级任务。
- 学术研究导向: 代码库更偏向研究,而非企业级生产部署。
YOLO26:边缘端与云端的新标准#
- 日期: 2026-01-14
- 作者: Glenn Jocher 和 Jing Qiu
- 组织: Ultralytics
- 资源: GitHub 代码库 | Ultralytics Platform
作为 YOLO11 的后继版本,YOLO26 基于无 NMS 理念进一步发展,并采用可选的一对一检测头(nms=False)。它与 Ultralytics Platform 集成,后者为机器学习流水线中的标注、训练和部署提供工具。
YOLO26 引入了多项架构变更:
- 移除 DFL: 分布焦点损失已被移除。这简化了模型导出流程,并提升了对边缘设备和低功耗设备的兼容性。
- CPU 推理速度最高提升 43%: 得益于移除 DFL 和结构优化,YOLO26n 的 CPU 速度最高比 YOLO11n 快 43%,非常适合物联网和移动端部署。
- MuSGD 优化器: 受 Moonshot AI 的 Kimi K2 等大型语言模型 (LLM) 训练技术启发,YOLO26 使用 SGD 和 Muon 的混合方案。这为计算机视觉带来了更稳定的训练和更快的收敛速度。
- ProgLoss + STAL: 渐进式损失和小目标感知标签分配 (STAL) 可提升小目标识别能力,这对航拍影像和无人机安防监控至关重要。
- 针对特定任务的改进: YOLO26 还支持分割、语义分割、深度估计、分类、姿态估计和 OBB。它为分割添加了语义分割损失和多尺度原型模块,为姿态估计添加了残差对数似然估计 (RLE),并为有向边界框 (OBB)添加了专用角度损失。
性能分析与指标#
下表比较了 YOLO26 和 YOLOv10 模型在 COCO 目标检测任务上的表现。YOLO26 在所有尺寸下都更准确,从 n 型号高出 2.4 mAP 到 x 型号高出 3.1 mAP;而在 x 规格下,YOLOv10 的参数量和 FLOPs 更少(参数量为 29.5M 对比 55.7M,FLOPs 为 160.4B 对比 194.4B)。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 38.9 | 1.7 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 87.2 | 2.5 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 220.0 | 4.7 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 286.2 | 6.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 525.8 | 11.8 | 55.7 | 194.4 |
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
Ultralytics 优势:训练效率与内存效率#
将模型部署到生产环境时,内存需求和训练效率与推理速度同样重要。Ultralytics 模型,尤其是 YOLO26,经过优化,可减少训练期间的 CUDA 内存占用。这样,开发者就能在消费级 GPU 上使用更大的批次大小,缩短训练时间并降低计算成本。相比之下,像 RT-DETR 这样的重型 Transformer 模型通常需要昂贵的高端硬件才能有效训练。
实践实现:代码示例#
借助 Ultralytics Python API,从旧模型(如 YOLOv8)迁移到 YOLO26 只需更改一行代码。
下面是一个使用 YOLO26 进行训练、推理和导出的示例:
from ultralytics import YOLO
# 1. Load the YOLO26 nano model
model = YOLO("yolo26n.pt")
# 2. Train the model on the COCO8 dataset efficiently
# optimizer='auto' selects MuSGD for longer training runs; memory management is automatic
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device="cpu", # Easily switch to 0 for GPU
)
# 3. Perform NMS-free inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg", nms=False)
# 4. Display the results to screen
predictions[0].show()
# 5. Export to ONNX for simplified edge deployment
export_path = model.export(format="onnx")
print(f"Model exported successfully to {export_path}")用例与建议#
选择 YOLO26 还是 YOLOv10,取决于你的具体项目需求、部署限制和对生态系统的偏好。
何时选择 YOLO26#
以下场景适合选择 YOLO26:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境: 没有专用 GPU 加速的设备中,YOLO26n 的 CPU 推理速度最高比 YOLO11n 快 43%,优势显著。
- 小目标检测: 在无人机航拍影像等具有挑战性的场景或物联网传感器分析中,ProgLoss 和 STAL 能提升小目标检测准确率。
何时选择 YOLOv10#
以下场景推荐使用 YOLOv10:
- 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
- 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
- 延迟稳定的应用:适用于推理时间可预测性至关重要的部署场景,例如机器人或自主系统。
结论#
YOLOv10 通过引入无 NMS 的 YOLO 检测,为研究社区做出了重要贡献,而 YOLO26 则将这种方法带入生产环境。凭借最高快 43% 的 CPU 推理速度(YOLO26n 对比 YOLO11n)、MuSGD 优化器以及对七种视觉任务的支持,YOLO26 是边缘计算和大规模云部署的推荐选择。
如果你的团队看重活跃的社区、完善的文档和流畅的开发体验,那么 Ultralytics 生态系统非常适合你。对于特定场景,你也可以了解 YOLO-World,以实现零样本开放词汇检测。对于大多数实际应用场景,YOLO26 都是推荐选择。