论文阅读:Deformable DETR: Deformable Transformers for End-to-End Object Detection
Deformable DETR: 基于稀疏空间采样的注意力机制,让DCN与Transformer一起玩! - 知乎 (zhihu.com)
【Deformable DETR 论文+源码解读】Deformable Transformers for End-to-End Object Detection_deformable detr: deformable transformers for end-t-CSDN博客
HuKai97/detr-annotations: detr官方源码中文注释版! (github.com)
Abstract
最近提出了DETR,以消除对象检测中对许多手工设计组件的需求,同时表现出良好的性能。然而,由于Transformer注意力模块在处理图像特征 map 方面的局限性,它存在收敛慢和特征空间分辨率有限的问题。为了缓解这些问题,我们提出了Deformable DETR,其注意力模块只关注参考周围的一小组关键采样点。Deformable DETR可以在训练时间减少10倍的情况下实现比DETR更好的性能(尤其是在小物体上)。对COCO基准的广泛实验证明了我们方法的有效性。代码发布于github.com/fundamentalvision/Deformable-DETR
3 Revisiting Transformers and DETR
Multi-Head Attention in Transformers Transformers(瓦斯瓦尼等人,2017)是基于机器翻译注意力机制的网络架构。给定 query 元素(例如,输出句子中的目标词)和一组 key 元素(例如,输入句子中的源词),多头注意力模块根据衡量query-key对兼容性的注意力权重自适应地聚集关键内容。为了使模型专注于来自不同表示子空间和不同位置的内容,不同注意力头的输出与可学习的权重进行线性聚合。令 q ∈ Ω q q\in \Omega_q q∈Ωq 索引具有表示特征 z q ∈ R C z_q\in \mathbb{R}^C zq∈RC 的 query 元素, k ∈ Ω k k\in \Omega_k k∈Ωk 索引具有表示特征 x k ∈ R C x_k\in \mathbb{R}^C xk∈RC 的 key 元素,其中 C C C 是特征维度, Ω q \Omega_q Ωq 和 Ω k \Omega_k Ωk 分别指定查询和关键元素的集合。然后计算多头注意力特征:
MultiHeadAttn ( z q , x ) = ∑ m = 1 M W m [ ∑ k ∈ Ω k A m q k ⋅ W m ′ x k ] \text{MultiHeadAttn}(\boldsymbol{z}_q,\boldsymbol{x})=\sum_{m=1}^M\boldsymbol{W}_m{\left[\sum_{k\in\Omega_k}A_{mqk}\cdot\boldsymbol{W}_m^{\prime}\boldsymbol{x}_k\right]} MultiHeadAttn(zq,x)=m=1∑MWm[k∈Ωk∑Amqk⋅Wm′xk]
其中 m m m 索引注意力头, W m ′ ∈ R C v × C W_m^{\prime}\in\mathbb{R}^{C_v\times C} Wm′∈RCv×C和 W m ∈ R C × C v W_m\in\mathbb{R}^{C\times C_v} Wm∈RC×Cv 具有可学习的权重(默认情况下 C v = C / M C_v = C/M Cv=C/M)。注意力权重 A m q k ∝ exp { z q T U m T V m x k C v } A_{mqk}\propto\exp\{\frac{\boldsymbol{z}_q^T\boldsymbol{U}_m^T\boldsymbol{V}_m\boldsymbol{x}_k}{\sqrt{C_v}}\} Amqk∝exp{CvzqTUmTVmxk} 被标准化为 ∑ k ∈ Ω k A m q k = 1 \sum_{k\in\Omega_k}A_{mqk} = 1 ∑k∈ΩkAmqk=1,其中 U m , V m ∈ R C v × C U_m,V_m\in\mathbb{R}^{C_v\times C} Um,Vm∈RCv×C也是可学习的权重。为了消除不同的空间位置的歧义,表示特 z q z_q zq 和 x k x_k xk 通常是元素内容和位置嵌入的级联/总和。
Transformer 有两个已知问题。一是 transformer 在融合之前需要很长的训练时间表。假设 query 和 key 元素的数量分别为 N q N_q Nq 和 N k N_k Nk。通常,通过适当的参数初始化, U m z q U_mz_q Umzq 和 V m x k V_mx_k Vmxk 遵循均值为0、方差为1的分布,这使得当 N k N_k Nk 较大时,注意力权重 A m q k ≈ 1 N k A_{mqk}\approx\frac1{N_k} Amqk≈Nk1。这将导致输入特征的渐变不明确。因此,需要较长的训练时间表,以便注意力权重可以专注于特定的key。在图像域中,key 元素通常是图像像素, N k N_k Nk 可能非常大,并且收敛是冗长的。
另一方面,多头注意力的计算和存储复杂性可能非常高,并且有大量的 query 和 key 元素。式子1的计算复杂性是 O ( N q C 2 + N k C 2 + N q N k C ) O(N_qC^2+N_kC^2+N_qN_kC) O(NqC2+NkC2+NqNkC)。在图像域中,query 和 key 元素都是像素, N q = N k ≫ C N_{q}={N}_{k}\gg C Nq=Nk≫C,复杂性由第三项主导,即 O ( N q N k C ) O(N_qN_kC) O(NqNkC)。因此,多头注意力模块随着特征地图大小而遭受二次复杂性增长的影响。
DETR DETR(Carion等人,2020)构建在Transformer编码器-解码器架构之上,结合了基于集合的匈牙利损失,通过双方匹配强制对每个 GT 边界框进行独特的预测。我们简要回顾网络架构如下。
给定CNN主干提取的输入特征地图 x ∈ R C × H × W x\in\mathbb{R}^{C\times H\times W} x∈RC×H×W(例如,ResNet(He等人,2016)),DETR利用标准的Transformer编码器-解码器架构将输入特征映射转换为一组对象查询的特征。在对象查询特征(由解码器产生)顶部添加3层前向神经网络(FFN)和线性投影作为检测头。FFN充当回归分支来预测边界框坐标 b ∈ [ 0 , 1 ] 4 b\in[0,1]^4 b∈[0,1]4,其中 b = { b x , b y , b w , b h } \boldsymbol{b}=\{b_x,b_y,b_w,b_h\} b={bx,by,bw,bh} 编码标准化框中心坐标、框高度和宽度(相对于图像大小)。线性投影作为分类分支来产生分类结果。
对于DETR中的Transformer编码器,query 和 key 元素都是特征地图中的像素。输入是ResNet特征地图(具有编码的位置嵌入)。令 $ H$ 和 W W W 分别表示特征地图的高度和宽度。自我注意力的计算复杂度为 O ( H 2 W 2 C ) O(H^2W^2C) O(H2W2C),随着空间大小的二次增长。
对于DETR中的Transformer解码器,输入包括来自编码器的特征图,以及由可学习的位置嵌入表示的 N N N 个对象查询(例如, N = 100 N = 100 N=100 )。解码器中有两种类型的注意力模块,即交叉注意力模块和自我注意力模块。在交叉注意模块中,对象查询从特征地图中提取特征。查询元素是对象查询,key 元素是编码器的输出特征图。其中, N q = N N_q = N Nq=N, N k = H × W N_k = H \times W Nk=H×W,交叉注意的复杂度为 O ( H W C 2 + N H W C ) O(HW C^2 + N HW C) O(HWC2+NHWC)。复杂性随着特征地图的空间大小而线性增长。在自我注意模块中,对象查询相互交互,以捕捉它们的关系。query和 key 元素都是对象查询。其中 N q = N k = N N_q = N_k = N Nq=Nk=N,自我注意模块的复杂度为 O ( 2 N C 2 + N 2 C ) O(2NC^2 + N^2C) O(2NC2+N2C)。对于中等数量的对象查询,复杂性是可以接受的。
DETR是一种有吸引力的目标检测设计,它消除了对许多手动设计组件的需要。然而,它也有自己的问题。这些问题主要可归因于Transformer在将图像特征图作为关键元素处理时的注意力不足:
(1)DETR在检测小目标方面的性能相对较低。现代物体探测器使用高分辨率特征图来更好地检测小物体。然而,高分辨率的特征映射会给DETR的Transformer编码器中的自我注意模块带来不可接受的复杂性,其复杂度是输入特征映射空间大小的平方。
(2)与现代目标检测器相比,DETR需要更多的训练周期才能收敛。这主要是因为处理图像特征的注意模块很难训练。例如,在初始化时,交叉注意模块对整个特征图的注意力几乎是平均的。然而,在训练结束时,注意图被学习到非常稀疏,只专注于物体的末端。看来,DETR需要很长的训练计划才能学习到注意图中的如此重大变化。
4 Method
4.1 Deformable Transformers for End-to-End Object Detection
Deformable Attention Module 将Transformer注意力应用于图像特征地图的核心问题是它将查看所有可能的空间位置。为了解决这个问题,我们提出了一个可变形的注意力模块。受可变形卷积的启发(Dai等人,2017年;朱等人,2019 b),可变形注意力模块仅关注参考点周围的一小组关键采样点,而无论特征地图的空间大小如何,如图2所示。通过为每个 query 仅分配少量固定数量的 key,可以缓解收敛和特征空间分辨率的问题。
给定输入特征地图 x ∈ R C × H × W x\in\mathbb{R}^{C\times H\times W} x∈RC×H×W,让 q q q 索引具有内容特征 z q z_q zq和2-D参考点 p q p_q pq 的查询元素,可变形注意力特征计算如下:
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}(\boldsymbol{z}_q,\boldsymbol{p}_q,\boldsymbol{x})=\sum_{m=1}^M\boldsymbol{W}_m[\sum_{k=1}^KA_{mqk}\cdot\boldsymbol{W}_m^{\prime}\boldsymbol{x}(\boldsymbol{p}_q+\Delta\boldsymbol{p}_{mqk})] DeformAttn(zq,pq,x)=m=1∑MWm[k=1∑KAmqk⋅Wm′x(pq+Δpmqk)]
其中 m m m 对注意力头进行索引, k k k 对采样的key进行索引, K K K 是总采样的 key 数( K ≪ H W K\ll HW K≪HW)。 Δ p m q k \Delta p_{mqk} Δpmqk 和 $ A_{mqk}$ 分别表示第 m m m 个注意力头中第 k k k 个采样点的采样偏差和关注权重。纯量注意力权重 A m q k A_{mqk} Amqk 位于 [ 0 , 1 ] [0,1] [0,1] 范围内,通过 ∑ k = 1 K A m q k = 1 \sum_{k=1}^KA_{mqk} = 1 ∑k=1KAmqk=1 进行标准化。 Δ p m q k ∈ R 2 \Delta\boldsymbol{p}_{mqk}\in\mathbb{R}^2 Δpmqk∈R2 是范围无约束的2-d实数。由于 p q + Δ p m q k p_q+\Delta p_{mqk} pq+Δpmqk 是小数,因此在计算 x ( p q + Δ p m q k ) {\boldsymbol{x}(\boldsymbol{p}_q+\Delta\boldsymbol{p}_{mqk})} x(pq+Δpmqk) 时应用双线性插值,如Dai等人(2017)所述。 Δ p m q k \Delta p_{mqk} Δpmqk 和 A m q k A_{mqk} Amqk 都是通过 query 特征 z q z_q zq 上的线性投影获得的。在实现中,查询特征 z q z_q zq 被提供给 3 M K 3 M K 3MK个通道的线性投影运算符,其中前 2 M K 2 MK 2MK 个通道对采样偏差 Δ p m q k \Delta p_{mqk} Δpmqk进行编码,其余 M K MK MK 个通道被提供给softmax运算符以获得关注权重 A m q k A_{mqk} Amqk。
可变形注意力模块旨在将卷积特征图作为关键元素进行处理。设 N q N_q Nq 为查询元素的数量,当 M K MK MK 相对小时,可变形注意力模块的复杂度为 O ( 2 N q C 2 + min ( H W C 2 , N q K C 2 ) ) O(2N_{q}C^{2}+\operatorname*{min}(HWC^{2},N_{q}KC^{2})) O(2NqC2+min(HWC2,NqKC2))(详情见附录A.1)。当将其应用于DETR编码器时,其中 N q = H W N_q = HW Nq=HW ,复杂度变为 O ( H W C 2 ) O(HWC^{2}) O(HWC2),其与空间大小呈线性复杂度。当它作为DETR解码器中的交叉注意模块应用时,其中 N q = N N_q = N Nq=N( N N N 是对象查询的数量),复杂性变为 O ( N K C 2 ) O(N KC^2) O(NKC2),这与空间大小 H W HW HW 无关。
Multi-scale Deformable Attention Module 大多数现代物体检测框架都受益于多尺度特征地图(Liu等人,2020年)。我们提出的可变形注意力模块可以自然扩展用于多尺度特征地图。
令 { x l } l = 1 L \{x^l\}_{l=1}^L {xl}l=1L 是输入的多尺度特征地图,其中 x l ∈ R C × H l × W l x^l\in\mathbb{R}^{C\times H_l\times W_l} xl∈RC×Hl×Wl。令 p ^ q ∈ [ 0 , 1 ] 2 \hat{p}_q\in[0,1]^2 p^q∈[0,1]2 是每个查询元素 q q q 的参考点的规范化坐标,那么多尺度可变形注意力模块应用为
M S D e f o r m A t t n ( 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 ) ] \mathrm{MSDeformAttn}(\boldsymbol{z}_q,\hat{\boldsymbol{p}}_q,\{x^l\}_{l=1}^L)=\sum_{m=1}^M\boldsymbol{W}_m[\sum_{l=1}^L\sum_{k=1}^KA_{mlqk}\cdot\boldsymbol{W}_m^{\prime}\boldsymbol{x}^l(\phi_l(\hat{\boldsymbol{p}}_q)+\Delta\boldsymbol{p}_{mlqk})] MSDeformAttn(zq,p^q,{xl}l=1L)=m=1∑MWm[l=1∑Lk=1∑KAmlqk⋅Wm′xl(ϕl(p^q)+Δpmlqk)]
其中 m m m 对注意力头进行索引, l l l 对输入特征级别进行索引, k k k 对采样点进行索引。 Δ p m l q k \Delta p_{mlqk} Δpmlqk 和 A m l q k A_{mlqk} Amlqk 分别表示第 l l l 个特征级别中第 k k k 个采样点和第 m m m 个注意力头的采样偏差和注意力权重。纯量注意力权重 A m l q k A_{mlqk} Amlqk 通过 ∑ l = 1 L ∑ k = 1 K A m l q k \sum_{l=1}^L\sum_{k=1}^KA_{mlqk} ∑l=1L∑k=1KAmlqk 进行标准化。这里,为了清晰度公式,我们使用规格化坐标 p ^ q ∈ [ 0 , 1 ] 2 \hat{\boldsymbol{p}}_q\in[0,1]^2 p^q∈[0,1]2,其中规格化坐标 ( 0 , 0 ) (0,0) (0,0) 和 ( 1 , 1 ) (1,1) (1,1) 分别指示左上角和右下角图像角。等式3中的函数 ϕ l ( p ^ q ) \phi_l(\hat{\boldsymbol{p}}_q) ϕl(p^q) 将规格化坐标 p ^ q \hat{\boldsymbol{p}}_q p^q 重新缩放到第 l l l 层的输入特征地图。多尺度可变形注意力与之前的单尺度版本非常相似,只是它从多尺度特征地图中采样 L K LK LK 点,而不是从单尺度特征地图中采样 K K K 点。
提出的注意力模块将退化为可变形卷积(Dai等人,2017),当 L = 1 L = 1 L=1, K = 1 K = 1 K=1,并且 W m ′ ∈ R C v × C \boldsymbol{W}_m^{\prime} \in \mathbb{R}^{C_v\times C} Wm′∈RCv×C 被固定为单位矩阵时。可变形卷积专为单尺度输入而设计,仅关注每个注意头的一个采样点。然而,我们的多尺度可变形注意力会从多尺度输入中查看多个采样点。提出的(多尺度)可变形注意力模块也可以被视为 Transformer注意力的有效变体,其中可变形采样位置引入预过滤机制。当采样点穿过所有可能的位置时,建议的注意力模块相当于Transformer注意力。
Deformable Transformer Encoder 我们将DETR中处理特征映射的 Transformer 注意模块替换为所提出的多尺度可变形注意模块。编码器的输入和输出都是具有相同分辨率的多尺度特征地图。在编码器中,我们从ResNet(He 等人,2016年) C 3 C_3 C3 到 C 5 C_5 C5 阶段的输出特征图(经 1 × 1 1\times 1 1×1 卷积变换)提取多尺度特征图 { x l } l = 1 L − 1 ( L = 4 ) \{\boldsymbol{x}^{l}\}_{l=1}^{L-1} (L=4) {xl}l=1L−1(L=4),其中 C l C_l Cl 的分辨率比输入图像低 2 l 2^l 2l 。最低分辨率特征图 $ x^L$ 是在最后的 C 5 C_5 C5 级上通过 3 × 3 3×3 3×3 步长 2 2 2 卷积获得的,记为 C 6 C_6 C6。所有的多比例特征地图都是 C = 256 C=256 C=256 通道。注意,FPN(Lin等人,2017a)中的自上而下结构没有使用,因为我们提出的多尺度可变形注意本身可以在多尺度特征地图之间交换信息。多比例尺要素地图的构建也在附录A.2中进行了说明。第5.2节中的实验表明,添加FPN不会提高性能。
在编码器中应用多尺度可变形注意力模块时,输出是与输入具有相同分辨率的多尺度特征地图。关键元素和查询元素都是来自多比例特征地图的像素。对于每个查询像素,参考点就是其本身。为了识别每个查询像素位于哪个特征级别,除了位置嵌入之外,我们还向特征表示添加了标度级别嵌入(表示为 e l \boldsymbol{e}_l el )。与固定编码的位置嵌入不同,尺度级嵌入 { e l } l = 1 L \{\boldsymbol{e}_l\}_{l=1}^L {el}l=1L 是随机初始化并与网络联合训练的。
Deformable Transformer Decoder 解码器中有交叉注意和自我注意模块。两种类型的注意模块的查询元素都是对象查询。在交叉注意模块中,对象查询从特征地图中提取特征,其中关键元素是编码器输出的特征地图。在自我注意模块中,客体查询相互作用,其中关键要素是客体查询。由于我们提出的可变形注意模块是为处理卷积特征映射而设计的,所以我们只将每个交叉注意模块替换为多尺度可变形注意模块,而保持自我注意模块不变。对于每个对象查询,从其对象查询嵌入的参考点 p ^ q \hat{p}_q p^q 的2-D归一化坐标经由后面跟随Sigmoid函数的可学习线性投影来预测。
由于多尺度可变形注意模块提取参考点周围的图像特征,因此我们让检测头预测边界框为相对偏移量w.r.t。该参考点进一步降低了优化的难度。参考点被用作长方体中心的初始猜测。检测头预测相对偏移量W.r.t。参照点。有关详细信息,请查看附录A.3。这样,学习到的解码者注意力将与预测的包围盒具有很强的相关性,这也加速了训练收敛。通过用DETR中的可变形注意模块替换变压器注意模块,我们建立了一种高效、快速的收敛检测系统,称为可变形DETR(见图1)。
4.2 Additional Improvements and Variants for Deformable DETR
由于其快速收敛以及计算和存储效率,可变形DETR为我们利用端到端物体检测器的各种变体开辟了可能性。由于篇幅有限,我们在这里仅介绍这些改进和变体的核心思想。实施详情见附录A.4。
迭代边界框优化。这是受到光流估计(Teed&Den,2020)中发展的迭代精化的启发。为了提高检测性能,我们建立了一种简单有效的迭代包围盒求精机制。这里,每个解码层基于来自前一层的预测来细化边界框。
两级可变形DETR。在原始的DETR中,解码器中的对象查询与当前图像无关。受两阶段目标检测器的启发,我们探索了一种变形DETR的变体,作为第一阶段,用于生成区域建议。生成的区域建议将作为对象查询送入解码器进行进一步细化,形成一个两级可变形的DETR。
在第一阶段,为了实现高召回率,多尺度特征地图中的每个像素都将作为对象查询。然而,直接将对象查询设置为像素会给解码器中的自我注意模块带来不可接受的计算和存储开销,其复杂度随着查询次数的增加而呈二次曲线增长。为了避免这个问题,我们去掉了解码器,形成了一个只有编码器的可变形DETR来生成区域方案。在该方法中,每个像素被指定为一个对象查询,该查询直接预测一个边界框。得分最高的边界框被选为区域提案。在将区域建议提交到第二阶段之前,不应用NMS。
5 Experiment
数据集。我们对COCO 2017数据集进行实验(林等人,2014年)。我们的模型在训练集上训练,并在val集和test-dev集上进行评估。
实施细节。ImageNet(邓等人,2009年)预先训练的ResNet-50(何 等人,2016年)被用作消融的主干。多比例特征地图的提取没有FPN(Lin等人,2007a)。默认情况下,为可变形关注设置 M = 8 M=8 M=8 和 K = 4 K=4 K=4 。可变形变压器编码器的参数在不同的特征级别之间共享。其他超参数设置和训练策略主要遵循DETR(Carion等人,2020),除了将损失权重为2的焦点损失(Lin等人,2007b)用于边界框分类,以及对象查询数量从100增加到300。我们还报告了具有这些修改的DETR-DC5的性能,以进行公平的比较,表示为DETR-DC5+。默认情况下,模型训练50个时期,学习速率在40个时期衰减0.1倍。在DETR(Carion等人,2020年)之后,我们使用Adam优化器(Kingma&BA,2015年)训练我们的模型,基本学习率为2×10−4,β1=0.9,β2=0.999,权重衰减为10−4。用于预测对象查询参考点和采样偏移量的线性投影的学习率乘以0.1倍。运行时间在NVIDIA Tesla V100图形处理器上进行了评估。
5.1 Comparison with DETR
如表1所示,与更快的R-CNN + FPN相比,DETR需要更多的训练时期才能收敛,并且在检测小对象时的性能较低。与DETR相比,可变形DETR以减少10倍的训练周期实现了更好的性能(尤其是在小对象上)。详细的收敛曲线如图3所示。借助迭代边界盒细化和两阶段范式,我们的方法可以进一步提高检测准确性。我们提出的可变形DETR具有与更快的R-CNN + FPN和DETR-DC 5同等的FLOP。但运行时速度比DETR-DC 5快得多(1.6倍),仅比Faster R-CNN + FPN慢25%。DETR-DC 5的速度问题主要是由于Transformer注意力中的大量内存访问造成的。我们提出的可变形注意力可以缓解这个问题,但代价是无序存储器访问。因此,它仍然比传统卷积稍微慢一些。