YOLOv5 vs YOLOX:架构转变和性能指标
物体检测领域发展迅速,各种架构都在推理速度和检测精度之间寻求最佳平衡。这一历程中的两个重要里程碑是 YOLOv5和 MegviiUltralytics研究型模型YOLOX。虽然这两个模型都源于 "只看一次 "的理念,但它们在架构理念上有很大的不同,特别是在基于锚的检测机制和无锚检测机制方面。
本比较探讨了两种模型的技术规格、架构差异和性能指标,以帮助开发人员和研究人员为其计算机视觉项目选择合适的工具。
Ultralytics YOLOv5:工程标准
YOLOv5 于 2020 年发布,并迅速成为实用物体检测的行业标准。YOLOv5 的前身主要是学术研究项目,与之不同的是,YOLOv5 的设计重点在于可用性、部署便利性和实际性能。它引入了PyTorch简化工作流程,使更多的用户可以训练和部署自定义模型。
- 作者: Glenn Jocher
- 组织机构Ultralytics
- 日期: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- 文件:https://docs.ultralytics.com/models/yolov5/
YOLOv5 采用基于锚点的架构,利用预定义的锚点框来预测对象位置。它集成了 "AutoAnchor "功能,可在训练前改进锚点形状以适应自定义数据集,从而确保最佳收敛性。该模型以CSPNet骨干和 PANet 颈部为特色,针对快速特征提取和聚合进行了优化。其主要优势在于推理速度快、内存占用少,非常适合边缘计算和移动应用。
YOLOX:无锚竞争者
2021 年,Megvii 推出的 YOLOX 采用无锚设计,力求突破YOLO 系列的极限。这种方法无需预定义锚框,而是直接预测物体中心和尺寸。这一转变旨在简化设计流程,提高对不同物体形状的通用性。
- 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
- 组织机构Megvii
- 日期: 2021-07-18
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
- 文件:https://yolox.readthedocs.io/en/latest/
YOLOX 引入了一种解耦头架构,将分类和回归任务分离成不同的分支。从理论上讲,这允许模型学习不同的特征表征,以识别物体是什么和在哪里。此外,它还采用了一种称为SimOTA(简化最优传输分配)的先进标签分配策略,在训练过程中动态分配正样本。虽然这些创新有助于提高准确率,但往往也会增加计算复杂度。
寻找最新技术?
虽然YOLOv5 和 YOLOX 代表了计算机视觉发展史上的重要一步,但该领域的发展也是日新月异。 YOLO11是Ultralytics 推出的最新型号,与这两款产品相比,具有更高的准确性和更快的速度,其完善的架构支持检测、分割、姿势估计 等功能。
性能分析:速度 vs. 准确性
在比较YOLOv5 和 YOLOX 时,权衡的焦点通常是推理延迟与绝对精度。YOLOv5 对速度进行了细致的优化,尤其是在硬件加速器上使用 TensorRT和ONNX Runtime 的硬件加速器上。正如下面的数据所示,YOLOv5 模型在同等规模的模型中表现出明显更低的延迟(更高的速度)。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.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, CoreML和 ONNX.
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 模型与该领域其他架构的比较: