Deformable DETR 论文笔记

DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION

Deformable DETR ICLR2021 oral

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

一、 Problem Statement

DETR具有收敛速度慢,小目标检测性能差的缺点。 这是因为Transformer attention模块在处理图像特征图的时候的限制。目前很多都是使用多层特征图进行检测,但是高分辨率的特征图会使得DETR的计算复杂度变得很大。

二、 Direction

作者想让attention模块只处理一个小集合,这个小集合是由在参照附近的关键采样点所组成。而且作者采用了三个方法提升DETR的性能:

  • 使用deformable attention模块
  • 使用multi-scale deformable attention模块
  • 使用iterative bounding box refinement 机制

三、 Method

先看一下整体的框架:

回顾一下DETR,首先输入的是一张图像,经过ResNet backbone之后,输出特征图,特征图与positional embeddings进行结合,输入到encoder之中。对于Decoder,输入包括encoder的输出和N 个 object queries。最后在通过FFN来进行回归和分类。对于这个pipeline,DETR在检测小目标和收敛速度上,是明显的短板。

1. Deformable Attention Module

对特征图使用Transformer attention的主要问题是,transformer会查看所有可能的空间位置 。为了解决这个问题,作者提出了deformable attetion 模块。这个模块只会关注参照点周围的关键采样点,不管特征图的大小。通过把这些固定数量的关键采样点赋给每一个query,收敛速度慢和特征图的分辨率影响计算复杂度的问题就可以消除。具体如下图所示:

给定一个特征图 x ∈ R C × H × W x \in \R^{C \times H \times W} xRC×H×W,让 q z q_z qz为query feature(个人认为是卷积核特征)和2-d的参考点 p q p_q pq,deformable attention feature计算如下:

DeformAtt ( z q , p q , x ) = ∑ m = 1 M W m [ ∑ k = 1 K A m q k ⋅ W m ′ x ( p q + Δ p m q k ) ] \text{DeformAtt}(z_q, p_q, x) = \sum_{m=1}^M W_m [\sum_{k=1}^K A_{mqk} \cdot W'_m x(p_q + \Delta p_{mqk})] DeformAtt(zq,pq,x)=m=1MWm[k=1KAmqkWmx(pq+Δpmqk)]

其中, K K K是总共采样点的个数 ( K ⋘ H W ) (K \llless HW) (KHW) Δ p m q k ∈ R 2 , A m q k \Delta p_{mqk} \in \R^2, A_{mqk} ΔpmqkR2,Amqk分别是sampling offset和 k t h k^{th} kth采样点在 m t h m^{th} mthattention head的attention weight(也就是modulation scalar)。

Δ p m q k , A m q k \Delta p_{mqk} , A_{mqk} Δpmqk,Amqk都来自于query feature z q z_q zq。输出 3 M K 3MK 3MK通道数,前两个 2 M K 2MK 2MK是sampling offsets Δ p m q k \Delta p_{mqk} Δpmqk,剩下的 M K MK MK通道输入到softmax,得到attention weights A m q k A_{mqk} Amqk

与DETR的区别就是:
N q N_q Nq,query elements的数量。如果 N q = H W N_q = HW Nq=HW,就和DETR一样,与特征图大小有关了。如果 N q = N N_q = N Nq=N N N N是object queries的数量,那么复杂度就和特征图大小 H W HW HW无关了。

2. Multi-scale Deformable Attention Module

使用backbone不同层级的特征进行检测,会对小目标检测性能有提升。作者提出了以下想法:

MSDeformAttn ( z q , p ^ q , { x l } l = 1 L ) = ∑ m = 1 M W m [ ∑ l = 1 L ∑ k = 1 K A m l q k ⋅ W m ′ x l ( ϕ l ( p ^ q ) + Δ p m l q k ) ] \text{MSDeformAttn}(z_q, \hat{p}_q, \{x^l\}_{l=1}^L) = \sum_{m=1}^M W_m [\sum_{l=1}^L \sum_{k=1}^K A_{mlqk} \cdot W'_m x^l(\phi_l(\hat{p}_q) + \Delta p_{mlqk})] MSDeformAttn(zq,p^q,{xl}l=1L)=m=1MWm[l=1Lk=1KAmlqkWmxl(ϕl(p^q)+Δpmlqk)]

其中 ϕ l ( p ^ q ) \phi_l(\hat{p}_q) ϕl(p^q)是用来re-scales输入第 l − t h l-th lth特征图的坐标系。

3. Deformable Transformer Decoder

Decoder的输入是object queries和encoder的输出。 由于多尺度可变形注意模块提取参考点周围的图像特征,因此我们让检测头预测边界框作为参考点的相对偏移量,以进一步降低优化难度。参考点用作框中心的初始猜测。探测头预测相对于参考点的相对偏移量。

比如参考点 P ^ q = ( p ^ q x , p ^ q y ) \hat{P}_q =(\hat{p}_{qx}, \hat{p}_{qy}) P^q=(p^qx,p^qy),bounding box为 b ^ q = { σ ( b q x + σ − 1 ( p ^ q x ) ) , σ ( b q y + σ − 1 ( p ^ q y ) ) , σ ( b q w ) , σ ( b q h ) } \hat{b}_q = \{\sigma(b_{qx} + \sigma^{-1} (\hat{p}_{qx})), \sigma(b_{qy} + \sigma^{-1}(\hat{p}_{qy})), \sigma(b_{qw}), \sigma(b_{qh})\} b^q={σ(bqx+σ1(p^qx)),σ(bqy+σ1(p^qy)),σ(bqw),σ(bqh)}
其中, b q { x , y , w , h } ∈ R b_{q\{x,y,w,h\}}\in \R bq{x,y,w,h}R是detection head的预测值, σ , σ − 1 \sigma, \sigma^{-1} σ,σ1分别代表sigmoid函数和inverse sigmoid函数。

4. Additional Improvement

  1. Iterative Bounding Box Refinement
  2. Two-Stage Deformable DETR

整体表现性能:

四、 Conclusion

解决了DETR收敛速度慢,对小目标检测性能较差的问题。表现SOTA。

Reference

你可能感兴趣的:(Transformer,论文笔记,计算机视觉,人工智能,目标检测)