Conditional DETR:快速收敛的目标检测方法
Conditional DETR 是一种基于 Transformer 的目标检测方法,旨在解决 DETR 模型训练收敛速度慢的问题。通过引入条件交叉注意力机制,该方法显著加快了模型的收敛速度,同时保持了较高的检测精度。
https://github.com/Atten4Vis/ConditionalDETR https://arxiv.org/abs/2108.06152
1. 背景与动机
DETR(DEtection TRansformer)是一种将 Transformer 编码器和解码器架构应用于目标检测的方法,虽然取得了良好的性能,但其训练收敛速度较慢,需要 500 个训练周期才能达到较好的效果。Conditional DETR 通过改进 DETR 的解码器交叉注意力机制,提出了条件空间查询(conditional spatial query),从而加速了模型的训练过程。
2. 方法概述
Conditional DETR 的核心在于条件交叉注意力机制。该机制通过从前一个解码器层的嵌入中学习条件空间查询,使得每个交叉注意力头能够关注到包含不同区域(如物体边缘或内部区域)的波段。这缩小了内容查询的搜索范围,降低了对内容嵌入的依赖,从而简化了训练过程。
2.1 条件空间查询的生成
条件空间查询是通过将解码器嵌入和参考点映射到同一嵌入空间中生成的。具体来说,解码器嵌入包含了物体相对于参考点的位移信息,而参考点则可以通过学习或从对象查询中预测得到。通过这种方式,条件空间查询能够准确地定位物体的关键区域。
2.2 多头交叉注意力
Conditional DETR 采用了多头交叉注意力机制,每个注意力头负责关注不同的区域。通过将空间查询和内容查询分开处理,模型能够更有效地定位物体的边界和内部区域,从而提高检测精度。
3. 实验结果
实验表明,Conditional DETR 在收敛速度上显著优于原始 DETR。对于 ResNet-50 和 ResNet-101 等主干网络,Conditional DETR 的收敛速度提高了 6.7 倍;而对于更强的主干网络(如 DC5-R50 和 DC5-R101),收敛速度提高了 10 倍。这表明 Conditional DETR 在训练效率上具有显著优势。
4. 代码与实现
Conditional DETR 的代码已经开源,可在 GitHub 上找到。此外,该模型也已集成到 Hugging Face 的 Transformers 库中,方便用户使用和扩展。
Ref
- GitHub - Atten4Vis/ConditionalDETR: This repository is an official implementation of the ICCV 2021 paper "Conditional DETR for Fast Training Convergence". (https://arxiv.org/abs/2108.06152)
- arXiv - Conditional DETR for Fast Training Convergence
- 知乎 - [ICCV 2021] Conditional DETR: 通过显式寻找物体的 extremity 区域加快 DETR 的收敛
- CSDN - 拆分 content 和 spatial 来实现对 DETR 的加速
- CSDN - ConditionalDetr论文解读+核心源码解读
- 知乎 - 基于Transformer的目标检测-Conditional DETR
- CSDN - Conditional DETR论文笔记
- Hugging Face - transformers/docs/source/en/model_doc/conditional_detr.md