跳转至内容

YOLOv10 对比 EfficientDet:技术比较

目标检测领域在过去几年中快速发展,从复杂的多阶段流水线过渡到精简的实时架构。本文将探讨清华大学研究人员于2024年发布的最新先进模型YOLOv10与Google于2019年引入的开创性架构EfficientDet之间的技术差异。

尽管EfficientDet在当时为参数效率设定了基准,但YOLOv10突破了延迟和精度的界限,引入了无NMS训练范式,显著提升了推理速度。本指南分析了它们的架构、性能指标和理想用例,以帮助您为计算机视觉项目选择合适的模型。

YOLOv10:实时端到端目标检测

YOLOv10 代表了 YOLO(You Only Look Once)系列中的重大飞跃,专注于消除经常成为推理速度瓶颈的非极大值抑制 (NMS) 后处理步骤。通过采用一致的双重分配进行无 NMS 训练,它与之前的迭代相比,以更低的延迟实现了具有竞争力的性能。

技术细节:

了解更多关于YOLOv10的信息。

主要架构特性

YOLOv10 引入了一种整体效率-精度驱动的模型设计。其核心创新在于其双重分配策略。在训练过程中,模型同时使用一对多分配(在 YOLOv8 中常见)进行丰富监督,以及一对一分配,以确保无需 NMS 的端到端部署。

  1. 免NMS训练:传统检测器需要NMS来过滤重复的边界框,这会引入推理延迟。YOLOv10的架构允许模型在推理时为每个对象精确预测一个框,从而有效地消除了这一开销。
  2. 效率驱动设计: 该模型采用轻量级分类头和空间-通道解耦下采样,以降低计算成本(FLOPs)和参数量。
  3. 大核卷积:通过选择性地使用大核深度可分离卷积,YOLOv10 增强了其感受野和 detect 小对象的能力,而不会大幅增加计算量。

为什么无NMS很重要

移除非极大值抑制(NMS)创建了一个真正的端到端流程。这对于边缘AI应用至关重要,在这些应用中,每一毫秒都弥足珍贵,例如在NVIDIA Jetson设备上,可确保稳定且可预测的延迟。

优势

  • 卓越的速度:针对实时推理进行了优化,在 GPU 硬件上显著优于旧模型。
  • Ultralytics 集成:作为 Ultralytics 生态系统的一部分,YOLOv10 受益于简单的Python API,使其训练、验证和部署变得极其简单。
  • 内存使用量更低:RT-DETR等基于Transformer的检测器相比,高效架构在训练期间所需的CUDA内存更少。

EfficientDet:可扩展且高效的架构

EfficientDet 由 Google Brain 团队开发,旨在优化精度和效率。它引入了一个模型家族(D0-D7),这些模型使用复合缩放方法进行缩放,统一调整分辨率、深度和宽度。

技术细节:

了解更多关于 EfficientDet 的信息

主要架构特性

EfficientDet 基于EfficientNet 骨干网络,并引入了BiFPN(双向特征金字塔网络)。

  1. BiFPN:与标准 FPN 不同,BiFPN 允许双向信息流,并使用可学习权重融合来自不同尺度的特征。这使得在参数更少的情况下获得更好的多尺度特征表示。
  2. 复合缩放: 该方法确保骨干网络、特征网络和边界框/类别预测网络能够高效地同步扩展。D0 模型小巧快速,适用于移动设备,而 D7 模型则为高资源环境提供了 最先进的 精度。

优势与劣势

  • 参数效率:EfficientDet 以相对较少的参数和 FLOPs 实现高 mAP 而闻名。
  • 可扩展性: D0-D7 范围为不同的计算预算提供了灵活性。
  • 高延迟:尽管FLOPs计数较低,但BiFPN和深度可分离卷积中的复杂连接可能导致GPU上的延迟高于YOLO模型精简的CNN架构。
  • 复杂性: 相比于 Ultralytics YOLOv8 或 YOLOv10 的直观设计,该架构更难定制或调优。

性能分析:速度与效率

比较这两种模型时,理论效率 (FLOPs) 和 实际速度 (延迟) 之间的区别变得清晰。EfficientDet 在最小化 FLOPs 方面表现出色,但 YOLOv10 在现代硬件(如 GPU)上的实际推理速度方面占据主导地位。

下表显示,尽管EfficientDet模型紧凑,但YOLOv10为实时应用提供了更好的权衡。例如,YOLOv10-S在T4 GPU上实现了具有竞争力的46.7% mAP,延迟仅为2.66毫秒,而EfficientDet-d3(47.5% mAP)则慢了近7倍,达到19.59毫秒。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
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

解读

  • GPU 优势: YOLOv10 采用硬件感知设计,与 GPU 架构高度契合,从而实现卓越的吞吐量。
  • 精度均等: 较新的训练策略使 YOLOv10 能够达到或超过速度慢得多的 EfficientDet 变体的精度。
  • 部署:YOLOv10 的无 NMS 特性简化了导出到 TensorRT 和 ONNX 等格式的过程,降低了部署流程的复杂性。

易用性与生态系统

对开发者而言,最重要的因素之一是模型所围绕的生态系统。在这方面,Ultralytics 提供了显著的优势。

Ultralytics 优势

YOLOv10 已集成到 Ultralytics Python 包中,提供从数据标注到部署的无缝体验。

  • 简单API: 您仅需几行代码即可加载、训练和预测。
  • 良好维护:频繁更新、社区支持和详尽的文档确保您不会陷入调试难以理解的错误中。
  • 训练效率:Ultralytics 模型针对快速收敛进行了优化。预训练权重随时可用,可在自定义数据集上实现有效的迁移学习

使用 Ultralytics 训练 YOLOv10

使用 Ultralytics API 在 COCO8 数据集上训练 YOLOv10 模型非常简单。

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

相比之下,EfficientDet 依赖于较旧的 TensorFlow 存储库或第三方 PyTorch 实现,这些可能缺乏统一支持,使得集成到现代 MLOps 管道中更具挑战性。

理想用例

在 YOLOv10 和 EfficientDet 之间进行选择取决于您的具体限制。

何时选择 YOLOv10

YOLOv10 是大多数现代计算机视觉应用的卓越选择,尤其适用于:

  • 自动系统:自动驾驶汽车和无人机需要低延迟detect以确保安全。YOLOv10的速度确保了快速反应时间。
  • 视频分析:处理高帧率视频流,用于安全监控或交通监控。
  • 边缘部署:部署在树莓派或NVIDIA Jetson等嵌入式设备上,这些设备资源有限,但实时性能不容妥协。

何时选择 EfficientDet

EfficientDet 在特定小众场景中仍然具有相关性:

  • 学术研究: 如果目标是研究复合缩放定律或高效神经网络设计原则。
  • 严格的 FLOPs 限制:在极其特定的硬件环境中,理论 FLOPs 是硬性瓶颈,而不是延迟或内存带宽。

结论

尽管EfficientDet是高效模型设计领域的里程碑,但YOLOv10代表了高性能目标检测的新标准。其创新的无NMS架构在不牺牲精度的情况下,在推理速度上提供了决定性优势,使其在实际部署中更具实用性。

此外,强大的 Ultralytics 生态系统确保了 YOLOv10 的高效和开发者友好性。从便捷的导出选项到关于数据集管理的全面指南,Ultralytics 助力您更快地实现视觉 AI 项目。

对于那些寻求多功能性和性能方面绝对最新成果的用户,我们还推荐探索 Ultralytics YOLO11,它在这些进步的基础上,在 detect、segment 和 姿势估计 任务中提供最先进的功能。

探索更多比较


评论