YOLOv5 vs. EfficientDet:详细技术对比
本页提供了两个有影响力的目标检测模型之间的全面技术比较:Ultralytics YOLOv5 和 Google 的 EfficientDet。虽然这两种模型都专为高性能而设计,但它们源于不同的研究理念和架构设计。我们将深入研究它们在架构、性能指标和理想用例中的主要差异,以帮助您为您的计算机视觉项目选择最佳模型。
Ultralytics YOLOv5:用途广泛且被广泛采用的模型
作者: Glenn Jocher
组织: Ultralytics
日期: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
文档: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 是一种单阶段目标检测器,由于其在速度、准确性和易用性方面的出色平衡而迅速成为行业标准。它完全用 PyTorch 构建,其架构具有 CSPDarknet53 backbone、用于有效特征聚合的 PANet neck 和高效的基于 anchor 的检测头。YOLOv5 具有高度可扩展性,提供从 nano (n) 到 extra-large (x) 的一系列模型,使开发人员能够为他们的特定计算和性能需求选择完美的权衡。
优势
- 卓越的速度: YOLOv5 针对快速推理进行了高度优化,使其成为实时应用的首选,在视频监控等对低延迟要求至关重要的领域中尤为重要。
- 易用性: 一个主要的优势是其简化的用户体验。凭借简单的 Python API 和 CLI、大量的文档以及简单的训练工作流程,YOLOv5 显著降低了自定义对象检测的入门门槛。
- 完善的生态系统: YOLOv5 由强大的 Ultralytics 生态系统提供支持,该生态系统包括积极的开发、庞大且乐于助人的社区、频繁的更新以及 Ultralytics HUB 等强大的工具,可用于无代码模型训练和管理。
- 训练效率: 该模型专为高效训练而设计,受益于 COCO 等数据集上随时可用的预训练权重和更快的收敛时间。 与 Transformer 等更复杂的架构相比,它在训练和推理期间还具有更低的内存要求。
- 多功能性: 除了 目标检测,YOLOv5 还支持诸如 实例分割 和 图像分类 等任务,从而在单个框架内提供灵活的解决方案。
弱点
- 虽然高度精确,但较大的 EfficientDet 模型有时可以在学术基准测试中获得更高的 mAP 分数,尤其是在检测非常小的物体时。
- 它对预定义的anchor boxes的依赖可能需要针对具有非常规对象形状和大小的数据集进行调整,以实现最佳性能。
理想用例
- 用于安全系统和交通监控的实时视频分析。
- 在资源受限的边缘设备(如 NVIDIA Jetson 和 Raspberry Pi)上部署。
- 用于机器人技术和自动驾驶汽车的低延迟感知。
- 需要快速的设备端推理的移动应用。
EfficientDet:可扩展且高效的架构
作者: 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 由 Google Brain 团队开发,推出了一系列可扩展且高效的目标检测器。其核心创新包括使用高效的 EfficientNet 作为主干网络、一种用于快速多尺度特征融合的新型双向特征金字塔网络 (BiFPN) 以及一种复合缩放方法。此方法统一缩放模型的深度、宽度和分辨率,从而可以创建一系列针对不同计算预算优化的模型 (D0-D7)。
优势
- 高精度和高效率: EfficientDet 模型以更少的参数和 FLOPs 实现了最先进的精度而闻名,与其他同期的模型相比,这一点尤为突出。
- 可扩展性: 复合缩放方法提供了一条清晰的向上或向下扩展模型的路径,使其能够适应从移动设备到云服务器的各种硬件限制。
- 有效特征融合: BiFPN 通过结合加权的、双向的连接来实现更丰富的特征融合,这有助于提高其准确性。
弱点
- 推理速度较慢: 尽管EfficientDet具有参数效率,但通常比YOLOv5慢,尤其是在实际部署场景中。这使得它不太适合需要实时性能的应用。
- 复杂性: 该架构,特别是 BiFPN,比 YOLOv5 的直接设计更复杂。这可能会使开发人员更难以理解、自定义和调试。
- 集成度较低的生态系统: 虽然有 Google 的支持,但该开源存储库的维护活跃度和用户友好性不如 Ultralytics 生态系统。它缺乏广泛的文档、教程和集成工具,而这些工具可以简化 MLOps 生命周期。
理想用例
性能与基准:正面比较
YOLOv5 和 EfficientDet 之间的选择通常归结为速度和准确性之间的权衡。下表和分析清楚地比较了它们在 COCO val2017 数据集上的性能。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
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 |
该表清楚地说明了两种模型不同的设计优先级。EfficientDet 模型,特别是像 D7 这样的大型变体,实现了最高的 mAP 分数,为 53.7。它们在计算成本方面也表现出很高的效率,其中 EfficientDet-d0 具有最低的 FLOP。但是,当涉及到实时应用程序的部署时,推理速度至关重要。在这里,Ultralytics YOLOv5 显示出决定性的优势,尤其是在 GPU 硬件上。YOLOv5n 模型在使用 TensorRT 的 T4 GPU 上实现了惊人的 1.12 毫秒 推理时间,使其比最轻的 EfficientDet 模型快 3 倍以上。此外,YOLOv5 模型非常轻巧,YOLOv5n 仅具有 2.6M 参数,使其非常适合在资源受限的 边缘设备上进行部署。速度、准确性和小模型尺寸的这种性能平衡使 YOLOv5 成为各种生产环境的非常实用的选择。
结论:您应该选择哪种模型?
EfficientDet 和 Ultralytics YOLOv5 都是强大的目标检测模型,但它们侧重的优先级不同。当主要目标是最大精度,而推理延迟不太重要时,EfficientDet 表现出色。其可扩展的架构使其成为学术基准测试和离线处理任务的有力候选者。
然而,对于绝大多数实际应用而言,Ultralytics YOLOv5 仍然是更优的选择。它在速度和精度方面实现了卓越的平衡,使其成为实时系统的理想选择。YOLOv5 的主要优势在于其 易用性、全面且 维护良好的生态系统 以及卓越的 训练效率。开发人员可以快速入门,以最小的努力训练自定义模型,并将其部署在各种硬件上。活跃的社区和 Ultralytics HUB 等工具提供了无与伦比的支持,使其成为一个非常实用且对开发人员友好的框架。
对于那些希望利用最新进展的人来说,还值得探索 Ultralytics 生态系统中较新的模型,例如高度通用的 YOLOv8 或最先进的 YOLO11,它们建立在 YOLOv5 的强大基础上,以提供更好的性能和更多功能。 有关更多比较,请访问 Ultralytics 模型比较页面。