Deformable DETR:Deformable Transformers for End-to-end object detection笔记

(一) 本文需要解决的问题

DETR具有slow convergence以及limited feature spatial resolution

原始的DETR模型存在的问题:

  • 训练时间长,需要500个epoch才能够收敛
  • 对小目标检测能力相对较弱
  • 在初始化时,Attention modules接近是均匀分布,需要长时间的训练才能将其转变为sparse meaningful locations
  • attention weight这边的权重计算是二次复杂度的,对于高分辨率图来说是高计算和高内存消耗的。

Deformable DETR真的是一篇神作,给后面太多的改进方法带来了思路。

(二) 本文是怎么解决这些问题的

本文的主要工作有两个,首先第一个就是将deformable attention module替换Attention模块,从而实现sparse attention。接着第二个就是multi-scale deformable attention module来实现不同尺度特征的建模。

首先是Deformable Attention Module

给定一个输入feature map

x

R

C

×

H

×

W

x \in \mathbb{R}^{C \times H \times W}

xRC×H×W,接着令

q

q

q表示带有content feature

z

q

z_q

zq,以及一个2d的reference point

p

q

p_q

pq的一个query,接着deformable attention feature能够通过一下的方式计算:

DeformAttn

(

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

)

]

\operatorname{DeformAttn}\left(\boldsymbol{z}_{q}, \boldsymbol{p}_{q}, \boldsymbol{x}\right)=\sum_{m=1}^{M} \boldsymbol{W}_{m}\left[\sum_{k=1}^{K} A_{m q k} \cdot \boldsymbol{W}_{m}^{\prime} \boldsymbol{x}\left(\boldsymbol{p}_{q}+\Delta \boldsymbol{p}_{m q k}\right)\right]

DeformAttn(zq,pq,x)=m=1MWm[k=1KAmqkWmx(pq+Δpmqk)]
其中,

m

m

m是表示multi-head的index,k表示采样的key,

K

K

K是总的key的数量

(

K

H

W

)

(K \ll H W)

(KHW),此外

Δ

p

m

q

k

\Delta p_{m q k}

Δpmqk以及

A

m

q

k

A_{m q k}

Amqk分别表示采样的offset以及在第

m

m

m个head上的第

k

k

k个采样点的attention weights,

k

=

1

K

A

m

q

k

=

1

\sum_{k=1}^{K} A_{m q k}=1

k=1KAmqk=1,

Δ

p

m

q

k

R

2

\Delta \boldsymbol{p}_{m q k} \in \mathbb{R}^{2}

ΔpmqkR2,由于特征点

p

q

\boldsymbol{p}_{q}

pq经过小数位移

Δ

p

m

q

k

\Delta \boldsymbol{p}_{m q k}

Δpmqk之后,需要在特征图上进行插值得到对应特征,即

x

(

p

q

+

Δ

p

m

q

k

)

\boldsymbol{x}\left(\boldsymbol{p}_{q}+\Delta \boldsymbol{p}_{m q k}\right)

x(pq+Δpmqk),这里的

Δ

p

m

q

k

\Delta \boldsymbol{p}_{m q k}

Δpmqk是通过query特征计算

z

q

z_q

zq​得到线性projection得到的。

这里Deformable Attention Module可以用到Encoder的self-attention以及Decoder的cross-attention中,在计算复杂度上有了改进,这个地方有时间可以仔细看看

接着是Multi-scale Deformable Attention Module

假定多尺度特征为:

{

x

l

}

l

=

1

L

\left\{x^{l}\right\}_{l=1}^{L}

{xl}l=1L,对应的特征图size为$ x^{l} \in \mathbb{R}^{C \times H_{l} \times W_{l}}

,

,

,此外,

,,\hat{\boldsymbol{p}}_{q} \in[0,1]^{2}

q

u

e

r

y

表示对于每一个query元素

queryq$​的reference point的归一化坐标。接着多尺度的deformable attention模块可以表示为

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

)

]

\operatorname{MSDeformAttn}\left(\boldsymbol{z}_{q}, \hat{\boldsymbol{p}}_{q},\left\{\boldsymbol{x}^{l}\right\}_{l=1}^{L}\right)=\sum_{m=1}^{M} \boldsymbol{W}_{m}\left[\sum_{l=1}^{L} \sum_{k=1}^{K} A_{m l q k} \cdot \boldsymbol{W}_{m}^{\prime} \boldsymbol{x}^{l}\left(\phi_{l}\left(\hat{\boldsymbol{p}}_{q}\right)+\Delta p_{m l q k}\right)\right]

MSDeformAttn(zq,p^q,{xl}l=1L)=m=1MWm[l=1Lk=1KAmlqkWmxl(ϕl(p^q)+Δpmlqk)]
其中

m

m

m表示attention head 的index,

l

l

l表示输入特征图的index,

k

k

k表示key的index,然后

Δ

p

m

l

q

k

 and 

A

m

l

q

k

\Delta \boldsymbol{p}_{m l q k} \text { and } A_{m l q k}

Δpmlqk and Amlqk分别表示第

m

m

m个attention head,第

l

l

l个feature map以及第

k

k

k个采样点的attention weights,并且有

l

=

1

L

k

=

1

K

A

m

l

q

k

=

1

\sum_{l=1}^{L} \sum_{k=1}^{K} A_{m l q k}=1

l=1Lk=1KAmlqk=1,

p

^

q

[

0

,

1

]

2

\hat{\boldsymbol{p}}_{q} \in[0,1]^{2}

p^q[0,1]2表示归一化的坐标,

ϕ

l

(

p

^

q

)

\phi_{l}\left(\hat{\boldsymbol{p}}_{q}\right)

ϕl(p^q)表示将reference point rescale到对应的特征图上,这里已经归一化的坐标了,为什么还要rescale呢,这里实际上增加了采样点的选取区间,从多个尺度的特征图上选取采样点。

L

=

1

,

K

=

1

,

 and 

W

m

R

C

v

×

C

L=1, K=1, \text { and } \boldsymbol{W}_{m}^{\prime} \in \mathbb{R}^{C_{v} \times C^{\prime}}

L=1,K=1, and WmRCv×C时,注意力模块会退化成可变形卷积,相比于可变形卷积,仅仅关注single-level的特征,这里的multi-scale deformable attention 关注多尺度,并且相比于Transformer更加高效,可以同Transformer的attention等效。

最后就是Tranformer Encoder和Decorder的设计了

  • Encorder的设计

    Encoder中使用multi-scale deformable attention module替换掉了DETR中的attention module,encoder的输入和输出都是具有相同分辨率的多尺度的特征图,将ResNet的

    C

    3

    C

    6

    C_3-C_6

    C3C6用过来,每一个多尺度特征都是256维度的,没有使用FPN。both query和key元素都是来自多尺度特征图上的pixels,对于每一个pixel,参考点是他自己。同时增加了一个scale-level embedding,记作

    e

    l

    e_l

    el​​来区分特征level

  • Decoder的设计

    cross-attention 以及 self-attention 都有,在cross-attention中,key elements 是从encoder中输出的特征。在self-attention中,这里的key elements是从object query中来的,本文提出的deformable attention module是被用来将convolutional feature map看成keys来处理的,因此仅仅替换了decorder的cross-attention部分,decorder中的2维的reference point

    p

    ^

    q

    \hat{\boldsymbol{p}}_{q}

    p^q​,是通过object querylinera projection之后再接一个sigmoid得到的。由于multi-scale deformable attention module提取的是参考点附近的feature,可以基于reference point预测一个offsets来进一步加快收敛,reference point可以看成是边界框中心点的一个预测。

一些其他的改进内容:

  • Iterative bounding box refinement,构建了一个simple并且effective iterative bounding box refinement机制来改善detection性能,利用之前的预测来调整和改善当前的预测。这块需要好好看看代码,确认是否需要针对旋转框做特殊处理

  • Two-Stage Deformable DETR,本文探索了DETR的变体,以产生region proposal作为第一阶段,生成的region proposal作为对象query输入到decorder进行进一步的refinement,形成一个两阶段的Deformable DETR。这里在第一阶段时,对应每一个特征点位置希望预测一个边界框,然而decorder承受不了这么大的计算量,这里去掉了decorder,构建了一个encorder-only的Deformable DETR用来进行Region Proposal generation,此时每一个pixel 被assigned 一个object query直接用来预测bounding box,得分最高的边界框作为候选区域,并将候选区域用于second stage。

(三) 实验结果

请添加图片描述
请添加图片描述

(四) 知识点Notes

关于解决Transformer Attention模块的时间和内存复杂性的方法:

  • use pre-defined sparse attention patterns on keys,最直接的方式就是将注意力模式集中在固定的局部窗口,但是这样失去了global information。
  • learn data-dependent sparse attention,基于locality sensitive hashing(LSH)将查询和key散列到不同的容器中
  • 探索self-attention的low-rank 特性,通过减少key的数量来实现。

目前解决难训练问题的方法主要为:

  • 使Attention变得稀疏
  • 多尺度特征
  • two stage,将region proposal提供到Transformer中,detection 任务应该更多地关注local的信息,

版权声明:本文为CSDN博主「不知道叫啥好一点」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/A_A666/article/details/121721130

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

FPN 特征金字塔 理解

Feature Pyramid Networks 对于Faster Rcnn使用FPN,cocoAP提升2.3个点,pascalAP提升3.8个点 1*1的conv,调整通道数,原论文中

非极大值抑制 (Non-Maximum Suppression, NMS)

NMS 基本过程 当前的物体检测算法为了保证召回率,对于同一个真实物体往往会有多于 1 个的候选框输出。由于多余的候选框会影响检测精度,因此需要利用 NMS 过滤掉重叠的候选框,得到最佳的预测输出