EfficientDet 与 RTDETRv2#
为computer vision项目选择最佳架构需要在纷繁复杂的神经网络中进行权衡。本指南详细对比了两种截然不同的方法:EfficientDet(一个高度可扩展的卷积神经网络(CNN)系列)和RTDETRv2(一个最先进的实时Transformer模型)。我们评估了它们在各种硬件环境下的结构差异、训练方法以及部署适用性。
通过理解传统效率与现代Transformer功能之间的权衡,开发者可以做出明智的决策。此外,我们将探讨像全新的Ultralytics YOLO26这样的现代替代方案如何弥合这一差距,提供无与伦比的速度、准确性和易用性。
了解 EfficientDet#
EfficientDet通过引入原则性的模型缩放方法,彻底革新了object detection。
- 作者: Mingxing Tan, Ruoming Pang 和 Quoc V. Le
- 机构: Google
- 日期: 2019 年 11 月 20 日
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Google AutoML Repository
- 文档: EfficientDet Documentation
架构与核心概念#
EfficientDet 的核心在于使用 EfficientNet 作为骨干网络,并引入了双向特征金字塔网络 (BiFPN)。BiFPN 通过对不同输入特征应用可学习权重,从而学习不同特征的重要性,进而实现简便且快速的多尺度特征融合。这与复合扩展方法相结合,可以同时对骨干网络、特征网络以及检测框/类别预测网络的分辨率、深度和宽度进行统一扩展。
优势与局限性#
EfficientDet 的主要优势在于其参数效率。发布时,EfficientDet-D0 等模型与之前的 YOLO 版本相比,在参数和 FLOPs 更少的情况下实现了更高的精度。这使其在具有严格计算限制的环境中非常有吸引力。
然而,EfficientDet 在后处理过程中依赖标准的非极大值抑制 (NMS) 来过滤重叠的边界框,这可能会在实时流水线中引入延迟瓶颈。此外,虽然其训练过程有详细文档记录,但与现代工具中高度优化的开发者体验相比,微调 EfficientDet 可能显得比较繁琐。
虽然EfficientDet为可扩展网络铺平了道路,但在现代NPU上部署这些模型通常需要大量的手动优化。为了简化部署,更新的Ultralytics models提供了1键导出功能。
探索 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 Repository
- Docs: RTDETRv2 Documentation
Transformer 的进步#
RTDETRv2建立在实时检测Transformer(RT-DETR)基线之上。它利用全局注意力机制,使模型能够在没有标准卷积局限性的情况下理解复杂的场景上下文。其最重要的架构优势是原生的无NMS设计。通过直接从输入图像预测物体,它简化了推理流水线,避免了NMS后处理所需的启发式调整。
优势与不足#
RTDETRv2在重叠物体容易使传统CNN混淆的高密度环境中表现出色。它在复杂的基准datasets like COCO上具有极高的准确性。
尽管准确率很高,但Transformer模型自然需要大量的内存。其训练效率明显较低;与CNN相比,它需要多得多的轮次和更高的CUDA内存占用才能收敛。这使得RTDETRv2不太适合预算有限的云端开发者或需要快速原型的开发者。
训练像RTDETRv2这样的Transformer模型通常需要高端GPU。如果你遇到内存溢出(OOM)错误,请考虑在训练期间使用内存需求较低的模型,例如Ultralytics YOLO系列。
性能基准对比#
理解原始performance metrics对模型选择至关重要。下表展示了EfficientDet与RTDETRv2在各种尺寸下的对比。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 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 在其中具有原生优化优势。
- 复合缩放研究: 专注于研究平衡网络深度、宽度和分辨率缩放效果的学术基准测试。
- **通过TFLite进行移动端部署:**专门要求为Android或嵌入式Linux设备导出TensorFlow Lite的项目。
何时选择 RT-DETR#
推荐使用 RT-DETR 的场景为:
- 基于 Transformer 的检测研究: 探索注意力机制和 Transformer 架构以实现无 NMS 的端到端目标检测的项目。
- 高精度、延迟要求宽松的场景: 将检测精度置于首位,且可以容忍稍高推理延迟的应用。
- 大目标检测: 以中大型目标为主的场景,在这种场景下,Transformer 的全局注意力机制具有天然优势。
何时选择 Ultralytics (YOLO26)#
对于大多数新项目,Ultralytics YOLO26 提供了性能与开发者体验的最佳结合:
- 无 NMS 的边缘部署: 需要一致、低延迟推理且无需复杂非极大值抑制后处理的应用。
- 仅 CPU 环境: 没有专用 GPU 加速的设备,YOLO26 带来的高达 43% 的 CPU 推理提速可提供决定性优势。
- 小目标检测: 诸如航拍无人机图像或物联网传感器分析等具有挑战性的场景,其中 ProgLoss 和 STAL 显著提高了微小目标的准确率。
Ultralytics 的优势:隆重介绍 YOLO26#
虽然EfficientDet和RTDETRv2在计算机视觉历史上巩固了它们的地位,但现代生产环境需要速度、准确性和卓越开发者体验的完美平衡。最近发布的Ultralytics YOLO26综合了这些不同架构的最佳方面。
YOLO26脱颖而出,它将Ultralytics闻名简化的生态系统与突破性的内部机制结合在一起。
为何选择 YOLO26 而非其他竞品?#
- 端到端无 NMS 设计: 受 RTDETRv2 等 Transformer 启发,YOLO26 原生支持端到端。它消除了 NMS 后处理,保证了更快、更简单的部署流水线,且没有纯 Transformer 那种庞大的参数冗余。
- MuSGD 优化器: 受大语言模型训练创新(如 Moonshot AI 的 Kimi K2)启发,YOLO26 采用了 SGD 和 Muon 的混合体。与 RTDETRv2 所需的漫长训练计划相比,这带来了前所未有的训练稳定性和显著更快的收敛速度。
- 针对边缘优化:凭借高达快43%的CPU推理速度,YOLO26专为edge AI打造。它在手机和智能相机等受限硬件上轻松胜过笨重的Transformer模型。
- **去除DFL:**去除了分布焦点损失(Distribution Focal Loss),简化了模型图,促进了无缝的TensorRT和ONNX导出。
- ProgLoss + STAL: 这些先进的损失函数在小目标识别方面取得了显著改进,解决了航空影像和机器人技术中的常见瓶颈。
- **多功能性:**与主要关注检测的RTDETRv2不同,YOLO26原生支持instance segmentation、pose estimation、image classification以及oriented bounding boxes (OBB),并针对姿态使用RLE以及针对OBB使用专用角度损失等任务特定改进。
利用Ultralytics Platform,你可以管理数据集,在云端训练像YOLO26或YOLO11这样的模型,并通过灵活的API无缝部署它们。
利用 Ultralytics 实现代码简洁性#
维护良好的Ultralytics Python API使得模型训练和推理变得轻而易举。开发者可以用极少的样板代码轻松对模型进行基准测试或启动训练脚本。
from ultralytics import YOLO
# Load the state-of-the-art YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a test image
predictions = model.predict("image.jpg")对于管理传统基础设施的人来说,广受好评的Ultralytics YOLOv8仍然是一个稳定且强大的选择,展示了Ultralytics生态系统的长期可靠性。无论你是在运行复杂的real-time tracking算法还是简单的缺陷检测,升级到YOLO26都能确保你的系统面向未来、高度准确且内存高效。