Ultralytics YOLO27: 加入候补名单。
Get Started

YOLOv10 与 EfficientDet 对比#

为目标检测选择最佳神经网络,是现代计算机视觉系统中的关键决策。影响该领域的两种架构是 YOLOv10 和 EfficientDet。两者都旨在最大限度地提高准确率,同时尽量减少计算开销,但采用了截然不同的架构方法。

本指南介绍这两种模型的设计、训练方法和部署特性,帮助开发者和机器学习工程师为视觉 AI 应用做出数据驱动的决策。指南还会探讨它们在从嵌入式边缘 AI 设备到强大云端 GPU 等各种硬件上的表现。

YOLOv10:无需 NMS 的实时检测#

YOLOv10 专为降低实时延迟而开发,解决了 YOLO 系列中一个长期存在的瓶颈:非极大值抑制 (NMS)。通过移除这一后处理步骤,模型实现了可预测的延迟,这对自动驾驶汽车和高速机器人至关重要。

架构创新#

YOLOv10 引入了用于无 NMS 训练的一致双重分配。训练期间,它同时使用一对多和一对一标签分配,让网络学习丰富的表征;推理期间,则为每个目标输出一个边界框。该架构还采用以效率和准确率为核心的整体设计,精简了分类头,并减少了以往版本中的计算冗余。

模型详情#

简化部署

由于 YOLOv10 移除了 NMS 步骤,因此无需依赖用于边界框筛选的自定义运行时插件,就能更轻松地导出为 ONNX 格式和 NVIDIA TensorRT 等格式。

优势:

  • 推理性能可预测:移除 NMS 后,无论场景中的目标数量是多少,推理时间都能保持稳定。
  • 更低的内存用量:与 RT-DETR 等基于 Transformer 的模型相比,YOLOv10 在训练和推理期间的内存需求更低。
  • 速度与准确率的出色平衡:专门针对低延迟场景优化,同时不牺牲性能指标。

不足:

进一步了解 YOLOv10

EfficientDet:可扩展且均衡#

EfficientDet 由 Google Brain 提出,从系统化网络缩放的角度处理目标检测问题。它基于 EfficientNet 图像分类主干网络构建,并引入了一种新的特征融合机制。

架构创新#

EfficientDet 的核心是双向特征金字塔网络 (BiFPN),它能够轻松快速地融合多尺度特征。与只从上到下对特征求和的传统 FPN 不同,BiFPN 引入了双向跨尺度连接和可训练权重,以学习不同输入特征的重要性。此外,EfficientDet 使用复合缩放方法,对所有主干网络、特征网络以及框/类别预测网络的分辨率、深度和宽度进行统一缩放。

模型详情#

优势:

  • 高效率:参数量与准确率的比例出色,使较小的 -d0 到 -d2 变体非常轻量。
  • 有原则的缩放:复合缩放让用户可以轻松选择符合自身计算预算的模型尺寸。

不足:

  • 旧版框架集成:原始实现依赖较旧版本的 TensorFlow,这可能会使现代部署流水线更加复杂。
  • 训练速度较慢:与 YOLO 架构的快速收敛相比,从头开始训练 EfficientDet 速度较慢,而且需要谨慎调优超参数。
  • 推理速度:虽然参数效率高,但复杂的 BiFPN 运算往往导致其在标准硬件上的实际推理速度慢于高度优化的 YOLO 模型。

了解 EfficientDet 的更多信息

性能与基准测试#

检验这些模型的真正标准,是它们在COCO 数据集等标准基准上的实测表现。下表展示了它们在参数量、浮点运算次数 (FLOPs) 以及 NVIDIA T4 GPU 上的推理延迟方面的关键差异。

模型尺寸
(像素)
mAPval50-95速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(ms)
参数
(M)
FLOPs
(B)
YOLOv10n64038.5-1.842.36.7
YOLOv10s64046.3-2.497.221.6
YOLOv10m64051.1-4.7415.459.1
YOLOv10b64052.5-5.7419.192.0
YOLOv10l64053.2-7.2824.4120.3
YOLOv10x64054.4-10.7029.5160.4
EfficientDet-d051234.6-3.923.92.54
EfficientDet-d164040.5-7.316.66.1
EfficientDet-d276843.0-10.928.111.0
EfficientDet-d389647.5-19.5912.024.9
EfficientDet-d4102449.7-33.5520.755.2
EfficientDet-d5128051.5-67.8633.7130.0
EfficientDet-d6128052.6-89.2951.9226.0
EfficientDet-d7153653.7-128.0751.9325.0

YOLOv10 在 GPU 推理速度方面具有显著优势。例如,YOLOv10s 的 TensorRT 延迟为 2.49 ms,mAP 达到 46.3;而 EfficientDet-d3 的 mAP 相近,为 47.5,但耗时 19.59 ms。在高端型号中,YOLOv10m(51.1 mAP,4.74 ms)的表现几乎可与 EfficientDet-d5(51.5 mAP,67.86 ms)相当。因此,YOLOv10 更适合实时视频流或高速制造流水线。EfficientDet-d0 的 FLOPs 最低(2.54B)。

用例与建议#

选择 YOLOv10 还是 EfficientDet,取决于你的具体项目需求、部署限制和生态系统偏好。

何时选择 YOLOv10#

以下场景适合使用 YOLOv10:

  • 无 NMS 的实时检测:适用于需要从端到端检测中获益、无需使用非极大值抑制并能降低部署复杂度的应用。
  • 均衡权衡速度与准确率:适用于需要在不同模型规模下兼顾推理速度和检测准确率的项目。
  • 延迟稳定的应用:适用于推理时间可预测性至关重要的部署场景,例如机器人或自主系统。

何时选择 EfficientDet#

以下情况推荐使用 EfficientDet:

  • Google Cloud 和 TPU 流程:基于 TensorFlow 的系统运行在 Google Cloud TPU 基础设施上,EfficientDet 的参考实现支持 TPU 训练。
  • 复合缩放研究:侧重研究网络深度、宽度和分辨率平衡缩放效果的学术基准测试。
  • 通过 LiteRT 进行移动端部署:需要导出为 LiteRT(原名 TensorFlow Lite),以用于 Android 或嵌入式 Linux 设备的项目。

何时选择 Ultralytics (YOLO26)#

对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:

  • 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
  • 仅使用 CPU 的环境: 没有专用 GPU 加速的设备中,YOLO26n 的 CPU 推理速度最高比 YOLO11n 快 43%,优势显著。
  • 小目标检测: 在无人机航拍影像等具有挑战性的场景或物联网传感器分析中,ProgLoss 和 STAL 能提升小目标检测准确率。

现代标准:Ultralytics YOLO26 登场#

YOLOv10 引入了无 NMS 的 YOLO 检测,EfficientDet 展示了合理缩放的价值,但计算机视觉仍在不断发展。对于现在启动新项目的开发者,推荐使用 Ultralytics YOLO26。它于 2026 年 1 月发布,将这些理念整合到一个由 Ultralytics Platform 支持的生产就绪软件包中。

YOLO26 为何更胜一筹#

  1. 端到端、无需 NMS 的设计:YOLO26 将 YOLOv10 的端到端、无需 NMS 的设计作为可选的一对一检测头(nms=False),简化部署并加快推理速度。
  2. CPU 推理速度最高提升 43%:对于没有专用加速器的边缘设备,YOLO26n 在标准 CPU 上的运行速度比 YOLO11n 最多快 43%。
  3. 先进的 MuSGD 优化器:YOLO26 受大型语言模型 (LLM) 训练方法启发,采用 SGD 与 Muon 的混合优化器,实现稳定训练和快速收敛;与 EfficientDet 相比,它还能提高训练效率。
  4. ProgLoss + STAL:渐进式损失和小目标感知标签分配 (STAL) 能够提升小目标识别能力,这是早期检测器常常难以应对的领域。
  5. 移除 DFL:移除分布焦点损失可以简化模型导出到多种硬件格式的流程,包括 OpenVINO 和 CoreML。

YOLO26 还具备更强的多功能性。EfficientDet 和 YOLOv10 都是检测模型,而 YOLO26 使用同一个 Ultralytics Python 软件包,还支持实例分割、语义分割、深度估计、图像分类、姿态估计和旋转边界框。

维护完善的生态系统

YOLO11 和 YOLOv8 在 Ultralytics 生态系统中仍受到全面支持。若要获得性能、稳定性和长期支持的最佳组合,我们建议使用由官方维护的 Ultralytics 模型。

使用 Ultralytics,轻松上手#

Ultralytics 提供的维护完善的生态系统,确保了顺畅的开发者体验。只需几行代码,就能完成模型训练、验证并将模型导出为 TensorRT。

from ultralytics import YOLO

# 加载预训练的 YOLOv10 模型(或直接原生升级到 YOLO26)
model = YOLO("yolov10n.pt")

# 在自定义数据集上高效训练模型
model.train(data="coco8.yaml", epochs=50, imgsz=640)

# 运行推理并立即可视化结果
results = model("https://ultralytics.com/images/bus.jpg")
results[0].show()

# 导出以快速部署
model.export(format="engine", quantize=16)

结论#

比较 YOLOv10 和 EfficientDet 时,选择取决于你对框架的偏好和速度限制。EfficientDet 在 TensorFlow 生态系统中提供了结构化的模型缩放方法。不过,YOLOv10 凭借无 NMS 架构,能够提供更快的实时性能、更低的内存用量和更直接的部署路径。

若要兼顾性能、易用性和多任务能力,我们推荐在 Ultralytics Platform 上使用 YOLO26。它采用 YOLOv10 的无 NMS 方法,加入 MuSGD 优化器等较新的训练技术,并以开源框架形式发布,且获得了庞大全球社区的支持。

评论