YOLOv10 与YOLOv5:架构与性能深度剖析
在快速发展的计算机视觉领域,选择正确的物体检测模型是项目成功的关键。本比较探讨了 YOLOv10和 YOLOv5 之间的技术差异。 YOLOv5之间Ultralytics 技术差异。虽然这两种模型都源于 "只看一遍 "的理念,但它们满足了不同的工程优先级和部署环境。
机型概览
YOLOv10:效率专家
YOLOv10 由清华大学的研究人员于 2024 年 5 月发布,它引入了旨在消除推理过程中对非最大抑制(NMS)需求的架构机制。通过在训练过程中使用一致的双分配,YOLOv10 减少端到端延迟,使其成为推理延迟每毫秒都很重要的边缘应用的有力候选者。
- 作者: Ao Wang, Hui Chen, Lihao Liu, et al.
- 组织: 清华大学
- 日期: 2024-05-23
- Arxiv:YOLOv10:实时端到端物体检测
- GitHub:THU-MIG/yolov10
Ultralytics YOLOv5:行业标准
自 2020 年由 UltralyticsYOLOv5 在人工智能界定义了易用性。它优先考虑速度、准确性和工程实用性之间的平衡。除了原始指标,YOLOv5 还提供了一个成熟的生态系统,可与移动部署工具、实验跟踪平台和数据集管理工作流程无缝集成。其多功能性不仅限于检测,还包括图像分类和实例分割。
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub:yolov5
建筑差异
主要分歧在于如何处理预测。YOLOv5 利用高度优化的基于锚的架构,依靠NMS 过滤重叠的边界框。这种方法经过实战检验,在各种数据集上都非常稳健。
相比之下,YOLOv10 采用了一致的双重分配策略。这样,模型就能在推理过程中为每个对象预测一个最佳框,理论上完全消除了NMS 步骤。减少后处理开销是YOLOv10 的主要优势,可降低在NVIDIA Jetson Orin Nano 等边缘设备上的延迟。此外,YOLOv10 还在其主干和头部采用了整体效率设计,以最大限度地减少参数 (params) 和浮点运算 (FLOP)。
内存效率
像YOLOv5 这样的Ultralytics 模型(以及更新的 YOLO11等 Ultralytics 模型的一个特点是优化了内存占用。与某些消耗大量CUDA 内存的transformer检测器不同,Ultralytics 模型的设计目的是在消费级硬件上高效地进行训练,使最先进的人工智能技术平民化。
性能指标
下表强调了性能权衡。与较早的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 。
弱点:
- 功能有限:主要侧重于物体检测,缺乏对复杂任务的本地支持,例如较新的Ultralytics 模型中的姿势估计 或定向边框(旋转框检测)检测。
- 开发生态系统:作为一种以研究为中心的模型,它可能缺乏大量的社区插件、经过实战检验的集成以及Ultralytics模型所能提供的企业支持。
YOLOv5 分析
优势:
- 无与伦比的多功能性:开箱即可支持检测、分割和分类。
- 强大的生态系统:以 Ultralytics的支持,它可以毫不费力地与Ultralytics HUB、Roboflow 和Comet ML 等工具集成。
- 部署就绪:有大量文件可用于导出到CoreML、TFLite、TensorRT 和OpenVINO,确保生产顺利推出。
- 训练效率:以稳定的训练动态和较低的内存使用率而著称,使其适用于使用GPU GPU 设置的开发人员。
弱点:
理想用例
在这两者之间做出选择,往往取决于部署环境的具体限制。
- 在以下情况下选择YOLOv10 如果您正在为嵌入式设备构建专用的目标检测系统,而消除NMS 计算开销可提供关键的速度优势,或者如果您需要从较小的模型基底面中获得绝对最高的mAP 。
- 如果您有以下需求,请选择YOLOv5 您需要为生产流水线提供可靠的多任务模型。它能够处理实例分割和分类,是视觉人工智能的 "瑞士军刀"。此外,如果您的团队依赖于标准的 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 设计推动了延迟优化的发展,使其成为专业化高速检测任务的理想选择。
然而,对于大多数开发人员和企业来说,Ultralytics 生态系统--在此由 YOLOv5 的持久可靠性所代表--是一个非常重要的工具。YOLOv5和 YOLO11-提供了更全面的解决方案。易用性、广泛的文档和多任务功能的结合,确保您花更少的时间调试,更多的时间部署价值。
对于那些希望从YOLOv5 升级,同时保留生态系统优势的用户,我们强烈建议探索 YOLO11,它具有最先进的性能、无锚检测功能,并支持包括旋转框检测 和姿势估计 在内的所有视觉任务。