跳转至内容

YOLOv5 vs YOLOX:架构转变和性能指标

物体检测领域发展迅速,各种架构都在推理速度和检测精度之间寻求最佳平衡。这一历程中的两个重要里程碑是 YOLOv5和 MegviiUltralytics研究型模型YOLOX。虽然这两个模型都源于 "只看一次 "的理念,但它们在架构理念上有很大的不同,特别是在基于锚的检测机制和无锚检测机制方面。

本比较探讨了两种模型的技术规格、架构差异和性能指标,以帮助开发人员和研究人员为其计算机视觉项目选择合适的工具。

Ultralytics YOLOv5:工程标准

YOLOv5 于 2020 年发布,并迅速成为实用物体检测的行业标准。YOLOv5 的前身主要是学术研究项目,与之不同的是,YOLOv5 的设计重点在于可用性、部署便利性和实际性能。它引入了PyTorch简化工作流程,使更多的用户可以训练和部署自定义模型。

YOLOv5 采用基于锚点的架构,利用预定义的锚点框来预测对象位置。它集成了 "AutoAnchor "功能,可在训练前改进锚点形状以适应自定义数据集,从而确保最佳收敛性。该模型以CSPNet骨干和 PANet 颈部为特色,针对快速特征提取和聚合进行了优化。其主要优势在于推理速度快、内存占用少,非常适合边缘计算和移动应用。

了解更多关于 YOLOv5 的信息

YOLOX:无锚竞争者

2021 年,Megvii 推出的 YOLOX 采用无锚设计,力求突破YOLO 系列的极限。这种方法无需预定义锚框,而是直接预测物体中心和尺寸。这一转变旨在简化设计流程,提高对不同物体形状的通用性。

YOLOX 引入了一种解耦头架构,将分类和回归任务分离成不同的分支。从理论上讲,这允许模型学习不同的特征表征,以识别物体是什么在哪里。此外,它还采用了一种称为SimOTA(简化最优传输分配)的先进标签分配策略,在训练过程中动态分配正样本。虽然这些创新有助于提高准确率,但往往也会增加计算复杂度。

了解更多关于 YOLOX 的信息

寻找最新技术?

虽然YOLOv5 和 YOLOX 代表了计算机视觉发展史上的重要一步,但该领域的发展也是日新月异。 YOLO11是Ultralytics 推出的最新型号,与这两款产品相比,具有更高的准确性和更快的速度,其完善的架构支持检测、分割、姿势估计 等功能。

性能分析:速度 vs. 准确性

在比较YOLOv5 和 YOLOX 时,权衡的焦点通常是推理延迟与绝对精度。YOLOv5 对速度进行了细致的优化,尤其是在硬件加速器上使用 TensorRT和ONNX Runtime 的硬件加速器上。正如下面的数据所示,YOLOv5 模型在同等规模的模型中表现出明显更低的延迟(更高的速度)。

模型尺寸
(像素)
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
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

主要内容

  • 推理速度: YOLOv5 在速度方面具有决定性的优势。例如,YOLOv5n的TensorRT 延迟仅为1.12 毫秒,非常适合在NVIDIA Jetson 等边缘设备上进行高帧频视频处理。相比之下,最小的 YOLOX 型号在CPU 方面缺乏可比较的基准数据,而且其GPU 延迟在类似的精度层级中普遍较高。
  • 精度(mAP):YOLOX 的mAP值往往略高。 mAP分,尤其是较大的变体(YOLOX-x 为 51.1 分,YOLOv5x 为 50.7 分)。这归功于其无锚点设计和去耦合头部,可以更好地处理物体的变化。然而,这种边际收益往往是以大幅提高计算开销(FLOPs)为代价的。
  • 效率:在给定推理速度的情况下,YOLOv5 模型所需的FLOP通常更少。YOLOv5 的耦合头设计对硬件更友好,可以在 CPU 和 GPU 上更快地执行。

架构深度解析

其根本区别在于每个模型如何处理检测问题。

YOLOv5 (基于锚点): YOLOv5 使用一组预定义的锚点框。在训练过程中,模型会学习调整这些锚点框以适应对象。这种方法依赖于物体大小与网格单元大小之间的相关性。

  • 优点稳定的训练、成熟的方法、在标准数据集上的出色表现。
  • 缺点:需要对特殊数据集上的锚点进行超参数调整(尽管YOLOv5 的自动锚点功能可以缓解这一问题)。

YOLOX(无锚): YOLOX 将物体检测视为点回归问题。它预测网格单元中心到物体边界的距离。

  • 优点减少了设计参数的数量(无需调整锚点),有可能更好地概括不规则的长宽比。
  • 缺点:在训练过程中收敛速度可能较慢,而且解耦头增加的层数会增加推理延迟

用户体验和生态系统

最显著的特征之一是 Ultralytics YOLOv5最显著的特点之一就是其强大的生态系统。YOLOX 提供了一个强大的学术基础,而YOLOv5 则为开发人员提供了一个产品就绪框架。

易用性

YOLOv5 以其 "从开始到完成 "的简便性而闻名。从数据注释到模型训练和部署,Ultralytics 生态系统简化了每一个步骤。只需几行代码即可加载模型,并支持自动导出为以下格式 TFLite, CoreMLONNX.

import torch

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

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

# Print results
results.print()

多功能性和维护

Ultralytics 模型不仅仅是检测。该框架支持图像分类实例分割,为多种任务提供了统一的应用程序接口。像 YOLOX 这样主要专注于检测的特定研究资源库往往缺乏这种多功能性。此外,Ultralytics 的积极维护确保了与最新版本PyTorch 和CUDA 的兼容性,从而减少了随着时间推移而产生的 "代码腐烂"。

理想用例

  • 如果符合以下条件,请选择Ultralytics YOLOv5 :

    • 您需要在边缘设备(Raspberry Pi、手机)上实现实时性能
    • 您会优先考虑部署的便捷性,并需要内置的支持,以导出到TensorRT、CoreML 或TFLite。
    • 您更喜欢稳定、文档齐全、社区支持活跃的框架。
    • 您的应用涉及安全监控或自主导航,在这些应用中,低延迟至关重要。
  • 如果您符合以下条件,请选择 YOLOX:

    • 您正在进行专门针对无锚架构的学术研究。
    • 您需要比赛或基准的绝对最大mAP ,而不考虑推理速度。
    • 您有一个特殊的数据集,基于锚点的方法明显失效(例如,极端长宽比),而 AutoAnchor 无法解决问题。

结论

YOLOv5 和 YOLOX 在计算机视觉史上都占有一席之地。YOLOX展示了YOLO 系列中无锚检测器的可行性,为学术研究提供了强有力的基础。然而,对于绝大多数实际应用而言,YOLOX5 并不适合、 Ultralytics YOLOv5凭借其无与伦比的速度、效率和对开发人员友好的生态系统,仍然是最佳选择。

对于今天开始新项目的人,我们强烈推荐探索 YOLO11.它以YOLOv5的优势YOLOv5和速度)为基础,同时集成了现代建筑的先进技术,在精确性和多功能性方面超越了YOLOv5 和 YOLOX。

其他模型对比

探索Ultralytics 模型与该领域其他架构的比较:


评论