YOLO11 vs EfficientDet:详细的技术比较
本页详细技术对比了 Ultralytics YOLO11 和 EfficientDet 这两个著名的目标检测模型。我们分析了它们的架构、性能基准以及对不同应用的适用性,以帮助您选择最适合您计算机视觉需求的模型。虽然这两种模型都旨在实现高效准确的目标检测,但它们源于不同的研究方向(Ultralytics 和 Google),并采用了不同的架构理念。
Ultralytics YOLO11
Ultralytics YOLO11 代表了 YOLO(You Only Look Once)系列的最新进展,该系列由 Ultralytics 开发,并以其卓越的实时目标检测功能而闻名。它建立在 YOLOv8 等前代产品成功的基础之上,专注于提高准确性和计算效率。
技术细节:
- 作者: Glenn Jocher, Jing Qiu
- 组织: Ultralytics
- 日期: 2024-09-27
- GitHub: https://github.com/ultralytics/ultralytics
- 文档: https://docs.ultralytics.com/models/yolo11/
架构和主要特性
YOLO11 采用单阶段无锚框架构,针对速度和准确性进行了优化。主要功能包括精细的特征提取层和简化的网络结构,从而减少了参数计数和计算负载。这种设计确保了在从边缘设备(NVIDIA Jetson、Raspberry Pi)到云服务器的各种硬件上的出色性能。
YOLO11 的一个主要优势是其多功能性以及在 Ultralytics 生态系统中的集成。它支持对象检测之外的多种任务,包括实例分割、图像分类、姿势估计和旋转框检测 (OBB)。Ultralytics 框架提供了一个简单的 Python API 和 CLI、广泛的文档、随时可用的预训练权重,以及与其他许多架构相比,内存需求更低的高效训练流程。该生态系统受益于积极的开发、强大的社区支持以及与 Ultralytics HUB 等工具的无缝集成,从而简化了 MLOps。
优势
- 高速和高效率: 出色的推理速度,非常适合实时应用。
- 强大的精度:在各种模型尺寸上实现最先进的 mAP 分数。
- 多功能性: 在单个框架内支持检测、分割、分类、姿势估计和 OBB 任务。
- 易用性: 简单的 API、全面的文档和用户友好的生态系统。
- 维护良好的生态系统: 积极开发,强大的社区,频繁更新,以及像 Ultralytics HUB 这样的工具。
- 训练效率: 与许多替代方案相比,更快的训练时间和更低的内存使用量。
- 部署灵活性: 针对从边缘到云的各种硬件进行了优化。
弱点
- 较小的模型优先考虑速度,这可能需要在最大可实现精度方面与最大的变体进行权衡。
- 作为一个单阶段检测器,在某些复杂场景中,可能面临检测极小物体的挑战。
理想用例
YOLO11 在需要实时性能和高精度的应用中表现出色:
Google 的 EfficientDet
EfficientDet 是 Google Brain 团队推出的一系列对象检测模型。它旨在通过优化准确性和计算资源(参数和 FLOP)之间的权衡来实现高效率。
技术细节:
- 作者: 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 (Bi-directional Feature Pyramid Network)(双向特征金字塔网络): 一种新颖的特征网络,可以实现简单快速的多尺度特征融合,并通过添加加权连接来改进传统 FPN。
- 复合缩放: 一种统一缩放骨干网络、特征网络以及框/类别预测网络的深度、宽度和分辨率的方法。这允许模型从小 (D0) 扩展到大 (D7) 变体,以适应不同的资源约束。
优势
- 高参数效率: 以相对较少的参数和 FLOP 提供强大的准确性。
- 可扩展性: 复合缩放方法提供了一条清晰的路径,可以针对不同的性能目标扩展模型。
- 强大的基准性能:在其发布时,在 COCO 数据集上取得了最先进的结果。
弱点
- 推理速度较慢: 尽管 EfficientDet 具有 FLOP 效率,但与 YOLO 模型相比,EfficientDet 通常具有更高的推理延迟,尤其是在 GPU 上,这使其不太适合许多实时应用。
- 通用性有限: 主要为目标检测而设计,缺乏对其他任务(如实例分割、姿势估计或旋转框检测)的原生支持,而这些已集成到 Ultralytics YOLO 框架中。
- 集成度较低的生态系统: 原始存储库主要是一个研究成果。它缺乏全面的文档、简单的 API 以及集成的工具(如 Ultralytics HUB),这些工具可以简化从训练到部署的端到端工作流程。
- 框架依赖性: 官方实现是 TensorFlow,这对于主要在 PyTorch 生态系统中工作的开发者和研究人员来说可能是一个限制。
理想用例
EfficientDet非常适合模型大小和理论计算成本是最关键约束的场景:
- Edge AI: 部署在内存和处理能力严重受限的移动或嵌入式设备上。
- 学术研究: 研究模型缩放规律和架构效率。
- 云应用: 适用于那些最小化每次推理的计算成本比实现最低可能延迟更重要的场景。
性能与基准测试:YOLO11 vs. EfficientDet
在性能对比时,务必不能只看 mAP。虽然两个模型系列都提供了一系列精度水平,但 YOLO11 旨在实现卓越的实际速度。下表显示,对于相似的 mAP,YOLO11 模型明显更快,尤其是在 TensorRT 在 GPU 上加速时。
例如,YOLO11m 实现了与 EfficientDet-d5 相同的 51.5 mAP,但在 T4 GPU 上的速度却快了 14 倍以上(4.7 毫秒 vs. 67.86 毫秒),并且使用的参数减少了 40%。这突出了 YOLO11 在准确性、速度和模型大小方面的卓越平衡,使其成为需要实时处理的应用程序的更实用选择。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT10 (毫秒) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
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 在模型效率方面迈出了一大步,但对于绝大多数计算机视觉应用来说,Ultralytics YOLO11 代表了一种更现代、更实用、更强大的解决方案。
-
如果您的主要限制是最大限度地减少理论 FLOP 或参数计数,并且您可以轻松地在其面向研究的框架内工作,请选择 EfficientDet。
-
对于几乎所有其他情况,请选择 Ultralytics YOLO11。其卓越的速度-精度权衡、在多个视觉任务中的惊人多功能性以及易用性使其成为开发人员和研究人员的明确选择。维护良好的生态系统,包括全面的文档、积极的社区支持以及 Ultralytics HUB 等工具,确保从初始实验到大规模生产的平稳开发和部署体验。
其他模型对比
为了进一步探索,请考虑以下涉及YOLO11和其他相关模型的比较:
- YOLO11 vs YOLOv10
- YOLO11 vs YOLOv9
- YOLO11 vs YOLOv8
- YOLO11 vs YOLOv7
- YOLO11 vs RT-DETR
- YOLOX vs EfficientDet
- YOLOv8 与 EfficientDet 对比