EfficientDet 与 RTDETRv2#
为计算机视觉项目选择最优架构,需要在多样化的神经网络中做出权衡。本指南将详细比较两种不同方案:高度可扩展的卷积神经网络 (CNN) 系列 EfficientDet,以及先进的实时 Transformer 模型 RTDETRv2。我们将评估它们的结构差异、训练方法,以及在各种硬件环境中的部署适用性。
了解传统高效方案与现代 Transformer 能力之间的权衡,有助于开发者做出明智决策。此外,我们还将探讨全新 Ultralytics YOLO26等现代替代方案如何弥合差距,带来无与伦比的速度、准确率和易用性。
了解 EfficientDet#
EfficientDet 通过引入有原则的模型缩放方法,革新了目标检测。
- 作者: Mingxing Tan、Ruoming Pang 和 Quoc V. Le
- 组织:Google
- 日期: 2019 年 11 月 20 日
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Google AutoML 代码库
- 文档: EfficientDet 文档
架构与核心概念#
EfficientDet 的核心是使用 EfficientNet 作为骨干网络,并引入双向特征金字塔网络 (BiFPN)。BiFPN 通过应用可学习权重来学习不同输入特征的重要性,从而轻松、快速地融合多尺度特征。此外,它还结合了一种复合缩放方法,同时统一缩放骨干网络、特征网络和边界框/类别预测网络的分辨率、深度和宽度。
优势与局限#
EfficientDet 的主要优势在于参数效率。在发布时,与此前的 YOLO 版本相比,EfficientDet-D0 等模型用更少的参数和 FLOPs 实现了更高准确率,因此对计算资源严格受限的环境极具吸引力。
不过,EfficientDet 在后处理时依赖标准非极大值抑制 (NMS)来筛除重叠边界框,这可能会在实时流水线中造成延迟瓶颈。此外,尽管训练流程有完善的文档说明,但与现代工具高度优化的开发者体验相比,微调 EfficientDet 可能更加繁琐。
EfficientDet 为可扩展网络铺平了道路,但在现代 NPU 上部署这些模型通常需要大量手动优化。为了简化部署,较新的 Ultralytics 模型提供了一键导出功能。
探索 RTDETRv2#
RTDETRv2 代表了基于 Transformer 的架构的演进,打破了传统基于锚框的 CNN 范式。
- 作者: Wenyu Lv、Yian Zhao、Qinyao Chang、Kui Huang、Guanzhong Wang 和 Yi Liu
- 组织: 百度
- 日期: 2024-07-24
- Arxiv: https://arxiv.org/abs/2407.17140
- GitHub:RT-DETR 仓库
- 文档: RTDETRv2 文档
Transformer 技术的进步#
RTDETRv2基于实时检测 Transformer (RT-DETR)基线模型构建。它利用全局注意力机制,使模型能够理解复杂的场景上下文,不受标准卷积局部感受野的限制。其最显著的架构优势是原生无 NMS 设计。通过直接从输入图像预测目标,它简化了推理流水线,避免了 NMS 后处理所需的启发式调优。
优势与劣势#
RTDETRv2 在目标重叠、容易混淆传统 CNN 的高密度场景中表现出色。在复杂基准数据集(例如 COCO)上,它具有很高的准确率。
尽管准确率很高,Transformer 模型通常需要大量内存。它的训练效率明显较低;与 CNN 相比,模型收敛需要更多轮次和更大的 CUDA内存占用。因此,对于云预算有限或需要快速原型开发的开发者来说,RTDETRv2 不太理想。
训练 RTDETRv2 等 Transformer 模型通常需要高端 GPU。如果遇到内存不足 (OOM) 错误,可以考虑使用训练时内存需求较低的模型,例如 Ultralytics YOLO系列。
性能基准对比#
了解原始性能指标对于模型选择至关重要。下表展示了不同尺寸的 EfficientDet 与 RTDETRv2 的对比。
| 模型 | 尺寸 (像素) | mAP验证集 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
用例与建议#
选择 EfficientDet 还是 RT-DETR,取决于你的具体项目需求、部署限制和生态系统偏好。
何时选择 EfficientDet#
以下情况适合选择 EfficientDet:
- Google Cloud 和 TPU 流水线:与 Google Cloud Vision API 或 TPU 基础设施深度集成,且 EfficientDet 能进行原生优化的系统。
- 复合缩放研究:侧重研究网络深度、宽度和分辨率平衡缩放效果的学术基准测试。
- 通过 LiteRT 进行移动端部署:需要导出为 LiteRT(原名 TensorFlow Lite),以用于 Android 或嵌入式 Linux 设备的项目。
何时选择 RT-DETR#
以下情况推荐使用 RT-DETR:
- 基于 Transformer 的检测研究:探索注意力机制和 Transformer 架构,以实现无需 NMS 的端到端目标检测。
- 对延迟要求灵活的高精度场景:检测准确率至关重要,且可以接受略高推理延迟的应用。
- 大型目标检测:场景中的目标以中大型为主,此时 Transformer 的全局注意力机制能够发挥天然优势。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26在性能与开发体验之间实现了最佳平衡:
- 无 NMS 的边缘部署:适用于要求推理延迟稳定且较低,同时不希望增加非极大值抑制后处理复杂度的应用。
- 仅使用 CPU 的环境:适用于没有专用 GPU 加速的设备,此时 YOLO26 的 CPU 推理速度最高提升 43%,可带来显著优势。
- 小目标检测:适用于无人机航拍影像等具有挑战性的场景,或 IoT 传感器分析等需要 ProgLoss 和 STAL 大幅提升微小目标准确率的场景。
Ultralytics 的优势:认识 YOLO26#
EfficientDet 和 RTDETRv2 在计算机视觉历史上占有重要地位,但现代生产环境要求在速度、准确率和卓越的开发者体验之间实现完美平衡。近期发布的 Ultralytics YOLO26融合了这些不同架构的优势。
YOLO26 的突出之处在于,它将 Ultralytics广为人知的精简生态系统与突破性的内部机制相结合。
为什么选择 YOLO26 而非其他方案?#
- 端到端无 NMS 设计: 受 RTDETRv2 等 Transformer 模型启发,YOLO26 提供可选的端到端检测头 (
nms=False),无需进行 NMS 后处理,在避免纯 Transformer 模型庞大参数开销的同时,确保部署流水线更快、更简单。 - MuSGD 优化器: YOLO26 借鉴大型语言模型训练创新(例如 Moonshot AI 的 Kimi K2),采用 SGD 与 Muon 的混合方案。与 RTDETRv2 所需的漫长训练计划相比,这带来了前所未有的训练稳定性和显著更快的收敛速度。
- 针对边缘设备优化: YOLO26 的 CPU 推理速度最高可提升 43%,专为边缘 AI打造。在手机和智能摄像头等资源受限的硬件上,它的表现轻松超越大型 Transformer 模型。
- 移除 DFL: 移除分布式焦点损失简化了模型图,便于顺畅导出到 TensorRT 和 ONNX。
- ProgLoss + STAL: 这些先进的损失函数显著提升了小目标识别能力,解决了航空影像和机器人领域常见的瓶颈问题。
- 多功能性: RTDETRv2 主要专注于检测,而 YOLO26 原生支持实例分割、图像分类、姿态估计和有向边界框 (OBB),并针对具体任务进行了改进,例如用于姿态估计的 RLE 和用于 OBB 的专用角度损失。
借助 Ultralytics Platform,你可以管理数据集,在云端训练 YOLO26 或 YOLO11 等模型,并通过灵活的 API 顺畅部署模型。
使用 Ultralytics 简化代码#
维护良好的 Ultralytics Python API 让模型训练和推理变得轻而易举。开发者只需编写极少的样板代码,就能轻松对模型进行基准测试或启动训练脚本。
from ultralytics import YOLO
# 加载当前最先进的 YOLO26 模型
model = YOLO("yolo26n.pt")
# 在你的自定义数据集上训练模型
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# 对测试图像运行推理
predictions = model.predict("image.jpg")对于维护旧版基础设施的用户,广受好评的 Ultralytics YOLOv8 仍然是稳定且强大的选择,展现了 Ultralytics 生态系统的长期可靠性。无论你运行的是复杂的实时跟踪算法,还是简单的缺陷检测,升级到 YOLO26 都能让系统面向未来、更精准且更节省内存。