跳转至内容

YOLOv5 对比 YOLOX:架构转变与性能指标

目标检测领域发展迅速,各种架构竞相争取推理速度和检测准确性之间的最佳平衡。由Ultralytics开发的YOLOv5和旷视科技(Megvii)推出的研究型模型YOLOX是这一发展历程中的两个重要里程碑。尽管这两种模型都源自“You Only Look Once”系列,但它们在架构理念上存在显著差异——特别是在基于锚框与无锚框检测机制方面。

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

Ultralytics YOLOv5:工程标准

YOLOv5 于 2020 年发布,迅速成为实用目标检测的行业标准。与主要作为学术研究项目的先行者不同,YOLOv5 在设计时注重可用性、部署便捷性和实际性能。它引入了基于 PyTorch 的精简工作流程,使更广泛的受众能够训练和部署自定义模型。

YOLOv5 采用基于锚框的架构,利用预定义的锚框来预测物体位置。它集成了“AutoAnchor”功能,该功能在训练前演化锚框形状以适应自定义数据集,确保最佳收敛。该模型具有CSPNet主干网络和 PANet 颈部网络,针对快速特征提取和聚合进行了优化。其主要优势在于其卓越的推理速度和低内存占用,使其成为边缘计算和移动应用的理想选择。

了解更多关于 YOLOv5 的信息

YOLOX:无锚框竞争者

YOLOX于2021年由旷视发布,旨在通过采用无锚框设计来突破YOLO家族的界限。这种方法消除了对预定义锚框的需求,转而直接预测物体中心和尺寸。这一转变旨在简化设计过程,并提高对不同物体形状的泛化能力。

YOLOX引入了解耦头架构,将分类和回归任务分离到不同的分支中。这从理论上允许模型学习不同的特征表示,以识别对象是什么在哪里。此外,它采用了一种先进的标签分配策略,即SimOTA(简化最优传输分配),用于在训练期间动态分配正样本。尽管这些创新有助于提高准确性,但它们通常伴随着计算复杂度的增加。

了解更多关于 YOLOX 的信息

寻找最新技术?

尽管 YOLOv5 和 YOLOX 代表了计算机视觉历史上的重要里程碑,但该领域发展迅速。Ultralytics 的最新模型YOLO11,相比之下提供了卓越的准确性和速度,采用更精炼的架构,支持 detect、segment、姿势估计等功能。

性能分析:速度 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实现了仅1.12毫秒的TensorRT延迟,使其非常适合在NVIDIA Jetson等边缘设备上进行高帧率视频处理。相比之下,最小的YOLOX模型缺乏可比的CPU基准数据,并且在相似的准确性级别下,其GPU延迟通常更高。
  • 准确率 (mAP): YOLOX 往往在 COCO 数据集上获得稍高的 mAP 分数,特别是其较大的变体(YOLOX-x 为 51.1,而 YOLOv5x 为 50.7)。这归因于其无锚框设计和解耦头,可以更好地处理目标变化。但是,这种边际收益通常以显着更高的计算开销(FLOPs)为代价。
  • 效率: YOLOv5 模型在给定推理速度下通常需要更少的 FLOPs。YOLOv5 的耦合头设计对硬件更友好,可以在 CPU 和 GPU 上实现更快的执行。

架构深度解析

根本区别在于每个模型处理检测问题的方式。

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

  • 优点:训练稳定,方法成熟,在标准数据集上表现出色。
  • 缺点:对于特殊数据集上的锚框,需要进行超参数调优(尽管 YOLOv5 的 AutoAnchor 缓解了这一问题)。

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

  • 优点:减少设计参数数量(无需调整锚点),在不规则长宽比上具有更好的泛化潜力。
  • 缺点:训练收敛速度可能较慢,且解耦头增加了层数,从而增加了推理延迟

用户体验与生态系统

Ultralytics YOLOv5 最显著的特点之一是其强大的生态系统。尽管 YOLOX 提供了坚实的学术基础,但 YOLOv5 提供了一个为开发者设计的、可用于生产的框架。

易用性

YOLOv5 以其“一站式”的简便性而闻名。从数据标注到模型训练和部署,Ultralytics 生态系统简化了每个步骤。该模型可以通过几行代码加载,并支持自动导出为诸如TFLiteCoreMLONNX等格式。

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 模型不仅仅是关于检测。该框架支持图像分类实例分割,为多项任务提供统一的 API。这种多功能性在像 YOLOX 这样主要专注于检测的研究型仓库中通常是缺乏的。此外,Ultralytics 的积极维护确保了与最新版本 PyTorch 和 CUDA 的兼容性,减少了随着时间推移出现的“代码腐烂”问题。

理想用例

  • 选择Ultralytics YOLOv5如果:

    • 您需要在边缘设备(如Raspberry Pi、手机)上获得实时性能
    • 您优先考虑部署简易性,并需要内置支持以导出到TensorRT、CoreML或TFLite。
    • 您偏好一个稳定、文档完善且拥有活跃社区支持的框架。
    • 您的应用程序涉及安全监控或自主导航,其中低延迟至关重要。
  • 如果满足以下条件,请选择 YOLOX:

    • 您正在专门针对无锚框架构进行学术研究。
    • 您需要绝对最高的mAP用于竞赛或基准测试,无论推理速度如何。
    • 您拥有一个专门的数据集,其中基于锚点的方法已明确失效(例如,极端的长宽比),并且AutoAnchor未能解决此问题。

结论

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

对于今天开始新项目的人,我们强烈推荐探索YOLO11。它在 YOLOv5 的优势(易用性和速度)基础上,集成了现代架构的进步,在准确性和多功能性方面超越了 YOLOv5 和 YOLOX。

其他模型对比

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


评论