跳转至内容

EfficientDet 与YOLOv5:详细技术比较

由于不断需要在准确性和计算效率之间取得平衡,物体检测领域发展迅速。Google 大脑团队开发的EfficientDet 和 YOLOv5 是对这一领域产生重大影响的两种架构。 YOLOv5和Ultralytics 创建的 YOLOv5。虽然这两个模型都旨在高效detect 图像中的物体,但它们采用的设计理念和架构策略却截然不同。

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

EfficientDet:可扩展且高效

EfficientDet 于 2019 年末发布,其研究目标是同时优化精度和效率。它在物体检测中引入了 "复合缩放 "的概念,这是一种对主干网络的分辨率、深度和宽度进行统一缩放的方法。

建筑亮点

EfficientDet 建立在 EfficientNet 骨干之上,并引入了一种名为BiFPN(双向特征金字塔网络)的新型特征融合网络。传统的特征金字塔网络(FPN)将信息流限制在自上而下的方式,与之不同的是,BiFPN 允许在不同的分辨率层之间进行复杂的双向信息流。

该模型还采用了复合缩放技术,允许用户根据资源限制从一系列模型(D0 至 D7)中进行选择。这确保了在计算能力较强的情况下,可以通过线性增加模型大小来获得更高的精度

优势与劣势

EfficientDet 的主要优势在于其理论效率。它可以实现高 mAP分数,而FLOP(浮点运算)却非常低。这使它成为以参数效率为关键指标的学术研究的一个有趣候选方案。

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

了解更多关于 EfficientDet 的信息

Ultralytics YOLOv5:真实世界的性能和可用性

Ultralytics YOLOv5 于 2020 年发布,代表了一种模式的转变。与前代产品不同,它是第一个YOLO PyTorch中实现的第一个 YOLO 模型,从而使大量开发人员都能使用它。它将 "部署友好性 "与原始性能放在首位。

  • 作者: Glenn Jocher
  • 组织机构Ultralytics
  • 日期: 2020 年 6 月 26 日日期: 2020 年 6 月 26 日
  • GitHub:yolov5

建筑亮点

YOLOv5 采用了 CSPDarknet 骨干网,优化了梯度流并减少了计算量。它率先在训练过程中使用了马赛克增强技术(Mosaic Augmentation)--一种将四幅图像拼接在一起的技术--从而提高了模型detect 小型物体的能力,并减少了对大型迷你批次的需求。

该架构专为速度而设计。通过利用标准卷积和精简的头结构,YOLOv5 最大限度地发挥了现代 GPU 的并行处理能力,从而实现了极低的推理延迟

Ultralytics 生态系统优势

YOLOv5 最显著的优势之一是其周边的生态系统。Ultralytics 提供了一个无缝的工作流程,包括自动锚点生成、超参数演化和本地导出到 ONNX, TensorRT、CoreML 和TFLite原生导出支持。这种 "包含电池 "的方法大大缩短了从概念到生产的时间。

优势与劣势

YOLOv5 在实时推理易用性方面表现出色。其简单的应用程序接口(API)和强大的文档支持开发人员在几分钟内根据自己的数据训练自定义模型。它兼顾了速度和准确性,是边缘人工智能和云部署的最佳选择。虽然较新的模型如 YOLO11等新模型在准确性方面已经超越了它,但YOLOv5 仍然是可靠的行业标准主力。

了解更多关于 YOLOv5 的信息

性能指标:速度与准确性

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

模型尺寸
(像素)
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.4mAP) 运行于 1.92 毫秒 在 T4GPU 上,而 EfficientDet-d0 (34.6mAP)需要 3.92 毫秒-让YOLOv5 变得粗糙 快 2 倍 而精度更高。这种差距随着型号的增大而扩大; YOLOv5l (49.0mAP) 接近 快 5 倍 比同类 EfficientDet-d4 (49.7mAP)。

相反,EfficientDet 在CPU 环境中表现出色,在这种环境中,低 FLOP 通常能更好地转化为性能,正如较小 D0 变体的ONNX CPU 速度所示。

理想用例

在这些模式中做出选择取决于您的具体限制条件:

何时选择 EfficientDet

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

何时选择Ultralytics YOLOv5

  • 实时应用:自动驾驶汽车机器人和视频监控至关重要,在这些应用中,低延迟是不可或缺的。
  • 生产部署: 维护良好的生态系统以及向TensorRT 和OpenVINO 等引擎的轻松输出,使YOLOv5 成为商业产品的优越选择。
  • 训练效率:与 EfficientDet 或Transformer模型等复杂架构相比,YOLOv5 模型的训练速度更快,所需的内存更少,从而降低了云计算成本。
  • 多功能性:除了简单的边界框,Ultralytics 框架还能无缝过渡到分割和分类任务。

代码示例:Ultralytics的简易性

易用性是Ultralytics 模型的决定性特征之一。实施 EfficientDet 通常需要复杂的TensorFlow 配置或特定的资源库克隆,而YOLOv5 只需几行Python 代码就能通过PyTorch Hub 加载和运行。

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.


评论