CVPR2024| 实时目标检测的变革:RT-DETR的突破性性能

论文:DETRs Beat YOLOs on Real-time Object Detection

单位: 百度公司

源代码: RT-DETR GitHub仓库​​​​​​


摘要

实时目标检测领域一直由基于CNN的架构主导,YOLO检测器领先。然而,端到端的基于变换器的检测器(DETRs)的引入彻底改变了这一领域,尽管它们的计算成本很高。在本文中,作者介绍了实时检测变换器(RT-DETR),这是一个突破性的模型,不仅在速度和精度方面实现了最先进的(SOTA)性能,而且消除了传统实时检测器中的非最大抑制(NMS)等后处理步骤的需要,这些步骤一直是传统实时检测器中的瓶颈。

关键技术和创新

RT-DETR模型建立在两个关键创新之上,使其与现有解决方案区别开来:

  1. 高效混合编码器: 作者提出了一个高效的混合编码器,通过解耦内部尺度交互和跨尺度融合来处理多尺度特征。这种设计显著降低了计算负担,同时保持了高性能,实现了实时目标检测。
  2. IoU感知查询选择: 为了进一步提高性能,作者引入了IoU感知查询选择。该机制通过在训练期间加入IoU约束,提供了更高质量的初始对象查询给解码器,从而实现了更准确的对象定位和检测。

实现和设计

RT-DETR模型的设计注重效率和性能。它包括一个主干网络、一个混合编码器和一个带有辅助预测头的变换器解码器。模型利用主干网络的输出特征,并通过混合编码器将它们转换为一系列图像特征。然后,IoU感知查询选择精炼了这些特征,为解码器提供了一组优化的查询。解码器迭代优化这些查询以生成边界框和置信度分数。

实验结果

RT-DETR模型经过广泛测试,并在各种指标上展示了卓越的性能:

  • RT-DETR-L: 在COCO val2017数据集上达到53.0%的平均精度(AP),在T4 GPU上的帧率为114 FPS。
  • RT-DETR-X: 达到54.8% AP,速度为74 FPS,超越了同规模的当代YOLO检测器在速度和精度方面的性能。
  • RT-DETR-R50和R101: 这些RT-DETR的扩展版本进一步提高了性能,其中RT-DETR-R50在108 FPS的速度下达到53.1% AP,RT-DETR-R101在74 FPS的速度下达到54.3% AP。

这些结果将RT-DETR定位为实时目标检测领域的新SOTA,为现有YOLO检测器提供了一个引人注目的替代方案。

优缺点

优点:

  • 实时性能: RT-DETR的高效设计允许实时目标检测,同时不牺牲精度。

  • 端到端检测: 消除了NMS和其他后处理步骤,简化了流程,并避免了与传统检测器相关的延迟。
  • 可扩展性: 模型支持通过使用不同解码器层灵活调整推理速度,便于在各种实时场景中应用。

缺点:

  • 计算复杂性: 虽然比传统的DETRs更高效,但模型仍然需要大量的计算资源,这可能限制其在资源受限的设备上部署。
  • 训练数据需求: 高质量的训练数据对于模型的最优性能至关重要,这在数据有限或未标注的场景中可能是一个挑战。

结论

RT-DETR模型代表了实时目标检测技术的一次重大飞跃。通过解决DETRs的计算挑战并消除NMS等后处理步骤的需要,它为从自动驾驶到视频监控的各种应用提供了一个简化、高性能的解决方案。随着该领域的不断发展,RT-DETR的创新方法为未来端到端目标检测的发展设定了新的标准。

### DEIM RTDETR 模型简介 DEIM RTDETR 是一种基于 DETR实时目标检测框架,其核心在于通过优化推理速度和减少显存占用来实现高效的端到端目标检测。该模型的设计结合了 Transformer 和卷积神经网络的优点,在保持高精度的同时显著提升了运行效率。 #### 配置文件解析 配置文件 `rtdetr-RFCAConv.yaml` 定义了 RTDETR 模型的核心参数,包括但不限于输入尺寸、骨干网络结构以及损失函数定义等[^1]。以下是部分重要字段及其作用: - **backbone**: 指定使用的特征提取器,默认可能为 ResNet 或其他轻量化架构。 - **neck**: 连接 backbone 和 head 的模块,通常采用 FPN 结构以增强多尺度特征融合能力。 - **head**: 负责最终预测的目标分类与回归头。 ```yaml model: backbone: resnet50 neck: fpn head: num_classes: 80 anchor_generator: scales: [4, 8, 16] ratios: [0.5, 1.0, 2.0] ``` #### 训练环境搭建 为了成功训练 DEIM RTDETR 模型,需确保以下依赖已安装并正确配置: 1. Python 版本建议 >=3.7。 2. PyTorch 及 torchvision 库版本应匹配 GPU/CPU 平台需求。 3. Ultralytics 提供的相关工具包需要克隆至本地仓库,并完成初始化设置。 示例命令如下所示: ```bash pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117 git clone https://github.com/ultralytics/yolov5.git cd yolov5 && pip install -r requirements.txt ``` #### 显存管理策略 根据描述,当 batch size 设置为 16 时,单张 NVIDIA 卡(假设为 Tesla V100 类似规格)会消耗超过 12GB 显存资源[^2]。如果遇到 OOM (Out of Memory) 错误,则可以尝试以下方法缓解压力: - 减少批量大小:降低 batch size 至更小数值(如 8 或者更低),从而减轻每轮迭代中的内存负担。 - 启用梯度累积机制:即使减小批次规模也能维持较大有效样本量级的效果。 代码片段展示如何启用 gradient accumulation 功能: ```python accumulate = max(round(64 / batch_size), 1) # 自动计算最佳积累次数 for i, data in enumerate(dataloader): optimizer.zero_grad() loss = model(data) loss.backward() if i % accumulate == 0: optimizer.step() # 更新权重仅在达到指定间隔后执行一次 ``` #### 常见错误排查指南 | 错误现象 | 解决方案 | |----------|-----------| | CUDA out-of-memory | 如上调整批处理数量或者开启混合精度训练模式 FP16 。 | | Module not found error during import | 确认所有必需库均已正确加载;重新构建虚拟环境再试一遍。 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值