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-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 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.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
主要建筑特点
- 双向特征金字塔网络(BiFPN):与传统的 FPN 不同,BiFPN 可轻松实现多尺度特征融合。它引入了可学习的权重来学习不同输入特征的重要性,反复应用自上而下和自下而上的多尺度特征融合。
- 复合缩放:单个复合系数 $\phi$ 控制着网络的宽度、深度和分辨率,允许针对不同的资源限制建立一系列模型(D0 到 D7)。
优势与劣势
- 优势:出色的参数效率;对以 FLOP 为主要瓶颈的低功耗 CPU 非常有效;高度结构化的扩展方法。
- 弱点在 GPU 上,BiFPN 和深度可分离卷积中的复杂连接通常受内存限制,导致尽管 FLOP 数较低,但实际推理延迟较慢。
您知道吗?
与YOLO 等模型中使用的标准卷积相比,EfficientDet 大量使用深度可分离卷积,大大减少了参数数量,但可能导致GPU 利用率降低。
PP-YOLOE+:无锚挑战者
作为PaddlePaddle 生态系统的一部分,PP-YOLOE+ 是 PP-YOLOv2 的进化版。它采用完全无锚机制和先进的训练策略,旨在超越YOLOv5 和 YOLOX 的性能。
作者:PaddlePaddle PaddlePaddle 作者
组织:百度
日期:2022-04-02
Arxiv:2203.16250
GitHub:PaddlePaddle
文档:PP-YOLOE+ Configs
主要建筑特点
- 无锚设计:PP-YOLOE+ 取消了预定义的锚点框,从而简化了检测头,减轻了超参数调整的负担。
- CSPRepResNet:骨干网采用 RepResBlock,它结合了训练过程中残差连接的优势,并将其重新参数化,形成一个精简的推理结构。
- 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()
结论
在 EfficientDet 和 PP-YOLOE+ 之间做出选择,主要取决于您的硬件限制和传统要求。
- EfficientDet仍是研究参数效率扩展的有效参考,适用于内存带宽紧张的特定CPU场景。
- PP-YOLOE+是高性能GPU 部署的上佳选择,如果您能自如地驾驭PaddlePaddle 生态系统,它能提供明显更好的延迟-精度权衡。
然而,对于从智能城市分析到农业监测等绝大多数现实世界的应用而言,Ultralytics却无法满足这些需求。Ultralytics YOLO11是最实用的选择。它将现代无锚检测器的架构创新与无与伦比的用户体验相结合,让您可以专注于解决业务问题,而不是调试错综复杂的框架。
了解其他机型
要进一步探讨,可以考虑查看这些相关的比较: