Ultralytics YOLO27:
Get Started

YOLOv10 与 YOLOv5#

选择合适的神经网络架构对于在生产环境中成功部署计算机视觉流水线至关重要。本页面深入分析并比较了 YOLOv10 和 YOLOv5,这两个模型对实时目标检测的发展产生了深远影响。尽管这两个模型都对 AI 社区产生了重大影响,但它们代表着深度学习架构设计中的不同时代和理念。

本指南依据平均精度均值 (mAP)、推理延迟、参数效率和生态系统支持情况评估这些架构,帮助你根据部署需求选择最佳模型。

模型概述#

YOLOv10:实时端到端目标检测#

YOLOv10 由清华大学的研究人员开发,通过消除后处理需求,为目标检测引入了一种新方法。

YOLOv10 的标志性突破是其端到端无 NMS 设计。传统上,YOLO 模型依赖非极大值抑制 (NMS)来筛除冗余边界框。YOLOv10 采用一致的双重分配进行无 NMS 训练,大幅降低推理延迟的波动,并简化部署逻辑。此外,该架构兼顾效率与精度,对各种组件进行全面优化,以减少计算冗余。

进一步了解 YOLOv10

YOLOv5:易用性的行业标准#

YOLOv5 在 Ultralytics PyTorch 仓库创建后不久发布,重新定义了开发者对开源视觉 AI 框架的期待。它至今仍是全球部署最广泛的架构之一。

YOLOv5 以其易用性和维护完善的生态系统而闻名。它完全使用 PyTorch 编写,开箱即用地支持训练、验证以及导出为 ONNX和 TensorRT等格式,带来从零起步到熟练使用的流畅体验。与主要专注于纯目标检测的 YOLOv10 不同,YOLOv5 展现出出色的多功能性,可通过同一个统一的 Python API 支持实例分割和图像分类。

性能与指标对比#

可视化速度与精度之间的关系,对于找出在给定速度限制下精度最佳的模型至关重要。理解这些性能指标,是选择符合特定硬件限制的模型的基础。

模型尺寸
(像素)
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
YOLOv5n64028.0-1.121.94.5
YOLOv5s64037.4-1.927.216.5
YOLOv5m64045.4-4.0321.249.0
YOLOv5l64049.0-6.6146.5109.1
YOLOv5x64050.7-11.8986.7205.7

技术分析#

  1. 精度 (mAP): YOLOv10 在精度方面展现出明显的代际优势。例如,YOLOv10-X 模型的 mAPval 达到 54.4%,优于 YOLOv5x(mAP 为 50.7%)。这一飞跃主要得益于 2024 年引入的无 NMS 训练策略和架构改进。
  2. 推理延迟: YOLOv5 模型在原始 T4 TensorRT 基准测试中速度极快(例如,YOLOv5n 为 1.12ms),而 YOLOv10 则完全移除了 NMS 后处理步骤。在端到端的实际部署中,YOLOv10 的无 NMS 设计能提供更一致、确定性更强的延迟,这对于自动驾驶汽车和机器人等实时应用至关重要。
  3. 参数效率: YOLOv10 模型保持了极具竞争力的性能平衡。YOLOv10-S 以 7.2M 个参数实现了 46.3% 的 mAP,参数量与达到 37.4% mAP 的 YOLOv5s 相同。
部署提示

将模型部署到 NVIDIA Jetson等边缘 AI设备时,不含 NMS 逻辑的模型(如 YOLOv10,或通过 nms=False 导出的 YOLO26)通常能更顺利地编译为 TensorRT,避免回退到 CPU 执行操作。

用例与建议#

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

何时选择 YOLOv10#

以下场景适合使用 YOLOv10:

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

何时选择 YOLOv5#

推荐在以下情况下选择 YOLOv5:

  • 经过验证的生产系统: 现有部署重视 YOLOv5 长期积累的稳定记录、详尽文档和庞大社区支持。
  • 资源受限的训练: GPU 资源有限的环境中,YOLOv5 高效的训练流水线和较低的内存需求具有优势。
  • 广泛支持导出格式: 需要跨多种格式部署的项目,包括 ONNX、TensorRT、CoreML和 LiteRT。

何时选择 Ultralytics (YOLO26)#

对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:

  • 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
  • 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
  • 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。

Ultralytics 优势#

YOLOv10 具备出色的检测能力,但依赖学术研究仓库有时会使生产流水线变得复杂。使用官方 Ultralytics Python 包,你可以使用统一的生态系统,获得 YOLOv5 和 YOLOv10 的支持以及高级功能。

  • 训练效率: Ultralytics YOLO 架构经过深度优化,可降低训练期间的内存需求。与需要大量 CUDA 内存的大型 Transformer 模型(如 RT-DETR)不同,你可以在标准消费级 GPU 上轻松训练 YOLOv5 和 YOLOv10。
  • 生态系统集成: 通过与 Ultralytics Platform集成,开发者可以直观地管理数据集、使用 Weights & Biases跟踪实验,并自动调整超参数。

代码示例:轻松训练#

使用 Ultralytics 库时,只需更改模型字符串即可在这些架构之间切换。训练流水线会自动处理数据增强、缩放和优化器配置。

from ultralytics import YOLO

# 使用 YOLOv5:
# model = YOLO("yolov5su.pt")

# 使用 YOLOv10:
model = YOLO("yolov10s.pt")

# 在自定义数据集上训练模型
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    batch=16,
    device=0,  # 使用 GPU 0
)

# 将训练好的模型导出为 ONNX 格式
path = model.export(format="onnx")

新一代模型:Ultralytics YOLO26#

如果你今天开始一个新的机器学习项目,我们强烈建议你评估最新的 Ultralytics YOLO26。YOLO26 于 2026 年 1 月发布,结合过去五年最优秀的创新,代表了当前最先进的水平。

YOLO26 原生支持 YOLOv10 首创的端到端无 NMS 设计,可通过可选的一对一检测头(nms=False)实现快速、确定性的部署。此外,YOLO26 还带来了几项重要突破:

  • CPU 推理速度最高提升 43%: 移除分布焦点损失 (DFL) 模块后,YOLO26 在标准 CPU 上实现大幅提速,使其成为移动端部署和低功耗 IoT 传感器的首选。
  • MuSGD 优化器: YOLO26 借鉴了大型语言模型 (LLM) 训练技术,例如 Moonshot AI 的 Kimi K2,采用 SGD 与 Muon 的混合方案。与早期 YOLO 模型使用的标准 SGD 和 AdamW 优化器相比,这能确保训练过程极为稳定,并大幅加快收敛速度。
  • ProgLoss + STAL: 这些高级损失函数显著提升了小目标识别能力,这对于无人机影像和航空安防应用至关重要。
  • 专精各类任务: YOLOv10 严格来说是边界框检测器,而 YOLO26 针对所有任务都进行了专门的架构改进,包括用于姿态估计的残差对数似然估计 (RLE),以及用于有向边界框 (OBB) 的专用角度损失。
深入了解

如果你正在了解更广泛的目标检测领域,也可以比较这些架构与其他框架。欢迎查看我们对 YOLO11 与 EfficientDet 的比较或 RT-DETR 与 YOLOv8 的比较的深入分析,了解更全面的基准测试。

无论你使用的是 YOLOv5 的可靠积淀、YOLOv10 的无 NMS 创新,还是 YOLO26 无与伦比的前沿性能,Ultralytics 生态系统都能提供所需工具,帮助你快速、高效地实现视觉 AI 应用。

评论