文章目录
D2ETR: Decoder-Only DETR with Computationally Efficient Cross-Scale Attention
Abstract
DETR是第一个完全端到端检测器,它可以预测最后一组预测而无需后处理的预测。然而,它也存在着性能低、收敛速度慢等问题。一系列的工作旨在以不同的方式解决这些问题,但由于复杂的编码器-解码器体系结构,计算成本仍然很昂贵。为了缓解这个问题,我们提出了一种解码器D2ETR。在没有编码器的情况下,解码器直接通过一种新的计算效率高的跨尺度注意模块来处理由变压器主干生成的精细融合的特征图。D2ETR在COCO基准上的评估中显示了低计算复杂度和高检测精度,优于DETR及其变体。
1 Introduction
目标检测是一种计算机视觉任务,用于预测图像中所有感兴趣的对象的类别标签和边界框位置。现代检测器[19,22,9]将这个集合预测任务视为回归和分类问题。他们使用许多手工制作的组件来优化预测集,如锚定生成、训练目标分配规则和非最大抑制(NMS)。这些组件使管道复杂化,而且探测器也不是端到端化的。
DETR [3]提出构建第一个完全端到端检测器,具有编码-解码器Transformer架构,预测一组最终的边界框和类别标签,无需任何精心设计的锚、启发式分配规则和后处理。DETR的花式设计已经受到了广泛的研究关注。然而,DETR存在训练收敛速度慢、在小对象上性能低、计算复杂度高等问题。[27,21,28,26,17,7]的一些方法旨在处理这些关键问题。为了加速训练的收敛性,人们对交叉注意力做出了许多努力。多尺度特征图也被用来提高小物体的精度。虽然上述工作已经取得了一些进展,但计算复杂度高的问题尚未得到解决。
在自然语言处理(NLP)领域,OpenAI GPT系列[18,1]采用了一种仅使用解码器的转换器,但在文本生成方面显示出令人印象深刻的能力。这意味着一个严格的编解码器是在语言建模中没有必要,这促使我们重新思考DETR架构。在DETR中,变压器解码器是进行对象查询定位的关键,而产生自注意特性的编码器只作为后续解码器的助手。为了验证它,我们通过使用无编码器训练可变形的DETR,重新检查了编码器的整体影响。我们发现编码器模块带来4.9(+11%)AP改进,但花费非常大的计算,约85(+49%)GFLOPs。编码器的计算效率如此之低,促使我们探索通过将特征提取和基于自注意的融合功能集成到单个主干中来去除变压器编码器的可能性,创建一个更简单的仅解码器检测管道。
在本文中,我们提出了仅解码检测转换器(D2ETR),该方法高性能,计算成本低,结构简单。为了引入不同位置和尺度上的特征之间的交互作用,我们的方法利用了变压器骨干的优势,提供了一个尺度内的全局接受域,加上一个新的计算高效交叉尺度注意(CECA)模块,通过注意机制进行跨尺度的稀疏特征交互。CECA通过将高级特征映射作为查询,将低层次特征作为键值对的交叉关注,捕获了有助于细粒度定位的低级视觉特征,但在直接定位在低层次特征映射上时防止了计算爆炸。有了这样的设计,解码器可以直接处理由我们的主干生成的精细融合的特征图,而不需要编码器或其他融合块来引入更多的特征交互。
CECA模块可以很容易地替换编码器,与任何类型的解码器灵活地形成端到检测器。我们将其与一个标准的多头注意解码器和一个可变形注意解码器合作,得到一个普通的D2ETR和一个可变形的D2ETR。此外,我们还引入了两个辅助损失: (i)标记标记损失,这有助于通过提高功能表达能力来提高准确性。(ii)位置感知损失,通过添加约束预测的边界框,帮助提高定位精度。
图1显示了不同尺度上的交叉注意。可变形的DETR更关注高分辨率的低尺度,这需要仔细的精细融合,因此计算效率低。我们的方法更多关注高级尺度,它们以一种从粗到细的方式聚合了来自以前所有尺度的信息。在对COCO 2017检测基准[13]的评估中,我们提出的方法在低计算复杂度下提供了具有竞争力的性能。
2 Related Work
End-to-end Object Detections. 传统的单级[12,19,22]和两级探测器[20,9,2]依赖于锚定盒或锚定中心。由于锚点的密集,通常采用基于单位交叉单元(IoU)的启发式一对多分配规则进行训练,并使用非最大抑制(NMS)来解决推理过程中的重复。与前面的检测器不同,端到端检测器通过学习解决重复的预测,消除了后处理的需要。DETR [3]首先将一个编码器-解码器变压器架构应用到CNN的主干网上,并构建一个端到端检测器。然而,DETR存在训练收敛速度慢、特征空间分辨率有限、在小物体上性能低等问题。
人们已经提出了许多变体来解决这些关键问题。ACT [27]自适应地将类似的查询元素聚集在一起。Deformable DETR [28]使用多尺度的特征映射来帮助检测小对象。它引入了可变形的注意机制,它只关注从查询元素的特征预测的一小组固定的采样点。这种修改减轻了收敛性和特征空间的问题。Conditional DETR [17]提出了一种条件交叉注意机制。从前一个解码器层的每个输出中预测一个空间嵌入,然后输入到下一个交叉注意,使内容查询定位不同的区域。 SMCA[7]进行位置约束对象回归,通过强迫共同注意响应在初始附近高来加速收敛估计的包围盒位置。YOLOS[6]认为,对象检测任务可以以纯序列对序列的方式完成。类似地,Pix2Seq[4]将对象检测视为以像素输入为条件的语言建模任务。我们提出的D2ETR专注于以最小的成本去除整个编码器,以简化管道和缓解高计算消耗。
Multi-scale Feature Fusion。在特征融合方面做了一系列的工作,证明了一个好的空间特征融合方案对于传统的目标检测是必要的,特别是在检测小目标时。FPN[11]结合了两个相邻的特征图,建立了一个自顶向下的特征金字塔。PAN[14]增加了一个额外的自底向上路径扩展。NAS-FPN[8]利用神经结构搜索找到最优的特征金字塔结构。在端到端目标检测领域,编码器通过注意机制融合特征映射,扮演着与金字塔网络相似的角色。Sun [21]用一个检测头代替解码器,并直接使用编码器的输出进行对象预测,这意味着该编码器很擅长提取上下文特征。Yao [26]对不同数量的编码器层和解码器层的影响进行了实验,并声称基于编码器-解码器架构的检测器对解码器层数更为敏感,这意味着编码器的效率较低。这些观察结果促使我们寻找一种更经济的方式来在多尺度特征地图上交换信息。我们的计算效率高的跨尺度关注允许骨干用户生成精细融合的特征图,而不需要编码器。
3 Revisiting Encoder-decoder Architecture
DETR及其变体是基于编码器-解码器变压器架构。图2a显示了一个端到端检测器的3个主要部分:主干器、编码器和解码器。主干提取输入图像的单个或多个特征图
x
∈
R
C
×
H
×
W
x∈R^{C×H×W}
x∈RC×H×W。然后,x中的像素通过变压器编码器层相互关注,该层由自注意(SA)和前馈网络(FFN)组成。标准的自注意模块[23]根据查询-键对之间的相似性计算注意权重,然后计算所有键内容的加权和。我们可以模拟该编码器为:
S
A
(
x
q
,
x
k
,
x
v
)
=
s
o
f
t
m
a
x
(
x
q
W
q
(
x
k
W
k
)
T
C
)
x
v
W
v
SA(x_q,x_k,x_v) = softmax (\frac{x_qW_q(x_kW_k)^T}{\sqrt{C}})x_vW_v
SA(xq,xk,xv)=softmax(CxqWq(xkWk)T)xvWv
F
F
N
(
x
)
=
σ
(
x
W
1
+
b
1
)
W
2
+
b
2
FFN(x)=\sigma(xW_1+b_1)W_2+b_2
FFN(x)=σ(xW1+b1)W2+b2
其中,
x
q
,
x
k
,
x
v
=
F
l
a
t
t
e
n
(
x
)
x_q,x_k,x_v = Flatten (x)
xq,xk,xv=Flatten(x)在编码器中,
F
l
a
t
t
e
n
(
⋅
)
Flatten(·)
Flatten(⋅)是沿着空间维度使x变平的操作。
σ
(
⋅
)
σ(·)
σ(⋅)是一种非线性激活。自注意特征随后被输入解码器。该解码器具有类似的结构,带有一个额外的交叉注意模块,它将
x
q
x_q
xq修改为等式(1)中的
o
q
∈
R
N
×
C
o_q∈R^{N×C}
oq∈RN×C.
o
q
o_q
oq是学习到的对象查询。
我们对编码器和解码器进行了复杂度分析。对于输入维度为
H
×
W
×
C
H×W×C
H×W×C的编码器,其复杂度可以计算为
O
(
H
2
W
2
C
+
H
W
C
2
)
O(H^2W ^2C + HWC^2)
O(H2W2C+HWC2)。与编码器相比,该解码器采用N个对象查询进行交叉注意,其复杂度为
O
(
N
H
W
C
+
N
C
2
)
O(NHWC + NC^2)
O(NHWC+NC2)。通常,相对较少的对象查询就足以对端到端方法进行本地化。虽然特征图中的元素量,其分辨率总是很大,但却远远大于n,也就是说,编码器比解码器的计算复杂度要大得多,特别是当输入特征图的大小较大时。
4 Decoder-only DETR
在本质上,编码器是尺度内和跨尺度特征交互的组合。变压器的自注意机制自然地将尺度内交互引入到单独的特征图中。它激励我们填补缺失的跨尺度交互,建立一个强大的变压器主干来生成精细融合的特性,并进一步接管低效的编码器。
为了在所有尺度的特征映射之间执行特征交互,一个简单的设计是对模型应用一个密集的连接。以
x
i
x_i
xi为原始的i-th特征图,
x
i
j
x^j_i
xij为j次融合后的第i个特征图,
H
i
H_i
Hi为第i级的 Transformer块。在第i阶段,特征映射
x
i
x_i
xi可以表示为
H
i
(
[
x
1
,
x
2
,
.
.
.
,
x
i
−
1
]
)
Hi([x_1,x_2,...,x_{i-1}])
Hi([x1,x2,...,xi−1]),其中
[
⋅
]
[·]
[⋅]表示元素的串联。将每个阶段的尺度进行线性投影,并将空间明智地连接到下一阶段,生成新的尺度,并进行进一步的跨尺度特征融合。融合函数是额外的自注意,记为
S
A
(
x
q
,
x
k
,
x
v
)
SA(x_q,x_k,x_v)
SA(xq,xk,xv),其中
x
q
=
x
k
=
x
v
=
[
x
i
i
−
1
,
x
i
i
−
2
,
.
.
.
,
x
i
]
xq = xk = xv = [x_i^{i-1},x_i^{i-2},...,x_i ]
xq=xk=xv=[xii−1,xii−2,...,xi]。骨干的最后输出是
[
x
1
S
,
x
2
S
−
1
,
.
.
.
,
x
S
1
]
[x^S_1,x^{S-1}_2 ,...,x^1_S ]
[x1S,x2S−1,...,xS1],给出最后的S特征映射作为解码器的输入。这种密集的架构是特征提取和融合的结合。但是,它与原来的编码器没有什么区别,因为低级别的尺度是高分辨率的,并参与了几乎所有的自我注意操作,导致了昂贵的计算和来自解码器的交叉注意的浪费。
4.1 D2ETR体系结构
受上一节中密集连接Transformer的启发,我们提出了一个计算效率高的交叉尺度注意(CECA),并建立了一个仅解码器的DETR(D2ETR),如图2b所示。该架构由两个主要组件组成:Transformer主干网和Transformer解码器。主干是无编码器的核心。它包含两个并行流,一个用于尺度内交互,另一个用于跨尺度交互。具有线性计算复杂度w.r.t.的变压器在目标检测中是首选的图像大小。默认情况下,我们借用金字塔视觉变压器(PVT)[24]的思想来构建我们的主干。我们将证明D2ETR可以在消融过程中配合不同的Transformer。解码器可以学习生成非重复的检测,这是使探测器端到端检测的关键。我们的D2ETR可以装备任何类型的变压器解码器,没有编码器。
密集融合的思想很有希望将特征融合集成到主干中。如上所述,主要问题是自我注意中查询元素。为了解决这个问题,我们解耦了尺度内和跨尺度的交互,并以稀疏的方式融合了特征映射。在图2b中,主干被分为四个变压器级,生成不同尺度的特征图。输出特征映射的规模逐渐缩小。所有的阶段都有一个类似的体系结构,这取决于所选的变压器的基本块。在PVT实现之后,该阶段由一个重叠的斑块嵌入和多个由空间缩减自注意和卷积前馈模块构建的多个连续的变压器层组成。所有的特性图都是其自身范围内的全局内容聚合。
平行的流动是融合阶段。融合阶段被设计用于跨尺度的特征融合。每个期望的尺度都进入一个融合阶段作为查询元素(带有红色虚线的特征映射),所有现有的融合尺度都紧密地连接到与关键元素相同的融合阶段。对关键元素采用了改进的空间缩减操作,以降低计算成本。查询尺度最终可以在之前所有的尺度的空间位置上聚集视觉特征。本文提出的CECA可表述为:
x
i
=
H
i
(
x
i
−
1
)
x_i=H_i(x_{i-1})
xi=Hi(xi−1)
x
i
∗
=
S
A
(
x
q
,
x
k
,
x
v
)
x^*_i=SA(x_q,x_k,x_v)
xi∗=SA(xq,xk,xv)
x
q
=
x
i
,
x
k
=
x
v
=
[
x
1
∗
,
x
2
∗
,
…
,
x
i
−
1
∗
,
x
i
]
x_q=x_i,x_k=x_v=[x^*_1,x^*_2,…,x^*_{i-1},x_i]
xq=xi,xk=xv=[x1∗,x2∗,…,xi−1∗,xi]
其中,
x
i
∗
x^∗_i
xi∗代表特征映射
x
i
x_i
xi的融合版本。给定最后的S特征映射作为解码器的输入,CECA的最终输出将为
[
x
1
∗
,
x
2
∗
,
…
,
x
s
∗
]
[x^∗_1,x^∗_2,…,x^∗_s]
[x1∗,x2∗,…,xs∗]。
图2c详细描述了第i个融合阶段的一层。它由三个部分组成:线性空间缩减层、多头自注意层和前馈层。
x
i
x_i
xi表示查询尺度的特征映射。
[
x
1
∗
,
x
2
∗
,
.
.
.
,
x
i
−
1
∗
]
[x^∗_1,x^∗_2,...,x^∗_{i-1}]
[x1∗,x2∗,...,xi−1∗]代表来自之前密集连接的关键尺度的特征图。为了防止查询规模在信息交换过程中丢失其自身的高级特征,我们对其进行了适当的通道号投影,并与关键规模进行了连接。为了降低计算成本,将关键元素输入线性空间约简,即自适应平均池化层,然后为每个尺度的特征图分离1×1个卷积层和范数层。在多头注意模块中,
x
i
x_i
xi作为查询,与
[
x
1
∗
,
x
2
∗
,
.
.
.
,
x
i
−
1
∗
,
x
i
]
[x^∗_1,x^∗_2,...,x^∗_{i-1},x_i]
[x1∗,x2∗,...,xi−1∗,xi]交互,作为提取上下文信息的键。我们考虑的FFN是带有附加深度卷积的前馈。与正常阶段相同,这一层重复了多次。融合阶段的详细信息见附录A.1。
给定h,w为最后一个特征图
x
S
x_S
xS在最后一阶段的高度和宽度。对于朴素密集融合,计算自注意的复杂性为
O
(
4
S
S
h
w
P
2
C
)
O(4^SShwP^2C)
O(4SShwP2C),其中P为自适应池化大小。复杂性是由S主导的,换句话说,是低级特征图的大小。我们的CECA享有强调高级特征图的成本效益高的融合。因此,复杂度降低到
O
(
S
h
w
P
2
C
)
O(ShwP^2C)
O(ShwP2C)。更多细节见附录A.2。
通过将Transformer应用于主干网,我们在单独的特征图上引入了像素的尺度内交互。通过添加额外的融合阶段,我们在多尺度特征地图上对像素引入了跨尺度交互。D2ETR结构融合了单个查询规模和紧密连接的关键元素。这样,查询元素的数量大大减少,这允许我们使用更深层次的融合阶段。同时,低尺度的细微视觉特征被保留在Transformer解码器中,这有助于改进预测,特别是对于小物体。
4.2 损失函数
我们提出的CECA主干网可以生成精细的特征,并与任何类型的解码器一起形成一个端到端检测器。普通的DETR解码器应用了标准的多头注意,并且由于计算成本高,只使用了一个特征图。可变形的DETR解码器采用可变形的注意力从多尺度特征图中提取上下文信息。为了验证这种灵活性,我们与上述两个解码器合作,分别使用单尺度和多尺度特征图构建了D2ETR和可变形的D2ETR。此外,我们引入了两个辅助损失,令牌标签损失和位置感知损失,总损失为:
L
t
o
t
a
l
=
L
c
l
s
+
L
b
b
o
x
+
L
a
w
r
+
L
t
o
k
e
n
\mathcal{L}_{total}=\mathcal{L}_{cls}+\mathcal{L}_{bbox}+\mathcal{L}_{awr}+\mathcal{L}_{token}
Ltotal=Lcls+Lbbox+Lawr+Ltoken
其中
L
c
l
s
\mathcal{L}_{cls}
Lcls为分类损失,
L
b
b
o
x
\mathcal{L}_{bbox}
Lbbox为回归损失,
L
a
w
r
\mathcal{L}_{awr}
Lawr为感知分支的丢失,
L
t
o
k
e
n
\mathcal{L}_{token}
Ltoken为标记标记的丢失。
Location-aware 预测边界框距离远离相应的目标对象往往是低质量。图3 10k检测的分类图化置信值和IoUeval,即最大值标的为同一类别的欠条。相比之下,我们发现,传统探测器([25]中的图4a)端到端探测器预示着更多的低质量定位精度高但分类得分低的边界框。为了缓解定位质量与检测不匹配我们采用IoU分支[25]和中心分支[22]。具体来说,两个新分支是在所有解码器层的顶部添加了预测预测边界框之间的IoU,以及到锚点中心的归一化距离分别到目标中心。实际上,参考点将作为锚定中心。在推理,它们与分类集成在一起得分来抑制低质量的预测。我们将意识损失术语制定为:
L
a
w
r
=
1
B
∑
i
=
1
B
(
B
C
E
(
F
F
N
(
y
i
^
)
,
I
O
U
(
b
i
,
b
i
^
)
)
+
B
C
E
(
F
F
N
(
y
i
^
)
,
I
O
U
(
b
i
,
b
i
^
)
)
\mathcal{L}_{awr}=\frac1{B}\sum^{B}_{i=1}(BCE(FFN(\hat{y_i}),IOU(b_i,\hat{b_i}))+BCE(FFN(\hat{y_i}),IOU(b_i,\hat{b_i}))
Lawr=B1i=1∑B(BCE(FFN(yi^),IOU(bi,bi^))+BCE(FFN(yi^),IOU(bi,bi^))
其中,B为边界框数,CTR为中心度测量值。
y
i
^
\hat{y_i}
yi^是对应于第i个对象查询的输出,它通过ffn,得到预测的IoU和中心度。
b
i
b_i
bi、
b
i
^
\hat{b_i}
bi^分别表示目标的边界框和预测的边界框。预测的IoU和中心度值越高,相应的边界框捕获真实目标的可能性就越高。在推理过程中,将分类分支的输出乘以两个具有加权因子的分支,以过滤低质量的结果。详见附录A.3。
Token Labeling 标记标记[10]是一种新的图像分类任务的补丁分类训练目标。我们采用令牌标记来训练我们的模型。在检测器的训练阶段,我们没有将预先训练的标记标记模型应用于下游目标检测任务,而是直接将标记标记引入到细化的特征中。具体来说,我们利用掩码注释来监督和插值它们,以与特征映射的分辨率对齐。每个像素都分配一个软标记标签,并执行多类分类。请注意,标记标记期望一个全局接受域更好地对每个图像补丁进行分类,因此它适用于视觉转换骨干。我们发现,表明在相应的局部区域内存在目标对象的位置特定监督不仅有助于视觉接地、分类,而且有助于目标检测。密集的监督鼓励视觉变压器骨干提取更多的强度特征,便于解码器的定位和分类。令牌标记的损失项可以定义为:
L
a
w
r
=
1
B
∑
i
=
1
B
∑
j
=
1
N
∑
p
,
q
F
o
c
a
l
(
F
F
N
(
x
j
[
p
,
q
]
)
,
t
j
[
p
,
q
]
)
\mathcal{L}_{awr}=\frac1{B}\sum^{B}_{i=1}\sum^{N}_{j=1}\sum_{p,q}Focal(FFN(x_j[p,q]),t_j[p,q])
Lawr=B1i=1∑Bj=1∑Np,q∑Focal(FFN(xj[p,q]),tj[p,q])
其中
x
j
[
p
,
q
]
x_j [p,q]
xj[p,q]表示主干第j个特征图位置(p,q)的特征,
t
j
t_j
tj为对应的目标软标记标签,将0-1掩码注释M插值到相同大小的
x
j
x_j
xj生成。详见附录A.4。