EfficientDet 对比 YOLOv9:目标检测效率的演进
在快节奏的计算机视觉领域,选择正确的模型架构对于平衡性能、速度和计算资源至关重要。本指南Google 研究院开发的具有里程碑意义的模型EfficientDet 和 YOLOv9 进行了全面的技术比较。 YOLOv9之间进行了全面Ultralytics 技术比较。我们将分析它们的架构创新、性能指标基准,并确定哪种模型最适合现代实时对象检测应用。
EfficientDet:开创性的可扩展效率
EfficientDet 于2019年末发布,引入了一种系统化的模型扩展方法,影响了后续多年的研究。该模型由谷歌研究团队开发,旨在不牺牲准确性的前提下优化效率。
技术细节:
- 作者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 组织:Google Research
- 日期: 2019-11-20
- Arxiv:EfficientDet: Scalable and Efficient Object Detection
- GitHub:google/automl/efficientdet
架构和主要特性
EfficientDet 基于 EfficientNet 主干网络构建,并引入了 双向特征金字塔网络 (BiFPN)。与传统 FPN 不同,BiFPN 通过引入可学习的权重来学习不同输入特征的重要性,从而实现简单快速的多尺度特征融合。该模型采用 复合缩放方法,同时统一缩放所有主干网络、特征网络以及边界框/类别预测网络的分辨率、深度和宽度。
优势与劣势
EfficientDet 因其能够以比 YOLOv3 等同期模型更少的参数实现高精度而具有革命性意义。其主要优势在于其可扩展性;模型家族(D0 到 D7)允许用户选择特定的资源权衡。
然而,以现代标准衡量,EfficientDet的推理速度较慢,尤其是在GPU硬件上。其复杂的特征融合层虽然准确,但不如新架构对硬件友好。此外,原始实现缺乏现代框架中常见的用户友好工具,使得训练和部署更加耗时耗力。
应用案例
EfficientDet 仍然适用于:
- 学术研究: 了解复合缩放和特征融合的原理。
- 传统系统:维护在 TensorFlow 生态系统中构建的现有管道。
- 纯 CPU 环境:其参数效率仍能为低帧率应用提供合理的性能。
YOLOv9:重新定义实时性能
于 2024 年初推出,YOLOv9 代表了 YOLO 系列的飞跃,解决了深度学习信息瓶颈问题,以实现卓越的效率。它在Ultralytics python 包中得到全面支持,确保为开发者提供无缝体验。
技术细节:
- 作者: Chien-Yao Wang, Hong-Yuan Mark Liao
- 组织:台湾中央研究院信息科学研究所
- 日期: 2024-02-21
- Arxiv:YOLOv9:使用可编程梯度信息学习您想学习的内容
- GitHub:WongKinYiu/yolov9
- 文档:Ultralytics YOLOv9 文档
架构和主要特性
YOLOv9 引入了两项开创性概念:可编程梯度信息 (PGI) 和 广义高效层聚合网络 (GELAN)。
- PGI:PGI 解决了数据通过神经网络深层时发生的信息丢失问题,确保用于更新模型权重的梯度是可靠的。
- GELAN是一种轻量级架构,优先考虑计算效率。与基于深度可分离卷积的方法相比,它使模型能够以更少的参数和计算成本(FLOPs)实现更高的准确性。
优势与优点
- 卓越的速度-精度权衡:正如基准测试所示,YOLOv9 在推理延迟方面显著优于 EfficientDet,同时保持或超越了精度。
- Ultralytics 生态系统:与 Ultralytics 的集成意味着可以访问简单的 Python API、CLI 工具,并轻松导出为 ONNX、TensorRT 和 CoreML 等格式。
- 训练效率:YOLOv9 模型在训练期间通常需要更少的内存,并且比旧架构收敛更快,这得益于优化的 Ultralytics 训练流程。
- 多功能性:除了标准 detect 之外,该架构支持复杂任务,为高级segmentation和多任务学习铺平了道路。
您知道吗?
YOLOv9 的GELAN 架构设计为与硬件无关,这意味着它能高效运行在各种推理设备上,从边缘 TPU 到高端 NVIDIA GPU,而无需像某些基于 Transformer 的模型那样进行特定的硬件优化。
性能分析
以下比较突出了YOLOv9与EfficientDet系列相比,在推理速度和效率方面带来的显著改进。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
关键基准洞察
- 巨大的速度优势:YOLOv9c 模型在T4 GPU上实现了具有竞争力的53.0 mAP,推理速度仅为7.16 ms。相比之下,可比的EfficientDet-d6(52.6 mAP)运行速度仅为89.29 ms。这使得YOLOv9在相似精度下快12倍以上,是自动驾驶汽车或交通监控等实时应用的关键因素。
- 参数效率:在谱系的低端,YOLOv9t 以仅 200 万参数实现了强大的 38.3 mAP,在精度上超越了 EfficientDet-d0 基线,同时参数量减少近一半,运行速度显著加快。
- 顶尖精度:对于需要最高精度的任务,YOLOv9e 以 55.6 mAP 突破极限,优于最大的 EfficientDet-d7 模型,同时保持了仍适用于视频处理的延迟(16.77 毫秒),这与 D7 令人望而却步的 128 毫秒形成对比。
集成与易用性
这两种模型之间最显著的区别之一是它们所围绕的生态系统。尽管 EfficientDet 依赖于较旧的 TensorFlow 代码库,但 YOLOv9 是 Ultralytics 库中的一等公民。
Ultralytics 优势
将YOLOv9与Ultralytics结合使用,可提供一个维护良好的生态系统,从而简化整个机器学习生命周期。从标注数据集到部署到边缘设备,工作流程都得到了简化。
- 简单API: 您仅需几行Python代码即可训练、验证和部署模型。
- 广泛兼容性:使用导出模式,轻松将模型导出到 ONNX、TensorRT、OpenVINO 和 CoreML。
- 社区支持:详尽的文档和活跃的社区确保常见问题的解决方案随时可用。
以下是一个实用示例,展示了使用Ultralytics Python API运行YOLOv9推理是多么容易:
from ultralytics import YOLO
# Load a pre-trained YOLOv9 compact model
model = YOLO("yolov9c.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Process results
for result in results:
result.show() # Display predictions
result.save() # Save image to disk
应用中的多功能性
尽管EfficientDet严格来说是一个目标检测器,但YOLOv9和Ultralytics框架背后的架构原则支持更广泛的视觉任务。用户可以在同一代码库中轻松切换目标检测、实例分割和姿势估计,从而减少复杂项目的技术债务。
结论
在比较 EfficientDet 与 YOLOv9 时,现代计算机视觉开发的选择是明确的。虽然 EfficientDet 在定义模型缩放效率方面发挥了历史性作用,但 YOLOv9 在当今与开发者相关的几乎所有指标上都超越了它。
YOLOv9提供卓越的每参数精度、快几个数量级的推理速度,以及一个强大且开发者友好的生态系统。无论您是部署到受限的边缘设备,还是在云端处理高吞吐量视频流,YOLOv9都能提供成功所需的性能平衡。
对于那些开始新项目的人,我们强烈建议利用 YOLOv9 或最新的YOLO11,以确保您的应用程序受益于深度学习效率的最新进展。
探索其他模型
如果您对探索 Ultralytics 系列中的更多选项感兴趣,可以考虑这些模型:
- YOLO11: YOLO 系列的最新演进,在 detect、segment 和分类任务中提供最先进的性能。
- YOLOv10: 一种实时的端到端 detect 器,无需使用非极大值抑制 (NMS)。
- RT-DETR: 一种基于 Transformer 的 detector,在精度方面表现出色,为基于 CNN 的架构提供了一种现代替代方案。