YOLOv8 vs. YOLOX:技术深度解析
选择合适的物体检测模型是一个至关重要的决定,它需要在准确性、速度和部署复杂性之间取得平衡。本页面提供了 YOLO 系列中两个强大的模型:Ultralytics YOLOv8 和 YOLOX 之间的全面技术比较。虽然两者都是无锚框的,并且专为高性能而设计,但它们在架构、多功能性和生态系统支持方面存在显着差异。我们将深入研究这些差异,以帮助您为您的 计算机视觉 项目选择最佳模型。
Ultralytics YOLOv8:通用性和性能
- 作者: Glenn Jocher、Ayush Chaurasia 和 Jing Qiu
- 组织: Ultralytics
- 日期: 2023-01-10
- GitHub: https://github.com/ultralytics/ultralytics
- 文档: https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8是Ultralytics的先进模型,它建立在之前YOLO版本成功的基础之上。它引入了一种新的骨干网络、一种新颖的无锚框检测头和一个新的损失函数,为速度和准确性都设定了新的基准。YOLOv8的一个关键区别在于它被设计为一个综合框架,而不仅仅是一个目标检测器。
架构和主要特性
YOLOv8 的架构经过高度优化,采用 C2f(具有 2 个卷积的交叉阶段局部瓶颈)模块,取代了YOLOv5 中的 C3 模块。这一变化提供了更丰富的梯度流并提高了性能。由于是无锚框的,它可以直接预测物体的中心,从而减少了框预测的数量并加快了非极大值抑制 (NMS)。
优势
- 卓越的性能平衡: YOLOv8模型在精度(mAP)和推理速度之间表现出卓越的平衡,优于包括YOLOX在内的许多其他实时检测器,且覆盖各种规模(见下表)。
- 任务多功能性: 与仅专注于检测的模型不同,YOLOv8 是一个多任务强力工具。它在单个统一框架内支持目标检测、实例分割、图像分类、姿势估计和对象跟踪。这种多功能性使其成为复杂项目的理想选择。
- 易用性: Ultralytics 通过简单的 Python API 和强大的 CLI 命令,提供简化的用户体验。 丰富的文档和大量的教程使初学者和专家都能轻松地训练、验证和部署模型。
- 完善的生态系统: YOLOv8 拥有 Ultralytics 团队的积极开发和支持以及庞大的开源社区的支持。 它可以与 Ultralytics HUB 等 MLOps 工具以及 Weights & Biases 等实验跟踪平台无缝集成。
- 训练和内存效率: 该模型专为高效训练而设计,并在COCO等数据集上提供随时可用的预训练权重。与更复杂的架构相比,它通常在训练和推理期间需要更少的 CUDA 内存。
弱点
- 与任何高性能模型一样,较大的 YOLOv8 变体 (L/X) 需要大量的计算资源,才能在高分辨率输入上进行训练和 实时推理。
理想用例
YOLOv8 的多功能性和易用性使其成为需要高精度和实时性能平衡的应用的理想选择:
- 实时目标检测:适用于安全系统、机器人技术和自动驾驶车辆等应用。
- 多功能视觉AI解决方案:适用于农业、制造业和医疗保健等行业。
- 快速原型设计与部署: 由于其用户友好的界面以及与 TensorRT 和 OpenVINO 等的集成,因此非常适合快速项目开发周期。
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 是另一个无锚框 YOLO 模型,旨在通过简化的设计实现高性能。它由 Megvii 于 2021 年推出,并通过将目标检测领域的先进技术集成到 YOLO 框架中做出了重大贡献。
架构和主要特性
YOLOX还使用无anchor方法来简化训练并提高泛化能力。其关键的架构创新包括一个解耦头(将分类和定位任务分开)和一个称为SimOTA(简化最优传输分配)的先进标签分配策略。它还采用了强大的数据增强技术,如MixUp。
优势
- 高精度: YOLOX 实现了具有竞争力的精度,在发布时处于领先水平,尤其是在其较大的模型变体中。
- 高效推理: 提供快速的推理速度,适用于许多实时应用,尤其是在 GPU 硬件上。
- 灵活的骨干网络: 支持各种骨干网络,允许一定程度的自定义。
弱点
- 任务限制: YOLOX 主要侧重于目标检测,缺乏 YOLOv8 的内置多任务多功能性(分割、姿势等)。实现这些任务需要大量的自定义代码和工作。
- 生态系统与支持: 虽然是开源的,但它缺乏像 Ultralytics HUB 这样集成的生态系统、广泛的工具,以及 Ultralytics YOLOv8 所拥有的高水平的持续维护和社区支持。
- 性能滞后: 如下表所示,YOLOX 模型在关键的准确性指标方面通常不如其 YOLOv8 对应模型。
- CPU 性能: 与提供了清晰的 CPU 性能指标的 YOLOv8 不同,CPU 推理速度在官方基准测试中不易获得,因此更难评估其在 CPU 密集型部署中的性能。
理想用例
YOLOX 非常适合优先考虑高目标检测精度且不需要多任务功能的应用:
- 高性能目标检测:需要强大的目标检测精度的场景,例如在工业检测中。
- 边缘部署: 像 YOLOX-Nano 这样的小型变体适合资源受限的 边缘设备。
- 研究与开发: 其设计使其成为无锚框检测器学术研究的可行选择。
性能分析:YOLOv8 vs. YOLOX
对 COCO 数据集上性能指标的直接比较揭示了 YOLOv8 和 YOLOX 之间的关键权衡。最关键的指标,即准确率 (mAP),显示 YOLOv8 具有明显的优势。在所有可比较的模型尺寸中,YOLOv8 提供了明显更高的 mAP 分数。例如,YOLOv8x 实现了 53.9 mAP,果断地优于 YOLOX-x 的 51.1 mAP。
在分析效率时,情况会更加微妙。在小型 (s) 和中型 (m) 规模下,YOLOX 模型在参数和 FLOPs 方面往往略微紧凑。然而,在大型 (l) 和超大型 (x) 规模下,YOLOv8 模型在参数效率方面要高得多。对于推理速度,YOLOX 在 GPU 上对中型模型显示出轻微优势,而 YOLOv8 在最大规模上更快。
至关重要的是,这种效率必须与 YOLOv8 的卓越准确性进行权衡。此外,Ultralytics 提供了透明的 CPU 基准测试,表明 YOLOv8 针对 CPU 推理进行了高度优化,这对于许多无法使用 GPU 的实际应用来说是一个关键因素,也是 YOLOX 缺乏官方数据的指标。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
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 |
结论:为什么 Ultralytics YOLOv8 是首选
虽然 YOLOX 是无锚框对象检测器向前迈出的重要一步,但Ultralytics YOLOv8代表了一种更先进、通用和用户友好的解决方案。YOLOv8 不仅在准确性的核心对象检测指标上超越了 YOLOX,而且还将其功能扩展到各种视觉任务。
对于开发人员和研究人员来说,选择很明确。YOLOv8 提供:
- 更高的准确性和效率: 更好的整体性能方案,在保持竞争速度的同时,优先考虑准确性。
- 多任务支持: 用于检测、分割、分类、姿势和跟踪的统一框架。
- 蓬勃发展的生态系统: 持续更新、丰富的文档、专业的支持以及 Ultralytics HUB 等强大的工具。
- 部署灵活性: GPU 和 CPU 的透明性能指标,并可以轻松导出为 ONNX 和 TensorRT 等格式。
对于需要最先进的性能、易用性和强大且维护良好的框架的项目,YOLOv8 是明确的选择。
探索其他模型
您对目标检测模型的探索不应止步于此。该领域在不断发展。考虑将这些模型与其他模型进行比较,以获得完整的了解:
- YOLOv8 vs. YOLOv7
- YOLOv8 vs. YOLOv5
- RT-DETR vs. YOLOv8
- YOLOX 与 YOLOv7 对比
- 探索 Ultralytics 的最新模型,例如 YOLOv10 和 YOLO11,它们进一步突破了性能的界限。