跳转至内容

EfficientDet 与 PP-YOLOE+:技术对比

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

本分析深入探讨了这些工具的架构、性能指标和实际应用,以帮助开发人员选择适合其特定对象检测需求的工具。

正面交锋性能分析

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

模型尺寸
(像素)
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 相当的平均精度(mAP)(52.9 vs 52.6),但在 T4GPU 上的运行速度快 10 倍以上(8.36ms vs 89.29ms)。

EfficientDet:可扩展效率

EfficientDet 由Google Brain AutoML 团队推出,旨在打破以往检测器的效率限制。它建立在 EfficientNet 的基础之上,采用了一种复合缩放方法,可统一缩放分辨率、深度和宽度。

作者: Mingxing Tan、Ruoming Pang 和 Quoc V. LeMingxing Tan、Ruoming Pang 和 Quoc V. Le
组织:Google
日期:2019-11-20
Arxiv:1911.09070
GitHub:google
文档:README

主要建筑特点

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

优势与劣势

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

您知道吗?

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

了解更多关于 EfficientDet 的信息

PP-YOLOE+:无锚挑战者

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

作者:PaddlePaddle PaddlePaddle 作者
组织:百度
日期:2022-04-02
Arxiv:2203.16250
GitHub:PaddlePaddle
文档:PP-YOLOE+ Configs

主要建筑特点

  1. 无锚设计:PP-YOLOE+ 取消了预定义的锚点框,从而简化了检测头,减轻了超参数调整的负担。
  2. CSPRepResNet:骨干网采用 RepResBlock,它结合了训练过程中残差连接的优势,并将其重新参数化,形成一个精简的推理结构。
  3. TAL(任务对齐学习):一种先进的标签分配策略,可动态调整分类得分和定位质量。

优势与劣势

  • 优势:COCO 数据集上具有最先进的准确性;在TensorRT 的硬件上运行速度极快;创新的头部设计。
  • 弱点严重依赖PaddlePaddle 框架,这可能会给姿势估计 PyTorch 的团队带来集成方面的挑战;与 EfficientDet-d0 相比,小型模型的参数数量略高。

Ultralytics 的优势:统一的解决方案

虽然 EfficientDet 提供了理论效率,PP-YOLOE+ 提供了原始速度,但开发人员往往需要一种解决方案,在性能、可用性和生态系统支持之间取得平衡。这就是 Ultralytics YOLO11的优势所在。

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

为什么选择 Ultralytics YOLO11?

  • 易于使用: Ultralytics 注重开发人员的使用体验,只需三行Python 代码即可完成从安装到推理的整个过程。无需手动编译复杂的运算符库或转换专有格式。
  • 多功能性:单一框架支持对象检测实例分割姿势估计 分类定向边框检测(旋转框检测)。
  • 性能平衡: 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却无法满足这些需求。Ultralytics YOLO11是最实用的选择。它将现代无锚检测器的架构创新与无与伦比的用户体验相结合,让您可以专注于解决业务问题,而不是调试错综复杂的框架。

了解其他机型

要进一步探讨,可以考虑查看这些相关的比较:


评论