YOLOv5 vs. EfficientDet:详细技术对比
在不断发展的计算机视觉领域,选择正确的物体检测架构是项目成功的关键。本比较探讨了两种极具影响力的模型: Ultralytics YOLOv5和Google 的 EfficientDet,前者以速度和易用性兼顾而著称,后者则以可扩展性和参数效率著称。通过研究它们的架构、性能指标和部署能力,开发人员可以做出适合其特定应用需求的明智决定。
性能分析:速度与效率
这两种架构的主要区别在于它们在计算资源与推理延迟方面的设计理念。EfficientDet 针对理论 FLOPs(浮点运算)进行优化,使其在学术基准测试中具有吸引力。相反,YOLOv5 优先考虑在实际硬件(特别是 GPU)上的低延迟,提供生产环境所需的实时推理速度。
下表展示了在COCO val2017数据集上的这种权衡。尽管EfficientDet模型以更少的参数实现了高mAP,YOLOv5在使用TensorRT的NVIDIA T4 GPU上展示了显著更快的推理时间。
| 模型 | 尺寸 (像素) | 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 框架支持广泛的任务。开发人员可以利用相同的 API 进行实例分割和图像分类,为各种计算机视觉挑战提供统一的解决方案。
理想用例
在 YOLOv5 和 EfficientDet 之间进行选择在很大程度上取决于部署限制和目标。
何时选择 Ultralytics YOLOv5
- 实时应用: 需要低延迟的项目,例如视频监控、机器人技术或实时体育分析。
- 边缘部署: 在 NVIDIA Jetson 或 Raspberry Pi 等设备上运行,高效的 GPU/NPU 利用率是关键。
- 快速原型开发:当优先考虑快速迭代周期和易用性以快速展示价值时。
- 生产系统:适用于由庞大开源社区支持的健壮、可维护的部署。
何时选择 EfficientDet
- 研究与基准测试:专注于 FLOPs 效率或架构缩放定律的学术研究。
- 离线处理:高延迟可接受的场景,目标是在静态图像上榨取最后的精度百分点。
- 低功耗CPU推理:在BiFPN操作针对特定硬件指令集高度优化的特定纯CPU环境中。
模型来源与详细信息
理解这些模型的背景有助于深入了解其设计目标。
Ultralytics YOLOv5
- 作者: Glenn Jocher
- 组织:Ultralytics
- 日期: 2020-06-26
- GitHub:ultralytics/yolov5
- 文档:YOLOv5 文档
EfficientDet
- 作者: Mingxing Tan、Ruoming Pang、Quoc V. Le
- 组织:Google Research
- 日期: 2019-11-20
- Arxiv:EfficientDet: Scalable and Efficient Object Detection
- GitHub:google/automl/efficientdet
代码示例:YOLOv5快速入门
Ultralytics 使推理变得异常简单。下面是一个使用 Python API 检测图像中对象的有效且可运行的示例。
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 vs. YOLO11 - 将经典模型与最新的最先进模型进行比较。
- EfficientDet vs. YOLOv8 - 了解 EfficientDet 如何与 YOLOv8 竞争。
- YOLOv8 vs. YOLO11 - 了解最新一代的进展。
- YOLO11 vs. RT-DETR - 将实时 Transformer 与 YOLO 进行比较。