目标检测——【Transformer】DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION

论文链接:https://arxiv.org/abs/2010.04159

文章侧重点

  1. 改进DERT中存在两个问题:
    • 收敛速度很慢的问题,究其原因是因为object query从零学起,且当前注意力机制对特征的计算是全局式逐像素计算,耗时。
    • DERT对小目标的检测性能不佳,因为通常小目标的检出需要高分辨率的特征图,但是DERT因为性能权衡,只用单一尺度检测。
  2. Deformable DERT借鉴Deformable Convolution的稀疏采样思想,将其扩展到Transformer中,并进行多尺度的检测。相比之下,Deformable Convolution是在单一尺度下找到一个关键点,而Deformable DERT可以在多尺度下找到多个关键点。
  3. Deformable DERT认为在特征图中包含目标相关的分布稀疏,故利用稀疏采用一些目标关键点特征生成新的特征向量。

Deformable Attention Module.

在这里插入图片描述
如图为单尺度的Deformable Attention Module示意图

  • 输入是Query Feature z q z_q zq、 预测目标中心位置的 p q p_q pq,目标特征 x x x
  • 第二步:生成权重。 通过对Query Feature z q z_q zq进行线性映射,生成的特征一部分作为Sampling Offsets( Δ p m q k \Delta p_{mqk} Δpmqk),其余再通过Softmax,生成Attention Weights( A m q k A_{mqk} Amqk)。
  • 第三步:关键点特征融合。
  • 输出:关键点组成的特征向量。

单尺度的Deformable Attention Module计算公式

在这里插入图片描述
公式的各变量含义见资源

多尺度的Deformable Attention Module 计算公式

在这里插入图片描述
单尺度和多尺度的Deformable Attention Module 的区别其实就是将输入的一个特征图变成多个特征图,所以公式里的计算从一个特征图的计算扩展到多个特征图上的计算。 因为小目标的特征在高分辨率的特征图中更显著,所以多尺度的特征图当然考虑的面比较广了。

Deformable DERT 网络结构

在这里插入图片描述
上图为Deformable DERT 的检测结构。

  1. 输入:图片的多尺度特征图。 一共有四张特征图,前三张从ResNet的stage3、stage4、stage5中得出,第四张特征图由ResNet的stage5经过一个步距为2的3x3卷积得到。特征图的维度 C = 256 C=256 C=256。如下图所示
    在这里插入图片描述

  2. Deformable Transformer Encoder

    • 输入:四个多尺度特征图。
    • 对于Encoder,reference point即第一个公式的 p q p_q pq就等价于 z q z_q zq中的像素。因为输入是多个尺度的特征图,而 z q z_q zq是一个一维向量,所以引入了尺度嵌入向量 e l e_l el与特征图相加,就像position_embeding一样,是一个可学习的参数。就像尺度自适应因子一样。
    • 输出:与输入相同尺寸的四个特征图。
  3. Deformable Transformer Decoder :包含Self-Attention和Cross-Attention。在Self-Attention中,目标Query相互间交互计算相似度;在Cross-Attention中,目标Query从Encoder输出的目标特征中提取目标相关的关键点特征。

    • 因为输入是卷积得出的特征图和目标query,所以Decoder的Self-Attention沿用Transformer中的Self-Attention计算。
  4. Iterative Bounding Box Refine:论文中使用一种迭代式输出预测框的方式。实际上reference point 初始化为目标的中心点预测。所以预测头实际上是在预测reference point 的相对偏移。

    • 每一层Decoder输出的特征都会生成一个预测边界框,然后后一层对前一层的输出预测进一步refine,如下公式:
      在这里插入图片描述

两阶段Deformable DERT

文中还提出来一个Deformable DERT 的变体,即两阶段Deformable DERT

  • 第一阶段:生成许多proposals,。
  • 第二阶段:将proposal包含的图片特征直接作为目标特征。

实现细节

将多尺度特征的像素flatten作为目标Query。在实际考虑到计算量的问题后,这个两阶段Deformable DERT 实际上是一个Encoder-only Deformable DERT ,去掉了decoder。

快看代码,看完晚上可以去运动了~

猜你喜欢

转载自blog.csdn.net/qq_42312574/article/details/127701107