跳转至内容

EfficientDet 对比 YOLOv5:详细技术比较

目标检测领域发展迅速,其驱动力是不断平衡准确性和计算效率的需求。Google Brain团队开发的EfficientDet和Ultralytics创建的YOLOv5是显著影响该领域的两种架构。尽管这两种模型都旨在高效地检测图像中的目标,但它们以根本不同的设计理念和架构策略解决问题。

本指南提供了深入的技术比较,旨在帮助开发人员、研究人员和工程师为其特定的计算机视觉应用选择合适的工具。

EfficientDet:可扩展且高效

EfficientDet于2019年末发布,源于同时优化准确性和效率的研究目标。它将“复合缩放”(Compound Scaling)的概念引入目标检测领域,这种方法可以统一缩放骨干网络的分辨率、深度和宽度。

架构亮点

EfficientDet 基于 EfficientNet 主干网络构建,并引入了一种新颖的特征融合网络,称为 BiFPN(双向特征金字塔网络)。与传统仅限于自上而下信息流的 特征金字塔网络 (FPN) 不同,BiFPN 允许在不同分辨率层之间进行复杂的双向信息流。

该模型还利用了复合缩放,这允许用户根据其资源限制从一系列模型(D0 到 D7)中进行选择。这确保了如果您有更多计算资源可用,您可以线性增加模型大小以获得更好的准确性

优势与劣势

EfficientDet 的主要优势在于其理论效率。它以极低的FLOPs(浮点运算)实现了高mAP分数。这使其成为参数效率作为关键指标的学术研究的有趣候选。

然而,EfficientDet存在一个实际缺点:推理延迟。BiFPN中复杂的连接以及大量使用的深度可分离卷积——尽管在数学上是高效的——但与标准卷积相比,在GPU硬件上通常未能得到充分优化。因此,尽管FLOPs较低,EfficientDet在GPU上的运行速度可能比理论计算成本更高的模型还要慢。

了解更多关于 EfficientDet 的信息

Ultralytics YOLOv5:实际性能与可用性

Ultralytics YOLOv5 在2020年发布时,代表着一场范式转变。与其前身不同,它是第一个原生在 PyTorch 中实现的 YOLO 模型,使其能够被庞大的开发者生态系统所使用。它在追求原始性能的同时,优先考虑了“部署友好性”。

架构亮点

YOLOv5 采用 CSPDarknet 主干网络,优化了梯度流并减少了计算量。它开创性地在训练期间使用了Mosaic 数据增强——一种将四张图像拼接在一起的技术——提高了模型 detect 小目标的能力,并减少了对大批量大小的需求。

该架构旨在实现高速。通过利用标准卷积和流线型头部结构,YOLOv5 最大限度地发挥了现代 GPU 的并行处理能力,从而实现极低的 推理延迟

Ultralytics 生态系统优势

YOLOv5最显著的优势之一是其周围的生态系统。Ultralytics提供了一个无缝的工作流程,包括自动锚框生成、超参数演进,以及对ONNXTensorRT、CoreML和TFLite的原生导出支持。这种“开箱即用”的方法大大缩短了从概念到生产的时间。

优势与劣势

YOLOv5 在实时推理易用性方面表现出色。其简单的 API 和完善的文档使开发者能够在几分钟内使用自己的数据训练自定义模型。它以一种对边缘 AI和云部署都最优的方式平衡了速度和准确性。虽然像YOLO11这样的新模型在准确性上已经超越了它,但 YOLOv5 仍然是一个可靠的、行业标准的“主力军”。

了解更多关于 YOLOv5 的信息

性能指标:速度对比准确性

下表比较了 EfficientDet 和 YOLOv5 在COCO val2017 数据集上的性能。关键在于理论成本 (FLOPs) 和实际速度 (Latency) 之间的区别。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

如所示, YOLOv5 在 GPU 延迟方面表现出色。例如, YOLOv5s (37.4 mAP)运行速度为 1.92 毫秒 在 T4 GPU 上,而 EfficientDet-d0 (34.6 mAP)需要 3.92 毫秒—使得 YOLOv5 大致 2x 速度更快 同时提供更高的精度。这种差异在更大模型上会进一步扩大; YOLOv5l (49.0 mAP)几乎是 速度提升5倍 比同类 EfficientDet-d4 (49.7 mAP)。

相反,EfficientDet 在纯 CPU 环境中表现出色,其中较低的 FLOPs 通常能更好地转化为性能,这在较小的 D0 变体的 ONNX CPU 速度中可见一斑。

理想用例

在这些模型之间进行选择取决于您的具体限制:

何时选择 EfficientDet

  • 学术基准测试: 当主要目标是展示参数效率或架构缩放规律时。
  • 严格的 CPU 限制:如果部署严格限于 FLOPs 是绝对瓶颈的较旧 CPU 硬件,最小的 EfficientDet 变体(D0-D1)提供具有竞争力的性能。
  • 研究:用于研究特征金字塔网络的变体,例如BiFPN。

何时选择 Ultralytics YOLOv5

  • 实时应用: 对于自动驾驶车辆机器人技术和视频监控至关重要,在这些领域低延迟是不可妥协的。
  • 生产部署:维护良好的生态系统以及易于导出到TensorRT和OpenVINO等引擎的特性,使YOLOv5在商业产品中表现卓越。
  • 训练效率:YOLOv5 模型通常比 EfficientDet 或基于 Transformer 的复杂架构训练更快,所需内存更少,从而降低了云端计算成本。
  • 多功能性:除了简单的边界框之外,Ultralytics 框架能够无缝过渡到 segmentation 和分类任务。

代码示例:Ultralytics的简洁性

Ultralytics模型的一个显著特点是易用性。虽然实现EfficientDet通常需要复杂的TensorFlow配置或特定的仓库克隆,但YOLOv5可以通过PyTorch Hub仅用几行Python代码即可加载和运行。

import torch

# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)

# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"

# Perform inference
results = model(img)

# Display results
results.print()  # Print predictions to console
results.show()  # Show image with bounding boxes

结论与未来展望

尽管EfficientDet通过证明复合缩放和高效特征融合的价值,在计算机视觉领域树立了重要的里程碑,但YOLOv5通过使高性能对象检测变得易于访问、快速和可部署,彻底改变了行业。

对于今天开始新项目的开发者而言,我们推荐关注 Ultralytics 系列的最新进展。YOLO11 建立在 YOLOv5 的坚实基础之上,提供了:

如需进一步了解 Ultralytics 模型与其他架构的比较,请查阅我们与 YOLOv8RT-DETR 的比较。


评论