文章目录
-
DN-DETR: Accelerate DETR Training by Introducing Query DeNoising
DN-DETR: Accelerate DETR Training by Introducing Query DeNoising
Abstract
本文提出了一种新的去噪训练方法来加速DETR(检测变压器)的训练,并提供了对类似DETR方法的慢收敛问题的深入理解。结果表明,二部图匹配的不稳定导致了早期训练阶段的优化目标不一致。为了解决这一问题,除了匈牙利损失外,我们的方法将具有噪声的地真边界盒输入变压器解码器,训练模型重建原始盒,有效地降低了二部图匹配的难度,提高了模型的收敛速度。我们的方法是通用的,通过添加几十行代码,可以很容易地插入到任何类似于detr的方法中,以实现显著的改进。结果,我们的DN-DETR在相同的设置下取得了显著的改进(+1.9AP),并在使用ResNet-50骨干的DETR类方法中取得了最好的结果(分别为AP43.4和48.6)。与相同设置下的基线相比,DN-DETR在50%的训练时期中达到了类似的性能。代码可在https://github.com/FengLi-ust/DN-DETR上找到。
1.Introduction
目标检测是计算机视觉中的一项基本任务,它旨在预测图像中目标的边界框和类别。经典的检测器[14,15]主要基于卷积神经网络,直到Carion等人[1]最近将变压器[17]引入目标检测,并提出了DETR(检测TRansformer)。
与以前的检测器相比,DETR使用可学习的queries从TRansformer编码器的输出中探测图像特征,并使用二部图匹配来执行基于集合的边界框预测。这种设计有效地消除了手工设计的锚点和非最大支持(NMS),并使目标检测可端到端优化。然而,与以前的检测器相比,DETR的训练收敛速度非常慢。为了获得良好的性能,在COCO检测数据集上通常需要500个周期的训练,而在最初的Faster-RCNN训练中则需要12个周期的训练。
[3,11,12,16,18,20]的许多工作都试图确定根本原因并缓解收敛缓慢的问题。其中一些方法是通过改进模型体系结构来解决这个问题的。例如,Sun等人的[16]将收敛缓慢的问题归因于交叉注意的低效率,并提出了一种仅限编码器的DETR。Dai等人[3]设计了一个基于roi的动态解码器,以帮助解码器关注感兴趣的区域。最近的研究提出,将每个DETR的queries与一个特定的空间位置关联起来,而不是将多个位置,以获得更有效的特征探测[11,12,18,20]。例如,Conditional DETR [12]将每个查询解耦为一个content部分和一个position部分,强制执行一个查询与特定的空间位置有明确的对应关系。可变形的DETR [20]和Anchor DETR [18]直接将2D参考点作为查询来执行交叉注意。DAB-DETR [11]将查询解释为4d锚盒,并学习逐步逐步改进它们。
尽管取得了这些进展,但很少有人关注二部图匹配部分来进行更有效的训练。在本研究中,我们发现慢收敛问题也来自于离散二部图匹配分量,这是不稳定的,特别是在训练的早期阶段,由于随机优化的性质。因此,对于同一幅图像,一个query经常与不同时期的不同对象进行匹配,这使得优化更加模糊和不恒定。
为了解决这一问题,我们提出了一种新的训练方法,通过引入一个查询去噪任务来帮助稳定训练过程中的二部图匹配。由于之前的工作已经证明可以有效地将查询解释为参考点[18,20]或包含位置信息的锚盒[11],因此我们遵循它们的观点,并使用4D锚盒作为查询。我们的解决方案是将噪声化的ground truth边界框作为噪声化的查询和可学习的锚定查询一起输入到Transformer解码器中。这两种查询都有相同的输入格式(x、y、w、h),可以同时输入Transformer解码器。对于噪声查询,我们执行一个去噪任务来重建它们对应的地面真值盒。对于其他可学习的锚点查询,我们使用与普通DETR相同的训练损失,包括二部匹配。由于噪声边界盒不需要经过二部图匹配分量,去噪任务可以看作是一项更容易的辅助任务,有助于DETR缓解不稳定的离散二部匹配,更快地学习边界盒预测。同时,由于添加的随机噪声通常较小,去噪任务也有助于降低优化难度。为了最大化这个辅助任务的潜力,我们还将每个解码器查询作为一个边界框+一个类标签嵌入,这样我们就能够同时进行框去噪和标签去噪。
总之,我们的方法是一种去噪训练方法。我们的损失函数由两个组成部分组成。一种是重建损失,另一种是匈牙利损失,这与其他类似detr的方法相同。我们的方法可以很容易地插入到任何现有的类似于detr的方法中。为了方便起见,我们使用DAB-DETR [11]来评估我们的方法,因为它们的解码器查询被显式地表示为4D锚定盒(x,y,w,h)。对于只支持二D锚点的DETR变体,如锚DETR [18],我们可以对锚点进行去噪。对于那些不支持像普通的DETR [1]那样的锚点的人,我们可以做线性转换,将4D锚点盒映射到与其他可学习查询相同的潜在空间。
据我们所知,这是第一个将去噪原理引入检测模型的工作。我们总结了我们的贡献如下:
-
我们设计了一种新的训练方法来加速DETR训练。实验结果表明,该方法不仅加速了训练的收敛速度,而且得到了更好的训练结果,在12阶段的所有检测算法中都达到了最好的结果。此外,我们的方法与我们的基线DAB-DETR相比显示出了显著的改进(+1.9 AP),并且可以很容易地集成到其他类似detr的方法中。
-
我们从一个新的角度分析了DETR的缓慢收敛性,并对DETR训练有了更深入的理解。我们设计了一个度量方法来评估二部匹配的不稳定性,并验证了我们的方法可以有效地降低不稳定性。
-
我们进行了一系列的消融研究来分析我们的模型的不同组件的有效性,如噪声、标签嵌入和注意掩模。
2. Related Work
经典的基于cnn的检测器可以分为两类,一阶段的方法和两阶段的方法。两阶段方法[6,7]首先生成一些区域建议,然后决定每个区域是否包含一个对象,并进行边界框回归,得到一个细化的框。Ren等人[15]提出了一种利用区域建议网络来预测锚定盒的端到端方法。与双阶段法相比,单阶段法[13,14]直接预测真实盒相对于锚盒的偏移量。总的来说,它们都是基于锚定的方法。
Carion等人[1]提出了一种基于Transformer[17]的端到端目标探测器,名为DETR(检测Transformer),不使用锚。虽然DETR取得了与Faster-RCNN [15]相当的结果,但它的训练严重存在慢收敛问题——它需要500个时代的训练才能获得良好的性能。
最近的许多工作都试图加速DETR的训练过程。有人发现Transformer解码器的交叉关注效率较低,并从不同的方式进行了证明。例如,Dai等人设计了一个设计了一个动态解码器,可以从粗到细的方式关注间隔区域,降低学习难度。Sun等人,[16]放弃了Transformer解码器,提出了一种仅为DETR的编码器。另一系列的工作改进了解码器查询。Zhu等人[20]设计了一个注意模块,只关注一个参考点周围的一些采样点。孟等人[12]将每个解码器查询解耦为内容部分和位置部分,在交叉注意公式中只使用内容到内容和位置到位置的术语。Yao等人[19]利用区域建议网络(RPN)提出了前k锚点。DAB-DETR [11]使用4d框坐标作为查询,并以级联的方式分层更新框。
尽管取得了所有的进展,但没有人将匈牙利损失中使用的二部图匹配视为收敛缓慢的主要原因。Sun等人[16]通过使用预先训练过的DETR作为教师,为学生模型提供ground-truth分配,并训练学生模型,分析了匈牙利损失的影响。他们发现,标签分配只在训练的早期阶段帮助收敛,但不会显著影响最终的表现。因此,他们得出结论,匈牙利的损失并不是趋同缓慢的主要原因。在这项工作中,我们给出了一个不同的分析和一个有效的解决方案,导致一个不同的结论。
我们采用DAB-DETR作为检测架构来评估我们的训练方法,其中使用附加了一个指示器的标签嵌入来代替解码器嵌入部分来支持标签去噪。我们的方法与其他方法的区别主要在于训练方法。除了匈牙利的损失,我们添加了一个去噪损失作为一个更容易的辅助任务,可以加速训练和显著提高性能。Chen等人[2]用合成噪声对象增强他们的序列,但与我们的方法完全不同。他们将噪声对象的目标设置为“噪声”类(不属于任何地面真实类),这样他们就可以延迟句子结束(EOS)令牌,提高召回率。与他们的方法相反,我们将噪声盒的目标设置为原始的盒,其动机是绕过二部图匹配,直接学习 ground truth boxes。
3. Why Denoising accelerates DETR training? 为什么去噪会加速DETR训练?
匈牙利匹配是图匹配中的一种流行的算法。给定一个代价矩阵,该算法输出一个最优匹配结果。DETR是第一个在目标检测中采用匈牙利匹配来解决预测对象与ground truth对象之间的匹配问题的算法。DETR将ground truth分配转换为一个动态过程,由于其离散的二部匹配和随机训练过程,这带来了一个不稳定性问题。有工作[5]表明,匈牙利匹配不会导致稳定的匹配,因为存在阻塞对。代价矩阵的微小变化可能会导致匹配结果的巨大变化,从而进一步导致解码器查询的优化目标不一致。
我们将类detr模型的训练过程视为两个阶段,学习“好锚框”和学习相对偏移。解码器查询负责学习锚点,如之前的工作[11,20]所示。锚点的不一致更新会使学习相对偏移量变得困难。因此,在我们的方法中,我们利用去噪任务作为训练捷径,使相对偏移学习更容易,因为去噪任务绕过了二部匹配。由于我们将每个解码器查询解释为一个4d锚盒,所以一个噪声查询可以看作是一个“好锚框”,它附近有一个相应的地面真实盒。因此,去噪训练有一个明确的优化目标——预测原始的边界框,这从本质上避免了匈牙利匹配带来的模糊性。
为了定量地评价二部匹配结果的不稳定性,我们设计了一个度量方法如下。对于一个训练图像,我们将从Transformer解码器中得到的预测对象表示为
O
i
=
O
0
i
,
O
1
i
,
.
.
.
,
O
N
−
1
i
O^i={O^i_0,O^i_1,…,O^i_{N-1}}
O
i
=
O
0
i
,
O
1
i
,
…
,
O
N
−
1
i
,在第i次迭代,其中,N为预测对象的数量,以及ground truth对象的数量
T
=
T
0
,
T
1
,
T
2
,
.
.
.
,
T
M
−
1
T={T_0,T_1,T_2,…,T_{M-1}}
T
=
T
0
,
T
1
,
T
2
,
…
,
T
M
−
1
。其中,M是ground truth对象的数量。经过二部匹配后,我们计算了一个索引向量
V
i
=
V
0
i
,
V
1
i
,
.
.
.
,
V
N
−
1
i
V^i={V^i_0,V^i_1,…,V^i_{N-1}}
V
i
=
V
0
i
,
V
1
i
,
…
,
V
N
−
1
i
存储在第i次迭代的匹配结果如下。
V
n
i
=
{
m
,
i
f
O
n
i
与
T
m
匹配
−
1
,
i
f
O
n
i
与
n
o
t
h
i
n
g
匹配
V^i_n= \begin{cases} m, if O^i_n 与T_m 匹配\\ -1, if O^i_n 与nothing匹配\\ \end{cases}
V
n
i
=
{
m
,
i
f
O
n
i
与
T
m
匹配
−
1
,
i
f
O
n
i
与
n
o
t
hin
g
匹配
我们定义了一个训练图像的迭代次数i的不稳定性,为其
V
i
V^i
V
i
和
V
i
−
1
V^{i-1}
V
i
−
1
之间的差值,计算结果为
I
S
i
=
∑
j
=
0
N
1
(
V
n
i
≠
V
n
i
−
1
)
IS^i = \sum ^{N}_{j=0}1(V^i_n \neq V^{i-1}_n )
I
S
i
=
j
=
0
∑
N
1
(
V
n
i
=
V
n
i
−
1
)
其中,1(·)为指示器函数。如果x为真,则以1为1(x)为=1,否则为0。对整个数据集的迭代次数i的不稳定性在所有图像的不稳定性数上取平均值。为了在等式中简化符号,我们省略了图像的索引(1)和等式 (2)。
图2显示了我们的DN-DETR(去噪DETR)和DAB-DETR之间的IS的比较。我们对COCO 2017验证集[10]进行了评估,该验证集平均每张图像有7.36个对象。所以最大可能的IS是7.36×2 = 14.72。图2清楚地表明,我们的方法有效地缓解了匹配的不稳定性。
4.DN-DETR
4.1. Overview
我们基于DAB-DETR [11]的架构来实现我们的训练方法。与DAB-DETR类似,我们明确地将解码器查询定义为方框坐标。我们的架构与他们的架构之间的唯一的区别在于解码器嵌入,它被指定为类标签嵌入来支持标签去噪。我们的主要贡献是如图4所示的训练方法。
与DETR类似,我们的架构包含一个Transformer编码器和一个Transformer解码器。在编码器方面,用CNN主干提取图像特征,然后将位置编码输入Transformer编码器,以获得精细的图像特征。在解码器方面,查询被输入到解码器中,通过交叉注意来搜索对象。
我们将解码器查询表示为
q
=
q
0
,
q
1
,
.
.
.
,
q
N
−
1
q = {q_0,q_1,…,q_{N-1}}
q
=
q
0
,
q
1
,
…
,
q
N
−
1
,将Transformer解码器的输出表示为
o
=
o
0
,
o
1
,
.
.
.
,
o
N
−
1
o = {o_0,o_1,…,o_{N-1}}
o
=
o
0
,
o
1
,
…
,
o
N
−
1
。我们还使用F和A来表示Transformer编码器后的细化图像特征和基于去噪任务设计的注意掩模。我们可以表述我们的方法如下。
o
=
D
(
q
,
F
∣
A
)
o=D(q,F|A)
o
=
D
(
q
,
F
∣
A
)
其中,D表示Transformer解码器。
解码器查询有两个部分。一个是匹配的部分。这部分的输入是可学习的锚点,其处理方式与DETR中的相同。即匹配部分采用二部图匹配,学习用匹配的解码器输出来近似ground truth的盒标签对。另一个是去噪部分。这部分的输入是噪声的地面真实(GT)盒标签对,在论文的其余部分被称为GT对象。去噪部分的输出旨在重建GT对象。
在下面,我们滥用符号将去噪部分表示为
q
=
q
0
、
q
1
、
.
.
.
,
q
K
−
1
q = {q_0、q_1、…,q_{K-1}}
q
=
q
0
、
q
1
、
…
,
q
K
−
1
,匹配部分表示为
Q
=
Q
0
、
Q
1
、
.
.
.
,
Q
L
−
1
Q = {Q_0、Q_1、…,Q_{L-1}}
Q
=
Q
0
、
Q
1
、
…
,
Q
L
−
1
。所以我们的方法的公式成为:
o
=
D
(
q
,
Q
,
F
∣
A
)
o=D(q,Q,F|A)
o
=
D
(
q
,
Q
,
F
∣
A
)
为了提高去噪效率,我们建议在去噪部分使用多个版本的噪声GT对象。此外,我们利用一个注意掩模来防止信息从去噪部分泄漏到匹配部分,以及在同一GT对象的不同噪声版本之间。
4.2. Intro to DAB-DETR
最近的许多工作都将DETR查询与不同的位置信息联系起来。DAB-DETR遵循这个分析,并显式地将每个查询定义为4D锚定坐标。如图3(a)所示,查询指定为一个元组
(
x
,
y
,
w
,
h
)
(x,y,w,h)
(
x
,
y
,
w
,
h
)
,其中
x
,
y
x,y
x
,
y
为中心坐标,
w
,
h
w,h
w
,
h
为每个方框对应的宽度和高度。此外,锚点坐标也被逐层动态更新。每个解码器层的输出包含一个元组
(∆
x
,∆
y
,∆
w
,∆
h
)
(∆x,∆y,∆w,∆h)
(
∆
x
,
∆
y
,
∆
w
,
∆
h
)
,锚点被更新为
(
x
+
∆
x
,
y
+
∆
y
,
w
+
∆
w
,
h
+
∆
h
)
(x +∆x,y+∆y,w+∆w,h+∆h)
(
x
+
∆
x
,
y
+
∆
y
,
w
+
∆
w
,
h
+
∆
h
)
。
请注意,我们提出的方法主要是一种训练方法,可以集成到任何类似detr的模型中。为了在DAB-DETR上进行测试,我们只添加了最小的修改:将解码器嵌入指定为标签嵌入,如图3(b).所示。
4.3. Denoising
对于每张图像,我们收集所有的GT对象,并在它们的边界框和类标签中添加随机噪声。为了最大化去噪学习的效用,我们对每个GT对象使用多个噪声版本。
我们考虑通过两种方式向盒子中添加噪声:中心移动和盒子缩放。我们将
λ
1
λ_1
λ
1
和
λ
2
λ_2
λ
2
定义为这两种噪声的噪声尺度。对于中心移动,我们添加了一个随机噪声
(∆
x
,∆
y
)
(∆x,∆y)
(
∆
x
,
∆
y
)
,并确保
∣
∆
x
∣
<
λ
1
w
2
|∆x|< \frac{λ_1w}{2}
∣∆
x
∣
<
2
λ
1
w
和
∣
∆
y
∣
<
λ
2
w
2
|∆y|< \frac{λ_2w}{2}
∣∆
y
∣
<
2
λ
2
w
,
λ
1
∈
(
0
,
1
)
λ_1∈(0,1)
λ
1
∈
(
0
,
1
)
,这样噪声盒的中心仍然在原始边界框中。对于盒子缩放,我们设置了一个超参数
λ
2
∈
(
0
,
1
)
λ_2∈(0,1)
λ
2
∈
(
0
,
1
)
。盒子的宽度和高度分别在
[
(
1
−
λ
2
)
w
,(
1
+
λ
2
)
w
]
[(1-λ_2)w,(1+λ_2)w]
[
(
1
−
λ
2
)
w
,(
1
+
λ
2
)
w
]
和
[
(
1
−
λ
2
)
h
,(
1
+
λ
2
)
h
]
[(1-λ_2)h,(1+λ_2)h]
[
(
1
−
λ
2
)
h
,(
1
+
λ
2
)
h
]
中随机采样。
对于标签噪声,我们采用标签翻转,这意味着我们随机翻转一些地面真实的标签到其他标签。标签翻转迫使模型根据噪声盒预测地面真实标签,以更好地捕获标签盒关系。我们有一个超参数的γ来控制标签与翻转的比率。重建损失为盒子的
l
1
l_1
l
1
损失和GIOU损失,以及在DAB-DETR中的类标签的焦损失[9]。我们使用一个函数
δ
(
⋅
)
δ(·)
δ
(
⋅
)
来表示有噪声的GT对象。因此,去噪部分中的每个查询都可以表示为
q
k
=
δ
(
t
m
)
q_k = δ(t_m)
q
k
=
δ
(
t
m
)
,其中
t
m
t_m
t
m
是第m个GT对象。
注意,去噪只在训练中考虑去噪,在推理过程中去掉去噪部分,只留下匹配部分。
4.4. Attention Mask
注意面具是我们的模型中一个非常重要的组成部分。在没有注意掩模的情况下,去噪训练会降低性能,而不是提高性能,如表4所示。
为了引入注意掩模,我们首先需要将有噪声的GT对象分组。每一组都是所有GT对象的一个噪声版本。去噪部分变成:
q
=
g
0
,
g
1
,
.
.
.
,
g
P
−
1
q={g_0,g_1,…,g_{P-1}}
q
=
g
0
,
g
1
,
…
,
g
P
−
1
其中,
g
p
g_p
g
p
被定义为第p个去噪组。每个去噪组包含M个查询,其中M是图像中GT对象的数量。所以,我们得到:
g
p
=
q
0
p
,
q
1
p
,
.
.
.
,
q
M
−
1
p
g_p={q^p_0,q^p_1,…,q^p_{M-1}}
g
p
=
q
0
p
,
q
1
p
,
…
,
q
M
−
1
p
q
M
−
1
p
=
δ
(
t
m
)
q^p_{M-1} = δ(t_m)
q
M
−
1
p
=
δ
(
t
m
)
。
注意掩模的目的是为了防止信息泄露。有两种类型的潜在的信息泄漏。一是匹配部分可以看到有噪声的GT对象,并可以很容易地预测GT对象。另一个问题是,GT对象的一个噪声版本可能会看到另一个版本。因此,我们的注意掩模是为了确保匹配部分看不到去噪部分,去噪组也看不见对方,如图4所示。
我们使用
A
=
[
a
i
j
]
W
×
W
A=[a_{ij}]_{W×W}
A
=
[
a
ij
]
W
×
W
来表示注意掩模,其中
W
=
P
×
M
+
N
W = P×M + N
W
=
P
×
M
+
N
。 P和M是组和GT对象的数量。N是匹配部分中的查询数。我们让第一个
P
×
M
P×M
P
×
M
行和列表示去噪部分,后者表示匹配部分。
a
i
j
=
1
a_{ij} = 1
a
ij
=
1
表示第i个查询不能看到第j个查询,否则是
a
i
j
=
0
a_{ij} = 0
a
ij
=
0
。我们设计的注意掩模如下:
a
i
j
=
{
1
,
i
f
j
<
P
×
M
a
n
d
⌊
i
m
⌋
≠
j
m
1
,
i
f
j
<
P
×
M
a
n
d
i
≥
P
×
M
0
,
o
t
h
e
r
w
i
s
e
a_ij= \begin{cases} 1, if j<P×M and \lfloor \frac{i}{m} \rfloor \neq \frac{j}{m} \\ 1, if j<P×M and i \geq P×M \\ 0, otherwise\\ \end{cases}
a
i
j
=
⎩
⎨
⎧
1
,
i
f
j
<
P
×
M
an
d
⌊
m
i
⌋
=
m
j
1
,
i
f
j
<
P
×
M
an
d
i
≥
P
×
M
0
,
o
t
h
er
w
i
se
请注意,去噪部分是否能看到匹配部分不会影响性能,因为匹配部分的查询是不包含ground truth对象信息的学习性查询。
由多个去噪组引入的额外计算可以忽略不计——当引入5个去噪组时,对于具有R50主干的DAB-DETR,训练的gflop仅从94.4增加到94.6,并且没有用于测试的计算开销。
4.5. Label Embedding
解码器嵌入在我们的模型中被指定为标签嵌入,以支持盒子去噪和标签去噪。除了COCO 2017 中的80个类外,我们还考虑了匹配部分中使用的未知类嵌入与去噪部分的语义一致。我们还在标签嵌入中添加了一个指示器。如果一个查询属于去噪部分,则该指示器为1,否则为0。
5. Experiment
5.1. Setup
数据集
:我们展示了DN-DETR在具有挑战性的COCO 2017 [10]检测任务上的有效性。根据一般做法,我们报告了不同IoU阈值和对象尺度下COCO验证数据集的标准平均平均精度(AP)结果。
实现细节
:我们测试了在DAB-DETR上的去噪训练的有效性,它由一个CNN主干、多个变压器编码器层和解码器层组成。我们还表明,去噪训练可以插入其他类似detr的模型,以提高性能。例如,我们的DN-Deformable-DETR是建立在多尺度设置中的可变形DETR之上的。
我们采用了几种在ImageNet上预训练的ResNet模型[8]作为我们的骨干,并报告了4个ResNet设置的结果: ResNet-50(R50)、ResNet-101(R101)及其16个×分辨率扩展ResNet-50-DC5(DC5-R50)和ResNet-101-DC5(DC5-R101)。对于超参数,我们采用DAB-DETR方法,使用6层变压器编码器和6层变压器解码器,并以256作为隐藏维数。我们在盒子上添加均匀的噪声,并将关于噪声的超参数设置为
λ
1
=
0.4
、
λ
2
=
0.4
和
γ
=
0.2
λ_1 = 0.4、λ_2 = 0.4和γ = 0.2
λ
1
=
0.4
、
λ
2
=
0.4
和
γ
=
0.2
。对于学习速率调度器,我们使用初始学习速率(lr)1×10‘4,在第40元对50元设置乘以0.1,在第11元对12元设置乘以0.1。我们使用重量衰减为1×10‘4的AdamW优化器,并在8个NvidiaA100gpu上训练我们的模型。批量大小设置为16。除非另有说明,我们使用5个去噪组。
我们进行了一系列的实验来演示性能的改进,如表1所示,其中我们遵循DAB-DETR的基本设置,在训练中没有任何铃声和哨子。为了比较表2和表3中12次迭代设置(所谓的1×设置)和标准50次迭代设置(在DETR类模型中使用最广泛的)的先进性能,我们遵循DAB-DETR使用锚DETR [18]中的3种模式嵌入。我们与DAB-DETR及其变体的比较都在完全相同的设置下。
DN-Deformable-DETR
:为了展示去噪训练在其他类似变形的模型中的有效性,我们还将去噪训练集成到可变形的具有10个去噪组的DETR中,作为DN-Deformable-DETR。我们遵循与可变形的DETR相同的设置,但将它的查询指定到DAB-DETR中的4D框中,以更好地使用去噪训练。
在标准的50 epoch设置中进行比较时,为了消除DN-Deformable-DETR的显式查询公式可能导致的任何误导性信息,我们还实现了一个强基线DAB-DETR进行比较。它将可去噪的DETR查询定义为锚盒,而不使用去噪训练,而所有其他设置都是相同的。请注意,我们严格遵循可变形DETR,使用不使用的多尺度(4尺度)特征,没有FPN。动态DETR [4]增加了FPN和更多的尺度(5个尺度),这可以进一步提高性能,但我们的性能仍然超过了他们的。
5.2. Denoising Training Improves Performance
为了展示与DAB-DETR和其他单尺度DETR模型相比的绝对性能改进,我们在基本的单尺度设置下对不同的骨干进行了一系列的实验。结果汇总见表1。
结果表明,我们在四种常用骨干的单一尺度模型中取得了最好的结果。例如,与在完全相同的设置下,我们的基线DABDETR相比,我们使用ResNet-50实现了+1.9 AP的绝对改进。表中还显示,去噪训练增加了可以忽略不计的参数和计算量。
5.3 1× Setting
通过去噪训练,可以大幅度地加速检测任务。如表2所示,我们将我们的方法与传统的检测器[15]和一些类detr模型[1,4,20]进行了比较。请注意, Dynamic DETR [4]采用了动态编码器,为了进行公平的比较,我们还与没有动态编码器的版本进行了比较。
在与DC5-R50主干相同的设置下,DN-DETR可以在12个epoch内通过+3.7 AP优于DAB-DETR。与其他模型相比,DN-Deformable-DETR在12个迭代设置中取得了最好的结果。值得注意的是,我们的dn-变形-detr使用ResNet-101主干在12个周期内实现了44.1 AP,超过了训练108个周期的Faster R-CNN ResNet-101(快9×)。
5.4. Compared with State-of-Art Detectors
我们还进行了实验,将我们的方法与多尺度模型进行了比较。结果汇总见表3。我们提出的DN-Deformable-DETR在ResNet-50主干上获得了最好的48.6 AP结果。为了消除将可变形DETR查询定义为锚盒的性能改进,我们进一步使用了强基线DAB-Deformable-DETR,而不进行去噪训练。结果表明,我们仍然可以得到1.7AP的绝对改进。DN-Deformable-DETR的性能提高也表明,去噪训练可以集成到其他类detr模型中,并提高其性能。虽然它与Dynamic DETR的比较不公平,因为它包括动态编码器和更多的尺度(5个尺度)与FPN,我们仍然得到+1.4 AP改进。
我们还在图5中显示了单尺度和多尺度设置下的收敛曲线,在图5(b).中,我们将多个时期的学习率降低了0.1详细的训练加速分析和训练效率见附录7.1和7.2。
5.5 Ablation Study
我们用ResNet- 50主干进行了50个epoch的消融研究,以验证每个成分的有效性,并将结果报告在表4和表5中。表4中的结果显示,去噪训练中的每个组成部分都对性能有贡献的提升。值得注意的是,如果没有注意掩码来防止信息泄漏,性能就会显著下降。
我们还分析了在我们的模型中去噪组的数量的影响,如表5所示。结果表明,添加更多的去噪组可以提高性能,但随着去噪组数量的增加,性能的改善效果很少。因此,在我们的实验中,我们的默认设置使用了5个去噪组,但更多的去噪组可以进一步提高性能和更快的收敛速度。
在图6中,我们探讨了噪声尺度的影响。我们运行了20个批大小64和ResNet-50骨干,没有学习率下降。结果表明,中心移动和盒缩放都提高了性能。但当噪音太大时,性能就会下降。
6. Conclusion
本文分析了DETR训练在不稳定bi条件中收敛速度较慢的原因。并提出了一种新的去噪训练方法来解决这一问题。在此基础上,我们提出了将去噪训练集成到DAB-DETR中的DN-DETR来测试其有效性。DN-DETR将解码器嵌入指定为标签嵌入,并对盒子和标签进行去噪训练。我们还在变形DETR中添加了变性训练,以证明其通用性。结果表明,去噪训练显著加速了收敛,提高了性能,在以ResNet-50和101和ResNet为骨干,在1x(12个epoch)设置中取得最佳效果。本研究表明,去噪训练可以作为一种通用的训练方法轻松地集成到类深度训练模型中,并且在训练收敛性和检测性能方面都有了显著的提高。
**Limitations and Future Work:**在这项工作中,添加的噪声是简单地从均匀分布中采样。我们没有探索更复杂的噪声方案,并将这些留给未来的工作。重构噪声数据在无监督学习中取得了巨大的成功。这项工作是将其应用于目标检测的第一步。在未来,我们将探索如何使用无监督学习技术对弱标记数据上的检测器进行预训练,或探索其他无监督学习方法,如对比学习。