YOLOv9 vs. YOLOX:技术对比
选择最佳目标检测模型对于在计算机视觉项目中实现预期结果至关重要。模型在架构、性能和资源需求方面差异显著。本页提供了 YOLOv9 和 YOLOX 之间的详细技术比较,分析了它们的关键特性,以帮助您选择最适合您需求的模型。
YOLOv9:推进实时目标检测
作者: Chien-Yao Wang, Hong-Yuan Mark Liao
组织: 台湾中研院资讯科学研究所
日期: 2024-02-21
Arxiv: arXiv:2402.13616
GitHub: github.com/WongKinYiu/yolov9
文档: docs.ultralytics.com/models/yolov9/
Ultralytics YOLOv9 代表了目标检测领域的重大飞跃,引入了诸如 可编程梯度信息 (PGI) 和 广义高效层聚合网络 (GELAN) 等创新技术。YOLOv9 由 Chien-Yao Wang 和 Hong-Yuan Mark Liao 开发,解决了深度神经网络中的信息丢失问题,从而提高了准确性和效率。YOLOv9 集成到 Ultralytics 生态系统中,受益于简化的用户体验、全面的 文档 和强大的社区支持。
架构和主要特性
YOLOv9 的架构旨在利用 PGI 保留通过深层的关键信息流。这有助于缓解深度网络中常见的信息瓶颈问题。GELAN 优化了网络结构,以实现更好的参数利用率和计算效率,并建立在 CSPNet 和 ELAN 的概念之上。这带来了卓越的性能和显著的效率。Ultralytics 的实现通过简单的 Python API 和高效的 训练过程 确保了 易用性,并利用了现成的预训练权重。
优势
- 最先进的精度: 在 COCO 等基准测试中实现了领先的 mAP 分数,通常优于类似大小的其他模型。
- 高效性: 与许多其他方案相比,以更少的参数和 FLOPs 实现了高准确率,使其适用于 边缘 AI 部署。
- 信息保留: PGI 有效地缓解了信息丢失,从而提高了模型的学习能力和最终性能。
- Ultralytics 生态系统: 受益于积极的开发、丰富的资源、用于 MLOps 的 Ultralytics HUB 集成以及训练期间更低的内存要求。
- 多功能性: 虽然最初的论文侧重于检测,但该架构显示出在诸如 实例分割 等任务中的潜力,这与诸如 YOLOv8 等模型的多任务功能相一致。
弱点
- 作为一个较新的模型,与长期建立的模型相比,社区驱动的部署示例范围可能仍在增长。但是,它在 Ultralytics 框架内的集成显着加速了采用并提供了强大的支持系统。
YOLOX:高性能Anchor-Free检测器
作者: 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 开发,是一个无锚框目标检测模型,旨在实现简洁性和高性能。通过移除锚框机制,YOLOX 简化了训练流程并减少了设计参数的数量,这可以提高泛化能力。
架构和主要特性
YOLOX 以其几个关键的架构选择而著称。最重要的是它的无锚框设计,它将目标检测视为每个像素的预测问题。其他主要功能包括分离分类和定位任务的 解耦头、一种称为 SimOTA 的高级标签分配策略,以及使用强大的 数据增强 技术,如 MixUp 和 Mosaic。
优势
- 无Anchor设计: 通过消除对anchor框调整的需求来简化模型架构和训练过程。
- 强大的性能: 在平均精度均值 (mAP) 和当时的推理速度之间实现了具有竞争力的平衡。
- 可扩展性: 提供一系列模型尺寸,从 YOLOX-Nano 到 YOLOX-X,允许跨各种计算资源进行部署。
弱点
- 被新型号超越: 尽管 YOLOX 具有创新性,但其准确性和效率已被 YOLOv9 等新型号超越。
- 碎片化的生态系统: 虽然是开源的,但它缺乏 Ultralytics 提供的集成生态系统和简化的工具,例如与Ultralytics HUB无缝集成以实现 MLOps。
- 更高的计算成本: 对于给定的准确度水平,较大的 YOLOX 模型往往比同等的 YOLOv9 模型具有更多的参数和 FLOPs。
性能对比:YOLOv9 vs. YOLOX
在 COCO 数据集 上比较性能时,YOLOv9 在准确性和效率方面都表现出明显的优势。下表显示,与 YOLOX 相比,YOLOv9 模型始终以更少的参数和 FLOP 实现了更高的 mAP 分数。例如,YOLOv9-C 以 25.3M 参数实现了 53.0% 的 mAP,优于 YOLOX-L(54.2M 参数,49.7% 的 mAP)和 YOLOX-X(99.1M 参数,51.1% 的 mAP),同时效率更高。最大的模型 YOLOv9-E 将准确性边界推高至 55.6% 的 mAP,这是 YOLOX 无法达到的水平。这种卓越的每计算性能使 YOLOv9 成为现代应用中更强大且资源友好的选择。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
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 |
理想用例
YOLOv9
YOLOv9卓越的准确性和效率使其成为对性能要求严苛的应用的理想选择。它在以下场景中表现出色:
- 高级驾驶辅助系统 (ADAS): 以高精度检测车辆、行人和道路标志,用于自动驾驶。
- 高保真安全: 在安全系统中监控具有低误报率的复杂场景。
- 工业自动化: 通过识别细小缺陷,在制造业中执行详细的质量控制。
- 医学影像: 通过提供对异常的精确目标检测,协助分析医学扫描图像。
YOLOX
YOLOX 非常适合需要兼顾准确性和速度的应用,尤其是在其无锚框设计可能为特定数据集带来优势的情况下。理想的使用场景包括:
- 实时追踪: 在需要实时对象追踪的机器人技术和监控系统中的应用。
- 学术研究: 其模块化和无锚框设计使其成为目标检测架构研究和实验的有趣模型。
- 边缘部署: 较小的 YOLOX-Nano 和 YOLOX-Tiny 变体可以部署在资源受限的设备上,但像 YOLOv9 这样的较新模型通常以相同的资源成本提供更好的性能。
结论与建议
YOLOv9 和 YOLOX 都为目标检测领域做出了重大贡献。YOLOX 通过其无锚框设计和解耦头突破了界限,为实时检测提供了强大的基线。然而,YOLOv9 为准确性和效率都设定了新的标准。其创新的 PGI 和 GELAN 架构使其能够以更少的计算资源实现卓越的性能。
对于正在寻找最佳性能、效率和易用性的开发人员和研究人员来说,YOLOv9 是明确的选择。它与 Ultralytics 生态系统的集成提供了无与伦比的优势:
- 易用性: 简化的 Python API、大量的文档和简单的 CLI 用法 简化了开发。
- 维护良好的生态系统: 积极的开发、强大的社区支持、频繁的更新以及与 Ultralytics HUB 的集成,可实现无缝的 MLOps。
- 性能平衡: 在速度和准确性之间实现了极佳的权衡,使其适用于从边缘到云的各种现实场景。
- 训练效率: 训练时间更短,预训练权重易于获取,资源利用率高。
探索其他模型
虽然此页面侧重于 YOLOv9 和 YOLOX,但计算机视觉领域非常广阔。我们鼓励您探索 Ultralytics 生态系统中提供的其他最先进的模型。考虑查看我们对 YOLOv9 与 YOLOv8 的比较,以深入了解最新的 Ultralytics 模型,或查看 YOLOv9 与 YOLOv5,了解该技术从已建立的行业标准发展到何种程度。对于那些对基于 Transformer 的架构感兴趣的人,我们的 RT-DETR 与 YOLOv9 比较提供了详细的分析。