1.解决问题
- DETR需要比现有的目标检测器更长的训练时间来收敛。
- DETR在检测小物体方面的性能相对较低,并且无法从高分辨率特征地图中检测到小物体。
- 可变形卷积可以识别重要特征,但是无法学习重要特征之间的联系
transformer组件在处理图像特征图中的不足。在初始化时,注意模块对特征图中的所有像素施加了几乎一致的注意权重。长时间的训练周期是为了学习注意权重,以关注稀疏的有意义的位置。另一方面,transformer编码器中的注意权值计算是二次计算w.r.t.像素数。因此,处理高分辨率的特征映射具有非常高的计算和内存复杂性。
2.核心思想
Deformable DETR,它的注意模块只关注一个目标周围的一小部分关键采样点。Deformable DETR可以获得比DETR(特别是在小物体上)更好的性能,在训练时间少10×的时期。
3.实施细节
可变形注意模块无论特征图的空间大小如何,都只关注参考点周围的一小组关键采样点(reference point)。通过为每个queries只分配少量固定数量的keys,可以缓解收敛性和特征空间分辨率的问题。
对于初始化,首先初始化采样附近的n个点(默认为4),即认为附近的点的特征对该点的关系最强,但是一定是吗?不一定,那么我们可以通过网络学习,偏移到关系最强的点。但是神经网络学习到的偏移不一定是小数,怎么办呢?那么我们就可以通过周围的点进行插值得到该点的特征。
公式详解:
表示初始的采样的关键点,表示偏移量,表示特征的权重,即表示特征映射,
表示queries与keys的点乘,即注意力,其中和都是通过全连接而来。
如下图所示, 表示特征图上的原始特征,经过全连接层做特征映射,同时采样出3个采样点。同时经过全连接层可得到注意力权重(qk)
Multi-scale Deformable Attention Module.
设为输入的多尺度特征映射(特征金字塔),其中。表示尺度信息,为每个queries的参考点的归一化坐标,即因为有多个尺度,需要将绝对坐标转为相对坐标,则应用多尺度可变形注意模块为
外部的m表示多头注意力机制,L表示特征金字塔的维度,作者可能认为不同尺度同一位置的特征相似,因此,做相加操作。K表示采样的特征点
4.整体架构
对于输入图片,首先经过Multi-scale Deformable self-Attention选取特征点,并做特征映射,生成向量,对于位置编码,有两种,一种是在相对位置编码加上绝对level级别编码,另外一种是加入可学习的level编码。然后输入decoder中,对于decoder,首先初始化300个初始化向量,经过self-Attention的处理,然后与ecoder特征做注意力运算,最后做预测。
5.预测头的设置
Iterative Bounding Box Refifinement. 建立了一种简单有效的迭代边界框细化机制,以提高检测性能。在这里,每个解码器层根据上一层的预测来细化边界框。
Two-Stage Deformable DETR. 在原始的DETR中,解码器中的对象查询与当前图像无关。受两阶段目标探测器的启发,我们探索了可变形DETR的一种变体,用于生成区域建议作为第一阶段。生成的区域建议将被输入解码器作为对象查询以进一步细化,形成一个两阶段可变形的DETR。
在第一阶段,为了实现高召回率的建议,多尺度特征图中的每个像素都将作为一个对象查询。然而,直接将对象查询设置为像素会给解码器中的自注意模块带来不可接受的计算和内存成本,其复杂度随着查询的数量呈二次增长。为了避免这个问题,我们去掉了解码器,并形成了一个仅限编码器的可变形的DETR,用于区域提案的生成。在它中,每个像素被分配为一个对象查询,它直接预测一个边界框。得分最高的边界框被选为区域提案。在将区域提案提交到第二阶段之前,不应用NMS。