跳转至内容

YOLOv10 对比 YOLOv5:架构与性能深入探讨

在快速发展的计算机视觉领域,选择合适的物体 detect 模型对于项目成功至关重要。本比较探讨了 YOLOv10(一个最近发布的专注于 NMS-free 训练的学术模型)与 YOLOv5(Ultralytics 出品的传奇模型,以其鲁棒性和行业广泛采用而闻名)之间的技术差异。尽管这两个模型都源自 You Only Look Once 系列,但它们迎合了不同的工程优先级和部署环境。

模型概述

YOLOv10:效率专家

清华大学研究人员于2024年5月发布,YOLOv10引入了旨在消除推理过程中对非极大值抑制(NMS)需求的架构机制。通过在训练期间利用一致的双重分配,YOLOv10旨在降低端到端延迟,使其成为对推理延迟毫秒必争的边缘应用的有力竞争者。

了解更多关于YOLOv10的信息。

Ultralytics YOLOv5:行业标准

自 2020 年由 Ultralytics 发布以来,YOLOv5 在 AI 社区中定义了易用性。它优先考虑速度、准确性和工程实用性之间的平衡。除了原始指标之外,YOLOv5 提供了一个成熟的生态系统,无缝集成移动部署工具、实验跟踪平台和数据集管理工作流程。它的多功能性超越了 detect,还包括图像分类实例分割

了解更多关于 YOLOv5 的信息

架构差异

主要区别在于预测的处理方式。YOLOv5 采用高度优化的基于锚框的架构,该架构依赖 NMS 来过滤重叠的边界框。这种方法经过实战检验,在各种数据集上都表现稳健。

相比之下,YOLOv10 采用 一致双重分配 策略。这使得模型能够在推理过程中为每个对象预测一个最佳边界框,理论上完全消除了 NMS 步骤。这种后处理开销的减少是 YOLOv10 的主要亮点,在 NVIDIA Jetson Orin Nano 等 边缘设备 上提供更低的延迟。此外,YOLOv10 在其主干网络和头部中融入了整体效率设计,以最小化参数 (params) 和浮点运算 (FLOPs)。

内存效率

Ultralytics模型(如YOLOv5和更新的YOLO11)的一个显著特点是其优化的内存占用。与一些消耗大量CUDA内存的Transformer基检测器不同,Ultralytics模型经过精心设计,可在消费级硬件上高效训练,从而普及了对最先进AI的访问。

性能指标

下表突出显示了性能权衡。与较旧的YOLOv5架构相比,YOLOv10通常以更少的参数实现更高的平均精度均值(mAP)。然而,YOLOv5在某些硬件配置上的原始推理速度方面仍具有竞争力,尤其是在使用TensorRTONNX等优化导出格式时。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
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
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

优势与劣势

YOLOv10 分析

优势:

  • 免NMS:移除非极大值抑制步骤简化了部署流程并稳定了推理延迟。
  • 参数效率:以更小的 模型权重 实现高精度,这对于存储受限的设备非常有利。
  • 领先的准确性:在 COCO 基准测试中,纯 mAP 指标超越了旧版 YOLO。

弱点:

  • 有限的多功能性: 主要专注于目标检测,缺乏对诸如姿势估计旋转框检测 (OBB)等复杂任务的原生支持,这些任务在较新的Ultralytics模型中有所体现。
  • 发展中的生态系统:作为一个以研究为中心的模型,它可能缺乏 Ultralytics 原生模型所拥有的广泛社区插件、经过实战检验的集成和企业支持。

YOLOv5 分析

优势:

  • 无与伦比的多功能性: 开箱即用,支持 detect、segment 和 classify。
  • 强大的生态系统:Ultralytics提供支持,它能轻松与 Ultralytics HUB、Roboflow 和 Comet ML 等工具集成。
  • 部署就绪: 存在大量关于导出到 CoreML、TFLite、TensorRT 和 OpenVINO 的文档,确保生产环境的顺利部署。
  • 训练效率:以稳定的训练动态和低内存使用而闻名,使其适用于使用单GPU设置的开发者。

弱点:

  • 过时的架构: 虽然仍然强大,但其纯 mAP/FLOPs 比率已被YOLOv8YOLO11等较新版本超越。
  • 锚框依赖性: 依赖于锚框,对于具有极端对象纵横比的数据集,可能需要手动调整。

理想用例

这两者之间的选择通常取决于您的部署环境的具体限制。

  • 如果您正在为嵌入式设备构建专用目标 detect 系统,其中消除 NMS 计算开销可提供关键的速度优势,或者您需要从小型模型占用空间中获得绝对最高的 mAP,请选择 YOLOv10
  • 如果您需要一个可靠的多任务模型用于生产流水线,请选择 YOLOv5。其处理实例 segment和 classify 的能力使其成为视觉 AI 的“瑞士军刀”。此外,如果您的团队依赖标准的 MLOps 工作流程,YOLOv5 与 Ultralytics 生态系统的无缝集成将显著缩短开发时间。

用户体验与生态系统

Ultralytics模型的一个显著特点是注重开发者体验。YOLOv5树立了“开箱即用”的标准,这一理念仍在延续。用户只需几行代码即可在自定义数据上训练YOLOv5模型,利用预训练权重加速收敛。

相比之下,尽管 YOLOv10 提供了出色的学术成果,但将其集成到复杂的生产管道中可能需要更多的定制工程。Ultralytics 维护着一个活跃的开源社区,确保快速修复错误并根据实际用户反馈添加功能。

代码对比

运行这些模型非常简单。下面是使用Python加载和预测每个模型的示例。

使用YOLOv10:

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform inference on an image
results = model("path/to/image.jpg")
results[0].show()

使用YOLOv5(通过PyTorch Hub):

import torch

# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")

# Perform inference
results = model("path/to/image.jpg")
results.show()

结论

两种模型都代表了计算机视觉领域的重大成就。YOLOv10 凭借其 NMS-free 设计,突破了延迟优化的极限,使其成为专业高速 detect 任务的理想选择。

然而,对于大多数开发人员和企业而言,Ultralytics 生态系统(以YOLOv5的持久可靠性和YOLO11的尖端性能为代表)提供了一个更全面的解决方案。易用性、详尽的文档和多任务能力的结合,确保您减少调试时间,将更多时间用于部署价值。

对于那些希望在保留生态系统优势的同时从 YOLOv5 升级的用户,我们强烈推荐探索 YOLO11,它提供最先进的性能、无锚框 detect,并支持包括 obb 和 姿势估计 在内的全方位视觉任务。

延伸阅读


评论