EfficientDet 与 YOLOv7:技术对比
选择合适的物体检测模型是一个至关重要的决定,它需要在准确性、速度和计算成本之间取得平衡。本页详细比较了 EfficientDet 和 YOLOv7 这两个在计算机视觉领域具有影响力的架构。EfficientDet 以其卓越的参数效率和可扩展性而闻名,而 YOLOv7 则以突破实时检测速度和准确性的界限而著称。
我们将探讨它们的核心架构差异、性能基准和理想用例。虽然这两种模型都有其优势,但对于许多现代应用,开发人员可能会发现像Ultralytics YOLOv8和YOLO11这样更出色的替代方案,它们提供了更全面和用户友好的解决方案。
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
架构和主要特性
EfficientDet 的架构建立在三个主要组件之上:
- EfficientNet Backbone: 它使用高效的 EfficientNet 作为其特征提取的主干,该主干经过优化,可在准确性和计算成本之间实现卓越的平衡。
- BiFPN (双向特征金字塔网络): 与单向求和特征的传统 FPN 不同,BiFPN 允许使用加权连接进行多尺度特征融合,从而以更少的参数实现更丰富的特征表示。
- 复合缩放 (Compound Scaling): EfficientDet 引入了一种复合缩放方法,该方法统一缩放骨干网络、特征网络和预测头的深度、宽度和分辨率。这使得模型能够从小型 EfficientDet-D0 扩展到大型 D7,从而满足不同的资源约束。
优势
- 高参数效率: 与当时的其它模型相比,EfficientDet 模型以明显更少的参数和 FLOP 实现了具有竞争力的准确性。
- 可扩展性: 复合缩放方法提供了一条清晰的向上或向下扩展模型的路径,使其能够适应从边缘设备到强大的云服务器的各种硬件。
- 强大的 CPU 性能: EfficientDet 的较小变体在 CPU 上表现良好,使其适用于 GPU 硬件不可用的应用。
弱点
- GPU 推理速度较慢: 尽管 EfficientDet 具有 FLOP 效率,但在 GPU 上,它可能比像 YOLOv7 这样的模型慢,因为它的架构对于并行处理的优化程度较低。
- 任务特定性: EfficientDet主要设计用于目标检测,并且缺乏在更现代的框架中发现的原生多任务通用性。
- 复杂性: BiFPN 和复合缩放概念虽然强大,但会增加理解和自定义模型的复杂性。
YOLOv7:实时检测的新基准
YOLOv7 是 YOLO 系列中的一次重大飞跃,为实时目标检测器树立了新的技术水平。它引入了几种架构和训练优化,以提高准确性,而不会影响推理速度。
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织: 台湾中研院资讯所
- 日期: 2022-07-06
- Arxiv: https://arxiv.org/abs/2207.02696
- GitHub: https://github.com/WongKinYiu/yolov7
- 文档: https://docs.ultralytics.com/models/yolov7/
架构和主要特性
YOLOv7的性能提升来自以下几项关键创新:
- 扩展高效层聚合网络 (E-ELAN): 该模块用于模型的 backbone 中,通过控制梯度路径,增强网络有效学习和收敛的能力。
- 模型重参数化: YOLOv7 采用计划重参数化卷积,这项技术在推理过程中将多个模块合并为一个,以减少计算开销并提高速度。
- 可训练的免费赠品(Trainable Bag-of-Freebies): 它引入了先进的训练技术,例如加深监督的辅助头和由粗到精的主导引导训练,这些技术提高了准确性,而不会增加最终推理成本。
优势
- 卓越的速度-精度平衡: YOLOv7 在 GPU 上提供出色的实时推理速度,同时保持非常高的精度,优于许多其他模型。
- 高级训练优化: “bag-of-freebies”方法使其能够在不增加部署模型负担的情况下获得更高的 mAP 分数。
- 经验证的性能: 它已经在MS COCO等标准数据集上进行了广泛的基准测试,展示了其功能。
弱点
- 资源密集型训练: 较大的 YOLOv7 模型可能在计算上要求很高,并且需要大量的 GPU 内存才能进行训练。
- 多功能性有限: 虽然官方存储库包含用于姿势估计和分割等任务的扩展,但它不是像较新的 Ultralytics 模型那样的集成多任务框架。
- 复杂性: 架构和训练流程很复杂,这对于希望自定义或深入理解模型的开发人员来说可能是一个障碍。
性能分析:速度与准确性
在比较 EfficientDet 和 YOLOv7 时,关键的区别在于它们的优化目标。EfficientDet 优先考虑参数和 FLOP 效率,而 YOLOv7 则侧重于在给定准确度下最大化 GPU 硬件上的推理速度 (FPS)。
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 T4 TensorRT (ms) |
参数 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.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模型(d7)实现了最高的mAP,但YOLOv7x紧随其后。
- 效率: EfficientDet 模型在参数和 FLOPs 方面非常轻巧,尤其是较小的变体。EfficientDet-d0 是资源受限环境的明显赢家。
- 速度: YOLOv7 模型在 GPU (TensorRT) 上明显更快。例如,YOLOv7l 以仅 6.84 毫秒的速度实现了 51.4 mAP,而同类的 EfficientDet-d5 实现了 51.5 mAP,但耗时更长,为 67.86 毫秒。这使得 YOLOv7 更适合需要高吞吐量的实时应用。
为什么选择 Ultralytics YOLO 模型?
虽然 YOLOv7 提供了出色的性能,但更新的 Ultralytics YOLO 模型(如 YOLOv8 和 YOLO11)提供了显著的优势:
- 易用性: Ultralytics 模型随附简化的 Python API、丰富的 文档 和简单的 CLI 命令,从而简化了训练、验证和部署。
- 完善的维护生态系统: 受益于积极的开发、强大的开源社区、频繁的更新以及与 Ultralytics HUB 等工具的集成,以实现无缝 MLOps。
- 性能平衡: Ultralytics 模型在速度和准确性之间实现了出色的平衡,适用于从边缘设备到云服务器的各种实际场景。
- 内存效率: Ultralytics YOLO 模型旨在在训练和推理期间实现高效的内存使用,通常比基于 Transformer 的模型甚至 EfficientDet 或 YOLOv7 的某些变体需要更少的 CUDA 内存。
- 多功能性: 像 YOLOv8 和 YOLO11 这样的模型支持对象检测以外的多种任务,包括分割、分类、姿势估计和旋转框检测 (OBB),从而提供统一的解决方案。
- 训练效率: 受益于高效的训练过程、COCO 等数据集上随时可用的预训练权重以及更快的收敛时间。
结论
EfficientDet 在参数和 FLOP 效率至关重要的场景中表现出色,可在不同的资源预算中提供可扩展性。YOLOv7 突破了实时对象检测的界限,利用先进的训练技术,尤其是在 GPU 硬件上,实现了卓越的速度和准确性。
然而,对于寻求具有强大性能、优秀文档和支持多种视觉任务的全面生态系统的现代、多功能且用户友好的框架的开发者来说,YOLOv8 和 YOLO11 等 Ultralytics 模型通常为从研究到生产部署的各种应用提供更具吸引力的选择。
其他模型对比
为了进一步探索,请考虑以下涉及EfficientDet、YOLOv7和其他相关模型的比较:
- EfficientDet vs YOLOv8
- EfficientDet vs YOLOv5
- YOLOv7 与 YOLOv8 对比
- YOLOv7 与 YOLOv5 对比
- RT-DETR vs YOLOv7
- YOLOX vs YOLOv7
- 探索像 YOLOv10 和 YOLO11 这样的最新模型。