YOLOv9 vs. EfficientDet:详细对比
选择最佳目标检测模型对于计算机视觉任务至关重要,需要在准确性、速度和计算资源之间取得平衡。本页提供了 Ultralytics YOLOv9 和 EfficientDet 这两个目标检测领域中的重要模型之间的详细技术比较。我们将深入研究它们的架构设计、性能基准和适用应用,以帮助您为您的项目做出明智的决定。
YOLOv9:最先进的准确性和效率
YOLOv9由中国台湾中研院信息科学研究所的王建尧和廖弘源于2024年推出,代表了YOLO系列的一个重大进步。详细信息请参见他们的论文“YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information”,并在他们的GitHub存储库中实现。YOLOv9通过可编程梯度信息(PGI)和通用高效层聚合网络(GELAN)等创新架构元素,解决了深度网络中的信息丢失挑战。这些创新确保了模型能够有效地学习,并以更少的参数保持高精度,从而展现了性能和效率之间的强大平衡。
技术细节:
- 作者: 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 架构增强了特征提取,并减少了信息丢失,从而以更少的参数和 FLOP 实现了更好的性能。
- 可扩展性: YOLOv9系列包括各种模型尺寸(YOLOv9t到YOLOv9e),为不同的计算能力提供灵活性。
- Ultralytics 生态系统: 虽然最初的研究来自 Academia Sinica,但在 Ultralytics 框架内集成可提供巨大的好处。这些好处包括通过简单的 Python API 实现 易用性、丰富的 文档 以及通过随时可用的预训练权重实现 高效训练。维护良好的生态系统 可确保积极的开发、强大的社区支持以及与诸如 Ultralytics HUB 之类的工具集成,以实现无代码训练。
- 低内存占用: 与许多其他架构(尤其是像 RT-DETR 这样的基于 Transformer 的模型)相比,YOLO 模型在训练期间通常表现出较低的内存需求。
弱点
- 新颖性: 作为一个较新的模型,实际部署示例可能不如 EfficientDet 等较旧的成熟模型那么多,尽管 Ultralytics 社区内的采用速度很快。
- 任务特定性: 最初的 YOLOv9 论文主要关注目标检测。然而,它集成到 Ultralytics 生态系统中暗示了更广泛的潜力,与Ultralytics YOLOv8等模型的多任务能力相一致。
应用案例
YOLOv9 特别适合精度和效率至关重要的应用,例如:
- 高分辨率图像分析,例如使用计算机视觉分析卫星图像。
- 自动驾驶汽车中所需的复杂场景理解。
- 用于诸如制造业质量控制等任务的详细对象识别。
EfficientDet:可扩展且高效的目标检测
EfficientDet 于 2019 年由 Google Research 的一个团队推出。它提出了一种新型的可扩展目标检测器系列,该系列优先考虑效率而不牺牲准确性。该模型的架构基于高效的 EfficientNet 主干网络、用于特征融合的新型双向特征金字塔网络 (BiFPN) 以及统一缩放模型所有部分的分辨率、深度和宽度的复合缩放方法。
技术细节:
- 作者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 组织: Google
- 日期: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
优势
- 复合缩放 (Compound Scaling): EfficientDet 的关键创新在于其系统化的缩放方法,使其能够创建一系列模型(D0-D7),以适应不同的资源约束。
- BiFPN: 与传统的 FPN 相比,双向特征金字塔网络可实现更丰富的多尺度特征融合,从而提高检测精度。
- 历史意义: 在发布时,EfficientDet为目标检测的效率树立了新标准,影响了许多后续架构。
弱点
- 性能过时: 尽管 EfficientDet 在当时具有开创性,但其准确性和速度已被 YOLOv9 等新型号超越。如性能表所示,YOLOv9 模型始终以更少的参数和明显更快的推理速度实现更高的 mAP。
- 推理速度较慢: 在NVIDIA T4等现代硬件上,即使是最小的EfficientDet模型也比同等或更精确的YOLOv9变体慢。
- 有限的生态系统: EfficientDet 主要是一个研究存储库。它缺乏 Ultralytics 提供的全面、用户友好的生态系统,后者包括简化的训练、部署和社区支持。
- 任务特定: EfficientDet 专门为目标检测而设计,不提供 Ultralytics 框架中发现的实例分割或姿势估计等其他任务的内置多功能性。
应用案例
对于传统系统或作为学术比较的基准,仍然可以考虑使用EfficientDet。其应用包括:
- 通用目标检测,对高速推理没有主要约束。
- 用于理解特征金字塔网络和模型缩放原理的教育目的。
- 已在 TensorFlow 框架上标准化的项目,原始实现在该框架中。
性能分析:YOLOv9 vs. EfficientDet
YOLOv9 和 EfficientDet 之间的性能比较清楚地表明了过去几年在对象检测方面取得的进步。YOLOv9 在准确性、速度和模型大小之间始终提供卓越的权衡。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT (ms) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv9t | 640 | 38.3 | - | 2.30 | 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 |
EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
从表中,可以得出几个关键的见解:
- 精度与效率: YOLOv9c 模型实现了 53.0 mAP,仅使用了 25.3M 参数,并且在 T4 GPU 上的推理时间快如闪电,仅为 7.16 毫秒。相比之下,精度相似的 EfficientDet-d6 (52.6 mAP) 需要两倍以上的参数 (51.9M),并且速度慢 12 倍以上,为 89.29 毫秒。
- 顶级性能: 最大的模型YOLOv9e达到了令人印象深刻的55.6 mAP,甚至超过了最大的EfficientDet-d7模型(53.7 mAP),同时速度快7倍以上,并且需要的FLOPs显著减少。
- 轻量级模型: 在较小的一端,YOLOv9s (46.8 mAP) 提供了与 EfficientDet-d3 (47.5 mAP) 相当的精度,但参数几乎减少了一半,并且在 GPU 上的速度快 5 倍以上。
结论:您应该选择哪种模型?
对于几乎所有现代目标检测应用,YOLOv9 都是明显的赢家。其先进的架构在保持卓越的推理速度和参数效率的同时,提供了最先进的精度。集成到 Ultralytics 生态系统中进一步增强了其价值,提供了从训练到部署的简化工作流程,并以强大的文档和活跃的社区为后盾。
从历史和学术的角度来看,EfficientDet 仍然是一个重要的模型,它开创了模型缩放和特征融合的概念。然而,对于实际的开发和部署,它的性能已经被更新、更高效的架构(如 YOLOv9)所超越。如果您正在启动一个新项目或希望升级现有项目,选择 YOLOv9 将提供卓越的性能、更快的开发周期以及对未来发展的更好支持。
探索其他模型
如果您正在探索其他最先进的模型,请考虑查看与 YOLOv10、YOLOv8 和基于 Transformer 的架构(如 RT-DETR)的比较。您可以在我们的模型比较页面上找到更详细的分析。