YOLOv10 对比 YOLOv5:架构与性能深入探讨
在快速发展的计算机视觉领域,选择合适的物体 detect 模型对于项目成功至关重要。本比较探讨了 YOLOv10(一个最近发布的专注于 NMS-free 训练的学术模型)与 YOLOv5(Ultralytics 出品的传奇模型,以其鲁棒性和行业广泛采用而闻名)之间的技术差异。尽管这两个模型都源自 You Only Look Once 系列,但它们迎合了不同的工程优先级和部署环境。
模型概述
YOLOv10:效率专家
由清华大学研究人员于2024年5月发布,YOLOv10引入了旨在消除推理过程中对非极大值抑制(NMS)需求的架构机制。通过在训练期间利用一致的双重分配,YOLOv10旨在降低端到端延迟,使其成为对推理延迟毫秒必争的边缘应用的有力竞争者。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织: 清华大学
- 日期: 2024-05-23
- Arxiv:YOLOv10:实时端到端目标检测
- GitHub:THU-MIG/yolov10
Ultralytics YOLOv5:行业标准
自 2020 年由 Ultralytics 发布以来,YOLOv5 在 AI 社区中定义了易用性。它优先考虑速度、准确性和工程实用性之间的平衡。除了原始指标之外,YOLOv5 提供了一个成熟的生态系统,无缝集成移动部署工具、实验跟踪平台和数据集管理工作流程。它的多功能性超越了 detect,还包括图像分类和实例分割。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub:ultralytics/yolov5
架构差异
主要区别在于预测的处理方式。YOLOv5 采用高度优化的基于锚框的架构,该架构依赖 NMS 来过滤重叠的边界框。这种方法经过实战检验,在各种数据集上都表现稳健。
相比之下,YOLOv10 采用 一致双重分配 策略。这使得模型能够在推理过程中为每个对象预测一个最佳边界框,理论上完全消除了 NMS 步骤。这种后处理开销的减少是 YOLOv10 的主要亮点,在 NVIDIA Jetson Orin Nano 等 边缘设备 上提供更低的延迟。此外,YOLOv10 在其主干网络和头部中融入了整体效率设计,以最小化参数 (params) 和浮点运算 (FLOPs)。
内存效率
Ultralytics模型(如YOLOv5和更新的YOLO11)的一个显著特点是其优化的内存占用。与一些消耗大量CUDA内存的Transformer基检测器不同,Ultralytics模型经过精心设计,可在消费级硬件上高效训练,从而普及了对最先进AI的访问。
性能指标
下表突出显示了性能权衡。与较旧的YOLOv5架构相比,YOLOv10通常以更少的参数实现更高的平均精度均值(mAP)。然而,YOLOv5在某些硬件配置上的原始推理速度方面仍具有竞争力,尤其是在使用TensorRT或ONNX等优化导出格式时。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
优势与劣势
YOLOv10 分析
优势:
- 免NMS:移除非极大值抑制步骤简化了部署流程并稳定了推理延迟。
- 参数效率:以更小的 模型权重 实现高精度,这对于存储受限的设备非常有利。
- 领先的准确性:在 COCO 基准测试中,纯 mAP 指标超越了旧版 YOLO。
弱点:
- 有限的多功能性: 主要专注于目标检测,缺乏对诸如姿势估计或旋转框检测 (OBB)等复杂任务的原生支持,这些任务在较新的Ultralytics模型中有所体现。
- 发展中的生态系统:作为一个以研究为中心的模型,它可能缺乏 Ultralytics 原生模型所拥有的广泛社区插件、经过实战检验的集成和企业支持。
YOLOv5 分析
优势:
- 无与伦比的多功能性: 开箱即用,支持 detect、segment 和 classify。
- 强大的生态系统:由Ultralytics提供支持,它能轻松与 Ultralytics HUB、Roboflow 和 Comet ML 等工具集成。
- 部署就绪: 存在大量关于导出到 CoreML、TFLite、TensorRT 和 OpenVINO 的文档,确保生产环境的顺利部署。
- 训练效率:以稳定的训练动态和低内存使用而闻名,使其适用于使用单GPU设置的开发者。
弱点:
理想用例
这两者之间的选择通常取决于您的部署环境的具体限制。
- 如果您正在为嵌入式设备构建专用目标 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 和 姿势估计 在内的全方位视觉任务。