1. 为什么提出了Deformable DETR?
因为DETR本身的计算量大,收敛速度慢。其次是小目标检测效果差。主要原因是Attention模块每次只关注一小部分采样点,导致需要很多轮数才能学习到真实需要关注的目标。
Deformable DETR注意力模块只关注一个query周围的少量关键采样点集,采样点的位置并非固定,而是可学习的。同时,受到deformable convolution(可变性卷积)的启发,认为Attention模块也可以关注更灵活的采样点,让每个位置不必和所有位置交互计算,只需要和部分(学习来的,重要的部分)进行交互即可,进而提出deformable attention模块。
2. 模型架构图
论文的deformable attention 模块
再看看基础的backbone:
保留尺寸小的特征图有利于检测大目标,保留尺寸大的特征图善于检测小目标。为此,Deformable DETR提取4个尺寸下的特征图(DETR仅1个尺寸),特征提取过程如下图:
3. 相比于detr,主要的改进如下:
- 多尺度 feature map(参考上图最左侧)
- Encoder部分的Muti-Head Self-Attention改为Multi-Scale Deformable Self-Attention
- Dncoder部分的Muti-Head Attention改为Multi-Scale Deformable Cross-Attention
- 让检测头prediction heads预测边界框与参考点的相对偏移量,以进一步降低优化难度。
- 目标数上限从100提升至300,在最后预测的时候会选择top-k前100进行预测。
此处借鉴:https://blog.csdn.net/qq_51352130/article/details/142690269一张图,和detr的结构进行对比一波。