跳转至内容

EfficientDet 对比 YOLOv9:目标检测效率的演进

在快节奏的计算机视觉领域,选择正确的模型架构对于平衡性能、速度和计算资源至关重要。本指南Google 研究院开发的具有里程碑意义的模型EfficientDet 和 YOLOv9 进行了全面的技术比较。 YOLOv9之间进行了全面Ultralytics 技术比较。我们将分析它们的架构创新、性能指标基准,并确定哪种模型最适合现代实时对象检测应用。

EfficientDet:开创性的可扩展效率

EfficientDet 于2019年末发布,引入了一种系统化的模型扩展方法,影响了后续多年的研究。该模型由谷歌研究团队开发,旨在不牺牲准确性的前提下优化效率。

技术细节:

架构和主要特性

EfficientDet 基于 EfficientNet 主干网络构建,并引入了 双向特征金字塔网络 (BiFPN)。与传统 FPN 不同,BiFPN 通过引入可学习的权重来学习不同输入特征的重要性,从而实现简单快速的多尺度特征融合。该模型采用 复合缩放方法,同时统一缩放所有主干网络、特征网络以及边界框/类别预测网络的分辨率、深度和宽度。

优势与劣势

EfficientDet 因其能够以比 YOLOv3 等同期模型更少的参数实现高精度而具有革命性意义。其主要优势在于其可扩展性;模型家族(D0 到 D7)允许用户选择特定的资源权衡。

然而,以现代标准衡量,EfficientDet的推理速度较慢,尤其是在GPU硬件上。其复杂的特征融合层虽然准确,但不如新架构对硬件友好。此外,原始实现缺乏现代框架中常见的用户友好工具,使得训练和部署更加耗时耗力。

应用案例

EfficientDet 仍然适用于:

  • 学术研究: 了解复合缩放和特征融合的原理。
  • 传统系统:维护在 TensorFlow 生态系统中构建的现有管道。
  • 纯 CPU 环境:其参数效率仍能为低帧率应用提供合理的性能。

了解更多关于 EfficientDet 的信息

YOLOv9:重新定义实时性能

于 2024 年初推出,YOLOv9 代表了 YOLO 系列的飞跃,解决了深度学习信息瓶颈问题,以实现卓越的效率。它在Ultralytics python 包中得到全面支持,确保为开发者提供无缝体验。

技术细节:

架构和主要特性

YOLOv9 引入了两项开创性概念:可编程梯度信息 (PGI)广义高效层聚合网络 (GELAN)

  • PGI:PGI 解决了数据通过神经网络深层时发生的信息丢失问题,确保用于更新模型权重的梯度是可靠的。
  • GELAN是一种轻量级架构,优先考虑计算效率。与基于深度可分离卷积的方法相比,它使模型能够以更少的参数和计算成本(FLOPs)实现更高的准确性。

优势与优点

  • 卓越的速度-精度权衡:正如基准测试所示,YOLOv9 在推理延迟方面显著优于 EfficientDet,同时保持或超越了精度。
  • Ultralytics 生态系统:与 Ultralytics 的集成意味着可以访问简单的 Python API、CLI 工具,并轻松导出为 ONNX、TensorRT 和 CoreML 等格式。
  • 训练效率:YOLOv9 模型在训练期间通常需要更少的内存,并且比旧架构收敛更快,这得益于优化的 Ultralytics 训练流程。
  • 多功能性:除了标准 detect 之外,该架构支持复杂任务,为高级segmentation和多任务学习铺平了道路。

了解更多关于YOLOv9的信息。

您知道吗?

YOLOv9 的GELAN 架构设计为与硬件无关,这意味着它能高效运行在各种推理设备上,从边缘 TPU 到高端 NVIDIA GPU,而无需像某些基于 Transformer 的模型那样进行特定的硬件优化。

性能分析

以下比较突出了YOLOv9与EfficientDet系列相比,在推理速度和效率方面带来的显著改进。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

关键基准洞察

  1. 巨大的速度优势:YOLOv9c 模型在T4 GPU上实现了具有竞争力的53.0 mAP,推理速度仅为7.16 ms。相比之下,可比的EfficientDet-d6(52.6 mAP)运行速度仅为89.29 ms。这使得YOLOv9在相似精度下快12倍以上,是自动驾驶汽车或交通监控等实时应用的关键因素。
  2. 参数效率:在谱系的低端,YOLOv9t 以仅 200 万参数实现了强大的 38.3 mAP,在精度上超越了 EfficientDet-d0 基线,同时参数量减少近一半,运行速度显著加快。
  3. 顶尖精度:对于需要最高精度的任务,YOLOv9e55.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 的架构提供了一种现代替代方案。

评论