PP-YOLOE+ vs. EfficientDet:目标检测技术对比
选择正确的物体检测模型是一项关键决策,会影响计算机视觉应用的性能、可扩展性和效率。在本技术比较中,我们分析了两种著名的架构:PP-YOLOE+ 是百度PaddlePaddle 生态系统中的高性能无锚检测器,而EfficientDet 则是Google的可扩展架构,以其复合扩展方法而闻名。
PP-YOLOE+:优化速度和精度
PP-YOLOE+ 是YOLO 系列的重大发展,其开发目的是在精确度和推理速度之间实现最佳平衡。PP-YOLOE+ 基于无锚模式,简化了检测流程,同时利用了任务对齐学习(TAL)等先进技术。
- 作者: PaddlePaddle Authors
- 组织机构:百度
- 日期: 2022-04-02
- Arxiv:https://arxiv.org/abs/2203.16250
- GitHub:https://github.com/PaddlePaddle/PaddleDetection/
- 文件:https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md
主要建筑特点
PP-YOLOE+ 集成了CSPRepResNet 主干网,将CSPNet的效率与 ResNet 的重参数化能力结合在一起。这使得模型能够捕捉丰富的特征表征,而不会产生过高的计算成本。颈部利用路径聚合网络 (PAN) 进行有效的多尺度特征融合,确保以更高的可靠性检测到小型物体。
其突出特点是高效任务对齐头(ET-Head)。与传统的耦合头不同,ET-Head 将分类和定位任务分离开来,利用 TAL 将最佳锚点与地面实况对象动态对齐。这种方法大大提高了收敛速度和最终精度。
EfficientDet:可扩展效率
EfficientDet 引入了一种新的模型扩展方法,重点是同时优化精度和效率。它建立在 EfficientNet 骨干之上,并引入了加权双向特征金字塔网络(BiFPN)。
- 作者: Mingxing Tan、Ruoming Pang 和 Quoc V. Le
- 组织机构Google
- 日期: 2019-11-20
- Arxiv:https://arxiv.org/abs/1911.09070
- GitHub:https://github.com/google/automl/tree/master/efficientdet
- 文件:https://github.com/google/automl/tree/master/efficientdet#readme
主要建筑特点
EfficientDet 的核心创新是BiFPN,它可以轻松快速地实现多尺度特征融合。与以往对特征进行等量加总的 FPN 不同,BiFPN 为每个输入特征分配权重,使网络能够学习不同输入特征的重要性。此外,EfficientDet 还采用了一种复合缩放方法,对所有骨干网络、特征网络和盒式/类预测网络的分辨率、深度和宽度进行统一缩放,从而提供了一个适合不同资源限制的模型系列(D0 至 D7)。
性能分析:速度 vs. 准确性
在评估这些模型时,推理速度和平均精度mAP)之间的权衡变得非常明显。EfficientDet 在发布之初就设定了很高的标准,而 PP-YOLOE+ 等较新的架构则利用硬件感知设计在现代 GPU 上实现了卓越的性能。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 | 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+在GPU 推理延迟方面明显优于EfficientDet。例如,PP-YOLOE+l实现的mAP (52.9)高于EfficientDet-d6(52.6),同时在T4GPU 上的速度快10倍以上(8.36毫秒对89.29毫秒)。EfficientDet 在FLOPs是主要限制因素的情况下(如非常低功耗的移动 CPU)仍具有相关性,但在高吞吐量的服务器环境中却难以与之抗衡。
硬件优化
PP-YOLOE+ 中的架构选择是专门为GPU 硬件加速器而设计的,例如 TensorRT.其操作结构最大限度地提高了并行性,而EfficientDet的BiFPN中的复杂连接有时会在GPU上造成内存访问瓶颈。
优势与劣势
了解每种模型的优缺点有助于为特定的计算机视觉任务选择合适的工具。
PP-YOLOE+
- 优势:
- 高精度-速度比:在 GPU 上提供具有实时推理能力的先进mAP 。
- 无锚:无需复杂的锚点调整,简化了训练设置。
- 动态标签分配:利用 TAL 更好地调整分类和定位。
- 弱点:
- 生态系统专用性:针对PaddlePaddle 框架进行了大量优化,这可能会给习惯使用PyTorch 的用户带来学习曲线。
- 资源强度:较大的变体(L 和 X)需要大量内存,可能会限制在有严格内存限制的边缘设备上部署。
EfficientDet
- 优势:
- 参数效率:与老式探测器相比,以相对较少的参数实现高精度。
- 可扩展性:复合缩放方法允许用户根据可用计算能力在模型大小(d0-d7)之间轻松切换。
- BiFPN:创新的特征融合技术,可有效处理各种尺度的物体。
- 弱点:
- 推理速度慢:尽管 FLOP 数较低,但复杂的图结构往往导致实际推理时间较慢,尤其是在 GPU 上。
- 训练速度:由于结构复杂,与现代单级检测器相比,训练速度可能较慢。
实际应用案例
这些机型在不同的环境中都能发挥其建筑优势。
制造与工业自动化:PP-YOLOE+ 是制造业质量控制的绝佳选择。其推理速度快,可在毫秒级的快速装配线上进行实时缺陷检测。
智能零售与库存:对于自动结账或货架监控等零售分析,PP-YOLOE+ 的准确性可确保即使在杂乱无章的场景中也能正确识别产品。
遥感与航空图像:EfficientDet 能够扩展到更高分辨率(如 D7),因此在分析高分辨率卫星或无人机图像时非常有用,在这种情况下,处理速度比检测大图像中的小特征更为重要。
低功耗边缘设备:较小的 EfficientDet 变体(D0-D1)有时是传统边缘人工智能硬件的首选,在这种情况下,总 FLOP 是硬性限制,并且无法使用GPU 加速。
Ultralytics 的优势:为什么选择 YOLO11?
PP-YOLOE+ 和 EfficientDet 可提供强大的解决方案,而 Ultralytics YOLO11模式为大多数开发人员和研究人员提供了卓越的体验。它将现代架构创新与以用户为中心的生态系统完美结合。
YOLO11 为何脱颖而出
- 易于使用: Ultralytics 模型以其 "开箱即用 "的易用性而闻名。通过简单的Python API和直观的CLI,您可以在几分钟内完成模型的训练、验证和部署,而其他框架往往需要复杂的配置文件。
- 维护良好的生态系统: Ultralytics 社区非常活跃,而且还在不断壮大。定期更新可确保与最新版本的PyTorch、ONNX 和CUDA 兼容,为长期项目奠定了稳定的基础。
- 性能平衡: YOLO11 实现了出色的平衡,在速度上经常超过 PP-YOLOE+,同时精度达到或超过 PP-YOLOE+。它的设计与硬件无关,在 CPU、GPU 和 NPU 上均表现出色。
- 内存效率:与transformer模型或旧架构相比,Ultralytics YOLO 模型经过优化,在训练过程中内存消耗更低。这样就可以在标准硬件上实现更大的批次规模和更快的收敛速度。
- 多功能性:EfficientDet 主要是一种对象检测器,而YOLO11 则不同,它在一个统一的框架内支持多种任务,包括实例分割、姿势估计 、定向对象检测(旋转框检测)和分类。
- 训练效率:借助先进的增强功能和优化的数据加载器,YOLO11 模型的训练既快速又高效。大量的预训练权重可用,只需最少的数据就能获得强大的迁移学习结果。
示例:在Python中运行YOLO11
只需几行代码就能加载预训练的YOLO11 模型并运行推理,这表明Ultralytics 的工作流程非常简单。
from ultralytics import YOLO
# Load a pre-trained YOLO11n model
model = YOLO("yolo11n.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
结论
PP-YOLOE+ 和 EfficientDet 都为计算机视觉领域做出了重大贡献。PP-YOLOE+是深度融入百度生态系统、需要高GPU 吞吐量的用户的有力竞争者。EfficientDet 仍然是参数效率和可扩展设计的经典范例。
不过,对于那些寻求多功能、高性能和开发人员友好型解决方案的用户来说,Ultralytics 是一个不错的选择、 Ultralytics YOLO11是值得推荐的选择。它集高精确度、实时速度和支持性生态系统于一身,是构建下一代人工智能应用的理想平台。
如需进一步比较,可考虑探索YOLO11 与 EfficientDet或PP-YOLOE+ 与YOLOv10的对比,以了解这些模型与其他最先进架构的对比情况。