EfficientDet 与YOLOv9:物体检测效率的演变
在快节奏的计算机视觉领域,选择正确的模型架构对于平衡性能、速度和计算资源至关重要。本指南Google 研究院开发的具有里程碑意义的模型EfficientDet 和 YOLOv9 进行了全面的技术比较。 YOLOv9之间进行了全面Ultralytics 技术比较。我们将分析它们的架构创新、性能指标基准,并确定哪种模型最适合现代实时对象检测应用。
EfficientDet:率先实现可扩展效率
2019 年底发布的 EfficientDet 引入了一种系统的模型缩放方法,影响了随后多年的研究。它由Google 研究团队开发,旨在优化效率的同时不影响准确性。
技术细节:
- 作者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 组织机构Google 研究院
- 日期: 2019-11-20
- Arxiv:EfficientDet:可扩展的高效物体检测
- GitHub:google
架构和主要特性
EfficientDet 建立在EfficientNet骨干之上,并引入了双向特征金字塔网络(BiFPN)。与传统的 FPN 不同,BiFPN 通过引入可学习权重来学习不同输入特征的重要性,从而实现简单快速的多尺度特征融合。该模型采用了一种复合缩放方法,可同时统一缩放所有骨干网络、特征网络和箱体/类别预测网络的分辨率、深度和宽度。
优势与劣势
与 YOLOv3 等同类产品相比,EfficientDet 能够以更少的参数实现更高的精度,因此具有革命性意义。其主要优势在于可扩展性;模型系列(D0 至 D7)允许用户选择特定的资源权衡。
然而,按照现代标准,EfficientDet 的推理速度较慢,尤其是在GPU 硬件上。其复杂的特征融合层虽然精确,但对硬件的友好性却不如更新的架构。此外,最初的实现缺乏现代框架中的用户友好工具,使得培训和部署更加费力。
应用案例
EfficientDet 仍然适用于
- 学术研究:了解复合缩放和特征融合的原理。
- 传统系统:维护在TensorFlow 生态系统内构建的现有管道。
- CPU 环境:其参数效率仍能为低 FPS 应用程序提供合理的性能。
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解决了数据通过神经网络深层时出现的信息丢失问题,确保用于更新模型权重的梯度是可靠的。
- GELAN是一种优先考虑计算效率的轻量级架构。与基于深度卷积的方法相比,它允许模型以更少的参数和计算成本(FLOPs)达到更高的精度。
优势与长处
- 卓越的速度与准确性权衡:基准测试表明,YOLOv9 在推理延迟方面明显优于 EfficientDet,同时还能保持或超过准确性。
- Ultralytics 生态系统:与Ultralytics 集成意味着可以访问简单的Python API、CLI 工具,并轻松导出为ONNX、TensorRT 和CoreML 等格式。
- 训练效率:得益于优化的Ultralytics 训练管道,YOLOv9 模型在训练过程中所需内存通常更少,收敛速度也比旧架构更快。
- 多功能性:除标准检测外,该架构还支持复杂任务,为高级分割和多任务学习铺平了道路。
您知道吗?
YOLOv9 的GELAN架构设计与硬件无关,这意味着它可以在从边缘 TPU 到高端NVIDIA GPU 等各种推理设备上高效运行,而无需像某些transformer模型那样进行特定的硬件优化。
性能分析
与 EfficientDet 系列相比,YOLOv9 在推理速度和效率方面有了显著提高。
| 模型 | 尺寸 (像素) | 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模型在 T4GPU 上实现了极具竞争力的53.0mAP,推理速度仅为7.16 ms。相比之下,EfficientDet-d6(52.6mAP)的爬行速度为89.29 毫秒。这使得YOLOv9 在类似精度下的速度提高了 12 倍以上,这对于自动驾驶汽车或交通监控等实时应用来说是一个至关重要的因素。
- 参数效率:在低端参数方面,YOLOv9t仅使用200 万个参数就能达到 38.3mAP 的高精度,在精度上超过了 EfficientDet-d0 基准线,但使用的参数却几乎只有后者的一半,而且运行速度明显更快。
- 高端精度:对于需要最高精度的任务,YOLOv9e以55.6mAP 的性能超越了最大的 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 都能提供成功所需的性能平衡。
对于启动新项目的用户,我们强烈建议使用YOLOv9 或最新的 YOLO11以确保您的应用程序从深度学习效率的最新进展中获益。
探索其他模型
如果您有兴趣了解Ultralytics 系列中的更多选项,请考虑这些型号:
- YOLO11: YOLO 系列的最新进化版,在检测、分割和分类任务方面具有最先进的性能。
- YOLOv10:实时端到端检测器,无需非最大抑制NMS)。
- RT-DETR: transformer检测器,精度出众,是基于 CNN 架构的现代替代方案。