YOLOv7 vs. EfficientDet:实时物体检测架构的技术比较
物体检测仍然是计算机视觉的基石,推动着从自动驾驶到医疗成像等领域的创新。选择正确的架构对于平衡精度、速度和计算资源至关重要。本分析深入探讨了 YOLOv7和EfficientDet 这两个具有影响力的模型,它们塑造了实时检测的格局。
建筑设计与理念
这两种架构的根本区别在于它们的优化目标。Google 大脑团队开发的EfficientDet 优先考虑参数效率和浮点运算 (FLOP)。它采用可扩展架构,允许用户以线性方式权衡资源和准确性。相比之下 YOLOv7由 YOLOv4 的作者(Chien-Yao Wang 等人)创建,其重点是在GPU 硬件上最大限度地提高推理速度,同时保持最先进的精度。
EfficientDet:复合扩展和 BiFPN
EfficientDet 建立在EfficientNet骨干网的基础上,它利用复合缩放方法来统一缩放网络分辨率、深度和宽度。EfficientDet 的一项关键创新是双向特征金字塔网络(BiFPN)。与传统的 FPN 不同,BiFPN 通过引入可学习权重来学习不同输入特征的重要性,从而实现简单快速的多尺度特征融合。这种设计使得 EfficientDet 在内存和 FLOP 受严格限制的边缘计算应用中非常有效。
YOLOv7:E-ELAN 和模型重新参数化
YOLOv7 引入了扩展高效层聚合网络(E-ELAN)。该架构可控制最短和最长梯度路径,在不破坏原始梯度路径的情况下提高网络的学习能力。此外,YOLOv7 还采用了模型重参数化技术,将复杂的训练结构简化为精简的推理结构。这使得模型在训练过程中非常稳健,而在 GPU 上部署时速度又非常快。
性能分析:指标和基准
在比较性能时,选择往往取决于部署的硬件。EfficientDet 在低功耗环境(CPU)中表现出色,而YOLOv7 则专为高吞吐量GPU 推理而设计。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (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-d0 使用的参数(3.9M)要少得多,但 YOLOv7l 的mAP (51.4%)要高得多,而且 GPU 上的延迟极低(6.84ms)。这表明YOLOv7 能更好地利用并行处理能力。
- 可扩展性EfficientDet 提供了从 d0 到 d7 的细化扩展路径,允许开发人员针对特定的CPU 限制对模型大小进行微调。
- 高端精确度:在最高端,EfficientDet-d7 实现了极高的精度(53.7%mAP),但代价是高延迟(约 128ms)。YOLOv7x 在 T4GPU 上以不到十分之一的推理时间(11.57ms)实现了相当的精度(53.1%mAP)。
硬件考虑因素
如果您的部署目标是通用CPU 或移动处理器,那么EfficientDet模型(特别是 d0-d2)的较低 FLOP 通常会带来更好的电池寿命和散热管理。对于边缘 GPU(如NVIDIA Jetson)或云推理服务器而言、 YOLOv7可为实时视频分析提供更高的帧速率。
培训方法与优化
这些模型的训练策略反映了它们的架构目标。
YOLOv7YOLOv7 采用了一种 "无用包 "方法,在不影响推理速度的情况下,采用了一些增加训练成本但提高准确性的方法。主要技术包括
- 从粗到细的深度监督:辅助头用于监督网络的中间层,其标签分配策略对辅助头的指导方式与主导头不同。
- 动态标签分配:该模型会在训练过程中调整锚点的地面实况对象分配,从而提高收敛性。
EfficientDet主要依靠AutoML找到最佳主干和特征网络结构。其训练通常包括
- 随机深度:在训练过程中随机丢弃图层,以提高泛化效果。
- Swish 激活:一种平滑的非单调函数,在深度网络中始终优于 ReLU。
Ultralytics 的优势
虽然YOLOv7 和 EfficientDet 功能强大,但计算机视觉领域的发展日新月异。Ultralytics 生态系统提供了现代化的替代方案,如 YOLO11等现代替代方案,这些方案综合了以前架构的优点,同时增强了开发人员的体验。
易用性和生态系统
面向研究的资源库(如最初的 EfficientDet 代码库)面临的主要挑战之一是集成的复杂性。Ultralytics 使用统一的Python 软件包解决了这一问题。开发人员只需几行代码,就能在全面的文档和活跃的社区支持下训练、验证和部署模型。
多功能与性能的平衡
Ultralytics 模型并不局限于边界框。它们本机支持实例分割、姿势估计 、分类和定向对象检测(旋转框检测)。在性能方面,现代YOLO 版本(如YOLOv8 和YOLO11)通常比 EfficientDet 获得更高的单位参数准确度,而推理速度则比YOLOv7 更快,在实际部署中达到了理想的平衡。
记忆和训练效率
Ultralytics YOLO 模型以其内存效率著称。与Transformer探测器或较早的可扩展架构相比,它们在训练过程中所需的CUDA 内存通常更少。这使得研究人员可以在消费级硬件上训练最先进的模型。此外,高质量的预训练权重可供立即下载,从而简化了迁移学习。
from ultralytics import YOLO
# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with high speed
predictions = model("https://ultralytics.com/images/bus.jpg")
型号规格
YOLOv7
- 作者: Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao
- 组织: 台湾中研院资讯所
- 发布日期发布日期: 2022 年 7 月 6 日
- 论文:YOLOv7:可训练的 "无用包 "为实时物体探测器树立了新标杆
- 源代码GitHub 存储库
EfficientDet
- 作者: Mingxing Tan、Ruoming Pang 和 Quoc V. Le
- 组织机构 Google 研究,大脑团队
- 发布日期发布日期: 2019年11月20日
- 论文:EfficientDet:可扩展的高效物体检测
- 源代码GitHub 存储库
实际应用案例
何时选择 EfficientDet
对于无法使用GPU 加速的嵌入式系统来说,EfficientDet 仍然是一个强有力的候选方案。
- 移动应用程序:在CPU 上执行物体检测的iOS 应用程序。
- 远程物联网传感器:由电池供电的设备可监测环境变化,每毫瓦的计算量都很重要。
何时选择YOLOv7
YOLOv7 在高性能工业环境中表现出色。
- 自动驾驶:以高帧率检测行人和车辆,确保安全。
- 智能城市:同时分析多个视频流,以便在边缘服务器上进行交通管理。
结论
这两种架构都是计算机视觉领域的重要里程碑。EfficientDet展示了参数效率复合缩放的威力,而 YOLOv7则突破了GPU 延迟优化的极限。
然而,对于寻求最现代化、可维护性和多功能解决方案的开发人员来说, Ultralytics YOLO11模型系列是值得推荐的。它具有卓越的准确性-速度权衡、更简单的工作流程和强大的生态系统,简化了从数据集整理到部署的整个过程。
探索其他模型
如果您有兴趣比较其他物体检测架构,请参考这些资源: