YOLOv5 vs PP-YOLOE+:详细的技术比较
选择合适的物体检测模型至关重要,它需要在准确性、速度和易于实现之间取得平衡。本页详细比较了两个突出的模型:Ultralytics YOLOv5,一个被广泛采用的行业标准,以其多功能性和性能而闻名;以及 PP-YOLOE+,一个来自百度 PaddlePaddle 生态系统的高精度模型。我们将探讨它们的架构差异、性能基准和理想用例,以帮助您为您的计算机视觉项目做出明智的选择。
Ultralytics YOLOv5:已建立的行业标准
Ultralytics YOLOv5 自发布以来已成为计算机视觉领域的基准。它以其卓越的速度和准确性平衡而著称,使其成为各种实际应用中非常实用的选择。它在 PyTorch 中的开发以及围绕它的完整生态系统使其成为开发人员和研究人员的最爱。
作者: Glenn Jocher
组织: Ultralytics
日期: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
文档: https://docs.ultralytics.com/models/yolov5/
架构和主要特性
YOLOv5 的架构是高效设计的证明,完全在 PyTorch 中构建,以实现最大的灵活性和易用性。
- 主干网络:它使用 CSPDarknet53 主干网络,它是 Darknet 的一个变体,它结合了 Cross Stage Partial (CSP) 模块,以减少计算量,同时保持较高的特征提取能力。
- Neck:采用路径聚合网络(PANet)进行特征聚合,有效地结合来自不同骨干层级的特征,从而提高在各种尺度上的检测能力。
- Head:YOLOv5 使用基于anchor的检测头,该检测头基于一组预定义的anchor框预测边界框。 这种方法针对速度进行了高度优化。
- 可扩展性:它有各种尺寸(n、s、m、l、x),允许用户选择适合其特定需求的模型,从用于边缘设备的轻量级模型到用于最大精度的更大型模型。
优势与劣势
优势:
- 卓越的性能平衡:YOLOv5 在推理速度和检测准确性之间提供了出色的权衡,使其适用于许多 实时推理 场景。
- 易用性:以其简化的用户体验、简单的 Python 和 CLI 接口以及丰富的 文档而闻名。
- 维护良好的生态系统: 受益于集成的 Ultralytics 生态系统,包括积极的开发、庞大且支持性强的社区、频繁的更新以及诸如 Ultralytics HUB 这样的无需代码即可进行训练的工具。
- 训练效率:提供高效的训练流程、随时可用的预训练权重,并且通常比许多替代方案具有更低的内存需求。
- 多功能性: 支持包括 目标检测、实例分割 和 图像分类 在内的多项任务。
弱点:
- 虽然高度精确,但较新的模型可以在像 COCO 这样的基准测试中超过其 mAP 分数。
- 与无锚框方法相比,它对锚框的依赖可能需要更多超参数调整,以适应具有非常规对象形状的数据集。
应用案例
YOLOv5 的速度和多功能性使其成为以下应用的理想选择:
- 实时目标跟踪:非常适合监控、机器人和自主系统,详情请参阅我们的实例分割和跟踪指南。
- 边缘设备部署: 高效的模型(YOLOv5n、YOLOv5s)可在资源受限的设备(如 Raspberry Pi 和 NVIDIA Jetson)上有效运行。
- 工业自动化:用于质量控制、缺陷检测和回收自动化。
PP-YOLOE+:PaddlePaddle 生态系统中的高精度
PP-YOLOE+ 由 百度 开发,是构建在 PaddlePaddle 深度学习框架内的无锚框单阶段目标检测器。它以 PP-YOLOE 模型为基础,引入了旨在突破精度界限同时保持效率的增强功能。
作者: PaddlePaddle Authors
组织: 百度
日期: 2022-04-02
Arxiv: https://arxiv.org/abs/2203.16250
GitHub: https://github.com/PaddlePaddle/PaddleDetection/
文档: https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md
架构和主要特性
PP-YOLOE+ 融合了多项现代设计选择,以最大限度地提高性能。
- 无锚框设计: 它消除了对预定义锚框的需求,这可以简化流程并减少超参数调整。您可以在我们的词汇表中了解更多关于无锚框检测器的信息。
- Backbone(主干网络): 采用高效的主干网络,如 CSPRepResNet,专为强大的特征表示而设计。
- Neck:采用与 YOLOv5 原理相似的路径聚合网络(PAN),以实现稳健的特征融合。
- Head:采用解耦头 (ET-Head),将分类和回归任务分离,这通常会提高准确性。
- 损失函数: 使用诸如任务对齐学习 (TAL) 和 VariFocal Loss 等先进技术来提高分类分数和定位精度之间的一致性。
优势与劣势
优势:
- 具有很高的准确性潜力,特别是对于通常在排行榜上名列前茅的较大型号。
- 在某些情况下,无锚框方法可以简化超参数调整。
- 高效的推理速度,尤其是在使用 TensorRT 进行优化时。
- 与 PaddlePaddle 生态系统完美集成。
弱点:
- 主要针对 PaddlePaddle 框架进行了优化,这可能会限制大多数喜欢 PyTorch 的开发人员的可用性。
- 与围绕 Ultralytics YOLO 模型构建的广泛生态系统相比,社区和可用资源较小。
- 对易用性和部署简易性的重视程度较低,通常需要更多的样板代码和特定于框架的知识。
应用案例
PP-YOLOE+ 适用于:
- 工业质量检测:高精度有利于检测人工智能制造中的细微缺陷。
- 智能零售: 诸如库存管理和客户分析之类的应用可以受益于其精度。
- 以 PaddlePaddle 为中心的项目: 对于已经投资或标准化 PaddlePaddle 框架的开发人员来说,它是理想的选择。
性能与基准测试:YOLOv5 vs. PP-YOLOE+
在性能对比时,选择在很大程度上取决于目标硬件和主要目标(速度与精度)。
- 准确率 (mAP): 与大小相似的 YOLOv5 相比,PP-YOLOE+ 模型通常在 COCO 数据集上获得更高的 mAPval 分数。 对于精度至关重要的应用,PP-YOLOE+ 是一个强大的竞争者。
- 推理速度:Ultralytics YOLOv5 展示了卓越的速度,尤其是在 CPU 上。YOLOv5n 模型速度极快,非常适合在各种硬件上进行实时应用。虽然 PP-YOLOE+ 在使用 TensorRT 的 GPU 上速度很快,但 YOLOv5 保持了强大的每瓦性能优势,尤其是在边缘设备上。
- 效率(参数和 FLOPs): YOLOv5 模型设计为轻量级。例如,YOLOv5n 的参数和 FLOPs 明显少于 PP-YOLOE+s,因此更容易在资源受限的环境中部署。
模型 | 尺寸 (像素) |
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 |
PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
训练、可用性和生态系统
除了原始性能之外,开发者体验也是一个关键因素。这正是 Ultralytics YOLOv5 真正闪光的地方。
-
YOLOv5:Ultralytics 生态系统专为开发者效率而设计。作为 PyTorch 原生框架,它可以无缝集成到最流行的深度学习工作流程中。易用性 无与伦比,它拥有一个简单、文档完善的 API,只需几行代码即可进行训练、验证和推理。维护良好的生态系统 提供了巨大的优势,它具有持续的更新、庞大的社区支持以及与 Weights & Biases 和 ClearML 等工具的集成。此外,训练效率 是一个核心关注点,模型训练速度快,所需内存更少。
-
PP-YOLOE+:训练仅限于 PaddlePaddle 框架。虽然功能强大,但这对于不熟悉其生态系统的开发人员来说构成了一个障碍。文档和社区支持虽然不错,但不如 YOLOv5 那样广泛或容易获得。将其集成到基于 PyTorch 的流程中需要额外的步骤和潜在的转换,从而增加了 MLOps 生命周期的复杂性。
结论:您应该选择哪种模型?
YOLOv5 和 PP-YOLOE+ 都是出色的模型,但它们满足不同的需求。
对于绝大多数项目,推荐选择 Ultralytics YOLOv5。它在速度和准确性之间实现了出色的平衡,并拥有无与伦比的、对开发者友好的生态系统,使其成为最实用和高效的选择。无论您是正在进行新想法原型设计的初学者,还是正在将强大的系统部署到边缘硬件的专家,YOLOv5 的易用性、多功能性和强大的社区支持都将加速您的开发周期并确保成功。
PP-YOLOE+ 是一种专用工具,擅长于实现绝对最高 mAP 是主要目标的场景,并且开发团队已经精通 PaddlePaddle 框架。 对于研究以及不能牺牲准确性的应用来说,它是一个强大的模型,前提是您愿意在其特定的生态系统中工作。
探索其他模型
Ultralytics 不断突破目标检测领域可能实现的极限。对于那些寻求更高性能和功能的用户,我们建议探索更新的模型,如 YOLOv8 和最先进的 YOLO11。这些模型建立在 YOLOv5 的基础上,提供了更高的准确性、更多受支持的任务以及更高的效率。您可以在我们的主要 比较页面 上找到更多比较。