EfficientDet vs YOLOv5:详细的技术比较
选择合适的物体检测模型是一个至关重要的决定,它需要在准确性、速度和计算资源的需求之间取得平衡。本页全面比较了 EfficientDet(Google 的一系列以其可扩展性和准确性而闻名的模型)和 Ultralytics YOLOv5(一种因其卓越的速度和易用性而广受欢迎的模型)。我们将深入研究它们的架构差异、性能基准和理想用例,以帮助您为计算机视觉项目选择最佳模型。
EfficientDet:可扩展且高效的架构
EfficientDet 由 Google Brain 团队推出,是一系列新型的可扩展且高效的目标检测器。其核心创新在于精心设计的架构,该架构通过复合缩放优化了准确性和效率。
技术细节
- 作者: 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 的架构建立在三个关键组件之上:
- EfficientNet Backbone: 它使用高效的 EfficientNet 作为其特征提取的主干,该主干已经针对出色的准确性与计算比率进行了优化。
- BiFPN (双向特征金字塔网络): 在特征融合方面,EfficientDet 引入了 BiFPN,它可以实现简单快速的多尺度特征融合。与传统的 FPN 不同,BiFPN 具有双向连接,并使用加权特征融合来学习不同输入特征的重要性。
- 复合缩放 (Compound Scaling): 一种新颖的缩放方法,可统一缩放骨干网络、特征网络以及框/类别预测网络的深度、宽度和分辨率。这允许创建一系列模型(从 D0 到 D7),以适应不同的资源约束,同时保持架构一致性。
优势与劣势
优势:
- 高精度: 较大的 EfficientDet 模型(例如,D5-D7)可以实现最先进的 mAP 分数,通常在纯精度基准测试中优于其他模型。
- 参数效率: 对于给定的精度水平,EfficientDet模型通常比旧的架构(如Mask R-CNN)具有更高的参数和FLOP效率。
- 可扩展性: 复合缩放方法提供了一条清晰的路径,可以根据目标硬件和性能要求向上或向下扩展模型。
弱点:
- 推理速度: 虽然对于其准确度来说效率很高,但 EfficientDet 通常比 YOLOv5 等单阶段检测器慢,尤其是在 GPU 上。这使其不太适合实时推理应用。
- 复杂性: 与 YOLOv5 更直接的设计相比,BiFPN 和复合缩放引入了更高层次的架构复杂性。
理想用例
对于主要目标是实现尽可能高的精度,而延迟是次要考虑因素的应用,EfficientDet是一个极好的选择:
- 医学图像分析: 检测医学扫描中细微的异常,其中精度至关重要。
- 卫星图像: 用于农业或环境监测等应用的高分辨率分析。
- 离线批量处理: 分析不需要实时处理的大型图像或视频数据集。
Ultralytics YOLOv5:用途广泛且被广泛采用的模型
Ultralytics YOLOv5 已成为行业标准,以其令人难以置信的速度、准确性和无与伦比的易用性而闻名。它在 PyTorch 中开发,一直是寻求实用且高性能解决方案的开发人员和研究人员的首选模型。
技术细节
- 作者: Glenn Jocher
- 组织: Ultralytics
- 日期: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- 文档: https://docs.ultralytics.com/models/yolov5/
优势与劣势
优势:
- 卓越的速度: YOLOv5 速度非常快,可实现实时对象检测,这对于安全警报系统等应用至关重要。
- 易用性: 它提供了一个简单的训练和部署工作流程,并通过简单的 Python 和 CLI 界面,由优秀的 Ultralytics 文档 和简化的用户体验提供支持。
- 完善的生态系统: YOLOv5 受益于积极的开发、庞大的社区、频繁的更新以及丰富的资源,例如教程以及与 Ultralytics HUB 等工具的集成,从而实现无代码训练。
- 性能平衡: 该模型在推理速度和检测准确性之间实现了强大的平衡,使其适用于各种实际场景。
- 训练效率: YOLOv5 具有高效的训练流程,并提供随时可用的预训练权重,并且与更复杂的架构相比,通常需要更低的训练和推理内存。
- 多功能性: 除了目标检测,YOLOv5 还支持 实例分割 和 图像分类 任务。
弱点:
- 准确率: 虽然非常准确,但与最大的EfficientDet模型相比,YOLOv5可能并不总是能实现绝对最高的mAP,尤其是在检测非常小的物体时。
- 基于 Anchor 的检测: 它依赖于预定义的 anchor 框,这可能需要调整才能在具有不寻常对象纵横比的数据集上获得最佳性能。
理想用例
YOLOv5 是速度、效率和易于部署至关重要的应用的首选:
- 实时视频监控: 在实时视频流中快速检测对象。
- 自主系统: 用于机器人技术和自动驾驶车辆的低延迟感知。
- 边缘计算: 由于模型效率高,可以部署在资源受限的设备(如 Raspberry Pi 和 NVIDIA Jetson)上。
- 移动应用: 快速的推理时间和更小的模型尺寸适合移动平台。
性能分析:准确率 vs. 速度
EfficientDet 和 YOLOv5 之间的主要权衡在于精度与速度。下表显示,虽然较大的 EfficientDet 模型可以实现更高的 mAP 分数,但它们的延迟也明显更高。相比之下,YOLOv5 模型提供了更快的推理速度,尤其是在 GPU (T4 TensorRT) 上,使其成为实时应用的理想选择。例如,YOLOv5l 以仅 6.61 毫秒的延迟实现了具有竞争力的 49.0 mAP,而精度相似的 EfficientDet-d4 的速度慢了 5 倍以上,为 33.55 毫秒。
模型 | 尺寸 (像素) |
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 |
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 和 Ultralytics YOLOv5 都是强大的目标检测模型,但它们满足不同的优先级。当主要目标是最大程度地提高准确性时,EfficientDet 表现出色,但可能会以推理速度为代价。
然而,Ultralytics YOLOv5 以其在速度和准确性之间实现了出色的平衡而脱颖而出,使其成为绝大多数实际应用的理想选择。它的易用性、全面且维护良好的生态系统(包括 Ultralytics HUB)、高效的训练和可扩展性使其成为一个非常实用且对开发人员友好的选择。对于需要快速部署、实时性能和强大社区支持的项目,YOLOv5 通常是更优的选择。
有兴趣探索具有进一步改进的新模型的用户还可以考虑 Ultralytics YOLOv8 或最新的 YOLO11,它们建立在 YOLOv5 的优势之上,具有更高的准确性和新功能。有关更多比较,请访问 Ultralytics 模型比较页面。