YOLOv7 与 YOLOv10:实时目标检测的演进

计算机视觉领域在过去几年中取得了显著进步,YOLO(You Only Look Once)系列模型在实时目标检测方面引领了潮流。为你的计算机视觉项目选择合适的架构,需要深入了解现有选项。在这篇详尽的技术对比中,我们将探讨两个标志性架构之间的主要区别:YOLOv7YOLOv10

模型简介

这两个模型都代表了人工智能发展史上的重要里程碑,但它们在解决目标检测挑战的方法上有着根本的不同。

YOLOv7:“免费包”先驱

YOLOv7 由 Institute of Information Science, Academia Sinica 的研究员 Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao 于 2022 年 7 月 6 日发布,它引入了神经网络优化方式的范式转变。最初的研究详见他们的 academic paper 并托管在他们的 official GitHub repository 上,重点在于架构重参数化和可训练的“免费大礼包”(bag-of-freebies)。

YOLOv7 利用扩展高效层聚合网络(E-ELAN)来引导网络学习多样化特征,同时不会破坏原始梯度路径。这使其成为学术研究基准和严重依赖标准高端 GPU 的系统的稳健选择。

了解更多关于 YOLOv7 的信息

YOLOv10:实时端到端检测

YOLOv10 由 Tsinghua University 的 Ao Wang 及其团队开发,于 2024 年 5 月 23 日发布。正如其 arxiv publicationTsinghua GitHub repository 所详述,该模型消除了目标检测中长期存在的瓶颈:非极大值抑制(NMS)。

YOLOv10 引入了用于免 NMS 训练的一致性双重分配,从根本上改变了后处理流程。通过部署整体效率与准确性驱动的模型设计策略,YOLOv10 减少了计算冗余。这带来了一种专为需要极低延迟的边缘设备量身定制的架构。

了解关于 YOLOv10 的更多信息

免 NMS 架构

YOLOv10 中移除非极大值抑制(NMS)使得整个模型可以导出为单个计算图。这极大地简化了使用 TensorRTOpenVINO 等运行时的部署工作。

性能与指标对比

在分析模型性能时,评估精度、速度和计算权重之间的权衡至关重要。下表展示了这些模型的不同尺寸如何相互对比。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

分析权衡

上述指标揭示了明显的代际差距。虽然 YOLOv7x 提供了 53.1% 的强劲 mAPval,但它需要 71.3M 参数和 189.9B FLOPs。相比之下,YOLOv10l 在超过该准确率(53.3% mAP)的同时,仅需不到一半的参数(29.5M)和更少的 FLOPs(120.3B)。此外,高度优化的 YOLOv10n 提供了 1.56ms 的惊人推理速度,使其成为实时视频分析和移动应用的理想选择。

实际应用场景

这些模型之间的架构差异决定了它们的最佳用例。

何时使用 YOLOv7

由于其丰富的特征表示,YOLOv7 在极其复杂的环境中表现出色。诸如在人口稠密地区监测交通流量、分析卫星图像或在制造自动化中识别缺陷等用例,均受益于其稳健的结构重参数化。它在已深度集成特定 PyTorch 1.12 流水线的传统环境中也备受青睐。

何时使用 YOLOv10

YOLOv10 的免 NMS、轻量化设计在受限环境中表现优异。它非常适合 edge computing devices,例如 NVIDIA Jetson Nano 或 Raspberry Pi。其低延迟性能使其非常适合 sports analytics、自主无人机导航和传送带上的高速机器人分拣等快速应用。

Ultralytics 生态系统的优势

虽然这两个模型都有坚实的学术基础,但只有在统一的 Ultralytics Platform 中使用时,才能释放它们的真正潜力。从零开始开发计算机视觉模型极其困难,但 Ultralytics 生态系统为机器学习工程师提供了无与伦比的体验。

  • 易用性: Ultralytics Python API 提供了一个统一的接口。你只需几行代码即可训练、验证和导出模型,避免了典型学术代码库中常见的复杂依赖噩梦。
  • 维护良好的生态系统: Ultralytics 保证底层代码得到积极开发。用户受益于与流行的 ML 工具(如用于日志记录的 Weights & Biases 或用于快速 Web 演示的 Hugging Face)的无缝集成。
  • 内存需求: 基于 Transformer 的目标检测器在训练期间通常会消耗大量的 CUDA 内存。相比之下,Ultralytics YOLO 模型所需的内存要少得多,从而允许在消费级硬件上使用更大的 batch sizes
  • 多功能性: Ultralytics 流水线不局限于标准边界框。它无缝支持 pose estimationinstance segmentation,以及跨支持的模型家族(如 YOLO11YOLOv8)的旋转边界框。

流线型训练示例

使用 Ultralytics 运行训练流水线非常简单。无论你是在利用 YOLOv7 的历史稳健性,还是 YOLOv10 的免 NMS 速度,其语法始终保持一致:

from ultralytics import YOLO

# Load the preferred model (e.g., YOLOv10 Nano)
model = YOLO("yolov10n.pt")

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

# Run an inference prediction on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")

# Export to an edge-friendly format like ONNX
model.export(format="onnx")

用例与建议

在 YOLOv7 和 YOLOv10 之间进行选择,取决于你的具体项目需求、部署约束和生态系统偏好。

何时选择 YOLOv7

YOLOv7 是以下场景的有力选择:

  • 学术基准测试: 重现 2022 年左右的最先进结果,或研究 E-ELAN 和可训练免费赠品包技术的效果。
  • 重参数化研究: 探索规划重参数化卷积和复合模型缩放策略。
  • 现有自定义流水线: 围绕 YOLOv7 特定架构构建且无法轻易重构的重度定制化流水线的项目。

何时选择 YOLOv10

建议在以下场景中使用 YOLOv10:

  • 无需 NMS 的实时检测: 得益于端到端检测且无需非极大值抑制,从而降低了部署复杂性的应用。
  • 平衡的速度-精度权衡: 需要在不同模型规模下实现推理速度与检测精度之间良好平衡的项目。
  • Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.

何时选择 Ultralytics (YOLO26)

对于大多数新项目,Ultralytics YOLO26 提供了性能与开发者体验的最佳结合:

  • 无需 NMS 的边缘部署: 需要持续、低延迟推理且无需复杂非极大值抑制后处理的应用。
  • 仅 CPU 环境: 在没有专用 GPU 加速的设备上,YOLO26 的 CPU 推理速度提升高达 43%,这提供了决定性优势。
  • 小目标检测: 具有挑战性的场景,如 航拍无人机图像 或 IoT 传感器分析,ProgLoss 和 STAL 在小目标上显著提升了准确性。

未来展望:引入 YOLO26

尽管 YOLOv7 和 YOLOv10 是令人印象深刻的里程碑,但人工智能的前沿始终在推进。Ultralytics YOLO26 于 2026 年 1 月发布,是所有边缘和云部署场景中效率和准确性的无可争议的新标准。

如果你今天正在启动一个新的计算机视觉项目,YOLO26 是推荐的架构。它通过整合几项突破性创新,在前代产品的基础上进行了构建:

  • 端到端免 NMS 设计: 受到 YOLOv10 的启发,YOLO26 原生消除了 NMS 后处理,确保了确定性实时机器人技术所需的超低延迟推理。
  • CPU 推理速度提升高达 43%: 通过策略性地移除分布焦点损失(DFL)模块,YOLO26 大幅加速了非 GPU 边缘计算硬件上的执行速度,使其成为 IoT devices 的强力引擎。
  • MuSGD 优化器: 受最近大语言模型训练创新的启发,YOLO26 结合了 SGD 和 Muon 的混合体,稳定了训练路径并确保了更快的收敛。
  • ProgLoss + STAL: 这些先进的损失函数在小目标识别方面产生了显著改进,克服了旧代 YOLO 的历史性弱点。
  • 无与伦比的多功能性: YOLO26 具有原生、特定于任务的优化功能,例如用于姿态跟踪的残差对数似然估计(RLE)和用于航空影像中精确 OBB 检测的专用角度损失。

对于寻求速度、准确性和部署简便性终极平衡的工程师来说,从旧模型过渡到 YOLO26 提供了直接且可衡量的竞争优势。

评论