跳转至内容

EfficientDet 与 PP-YOLOE+:技术对比

在计算机视觉的发展过程中,很少有比较能像Google的EfficientDet和百度的PP-YOLOE+ 之间的对比那样清晰地突出设计理念的转变。EfficientDet 标志着通过复合缩放提高参数效率的里程碑,而 PP-YOLOE+ 则代表了为GPU 推理优化的高速、无锚检测的新时代。

本分析深入探讨了它们的架构、性能指标和实际应用,旨在帮助开发人员为其特定的目标检测需求选择合适的工具。

正面交锋性能分析

这两个模型发布之间,性能格局发生了显著变化。EfficientDet 专注于最小化FLOPs(浮点运算)和参数数量,使其在理论上是高效的。然而,PP-YOLOE+ 专为 GPU 等硬件加速器上的实际推理速度而设计,利用 TensorRT 优化。

模型尺寸
(像素)
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
PP-YOLOE+t64039.9-2.844.8519.15
PP-YOLOE+s64043.7-2.627.9317.36
PP-YOLOE+m64049.8-5.5623.4349.91
PP-YOLOE+l64052.9-8.3652.2110.07
PP-YOLOE+x64054.7-14.398.42206.59

数据揭示了一个关键见解:尽管 EfficientDet-d0 轻量,但其较大变体 (d5-d7) 存在显著的延迟问题。相反,PP-YOLOE+l 实现了与 EfficientDet-d6 (52.9 vs 52.6) 相当的 平均精度 (mAP),但在 T4 GPU 上运行速度快了 10 倍以上 (8.36 毫秒 vs 89.29 毫秒)。

EfficientDet:可扩展效率

EfficientDet 由 Google Brain AutoML 团队推出,旨在打破以往检测器的效率限制。它基于 EfficientNet 主干网络构建,采用统一缩放分辨率、深度和宽度的复合缩放方法。

作者: Mingxing Tan, Ruoming Pang, and Quoc V. Le
机构:Google
日期: 2019-11-20
Arxiv:1911.09070
GitHub:google/automl
文档:README

主要架构特性

  1. BiFPN (双向特征金字塔网络):与传统的 FPN 不同,BiFPN 实现了简单的多尺度特征融合。它引入了可学习权重来学习不同输入特征的重要性,并重复应用自上而下和自下而上的多尺度特征融合。
  2. 复合缩放: 单一复合系数 $\phi$ 控制着网络的宽度、深度和分辨率,从而形成一个针对不同资源限制的模型系列(D0 到 D7)。

优势与劣势

  • 优势:出色的参数效率;对于 FLOPs 是主要瓶颈的低功耗 CPU 有效;高度结构化的扩展方法。
  • 缺点:BiFPN和深度可分离卷积中的复杂连接在GPU上通常受限于内存,尽管FLOPs数量较低,但导致实际推理延迟较慢。

您知道吗?

EfficientDet 大量使用深度可分离卷积,显著减少了参数数量,但与 YOLO 等模型中使用的标准卷积相比,可能导致 GPU 利用率较低。

了解更多关于 EfficientDet 的信息

PP-YOLOE+:无锚点挑战者

PP-YOLOE+ 作为 PaddlePaddle 生态系统的一部分由百度发布,是 PP-YOLOv2 的演进版本。它旨在通过采用完全无锚机制和先进的训练策略,超越 YOLOv5 和 YOLOX 的性能。

作者: PaddlePaddle 作者
机构:百度
日期: 2022-04-02
预印本:2203.16250
GitHub:PaddlePaddle/PaddleDetection
文档:PP-YOLOE+ 配置

主要架构特性

  1. Anchor-Free Design: 通过消除预定义的anchor 框,PP-YOLOE+ 简化了 detect 头,并减轻了超参数调整的负担。
  2. CSPRepResNet:该主干网络利用 RepResBlock,它结合了训练期间残差连接的优势,并将其重参数化为用于推理的精简结构。
  3. TAL(任务对齐学习):一种先进的标签分配策略,动态对齐分类分数和定位质量。

优势与劣势

  • 优势:COCO 数据集上达到最先进的准确性;在 TensorRT 支持的硬件上速度极快;创新的头部设计。
  • 缺点:严重依赖于PaddlePaddle框架,这可能对以PyTorch为标准的团队构成集成挑战;与EfficientDet-d0相比,小型模型的参数数量略高。

Ultralytics 优势:统一解决方案

尽管EfficientDet提供了理论效率,PP-YOLOE+提供了原始速度,但开发者通常需要一个在性能、可用性和生态系统支持之间取得平衡的解决方案。这正是Ultralytics YOLO11的优势所在。

与比较模型的专业化特性不同,Ultralytics 模型专为现代 MLOps 工作流设计,提供原生的 PyTorch 体验,易于训练和部署。

为什么选择 Ultralytics YOLO11?

  • 易用性: Ultralytics 专注于开发者体验,让您只需三行 python 代码即可从安装到推理。无需手动编译复杂的算子库或转换专有格式。
  • 多功能性: 一个单一框架支持目标检测实例分割姿势估计分类旋转框检测 (OBB)
  • 性能平衡:YOLO11 优化了速度和准确性之间的权衡,在边缘设备(如 Jetson)和云 GPU 上均提供 实时推理 能力。
  • 内存要求: Ultralytics YOLO 模型采用优化的架构,与基于 Transformer 的替代方案或较旧的多尺度特征网络相比,在训练期间通常需要更少的 CUDA 内存。
  • 完善的生态系统:在活跃的开源社区支持下,该仓库获得频繁更新,确保与最新版本的PyTorch、CUDA和Python兼容。
  • 训练效率:用户可以利用现成的预训练权重,快速在自定义数据集上微调模型,从而显著减少训练数据需求和计算成本。

代码示例:YOLO11快速入门

运行最先进的模型不应该复杂。以下是使用Ultralytics轻松实现对象检测的方法:

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Display the results
results[0].show()

了解更多关于 YOLO11 的信息

结论

EfficientDet 和 PP-YOLOE+ 之间的选择主要取决于您的硬件限制和遗留要求。

  • EfficientDet仍然是参数高效缩放研究的有效参考,适用于内存带宽紧张的特定CPU密集型场景。
  • PP-YOLOE+是高性能GPU部署的卓越选择,如果您熟悉PaddlePaddle生态系统,它能提供显著更好的延迟-精度权衡。

然而,对于绝大多数实际应用——从智慧城市分析到农业监测——Ultralytics YOLO11 脱颖而出,成为最务实的选择。它将现代无锚点检测器的架构创新与无与伦比的用户体验相结合,使您能够专注于解决业务问题,而不是调试框架的复杂性。

探索其他模型

要进一步探索,可以查阅这些相关的比较:


评论