YOLOv5 vs YOLOX:技术对比
选择合适的物体检测模型是一个至关重要的决定,它需要在准确性、速度和部署复杂性之间取得平衡。本页面提供了 YOLO 系列中两个有影响力的模型:Ultralytics YOLOv5 和 YOLOX 之间的详细技术比较。虽然这两种模型都提供实时性能,但它们是基于完全不同的设计理念构建的。YOLOv5 是一种高度优化的、基于锚框的模型,以其卓越的易用性和效率而闻名,而 YOLOX 引入了一种无锚框方法来突破准确性的界限。我们将深入研究它们的架构、性能指标和理想用例,以帮助您确定哪种模型最适合您项目的需求。
Ultralytics YOLOv5:已建立的行业标准
技术细节:
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- 文档: https://docs.ultralytics.com/models/yolov5/
架构和主要特性
Ultralytics YOLOv5 因其在速度、准确性和用户友好性方面的卓越融合而成为行业基准。YOLOv5 完全用 PyTorch 构建,具有强大的架构,包括 CSPDarknet53 backbone、用于特征聚合的 PANet neck 和高效的基于 anchor 的检测头。其主要优势之一是其可扩展性,提供从小型快速的 YOLOv5n 到大型精确的 YOLOv5x 的一系列模型。这种灵活性使开发人员能够根据其特定的计算和性能要求选择完美的模型。
优势
- 卓越的速度和效率: YOLOv5 针对快速 推理 进行了高度优化,使其成为从 CPU 到 GPU 和 边缘设备 的各种硬件上实时系统的首选。
- 易用性: YOLOv5 以其简化的用户体验而闻名,它提供了一个简单的 Python API 和 CLI,并辅以丰富的 文档 和大量教程。
- 完善的维护生态系统: 作为 Ultralytics 模型,YOLOv5 受益于成熟且活跃的生态系统。这包括持续开发、大型且支持性强的社区、频繁的更新以及与 Ultralytics HUB 等工具的无缝集成,以实现无代码训练和部署。
- 训练效率: 该模型提供高效的训练流程,并在 COCO 等数据集上提供随时可用的 预训练权重,从而显著减少训练时间和计算成本。
- 多功能性: YOLOv5 不仅限于 目标检测;它还支持 实例分割 和 图像分类,使其成为各种计算机视觉任务的多功能工具。
- 更低的内存占用: 与更复杂的架构相比,YOLOv5通常在训练和推理过程中需要更少的内存,使其更容易被硬件资源有限的用户使用。
弱点
- 基于 Anchor 的检测: 与 无 anchor 检测器 相比,它对预定义 anchor 框的依赖有时可能需要仔细调整,以便在具有不规则形状或缩放对象的数据集上获得最佳性能。
- 精度权衡: 虽然提供了出色的平衡,但较小的 YOLOv5 模型优先考虑速度,这可能会导致与 YOLOX 或 YOLOv9 等更新、更复杂的架构相比,精度略有降低。
应用案例
YOLOv5 在速度和效率至关重要的应用中表现出色:
- 实时安全: 实现防盗和异常检测。
- 边缘计算: 可以高效地部署在资源受限的设备(如 Raspberry Pi 和 NVIDIA Jetson)上。
- 工业自动化: 提高制造业中的质量控制,例如提高回收效率。
YOLOX:一种无锚框且高性能的替代方案
技术细节:
- 作者: 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 由 Megvii 的研究人员于 2021 年推出,提出了一种无锚框的目标检测方法。这种设计选择旨在通过消除对预定义锚框的需求来简化检测流程并提高泛化能力。关键的架构创新包括一个解耦头,它将分类和定位任务分离到不同的分支中,以及使用高级训练策略,如SimOTA,这是一种动态标签分配技术,可帮助模型学习更好的表示。
优势
- 无锚框检测: 通过移除与锚框相关的复杂性和先验假设,简化了检测流程,从而可能在具有不同宽高比的物体上实现更好的性能。
- 高精度: 实现了具有竞争力的精度,特别是对于其较大的模型。解耦头和先进的 SimOTA 标签分配策略是其强大的 mAP 分数的关键因素。
弱点
- 复杂性: 虽然无锚框设计简化了一个方面,但解耦头的引入和像 SimOTA 这样的高级策略会增加实现的复杂性,并使训练过程变得不那么直观。
- 外部生态系统: YOLOX 不是 Ultralytics 套件的一部分,这意味着它缺乏与 Ultralytics HUB 等强大工具的无缝集成。 这可能会导致学习曲线更陡峭,并且需要更多的人工才能进行训练、部署和 MLOps。
- CPU 速度: CPU 上的推理速度可能落后于像 YOLOv5 这样经过高度优化的模型,特别是对于较大的 YOLOX 变体,这使得它不太适合某些实时 CPU 密集型应用。
应用案例
YOLOX 非常适合将最大化准确性作为首要任务的应用:
- 自动驾驶: 适用于 自动驾驶车辆 中高精度对于安全至关重要的感知任务。
- 高级机器人技术: 非常适合机器人需要精确的目标检测来进行导航和交互的复杂环境。
- 研究: 为探索无锚框方法和目标检测研究中的高级训练技术提供了一个强大的基准。
性能与速度对比
在比较 YOLOv5 和 YOLOX 时,速度、精度和模型大小之间的权衡变得显而易见。YOLOv5 专为实现卓越的效率而设计,可提供非常快的推理速度,尤其是在 CPU 上以及导出到 TensorRT 等优化格式时。这使其成为在各种硬件上需要实时性能的应用的强大选择。另一方面,YOLOX 追求更高的精度,其最大的模型 YOLOX-x 实现了比 YOLOv5x 稍高的 mAP。然而,这种精度提升通常伴随着计算成本的增加和更慢的推理时间。
下表提供了 YOLOv5 和 YOLOX 的各种模型大小的定量比较,这些模型均在 COCO val2017 数据集 上进行了基准测试。
模型 | 尺寸 (像素) |
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 和 YOLOX 都是强大的目标检测模型,但它们侧重的优先级不同。
Ultralytics YOLOv5 仍然是绝大多数实际应用的更佳选择。它的主要优势在于无与伦比的易用性、卓越的推理速度以及强大、维护良好的生态系统。对于希望快速高效地从概念到生产的开发人员和团队来说,YOLOv5 的简化工作流程、广泛的文档以及与 Ultralytics HUB 等工具的集成非常宝贵。它在速度和准确性之间提供了出色的平衡,使其非常适合在从高端云服务器到资源受限的边缘设备的各种设备上进行部署。
YOLOX 是一种强大的学术和研究模型,展示了无锚框架构的潜力。对于那些以实现绝对最高的 mAP 为主要目标,并且开发团队准备好处理增加的复杂性和缺乏集成生态系统的项目来说,它是一个合适的选择。
对于大多数开发者、研究人员和企业,我们建议从 Ultralytics 模型开始。统一的、积极开发的框架的优势在于,它支持多项任务(检测、分割、姿势等),并提供清晰的升级路径,可升级到 YOLOv8 和 YOLO11 等较新的模型,从而提供显著的长期优势。Ultralytics 生态系统的设计旨在加速开发,并确保您拥有成功所需的支持和工具。
其他模型对比
如果您有兴趣将这些模型与 YOLO 系列及其他模型进行比较,请查看以下页面: