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

YOLOv7 与 YOLOv10#

过去几年,计算机视觉领域发展迅速,YOLO(只看一次)系列模型引领了实时目标检测的发展。为计算机视觉项目选择合适的架构,需要清楚了解现有方案。本文从技术角度比较两个里程碑式架构的关键差异:YOLOv7 和 YOLOv10。

模型简介#

这两种模型都是目标检测领域的重要里程碑,但它们解决目标检测挑战的方式存在根本差异。

YOLOv7:免费赠品组合的先驱#

YOLOv7 于 2022 年 7 月 6 日由来自中央研究院资讯科学研究所的研究人员 Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao 发布,为优化实时检测器带来了新思路。原始研究在其学术论文中进行了详细介绍,并托管在其官方 GitHub 仓库中,重点研究架构重参数化和可训练的“免费增益包”。

YOLOv7 利用扩展高效层聚合网络(E-ELAN),引导网络学习多样化特征,同时不破坏原始梯度路径。因此,对于学术研究基准测试和严重依赖标准高端 GPU 的系统来说,它是一个可靠的选择。

详细了解 YOLOv7

YOLOv10:实时端到端检测#

YOLOv10 由 Ao Wang 及其同事在清华大学开发,于 2024 年 5 月 23 日发布。其arXiv 论文和清华 GitHub 仓库详细介绍了该模型如何消除目标检测中长期存在的瓶颈:非极大值抑制(NMS)。

YOLOv10 引入了用于无 NMS 训练的一致双重分配机制,改变了后处理流水线。其以效率和准确率为导向的整体模型设计减少了计算冗余,因此非常适合需要低延迟的边缘设备。

进一步了解 YOLOv10

无 NMS 架构

YOLOv10 移除了非极大值抑制 (NMS),因此整个模型可以导出为单个计算图。这简化了通过 TensorRT 或 OpenVINO 等运行时进行部署的流程。

性能与指标对比#

分析模型性能时,评估准确率、速度和计算开销之间的权衡非常重要。下表展示了这些模型不同尺寸版本之间的性能对比。

模型尺寸
(像素)
mAPval50-95速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
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

权衡分析#

上述指标揭示了明显的代际差距。YOLOv7x 的 mAPval50-95 达到 53.1%,表现出色,但需要 71.3M 个参数和 189.9B FLOPs。相比之下,YOLOv10l 的准确率更高(53.2% mAP),所需参数约为其三分之一(24.4M),FLOPs 也显著更低(120.3B)。此外,YOLOv10n 在搭载 TensorRT 的 T4 GPU 上运行仅需 1.84 ms,非常适合实时视频分析和移动应用。

实际应用场景#

这些模型的架构差异决定了各自最适合的应用场景。

何时使用 YOLOv7#

YOLOv7 丰富的特征表示适用于 GPU 硬件上的复杂场景。在密集城区监测交通流量、分析卫星图像或识别重型制造自动化中的缺陷等用例,都能受益于其重参数化架构。它在围绕特定 PyTorch 1.x 流程构建的旧版环境中也仍然常见。

何时使用 YOLOv10#

YOLOv10 的无 NMS 轻量级设计适用于资源受限的环境,包括 NVIDIA Jetson 模块或 Raspberry Pi 等边缘计算设备。其低延迟性能非常适合体育分析、自主无人机导航以及传送带上的高速机器人分拣等快速响应应用。

Ultralytics 生态系统的优势#

虽然这两个模型都拥有深厚的学术背景,但在 Ultralytics 生态系统和 Ultralytics Platform 中训练和部署 YOLOv10 最为便捷。从头开发计算机视觉模型并不容易,而 Ultralytics 生态系统简化了机器学习工程师的工作流程。

  • 易用性: Ultralytics Python API 提供统一的接口。你只需几行代码即可训练、验证和导出模型,避免学术代码库中常见的依赖冲突。
  • 维护良好的生态系统: Ultralytics 代码库持续积极开发,用户可以集成常用的机器学习工具,例如用于日志记录的 Weights & Biases,以及用于快速创建 Web 演示的 Gradio。
  • 内存需求: 基于 Transformer 的目标检测器在训练期间通常会占用大量 CUDA 内存。相比之下,Ultralytics YOLO 模型所需内存少得多,因此在消费级硬件上可以使用大得多的批量大小。
  • 多功能性: Ultralytics 流程不局限于标准边界框。它支持实例分割、图像分类、姿态估计和有向边界框,适用于 YOLO11 和 YOLOv8 等受支持的模型系列。

精简的训练示例#

使用 Ultralytics 运行训练流程十分简单。无论你采用 YOLOv10 无 NMS 的速度优势,还是使用其他受支持的模型,语法都保持一致(请注意,Ultralytics 包不支持 YOLOv7 训练):

from ultralytics import YOLO

# 加载首选模型(例如 YOLOv10 Nano)
model = YOLO("yolov10n.pt")

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

# 对示例图像运行推理预测
predictions = model.predict("https://ultralytics.com/images/bus.jpg")

# 导出为 ONNX 等适合边缘设备的格式
model.export(format="onnx")

用例与建议#

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

何时选择 YOLOv7#

YOLOv7 适用于以下情况:

  • 学术基准测试:复现 2022 年的最先进成果,或研究 E-ELAN 和可训练的免费优势集合技术所带来的影响。
  • 重参数化研究:研究计划中的重参数化卷积和复合模型缩放策略。
  • 现有自定义流水线:项目已围绕 YOLOv7 特定架构构建了高度定制的流水线,且难以重构。

何时选择 YOLOv10#

以下场景推荐使用 YOLOv10:

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

何时选择 Ultralytics (YOLO26)#

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

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

未来展望:认识 YOLO26#

YOLOv7 和 YOLOv10 虽然是令人瞩目的里程碑,但 AI 前沿始终在不断发展。Ultralytics YOLO26 于 2026 年 1 月发布,是适用于边缘端和云端部署、兼顾效率与准确率的推荐模型。

如果你今天开始一个新的计算机视觉项目,推荐使用 YOLO26 架构。它在前代模型的基础上引入了多项创新:

  • 端到端无 NMS 设计: YOLO26 的可选一对一检测头(nms=False)借鉴了 YOLOv10 的设计思路,可跳过 NMS 后处理,从而为实时机器人应用提供更低且更稳定的延迟。
  • CPU 推理速度最高提升 43%: 移除 Distribution Focal Loss(DFL)模块后,YOLO26 在非 GPU 边缘硬件上的执行速度更快;YOLO26n 在 CPU 上的运行速度最高比 YOLO11n 快 43%,非常适合 IoT 设备。
  • MuSGD 优化器: YOLO26 借鉴了近期大语言模型训练创新,融合 SGD 和 Muon,带来更稳定的训练和更快的收敛速度。
  • ProgLoss + STAL: 渐进式损失和小目标感知标签分配提升了小目标识别能力,弥补了旧版 YOLO 系列长期存在的短板。
  • 多任务多功能性: YOLO26 涵盖检测、实例分割、语义分割、深度估计、分类、姿态估计和 OBB,并针对具体任务进行了优化,例如用于姿态估计的残差对数似然估计(RLE),以及用于航空图像中精确 OBB 检测的专用角度损失。

对于追求速度、准确率和部署简便性之间最佳平衡的工程师,YOLO26 是从旧版模型自然升级的选择。

评论