YOLOX 与 YOLOv7:技术对比
对于任何 计算机视觉 项目来说,选择合适的物体检测模型都是至关重要的决定,它直接影响性能、速度和部署可行性。本页面提供了 YOLO 系列中两个有影响力的模型:YOLOX 和 YOLOv7 之间的详细技术比较。我们将探讨它们的架构差异、性能基准和理想用例,以帮助您做出明智的选择。
YOLOX:无锚框的卓越性能
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 以其几项关键的架构创新而脱颖而出,这些创新使其与之前的版本区分开来:
- 无Anchor设计: 通过消除预定义的anchor框,YOLOX减少了设计参数的数量以及与anchor调整相关的复杂性。这使得模型更加灵活,并且更擅长泛化到具有不同形状和大小的对象,尤其是在像COCO这样的数据集上。
- 解耦头: 与同时执行分类和定位的耦合头不同,YOLOX 使用解耦头。这种分离被证明可以解决这两个任务之间的冲突,从而在训练期间实现更快的收敛和更高的准确性。
- 高级数据增强: 该模型利用强大的数据增强技术,包括 MixUp 和 Mosaic,以增强其鲁棒性并防止过拟合。您可以在我们的数据增强指南中了解更多关于这些技术的信息。
- SimOTA标签分配: YOLOX引入了一种名为SimOTA(简化最优传输分配)的先进标签分配策略。它动态地为训练分配正样本,从而提高训练效率并帮助模型学习更好的特征。
优势与劣势
优势:
- 简化流程: 无锚框方法通过消除对锚框聚类和调整的需求,简化了训练和部署过程。
- 强大的泛化能力: 无锚框设计和强大的数据增强相结合,有助于模型很好地泛化到新的领域和数据集。
- 良好的性能平衡: YOLOX 在其不同的模型规模中,在速度和准确率之间提供了可靠的权衡。
弱点:
- 被新型号超越: 尽管 YOLOX 效率很高,但其速度和准确性已被 YOLOv7 和后续 Ultralytics 模型等新型架构超越。
- 生态系统限制: YOLOX 不像 Ultralytics 那样是集成生态系统的一部分,这会使部署和 MLOps 变得更具挑战性。它缺乏与 Ultralytics HUB 等工具的无缝集成。
YOLOv7:速度和准确性的巅峰
YOLOv7 在发布时,为实时目标检测器树立了新的标杆,在速度和准确性方面都取得了显著的进步。它通过引入多项架构优化和训练策略来实现这一点。
作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
组织: 台湾中研院资讯科学研究所
日期: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
文档: https://docs.ultralytics.com/models/yolov7/
架构和主要特性
YOLOv7的卓越性能源于其先进的架构组件和训练改进:
- E-ELAN (扩展高效层聚合网络): 骨干网络中的这个关键模块允许网络通过控制梯度路径来学习更多样化的特征,从而在不中断梯度流的情况下增强学习能力。
- 可训练的免费赠品(Trainable Bag-of-Freebies): YOLOv7 引入了一组训练方法,可在不增加推理成本的情况下提高准确性。这包括由粗到精的主导引导训练和引导学习过程的辅助头等技术。
- 模型缩放: 该模型引入了针对深度和宽度的复合缩放方法,这些方法针对基于连接的架构进行了优化,从而确保了不同模型尺寸下的高效性能。
- 重参数化卷积: YOLOv7 使用模型重参数化来提高性能,这项技术此后在现代网络设计中变得流行。
优势与劣势
优势:
- 卓越的速度-精度平衡: YOLOv7 在高mAP和快速推理速度之间实现了出色的平衡,使其成为实时应用的理想选择。
- 训练效率: “免费赠品”方法使其能够通过高效的训练实现高精度。
- 经验证的性能: 它为标准数据集上的实时对象检测器建立了一个新的基准。
弱点:
- 架构复杂性: E-ELAN、辅助头和其他功能的组合使该架构比更简单的模型更复杂。
- 资源密集型训练: 训练较大的 YOLOv7 模型可能需要大量的计算资源和 GPU 内存。
- 通用性有限:虽然官方存储库具有社区驱动的扩展,可用于 姿势估计 等任务,但它本质上不是像较新的 Ultralytics 模型那样的多任务框架。
性能对比:YOLOX vs. YOLOv7
在比较性能时,两种模型都提供了一系列尺寸,以适应不同的计算预算。YOLOX 提供了一个从 Nano 到 X 的可扩展系列,而 YOLOv7 则专注于通过其更大的变体提供顶级的性能。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
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 |
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
从表中可以清楚地看出,YOLOv7 模型通常可以获得更高的 mAP 分数。 例如,YOLOv7l 在精度(51.4% 对 51.1%)上超过了 YOLOXx,参数(36.9M 对 99.1M)和 FLOPs(104.7B 对 281.9B)明显更少,并且在 T4 GPU 上速度更快。 这突出了 YOLOv7 的卓越架构效率。
为什么 Ultralytics YOLO 模型是首选
虽然 YOLOX 和 YOLOv7 是重要的进步,但更新的 Ultralytics YOLO 模型(如 YOLOv8 和 YOLO11)提供了更现代、通用和用户友好的体验。
- 易用性: Ultralytics 模型在设计时充分考虑了开发者的需求,具有简化的 Python API、丰富的 文档 和简单的 CLI 命令,从而使训练、验证和部署变得简单直接。
- 完善的维护生态系统: 受益于强大的生态系统,该生态系统具有积极的开发、大型开源社区、频繁的更新以及与 Ultralytics HUB 等工具的无缝集成,以实现端到端的 MLOps。
- 通用性: 像YOLOv8和YOLO11这样的模型是真正的多任务框架,开箱即用地支持目标检测、分割、分类、姿势估计和旋转框检测 (OBB)。
- 性能和效率: Ultralytics模型在速度和准确性之间提供了极佳的平衡,针对高效的内存使用进行了优化,并且适用于从边缘设备到云服务器的各种硬件。
结论
YOLOX 和 YOLOv7 都是强大的目标检测模型,它们突破了计算机视觉领域可能性的界限。YOLOX 凭借其创新的无锚框设计而备受赞誉,这简化了检测流程。YOLOv7 以其卓越的速度和准确性脱颖而出,使其成为要求苛刻的实时应用的强大选择。
然而,对于当今的开发者和研究人员来说,YOLOv8 和 YOLO11 等 Ultralytics 模型代表着向前迈出的下一步。它们提供卓越的性能、更高的多功能性和更全面、用户友好的生态系统,使其成为构建现代、高性能视觉 AI 解决方案的推荐选择。
其他模型对比
如需进一步了解,请探索其他模型比较: