YOLOv5 对比 YOLOX:架构转变与性能指标
目标检测领域发展迅速,各种架构竞相争取推理速度和检测准确性之间的最佳平衡。由Ultralytics开发的YOLOv5和旷视科技(Megvii)推出的研究型模型YOLOX是这一发展历程中的两个重要里程碑。尽管这两种模型都源自“You Only Look Once”系列,但它们在架构理念上存在显著差异——特别是在基于锚框与无锚框检测机制方面。
本比较探讨了两种模型的技术规格、架构差异和性能指标,旨在帮助开发人员和研究人员为其计算机视觉项目选择合适的工具。
Ultralytics YOLOv5:工程标准
YOLOv5 于 2020 年发布,迅速成为实用目标检测的行业标准。与主要作为学术研究项目的先行者不同,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:无锚框竞争者
YOLOX于2021年由旷视发布,旨在通过采用无锚框设计来突破YOLO家族的界限。这种方法消除了对预定义锚框的需求,转而直接预测物体中心和尺寸。这一转变旨在简化设计过程,并提高对不同物体形状的泛化能力。
- 作者: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, 和 Jian Sun
- 组织:旷视科技
- 日期: 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 代表了计算机视觉历史上的重要里程碑,但该领域发展迅速。Ultralytics 的最新模型YOLO11,相比之下提供了卓越的准确性和速度,采用更精炼的架构,支持 detect、segment、姿势估计等功能。
性能分析:速度 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实现了仅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 生态系统简化了每个步骤。该模型可以通过几行代码加载,并支持自动导出为诸如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 模型不仅仅是关于检测。该框架支持图像分类和实例分割,为多项任务提供统一的 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 模型如何与该领域的其他架构进行比较: