YOLOv5 vs. EfficientDet:详细技术对比
在不断发展的计算机视觉领域,选择正确的物体检测架构是项目成功的关键。本比较探讨了两种极具影响力的模型: Ultralytics YOLOv5和Google 的 EfficientDet,前者以速度和易用性兼顾而著称,后者则以可扩展性和参数效率著称。通过研究它们的架构、性能指标和部署能力,开发人员可以做出适合其特定应用需求的明智决定。
性能分析:速度与效率
这两种架构的主要区别在于它们在计算资源与推理延迟方面的设计理念。EfficientDet 优化了理论 FLOPs(浮点运算),因此对学术基准测试很有吸引力。相反,YOLOv5 则优先考虑在实际硬件(尤其是 GPU)上实现低延迟,从而提供对生产环境至关重要的实时推理速度。
下表说明了COCO val2017 数据集的权衡情况。虽然 EfficientDet 模型实现了高 mAP而YOLOv5 在NVIDIA T4 GPU 上使用 TensorRT.
| 模型 | 尺寸 (像素) | 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 |
如图所示,YOLOv5n在GPU 上的延迟时间仅为1.12 毫秒,大大超过了最小的 EfficientDet 版本。对于自动驾驶汽车或高速生产线等毫秒级的应用,这一速度优势至关重要。
建筑差异
了解每种模型的结构设计有助于明确其性能特点。
Ultralytics YOLOv5
YOLOv5 采用了 CSPDarknet 主干网和 PANet 颈网。这种架构旨在最大限度地提高梯度流和特征提取效率。
- 骨干网:利用跨阶段部分(CSP)连接减少冗余梯度信息,在降低参数的同时提高学习能力。
- 颈部:采用路径聚合网络(PANet)进行可靠的多尺度特征融合,增强了对各种尺寸物体的检测能力。
- 头部:标准的基于YOLO 锚点的检测头可直接预测类别和边界框。
EfficientDet
EfficientDet 建立在 EfficientNet 骨干之上,并引入了加权双向特征金字塔网络(BiFPN)。
- 骨干网:使用 EfficientNet,它使用复合系数统一缩放深度、宽度和分辨率。
- 颈(BiFPN):一个复杂的特征整合层,允许信息自上而下和自下而上地流动,对不同的输入特征施加权重,以强调其重要性。
- 化合物扩展:这是一项关键创新,骨干网、BiFPN 和箱体/类别预测网络都可以一起扩展。
Ultralytics 的优势:生态系统和可用性
原始指标固然重要,但开发人员的体验往往决定着项目的成败。Ultralytics YOLOv5 在提供以用户为中心的完美环境方面表现出色,大大缩短了开发时间。
易于使用和集成
YOLOv5 以其 "开箱即用 "的可用性而闻名。只需一个简单的 pip 命令即可安装该模型,只需编写极少的代码即可使用。相比之下,EfficientDet 的实现通常需要在TensorFlow 生态系统或特定的研究资源库中进行更复杂的设置。
简化工作流程
有了Ultralytics,从数据集到训练好的模型只需几分钟。通过与Ultralytics HUB等工具的集成,可以实现无缝模型管理、可视化和部署,而无需大量模板代码。
训练效率和记忆力
Ultralytics 模型针对训练效率进行了优化。与 EfficientDet 的较高扩展层或transformer的模型等复杂架构相比,它们通常收敛更快,所需的CUDA 内存更少。这种较低的入门门槛使开发人员能够在消费级硬件或标准云实例(如Google Colab)上训练最先进的模型。
多功能和多任务处理
标准的 EfficientDet 实现主要是一个对象检测器,而Ultralytics 框架则不同,它支持广泛的任务。开发人员可以利用相同的应用程序接口进行实例分割和图像分类,从而为各种计算机视觉挑战提供统一的解决方案。
理想用例
在YOLOv5 和 EfficientDet 之间做出选择,主要取决于部署限制和目标。
何时选择Ultralytics YOLOv5
- 实时应用:要求低延迟的项目,如视频监控、机器人或实时体育分析。
- 边缘部署:在NVIDIA Jetson或 Raspberry Pi 等设备上运行,高效利用GPU 是关键。
- 快速原型:快速迭代周期和易用性是快速展示价值的首要条件。
- 生产系统:在大规模开源社区的支持下,实现稳健、可维护的部署。
何时选择 EfficientDet
- 研究和基准测试:侧重于 FLOPs 效率或架构扩展规律的学术研究。
- 离线处理:可接受高延迟的情况,目标是在静态图像上挤出最后几个百分点的准确率。
- 低功耗CPU 推理:在非常特殊的CPU 环境中,BiFPN 操作针对特定的硬件指令集进行了高度优化。
模型起源与细节
了解这些模型的背景,就能深入了解它们的设计目标。
Ultralytics YOLOv5
- 作者: Glenn Jocher
- 组织机构Ultralytics
- 日期: 2020-06-26
- GitHub:yolov5
- 文档:YOLOv5 文档
EfficientDet
- 作者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 组织机构 Google 研究院
- 日期: 2019-11-20
- Arxiv:EfficientDet:可扩展的高效物体检测
- GitHub:google
代码示例:开始使用YOLOv5
Ultralytics 让推理变得异常简单。下面是一个有效、可运行的示例,使用Python APIdetect 图像中的物体。
import torch
# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image URL
img_url = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img_url)
# Display results
results.show()
# Print detection data (coordinates, confidence, class)
print(results.pandas().xyxy[0])
这个简单的代码段可以处理下载模型、预处理图像、运行前向传递和解码输出等任务,而这些任务在原始的 EfficientDet 实现中需要的代码要多得多。
结论
EfficientDet 对模型扩展和参数效率的研究做出了重大贡献、 Ultralytics YOLOv5仍然是实际部署的最佳选择。它在速度和准确性之间取得了卓越的平衡,再加上蓬勃发展、维护良好的生态系统,确保了开发人员能够有效地构建、训练和部署解决方案。
对于那些希望利用绝对最新的计算机视觉技术的用户,Ultralytics 在YOLOv5 之后继续进行创新。像 YOLOv8和尖端的 YOLO11等模型进一步改进了架构,支持更多任务,如姿势估计 和面向对象检测,同时保持了Ultralytics 特有的易用性。
探索其他模型
如果您有兴趣进行更多比较,以找到最适合您需求的机型,请参考这些资源:
- YOLOv5 与YOLO11- 经典与最新技术的对比。
- EfficientDet 与YOLOv8的比较 - 查看 EfficientDet 与YOLOv8 的比较。
- YOLOv8 与YOLO11- 了解最新一代产品的进步。
- YOLO11 与RT-DETR- 用YOLO 比较实时变压器。