EfficientDet 与 RTDETRv2:目标 detect 架构的深入比较
为计算机视觉项目选择最佳架构,需要驾驭多样化的神经网络领域。本指南将深入探讨两种截然不同方法的详细技术比较:高效可扩展的卷积神经网络(CNN)系列EfficientDet,以及最先进的实时Transformer模型RTDETRv2。我们将评估它们在结构差异、训练方法和在各种硬件环境中的部署适用性。
通过理解传统效率与现代 Transformer 能力之间的权衡,开发者可以做出明智的决策。此外,我们将探讨像新的 Ultralytics YOLO26 这样的现代替代方案如何弥合差距,提供无与伦比的速度、准确性和易用性。
EfficientDet 详解
EfficientDet 通过引入一种模型缩放的原则性方法,彻底改变了 目标 detect 领域。
- 作者: 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 的主要优势在于其参数效率。发布时,EfficientDet-D0 等模型与之前的 YOLO 版本相比,以更少的参数和 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 对于云预算有限或需要快速原型开发的开发者来说不太理想。
Transformer 内存限制
训练 RTDETRv2 等 Transformer 模型通常需要高端 GPU。如果您遇到内存不足 (OOM) 错误,请考虑在训练期间使用内存需求较低的模型,例如 Ultralytics YOLO 系列。
性能基准比较
了解原始性能指标对于模型选择至关重要。下表展示了EfficientDet和RTDETRv2在不同尺寸下的比较。
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT10 (毫秒) | 参数 (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进行移动部署:专门需要TensorFlow Lite导出用于Android或嵌入式Linux设备的项目。
何时选择 RT-DETR
RT-DETR 推荐用于:
- 基于 Transformer 的 detect 研究:探索注意力机制和 Transformer 架构,以实现无需 NMS 的端到端目标 detect 的项目。
- 精度优先且延迟灵活的场景:检测精度是首要任务,且可接受略高推理延迟的应用。
- 大目标检测:主要包含中大型目标的场景,其中Transformer的全局注意力机制具有天然优势。
何时选择 Ultralytics (YOLO26)
对于大多数新项目,Ultralytics YOLO26 提供了性能和开发者体验的最佳组合:
- 免NMS的边缘部署:需要一致的低延迟推理,且无需非极大值抑制后处理复杂性的应用。
- 纯CPU环境:在没有专用GPU加速的设备上,YOLO26高达43%的CPU推理速度提升提供了决定性优势。
- 小目标 detect:在 无人机航拍图像 或物联网传感器分析等挑战性场景中,ProgLoss 和 STAL 显著提高了微小目标的准确性。
Ultralytics 优势:YOLO26 简介
尽管EfficientDet和RTDETRv2在计算机视觉史上奠定了地位,但现代生产环境需要速度、精度和卓越开发者体验的完美平衡。最近发布的Ultralytics YOLO26综合了这些不同架构的最佳方面。
YOLO26 通过结合 Ultralytics 以其精简的生态系统而闻名,以及突破性的内部机制而脱颖而出。
为什么选择YOLO26而非竞争对手?
- 端到端免NMS设计:借鉴了RTDETRv2等Transformer模型的灵感,YOLO26原生支持端到端。它消除了NMS后处理,确保了更快、更简单的部署流程,同时避免了纯Transformer模型带来的巨大参数冗余。
- MuSGD 优化器:受大型语言模型训练创新(如月之暗面Kimi K2)的启发,YOLO26采用了SGD与Muon的混合优化器。与RTDETRv2所需的冗长训练计划相比,这带来了前所未有的训练稳定性和显著更快的收敛速度。
- 针对边缘优化:凭借高达43%的CPU推理速度提升,YOLO26专为边缘AI而设计。它在手机和智能相机等受限硬件上,轻松超越了大型Transformer模型。
- 移除DFL:移除分布焦点损失简化了模型图,促进了TensorRT和ONNX的无缝导出。
- ProgLoss + STAL: 这些先进的损失函数在小目标识别方面取得了显著改进,解决了航空影像和机器人技术中的常见瓶颈。
- 多功能性: 与主要专注于检测的RTDETRv2不同,YOLO26原生支持实例分割、姿势估计、图像分类和旋转边界框 (旋转框检测),并针对不同任务进行了改进,例如用于姿势估计的RLE和用于旋转框检测的专用角度损失。
集成生态系统
利用Ultralytics平台,您可以在云端管理数据集、训练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 生态系统的长期可靠性。无论您是运行复杂的实时 track算法还是简单的缺陷 detect,升级到 YOLO26 都能确保您的系统面向未来、高度准确且内存高效。