YOLOv9 vs PP-YOLOE+:技术对比
选择正确的目标检测模型需要在准确性、速度和资源需求之间进行关键权衡。本页面提供了 Ultralytics YOLOv9(一种以其架构创新而闻名的最先进模型)和百度的 PP-YOLOE+(PaddlePaddle 生态系统中的强大竞争者)之间的详细技术比较。我们将分析它们的架构、性能指标和理想用例,以帮助您为您的计算机视觉项目选择最佳模型。
YOLOv9:用于增强学习的可编程梯度信息
Ultralytics YOLOv9 代表了实时目标检测的重大进步,引入了突破性的概念,以解决深度学习中长期存在的挑战。
作者: Chien-Yao Wang 和 Hong-Yuan Mark Liao
组织: 台湾中研院资讯科学研究所
日期: 2024-02-21
Arxiv: https://arxiv.org/abs/2402.13616
GitHub: https://github.com/WongKinYiu/yolov9
文档: https://docs.ultralytics.com/models/yolov9/
YOLOv9 的核心创新是可编程梯度信息 (PGI) 和通用高效层聚合网络 (GELAN)。PGI 旨在解决数据在深度网络中流动时产生的信息损失问题,确保可靠的梯度信息可用于准确的模型更新。这有助于保留关键特征并改进学习。GELAN 是一种新颖的网络架构,经过优化,可实现卓越的参数利用率和计算效率。这种强大的组合使 YOLOv9 能够在保持高推理速度的同时实现卓越的准确性。
YOLOv9 的一个关键优势是它集成到了 Ultralytics 生态系统中。这通过简单的 API、全面的 文档和强大的支持网络,提供了简化的用户体验。该生态系统受益于积极的开发、GitHub 和 Discord 等平台上的强大社区以及频繁的更新。这确保了开发人员可以访问高效的训练流程、随时可用的预训练权重以及支持 物体检测和 实例分割等多项任务的平台。
优势
- 高精度: 在 COCO 等具有挑战性的数据集上实现了最先进的 mAP 分数,其中 YOLOv9-E 模型为实时检测器树立了新的基准。
- 高效架构: 与具有相似精度的模型相比,GELAN 架构和 PGI 以明显更少的参数和 FLOP 实现了卓越的性能。
- 信息保留: PGI 有效地缓解了深度网络中的信息瓶颈问题,从而更好地实现模型收敛和提高准确性。
- Ultralytics 生态系统: 受益于 易用性、丰富的文档、积极的维护和强大的社区支持。它构建于最流行的 AI 框架 PyTorch 之上,使其具有很高的可访问性。
- 多功能性: 该架构具有多功能性,支持超出检测范围的多种计算机视觉任务。
弱点
- 较新的模型: 作为一个最近发布的版本,社区贡献的示例和第三方集成的广度仍在增长,但它包含在 Ultralytics 框架中加速了采用。
- 训练资源: 虽然对于其性能水平而言效率很高,但训练最大的 YOLOv9 变体可能需要大量的计算资源。
理想用例
YOLOv9 在需要最高级别精度和效率的应用中表现出色。这使其成为复杂任务的理想选择,例如 自动驾驶、高级安全系统和高精度机器人技术。其高效的设计也使较小的变体适合部署在资源受限的 边缘 AI 环境中。
PP-YOLOE+:PaddlePaddle 生态系统内的高精度
PP-YOLOE+ 是由百度开发的高性能目标检测器,是其 PaddleDetection 套件的关键组成部分。它旨在提供速度和准确性的强大平衡,但其实现与 PaddlePaddle 深度学习框架紧密结合。
作者: PaddlePaddle Authors
组织: Baidu
日期: 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+ 是一种无锚框的单阶段检测器,它建立在之前的 PP-YOLO 版本之上。它采用高效的骨干网络(通常基于 CSPRepResNet)和一个检测头,该检测头使用任务对齐学习 (TAL) 来提高分类和定位的对齐性。该模型系列提供各种尺寸(s、m、l、x),以满足不同的计算预算。
优势
- 强大的性能: 提供了具有竞争力的精度和速度,使其成为许多目标检测任务的强大模型。
- 针对 PaddlePaddle 进行了优化: 对于已经投入百度 PaddlePaddle 生态系统的团队,PP-YOLOE+ 提供了无缝集成和优化的性能。
弱点
- 框架依赖性: 依赖于 PaddlePaddle 框架对于更广泛的社区来说可能是一个重要的障碍,因为该社区主要使用 PyTorch。迁移项目或与基于 PyTorch 的工具集成可能会很复杂。
- 有限的通用性: PP-YOLOE+主要侧重于目标检测。相比之下,Ultralytics模型(如YOLOv8和YOLO11)提供了一个统一的框架,用于开箱即用的多个任务,包括分割、姿势估计和分类。
- 生态系统与支持: PP-YOLOE+ 的生态系统不如 Ultralytics YOLO 的生态系统广泛。 与充满活力且积极维护的 Ultralytics 生态系统相比,用户可能会发现更少的社区教程、响应速度较慢的支持渠道和较慢的更新。
理想用例
PP-YOLOE+ 最适合已经以百度 PaddlePaddle 深度学习框架为标准的开发人员和组织。对于开发团队在 PaddlePaddle 方面拥有现有专业知识的标准目标检测应用来说,这是一个可靠的选择。
性能分析:YOLOv9 vs. PP-YOLOE+
在性能对比时,很明显,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 |
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 |
- 峰值精度: YOLOv9-E实现了最高的mAP,达到55.6,优于最大的PP-YOLOE+x模型(54.7 mAP),同时使用的参数明显更少(57.3M vs. 98.42M)。
- 效率: YOLOv9 在各个方面都表现出卓越的参数效率。例如,YOLOv9-C 仅用 25.3M 参数就达到了 53.0 mAP,而 PP-YOLOE+l 需要 52.2M 参数才能达到相似的 52.9 mAP。最小的模型 YOLOv9-T 非常轻巧,仅有 2.0M 参数。
- 速度与准确性权衡: 虽然 PP-YOLOE+s 在 T4 GPU 上显示出最快的推理时间,但这是以牺牲准确性(43.7 mAP)为代价的。相比之下,YOLOv9-S 提供了更高的 46.8 mAP,而延迟仅略有增加,这对于准确性很重要的应用来说是更好的权衡。
结论:您应该选择哪种模型?
对于绝大多数开发人员、研究人员和企业来说,YOLOv9 是更优越的选择。其最先进的精度,加上卓越的计算和参数效率,为实时目标检测树立了新标准。
YOLOv9 的主要优势不仅在于其性能,还在于它与 Ultralytics 生态系统的集成。它构建在广泛采用的 PyTorch 框架之上,提供了无与伦比的易用性、广泛的文档、多任务通用性以及充满活力且提供支持的社区。这种整体环境大大缩短了开发时间,并简化了部署和维护。
PP-YOLOE+ 是一个功能强大的模型,但其价值主要局限于已经在 Baidu PaddlePaddle 生态系统中运营的用户。对于此特定环境之外的用户而言,采用新框架的成本以及在通用性和社区支持方面的限制使其与 Ultralytics YOLOv9 提供的强大且易于访问的解决方案相比,成为一种不太实用的选择。
其他值得考虑的模型
如果您正在探索不同的架构,您可能还会对 Ultralytics 生态系统中提供的其他模型感兴趣:
- YOLOv8:一种高度通用且平衡的模型,非常适合广泛的任务,以其速度和易用性而闻名。
- YOLO11:最新的 Ultralytics 官方模型,将性能和效率的边界推向更远的地方。
- RT-DETR:一种实时的基于Transformer的检测器,它为目标检测提供了一种不同的架构方法。