参考:
Deformable DETR学习笔记_WaitPX的博客-CSDN博客_deformable detr
基于Transformer的ViT、DETR、Deformable DETR原理详解 - Jerry_Jin - 博客园
背景:
DERT存在的问题:
(1)训练时间长,收敛速度慢
(2)在小物体上的表现较差:其他的检测器通过高分辨率特征图去提取小物体,但高分辨率特征图会导致transformer不可接受的计算复杂度
以上归因于transformer在处理图像问题上的不方便,细分析有以下两点:
(1)self-attention在初始化的时候分配特征图中所有的像素点相同的权重,这就需要很长时间的训练才能将注意力学会集中在稀疏的空间位置上。
(2)encoder中的注意力权重计算与像素个数的是二次方成正比,会增加高分辨率物体计算的复杂度和时间
deformable convolution可以避免上述的问题,更多的集中在稀疏的空间位置上。但是其缺少元素之间的关系建模,但这个是transformer的成功点。所以可以把两者结合起来。
Method:
融合了deformable convolution的稀疏空间采样和transformer的相互关系建模能力。
Transformer:
Deformable DETR
m为多头注意力的头数
为可学习,由z_q经过全联接层linear得到
为注意力权重,由z_q经过全联接层linear+softmax层得到
为每个q在每个头部中采样K个位置,只需和这些位置的特征交互
是基于采样点位置插值出来的value
与self-attention对比:
sa是全局特征作为key值, da是在每个query附近自主学习K个key值
sa中的权重是key和queries对的关系刻画,比如内积等,da是由线性层获得。
与deformable conv对比:
位置选择不同,deformable cnn是在正常的cnn kernel点上分别预测偏移量,而deformAttn则是在当前一个点上直接预测多个偏移量。
Multi-scale Deformable Attention Module:多层次