YOLOX 与 YOLOv5:技术对比
在快速发展的计算机视觉领域,YOLO(You Only Look Once)系列不断突破实时目标检测的界限。本页详细比较了该系列中两个有影响力的模型:Megvii 开发的 YOLOX 和 Ultralytics YOLOv5。虽然这两种模型都提供了强大的功能,但它们是基于不同的设计理念构建的。YOLOX 引入了一种无锚框方法来简化检测头并提高性能,而 YOLOv5 已成为行业标准,以其卓越的速度、准确性和易用性而闻名。
此比较深入探讨了它们的架构差异、性能指标和理想用例,以帮助您为您的项目选择最合适的模型,无论您优先考虑原始准确性、部署速度还是整体开发效率。
YOLOX:一种无锚框且高性能的替代方案
YOLOX 由 Megvii 的研究人员于 2021 年 7 月 18 日推出。它提出了一种无锚框的目标检测方法,旨在通过与传统的基于锚框的方法相比,以简化的设计实现高性能。通过消除预定义的锚框,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 以其几项关键创新而著称。其核心功能是 无锚框 检测机制,该机制直接预测目标属性,而无需依赖一组预定义的锚框。这简化了训练流程,并避免了锚框调整的需要。该架构还结合了用于分类和定位任务的 解耦头,作者发现这可以提高收敛性和准确性。此外,YOLOX 利用一种称为 SimOTA 的高级标签分配策略来动态分配正样本以进行训练,从而增强了其在具有挑战性的目标上的性能。
优势
- 高精度: 凭借其解耦头和先进的标签分配技术,YOLOX 实现了具有竞争力的精度,通常在 COCO 等基准测试中优于其他类似大小的模型。
- 无锚框检测: 这简化了检测流程,并通过消除对锚框配置的依赖来提高泛化能力,而锚框配置通常需要特定领域的调整。
弱点
- 实施复杂性: 虽然无 anchor 简化了一个方面,但解耦头和 SimOTA 等高级策略的引入会增加模型实施和理解的复杂性。
- 外部生态系统: YOLOX 不是 Ultralytics 套件的一部分,这意味着它缺乏与 Ultralytics HUB 等工具的无缝集成。 与统一且文档完善的 Ultralytics 体验相比,这可能会导致学习曲线更陡峭。
- CPU 速度: 如性能基准所示,CPU 上的推理速度可能落后于像 YOLOv5 这样经过高度优化的模型,特别是对于较大的 YOLOX 变体。
应用案例
YOLOX 非常适合将尽可能高的准确性作为主要目标的应用:
- 自动驾驶: 其高精度对于 自动驾驶车辆 中的感知任务非常有价值,在这些任务中,正确识别所有物体至关重要。
- 高级机器人技术: 非常适合机器人需要在复杂环境中执行精确目标检测以进行导航和交互,正如人工智能在机器人技术中的应用中所探讨的那样。
- 研究: 为学术界和工业界对无锚框方法和目标检测中高级训练技术的研究提供了一个强大的基准。
YOLOv5:多功能且广泛采用的模型
Ultralytics YOLOv5 于 2020 年 6 月 26 日发布,现已成为行业标准,因其在速度、准确性和卓越的易用性之间实现了出色的平衡而备受赞誉。它由 Glenn Jocher 在 Ultralytics 开发,完全基于 PyTorch 构建,因此广大开发人员和研究人员都可以轻松上手。
技术细节:
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- 文档: https://docs.ultralytics.com/models/yolov5/
架构和主要特性
YOLOv5 使用 CSPDarknet53 主干网络进行特征提取,并使用 PANet neck 进行特征聚合,这是经过验证的有效对象检测组合。它的架构具有高度可扩展性,提供各种尺寸(n、s、m、l、x),以满足不同的计算预算和性能需求。与 YOLOX 不同,它使用基于 anchor 的检测头,该检测头针对速度进行了高度优化。该模型是一个综合生态系统的一部分,该生态系统包括一个简单的 Python API、广泛的 文档 以及用于训练和部署的无代码 Ultralytics HUB 平台。
优势
- 卓越的推理速度: YOLOv5 针对快速检测进行了高度优化,使其成为 CPU 和 GPU 硬件上实时系统的首选。
- 易用性: 以其简单的 API、全面的文档以及在 Ultralytics 生态系统中的无缝集成而闻名,这大大降低了开发人员的入门门槛。
- 成熟的生态系统: 受益于庞大而活跃的社区、频繁的更新和丰富的资源,包括随时可用的预训练权重。
- 训练效率: 训练过程非常高效,与更复杂的架构相比,具有更快的收敛时间和通常更低的内存要求。
- 多功能性: YOLOv5 除了检测之外,还支持多项视觉任务,包括在同一框架内的 实例分割 和 图像分类。
弱点
- 基于 Anchor 的检测: 依赖于 anchor 框,与无 anchor 检测器相比,这可能需要调整才能在具有不规则形状或缩放对象的数据集上获得最佳性能。
- 精度权衡: 虽然提供了出色的平衡,但较小的 YOLOv5 模型优先考虑速度,这可能会导致与专为最大精度而设计的更大模型或更新架构相比,精度略有降低。
应用案例
YOLOv5 的多功能性和效率使其适用于广泛的领域:
- 边缘计算: 其速度和较小的模型尺寸使其非常适合部署在资源受限的设备(如 Raspberry Pi 和 NVIDIA Jetson)上。
- 工业自动化: 为制造中的质量控制和过程自动化提供支持,例如提高回收效率。
- 安全和监控: 在安全系统中实现实时监控,用于防盗等应用。
- 移动应用: 适用于对低延迟和效率要求严苛的设备端目标检测任务。
性能正面交锋:速度 vs. 精度
在比较YOLOX和YOLOv5时,准确性和速度之间存在明显的权衡。对于给定的模型大小,YOLOX模型通常会获得更高的mAPval分数,这证明了其无锚框设计和高级训练策略的有效性。例如,YOLOX-x达到51.1 mAP,略微优于YOLOv5x。
然而,Ultralytics YOLOv5 在推理速度方面具有显著优势。较小的 YOLOv5 模型(如 YOLOv5n)在 CPU 和 GPU 上的速度都非常快,使其成为边缘设备上实时应用的理想选择。性能表显示 YOLOv5n 的 TensorRT 延迟仅为 1.12 毫秒,比 YOLOX-s 快两倍以上。这种效率使 YOLOv5 成为许多对速度有严格要求的生产环境的更实用选择。
模型 | 尺寸 (像素) |
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 |
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 |
结论:您应该选择哪种模型?
YOLOX 和 YOLOv5 都是强大的目标检测模型,但它们满足不同的优先级。YOLOX 对于优先考虑最大准确性并有兴趣探索无锚框架构优势的研究人员和开发人员来说,是一个绝佳的选择。它在基准测试中的强大性能使其成为精度至关重要的任务的强大模型。
然而,对于绝大多数实际应用而言,Ultralytics YOLOv5 提出了一个更具吸引力的整体方案。它的主要优势在于其 卓越的速度、易用性和强大的生态系统。借助全面的文档、简单的 API 和简化的训练流程,开发人员可以快速入门。该模型的效率使其非常适合部署,尤其是在实时和边缘计算场景中。
此外,Ultralytics 的持续开发和支持意味着用户可以从维护良好且不断改进的框架中受益。 对于那些寻求最先进的性能以及可用性和多功能性的用户,还强烈建议探索更新的 Ultralytics 模型,如 YOLOv8 和 YOLO11,因为它们建立在 YOLOv5 的强大基础上,以提供更强大的功能。
其他模型对比
如果您有兴趣将这些模型与其他模型进行比较,请查看以下页面: