跳转至内容

YOLOv5 与YOLOv10:实时物体检测的演变

只看一眼YOLO)系列极大地改变了物体检测领域的格局。自问世以来,YOLO 在速度和准确性之间取得了平衡,成为计算机视觉开发人员的首选架构。本对比探讨了这一历史进程中的两个关键时刻: Ultralytics YOLOv5是可靠性和多功能性的行业标准,而 YOLOv10和 YOLOv10,后者是清华大学最近发布的学术成果,引入了NMS 检测技术,提高了效率。

机型概览

Ultralytics YOLOv5

Glenn JocherUltralytics, YOLOv5从根本上改变了人工智能模型的部署方式。它将可用性、导出为多种格式CoreML、ONNX、TFLite)以及在边缘硬件上的强大性能放在首位。由于其 "能用就行 "的理念和广泛的社区支持,它仍然是全球最流行、部署最广泛的视觉模型之一。

主要作者: Glenn JocherGlenn Jocher
组织:Ultralytics
发布日期:2020-06-26
GitHub:yolov5

了解更多关于 YOLOv5 的信息

YOLOv10

YOLOv10 由清华大学的研究人员于 2024 年 5 月发布,旨在消除以前版本中的后处理瓶颈。通过为NMS 训练引入一致的双重分配,它优化了推理流水线,减少了延迟和计算开销。

主要作者: Ao Wang, Hui Chen, et al:王傲、陈辉等
组织机构:清华大学清华大学
发布日期:2024-05-23
arXiv:YOLOv10:实时端到端对象检测

了解有关YOLOv10的更多信息

最新创新

在比较这些强大架构的同时,启动新项目的开发人员还应评估 YOLO11.YOLO11 在两者优势的基础上,提供了最先进的准确性、改进的特征提取,以及对各种任务的本地支持,如姿势估计 面向对象检测

建筑与技术创新

YOLOv5 和YOLOv10 在架构上的不同之处,突出了从成熟、基于锚点的可靠性到尖端、无锚点效率的转变。

YOLOv5:锚式标准

YOLOv5 采用了 CSPNet(跨阶段部分网络)骨干网,它平衡了模型的深度和宽度,在保持精度的同时最大限度地降低了FLOPS。它依赖于锚点框--帮助模型预测物体尺寸的预定义形状。

  • 骨干网:CSP-Darknet53 专注于梯度流。
  • 头部:基于锚点预测的耦合头部。
  • 后期处理:需要非最大抑制(NMS)来过滤重复检测。

YOLOv10:NMS 效率

YOLOv10 采用了以效率和精确度为导向的整体设计。它的突出特点是使用一致的双重分配来实现NMS 训练策略。这样,模型在推理过程中就能准确预测每个对象的一个边框,从而完全消除了导致延迟的NMS 步骤。

  • 骨干:利用大核卷积和部分自我关注进行增强。
  • 头部:结合一对多和一对一标签分配的统一头部。
  • 优化:以等级为导向的区块设计,减少冗余。

性能分析

下表比较了COCO 数据集的性能指标。虽然YOLOv5 仍具有竞争力,特别是在其 Nano 变体的CPU 速度方面,但YOLOv10 在参数和准确度mAP) 方面表现出更高的效率。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
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
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

指标分解

  • 精确度(mAP): YOLOv10 的平均精确度大幅提高。例如,与 YOLOv5n 的 28.0 mAP相比,YOLOv10n 达到了39.5 mAP,使其在检测困难物体方面的能力大大提高。
  • 效率: YOLOv10 以较少的参数(230 万个,而 Nano 型号为 260 万个)实现了这些结果,展示了其优化架构设计的优势。
  • 推理速度:YOLOv5n 在 CPU 上的速度仍然快得惊人(73.6ms),这对于像旧式Raspberry Pi设备这样的GPU GPU 边缘设备来说至关重要。不过,在GPU 硬件TensorRT)上,尽管YOLOv10 的精度更高,但其推理速度仍具有竞争力。

优势与劣势

Ultralytics YOLOv5

  • 无与伦比的生态系统:经过多年的发展,它已成为最大的活跃社区之一。问题解决迅速,资源丰富。
  • 多功能性:除检测功能外,它还支持图像分割分类
  • 易用性:应用程序接口设计简单。从PyTorch Hub加载模型只需一行代码。
  • 部署:对导出格式的广泛支持确保它能在从手机到云服务器的所有设备上运行。

YOLOv10

  • 低延迟:取消NMS 可大大缩短后处理时间,这对于毫秒必争的实时应用来说至关重要。
  • 参数效率:每个参数的精度更高,因此非常适合存储或内存有限的设备。
  • 重点:虽然功能强大,但它主要专注于物体检测,缺乏Ultralytics YOLO 系列(v8、11)的本地多任务广度(如姿势估计 )。

内存要求

这两种模型都设计得非常轻便。大型transformer 模型在训练过程中会消耗大量的CUDA 内存,与之不同的是,Ultralytics YOLO 模型对内存效率进行了优化,使其能够在消费级 GPU 上以适度的 VRAM 进行训练。

实际应用案例

何时选择YOLOv5

对于需要稳定性和广泛平台支持的生产系统来说,YOLOv5 是一个实用的选择。

  • 工业自动化:广泛应用于对可靠性要求极高的制造业质量控制。
  • 移动应用程序:与iOS CoreML)和Android TFLite)的兼容性已得到验证,使其成为设备上应用程序集成的理想选择。
  • 快速原型开发:大量的教程和文档可让开发人员在数小时内完成从概念到 POC 的转变。

何时选择YOLOv10

YOLOv10 非常适合要求最高精度-效率比的场景。

  • 高速机器人: NMS 架构可减少延迟差异,这对自主机器人的控制回路至关重要。
  • 学术研究:希望以最新端到端检测范例为基准的研究人员会发现YOLOv10 的架构新颖而有效。
  • 远程监控:高mAP ,低参数,适合在有限带宽或存储条件下运行的安全系统

培训和易用性

Ultralytics 优先考虑简化开发人员的体验。无论是使用经典的YOLOv5 存储库还是现代的 ultralytics 对于较新型号的软件包,操作过程非常直观。

使用YOLOv5

YOLOv5 以易于通过PyTorch Hub 加载而闻名,可实现即时推理。

import torch

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

# Perform inference on an image
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)

# Display results
results.show()

使用YOLOv10

YOLOv10 可通过使用 ultralytics Python 软件包,受益于同样强大的应用程序接口。

from ultralytics import YOLO

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

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

# Run inference
model.predict("https://ultralytics.com/images/bus.jpg", save=True)

结论

这两种架构都是计算机视觉领域的里程碑。 YOLOv5仍然是业界可靠的主力军--功能强大、用途广泛,并得到庞大生态系统的支持。它是满足各种部署需求的安全 "最佳 "选择。 YOLOv10以其NMS 设计推动了效率的提升,为专注于检测任务、需要在有限硬件上最大限度提高准确性的用户提供了令人信服的升级。

对于寻求两全其美的开发人员--将Ultralytics 成熟的生态系统与最先进的准确性和速度相结合--我们建议您探索 YOLO11.它将这些先进技术整合到一个功能强大的框架中,可用于任何视觉任务。

要了解更多比较信息,请查看YOLOv5 与YOLOv8YOLOv10 与YOLO11


评论