该论文已被CVPR2022接收,作者团队由香港科技大学、IDEA、清华大学组成。但论文源码暂未公开,只提供了一个Github主页。
Abstract
我们在这篇论文中提出了一种全新的降噪训练方法来加速DETR方法的训练,并对DETR方法收敛慢的问题给出了深刻的理解。DETR方法收敛慢是由于二分图匹配不稳定的问题会导致在训练早期阶段优化目标不一致。为了解决这个问题,除Hungarian loss意外,我们还额外给Transformer decoder送入带有噪声的真值框,并训练模型预测其原来的真值框,通过这种方式能够有效降低二分图匹配难度并获得更快的收敛速度。我们方法是通用的,可以很容易地应用到各种DETR类方法,只需要加几十行代码就能带来显著的速度提升。与相同配置下的基线相比,DN-DETR只需要50%的训练epoch就能达到相同的性能。
1. Introduction
目标检测是计算机视觉中的一项基础任务,目标是在图像中预测目标的类别和包络框。虽然取得了显著的进展,经典的检测器主要还是基于卷积神经网络,直到Carion等人提出DETR方法将Transformers引入目标检测任务。
和先前的检测器相反,DETR使用可学习的query
从Transformer编码器输出中提取特征,并使用二分图匹配来进行基于集合的包络框预测。这种设计可以有效规避人工设计锚点以及NMS步骤,使得目标检测能够进行端到端的优化。然后,和之前的检测器相比,DETR的训练收敛速度过于缓慢了。为了在COCO检测数据集上得到好的性能,通常需要500个训练epoch,而Faster-RCNN只需要12个epoch。
许多工作都试图找出根本原因并缓解收敛过慢的问题。其中有些工作提出通过优化模型结构来解决。比如Sun等人将收敛慢的问题归因于交叉注意力的低效,并提出一个只有编码器的DETR方法。Dai等人设计了一种基于ROI的动态解码器,帮助解码器聚焦于感兴趣的区域。较新的工作则提出将每个DETR的query
和一个特定的空间位置关联,而不是多个位置,从而实现更有效的特征提取。例如,Conditional DETR将每个query
解耦成一个内容部分和位置部分,使得每个query
和某个特定的空间位置都有明确的关联。Deformable DETR和Anchor DETR直接将2D参考点视为query
来进行交叉注意力。DAB-DETR将query
解释成4D的锚点框,并逐层渐进地进行学习。
尽管取得了这些进展,但很少有工作为了更有效的训练关注二分图匹配部分。本文中,我们发现收敛慢的问题同样和离散的二分图匹配组件有关,鉴于随机优化的特性,二分图匹配是不稳定的,尤其是在训练早期阶段。因此,对于同一张图像,一个query
经常会在不同时期匹配到不同的目标,使得优化变得不明确且不稳定。
为了解决这个问题,我们提出了一种全新的训练方法,通过引入query
去噪任务来帮助稳定训练过程中的二分图匹配。先前的工作已经证明将query
解释成包含位置信息的参考点或锚点框是有效的,所以我们沿用他们的观点,使用4D锚点框作为query
。我们的解决方案是将带有噪声的真值包络框视为噪声query
,和可学习的锚点query
一起送入Transformer解码器。两类query
具有相同的输入格式
(
x
,
y
,
w
,
h
)
(x,y,w,h)
(x,y,w,h),可以同时送入Transformer解码器。对于带有噪声的query
,我们执行去噪任务,预测加入噪声之前的原始真值框。对于其他可学习的锚点框,我们使用相同的训练loss,包含普通DETR的二分图匹配loss。由于带有噪声的包络框不需要经过二分图匹配组件,去噪任务可以视为一个更简单的辅助任务,可以帮助DETR减轻不稳定的二分图匹配以及更快地学习边界框预测。与此同时,由于添加的随机噪声通常很小,去噪任务同样可以帮助降低优化难度。为了最大化该辅助任务的潜力,我们将每个解码器query
视为“边界框 + 类别标签”的嵌入,从而我们能够同时对边界框和类别进行去噪。
总的来说,我们的方法是一种去噪训练方法。我们的损失函数包含两部分,一部分是重构loss,另一部分是和其他DETR方法相同的Hungarian loss。我们的方法可以简单地插入到任何已有的DETR类方法中。方便起见,我们利用DAB-DETR来验证我们的方法,因为它们的解码器query
是明确的4D锚点格式
(
x
,
y
,
w
,
h
)
(x,y,w,h)
(x,y,w,h)。对于只支持2D锚点的DETR变体,比如Anchor DETR,我们可以直接在锚点上做去噪。对于那些不支持锚点的方法,比如原始的DETR,我们可以增加一个线性变换将4D锚点框映射到和其他可学习query
相同的潜在空间。
据我们所知,DN-DETR是首次将去噪的概念引入到检测模型中的工作。我们的贡献总结如下:
- 我们设计了一种全新的训练方法来加速DETR的训练。实验结果表明,我们的方法不仅加速了训练收敛,而且获得了更好的训练结果——在12个训练epoch的配置下,在所有检测方法中获得了最好的结果。而且,我们的方法比基线DAB-DETR获得了显著的性能提升(+1.9AP),并且可以很容易的集成到其他DETR类方法中。
- 我们从一个全新的角度分析了DETR训练收敛慢的问题,并且给出了更深刻的理解。我们设计了一种指标来评估二分匹配的不稳定性,并验证了我们的方法能够有效降低不稳定性。
- 我们进行了一系列消融实验来分析我们模型中不同组件的有效性,比如噪声、标签嵌入以及注意力掩模。
2. Related Work
经典的基于CNN的检测器可以分为2类:一阶段方法和二阶段方法。二阶段方法首先生成一些区域提议,然后决定每个区域是否包含目标并进行边界框回归。Ren等人提出一种端到端的方法,利用RPN预测锚点框。与二阶段方法相反,一阶段方法直接目标框相对预测锚点框的偏移量。总的来说,他们都是基于锚点的方法。
Carion等人提出一种基于Transformer的端到端目标检测器,名为DETR,不使用锚点。尽管DETR相比Faster-RCNN获得了相当的性能提升,但是它的训练收敛非常慢——为了达到一个好的性能需要500个epoch。
近期许多工作对加速DETR的训练过程进行了尝试。有些工作发现DETR中Transformer解码器的交叉注意力效率低下,并从不同角度对其进行了改良。比如,Dai等人设计了一种动态解码器,能够以由粗到精的方式聚焦于ROI,降低了训练难度。Sun等人舍弃了Transformer的解码器,提出了一种只有编码器的DETR。另一些工作则对解码器的query
进行了改良。Zhu等人设计了一种注意力模块,只关注参考点附近的采样点。Meng等人将每个解码器query
解耦成内容部分和位置部分,对内容和位置分别进行交叉注意力计算。Yao等人利用RPN提议K个锚点。DAB-DETR使用4D向量作为query
并用级联的方式逐层更新边界框。
尽管取得了上述进展,没有任何工作将Hungarian loss中用到的二分图匹配视为收敛慢的主要原因。Sun等人分析Hungarian loss的时候,使用预训练的DETR作为教师网络提供真值标签给学生模型,然后训练学生模型。他们发现这种方式仅能在早期训练阶段帮助模型收敛,并且对于最终性能没有明显帮助。因此他们推论Hungarian loss不是收敛慢的主要原因。本文中,我们给出了不同的分析,提出了一种有效的解决方案,并推导出了不同的结论。
我们使用DAB-DETR作为检测架构来评估我们的训练方法,为了支持标签去噪,用依附了指示标记的标签嵌入来替换解码器嵌入部分。我们和其他方法的不同之处主要在于训练方法。除Hungarian loss意外,我们增加了一个去噪loss作为一个更容易的辅助任务来加速训练和提升性能。Chen等人用合成的造成目标增强他们的序列,但是和我们的方法完全不同。他们将噪声目标划分到“噪声”类别(不属于任何真值类别),所以他们能够提升召回率。和他们的方法相反,我们将噪声框视为原始的框,这么做的动机是绕开二分图匹配直接学习到真值框的近似。
3. Why Denoising accelerates DETR training?
匈牙利匹配是一种流行的图匹配算法。给定一个代价矩阵,算法输出最优的匹配结果。DETR是第一个将匈牙利匹配用于目标检测任务中预测框和真值框匹配的算法。DETR将真值分配转化为一个动态过程,但由于离散的二分图匹配以及随机的训练过程带来了不稳定的问题。有工作表明匈牙利匹配由于blocking pairs的存在,会导致不稳定的匹配结果。代价矩阵很小的改变可能会给匹配结果带来巨大的改变,这会进一步引起解码器query
优化目标不一致的问题。
我们将DETR类模型的训练过程视为两阶段:学习好的锚点以及学习相对偏移。如前人工作表明,解码器query
负责学习锚点。不一致的锚点更新可能是的相对偏移量难以学习。因此在我们的方法中,我们利用一个去噪任务作为训练捷径,因为该捷径绕过了二分图匹配,使得学习相对偏移量更加简单。因为我们将每个解码器query
解释成一个4D锚点框,一个加了噪声的query
可以认为是一个在真值框附近的“好的锚点”。因此去噪训练任务的目标非常明确——预测加噪声之前的真值框,有效避免了匈牙利匹配带来的模糊性问题。
为了量化评估二分图匹配结果的不稳定性,我们按如下方式设计了一个指标。对于一张训练图像,我们将第 i i i个epoch预测的目标表示为 O i = { O 0 i , O 1 i , … , O N − 1 i } O^i=\{O_0^i,O_1^i,\dots, O_{N-1}^i\} Oi={O0i,O1i,…,ON−1i},其中 N N N表示预测的目标数量,真目标表示为 T i = { T 0 i , T 1 i , … , T M − 1 i } T^i=\{T_0^i,T_1^i,\dots, T_{M-1}^i\} Ti={T0i,T1i,…,TM−1i},其中 M M M是真值目标的个数。在二分图匹配之后,我们计算一个索引向量 V i = { V 0 i , V 1 i , … , V N − 1 i } V^i=\{V_0^i,V_1^i,\dots, V_{N-1}^i\} Vi={V0i,V1i,…,VN−1i}来存储第 i i i个epoch的匹配结果: V n i = { m , i f O n i m a t c h e s T m − 1 , i f O n i m a t c h e s n o t h i n g (1) V_n^i=\left \{\begin{aligned} m,\quad&\mathrm{if} \ O_n^i \ \mathrm{matches} \ T_m\\-1,\quad &\mathrm{if} \ O_n^i \ \mathrm{matches \ nothing}\end{aligned} \right. \tag{1} Vni={m,−1,if Oni matches Tmif Oni matches nothing(1)我们将 V i V^i Vi和 V i − 1 V^{i-1} Vi−1之间的差异定义为第 i i i个epoch的不稳定性: I S i = ∑ j = 0 N 1 ( V n i ≠ V n i − 1 ) (2) IS^i=\sum_{j=0}^N\textbf1(V_n^i\neq V_n^{i-1}) \tag{2} ISi=j=0∑N1(Vni=Vni−1)(2)其中 1 ( ⋅ ) \textbf1(\cdot) 1(⋅)是指示函数,如果 x x x为真 1 ( x ) = 1 \textbf1(x)=1 1(x)=1否则等于0。第 i i i个epoch整个数据集的不稳定性是所有图像不稳定数的平均值。为了注释简单,在公式(1)和(2)中省略了图像的索引。
如图2所示,我们在COCO2017验证集上对DN-DETR和DAB-DETR的 I S IS IS指标进行了对比,验证集平均每张图7.36个目标,所以 I S IS IS的最大值为 7.36 × 2 = 14.72 7.36\times 2=14.72 7.36×2=14.72。从图2可以看出,我们的方法有效降低了匹配的不稳定性。
4. DN-DETR
4.1 Overview
我们基于DAB-DETR结构来实现我们的训练方法。和DAB-DETR类似,我们显式地将解码器query
构造成边界框坐标,唯一不同之处在于解码器嵌入部分,DN-DETR增加了一个类别标签嵌入来支持标签去噪。如图4所示,我们的主要贡献是训练过程。
和DETR类似,我们的架构包含一个Transformer编码器和一个Transformer解码器。在编码器一侧,将CNN主干提取的图像特征送入带有位置编码的Transformer编码器,得到精炼的图像特征。在解码器一侧,query
被送入解码器并通过交叉注意力来搜寻目标。
我们将解码器query
表示为
q
=
{
q
0
,
q
1
,
…
,
q
N
−
1
}
\mathrm{q}=\{q_0,q_1,\dots,q_{N-1}\}
q={q0,q1,…,qN−1},解码器输出表示为
o
=
{
o
0
,
o
1
,
…
,
o
N
−
1
}
\mathrm{o}=\{o_0,o_1,\dots,o_{N-1}\}
o={o0,o1,…,oN−1},用
F
F
F表示经精炼后的图像特征,用
A
A
A表示基于去噪任务导出的注意力掩模。我们的方法可以表示为
o
=
D
(
q
,
F
∣
A
)
(3)
\mathrm o=D(\mathrm q,F|A) \tag{3}
o=D(q,F∣A)(3)其中
D
D
D表示Transformer解码器。
解码器query
包含两部分,一部分是匹配部分,这部分的输入是可学习的锚点,其处理方式和DETR一样,采用二分图匹配,并学习用匹配的解码器输出来近似真值边界框和类别。另一部分是去噪部分,该部分的输入是加了噪声的真值边界框和类别标签(本文剩下的部分都称之为“GT对象”)。去噪部分的输出是重构后的GT对象。
下文中,我们将去噪部分表示为 q = { q 0 , q 1 , … , q N − 1 } \mathrm{q}=\{q_0,q_1,\dots,q_{N-1}\} q={q0,q1,…,qN−1},匹配部分表示为 Q = { Q 0 , Q 1 , … , q N − 1 } \mathrm{Q}=\{Q_0,Q_1,\dots,q_{N-1}\} Q={Q0,Q1,…,qN−1},所以我们的方法可表示为 o = D ( q , Q , F ∣ A ) (4) \mathrm o=D(\mathrm q,\mathrm Q, F|A) \tag{4} o=D(q,Q,F∣A)(4)为了提升去噪的效率,我们提出在去噪部分使用不同版本的噪声GT对象。除此之外,我们利用注意力掩模来防止去噪部分到匹配部分之间,以及同一个GT对象不同版本噪声之间信息泄漏。
4.2 Intro to DAB-DETR
最近许多工作将DETR的query
和不同的位置信息联系起来。同样的,DAB-DETR显式地将query
制定成4D锚点坐标的形式。如图3(a)所示,一个query
指定为一个元组
(
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
)
(\Delta x, \Delta y, \Delta w, \Delta h)
(Δx,Δy,Δw,Δh),那么锚点就被更新为
(
x
+
Δ
x
,
y
+
Δ
y
,
w
+
Δ
w
,
h
+
Δ
h
)
(x+\Delta x, y+\Delta y, w+\Delta w, h+\Delta h)
(x+Δx,y+Δy,w+Δw,h+Δh)。
值得注意的是,我们的方法主要是一种训练方法,可以集成到任何DETR类的方法之中。为了在DAB-DETR上测试,我们只进行最小程度的修改:将解码器嵌入指定为标签嵌入,如图3(b)所示。
4.3 Denoising
对于每张图像,我们给所有GT对象的边界框和类别标签都加上随机噪声。为了最大程度利用去噪学习,我们为每个GT对象使用了不同版本的噪声。
我们考虑通过两种方式添加噪声:中心平移和边界框缩放。我们定义 λ 1 \lambda_1 λ1和 λ 2 \lambda_2 λ2为这两种噪声的尺度。对于中心平移,我们添加给边界框中心添加一个随机的噪声 ( Δ x , Δ y ) (\Delta x, \Delta y) (Δx,Δy),并保证 ∣ Δ x ∣ < λ 1 w / 2 |\Delta x|<\lambda_1w/2 ∣Δx∣<λ1w/2及 ∣ Δ y ∣ < λ 1 h / 2 |\Delta y|<\lambda_1h/2 ∣Δy∣<λ1h/2,其中 λ 1 ∈ ( 0 , 1 ) \lambda_1\in (0,1) λ1∈(0,1),所以添加过噪声后的边界框中心仍然位于原始的边界框之内。对于尺度缩放,我们设置 λ 2 ∈ ( 0 , 1 ) \lambda_2 \in (0,1) λ2∈(0,1),边界框的宽度和长度分别在 [ ( 1 − λ 2 ) w , ( 1 − λ 2 ) w ] [(1-\lambda_2)w,(1-\lambda_2)w] [(1−λ2)w,(1−λ2)w]和 [ ( 1 − λ 2 ) h , ( 1 − λ 2 ) h ] [(1-\lambda_2)h,(1-\lambda_2)h] [(1−λ2)h,(1−λ2)h]范围内随机采样。
对于标签噪声,我们随机将一些真值标签翻转成其它类别。标签翻转迫使模型根据添加了噪声的边界框来预测真值标签,从而更好的捕捉标签和边界框之间的关系。我们通过超参数
γ
\gamma
γ来控制标签翻转的比例。和DAB-DETR一样,我们的重构损失函数包括针对边界框的
l
1
l
o
s
s
l_1 \ loss
l1 loss、
G
I
O
U
l
o
s
s
GIOU \ loss
GIOU loss,以及针对分类标签的focal loss。我们使用函数
δ
(
⋅
)
\delta(\cdot)
δ(⋅)表示噪声GT对象。因此,去噪部分的每个query
可以表示为
q
k
=
δ
(
t
m
)
q_k=\delta(t_m)
qk=δ(tm),其中
t
m
t_m
tm是第
m
m
m个GT对象。
注意去噪仅在训练阶段考虑,在推理阶段需要移除去噪部分,只留下匹配部分。
4.4 Attention Mask
注意力掩模是我们模型中非常重要的一个组件。没有注意力掩模,去噪训练会导致性能下降而非提升,如表4所示。
为了引入注意力掩模,我们首先需要将噪声GT对象分组,每个分组是所有GT对象的一个噪声版本。去噪部分表示为
q
=
{
g
0
,
g
1
,
…
,
g
P
−
1
}
(5)
\mathrm{q}=\{\mathrm{g}_0,\mathrm{g}_1,\dots,\mathrm{g}_{P-1}\}\tag{5}
q={g0,g1,…,gP−1}(5)其中
g
p
g_p
gp定义为第
p
p
p个去噪分组。每个去噪分组包含
M
M
M个query
,
M
M
M是图像中GT对象的个数。所以我们有
g
p
=
{
q
0
p
,
q
1
p
,
…
,
q
M
−
1
p
}
(6)
g_p=\{q^p_0,q^p_1,\dots,q^p_{M-1}\}\tag{6}
gp={q0p,q1p,…,qM−1p}(6),其中
q
m
=
δ
(
t
m
)
q_m=\delta(t_m)
qm=δ(tm)。
注意力掩模的作用是为了防止信息泄漏。有两种类型的潜在信息泄漏,一种是匹配部分看到噪声GT对象并很容易地预测GT对象。另一种是一种噪声版本的GT可以看到另一种版本。因此,我们的注意力掩模是为了保证去噪部分对匹配部分不可见,以及去噪分组之间互相不可见,如图4所示。
我们用
A
=
[
a
i
j
]
W
×
W
\textbf{A}=[a_{ij}]_{W\times W}
A=[aij]W×W表示注意力掩模,其中
W
=
P
×
M
+
N
W=P\times M+N
W=P×M+N,
P
P
P和
M
M
M是分组数量和GT对象数量,
N
N
N是匹配部分的query
数量。令前
P
×
M
P\times M
P×M行和列表示去噪部分,其余的部分表示匹配部分。
a
i
j
=
1
a_{ij}=1
aij=1表示第
i
i
i个query
看不见第
j
j
j个query
,反之亦然。我们按如下设计注意力掩模
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
.
(7)
a_{ij}=\left \{\begin{aligned}1,&\quad\mathrm{if}\ j<P\times M\ \mathrm{and} \ \lfloor\frac{i}{M}\rfloor\neq\lfloor\frac{j}{M}\rfloor; \\ 1,&\quad\mathrm{if}\ j<P\times M\ \mathrm{and} \ i\ge P\times M;\\0,&\quad \mathrm{otherwise.}\end{aligned} \right.\tag{7}
aij=⎩⎪⎪⎪⎨⎪⎪⎪⎧1,1,0,if j<P×M and ⌊Mi⌋=⌊Mj⌋;if j<P×M and i≥P×M;otherwise.(7)注意,我们允许去噪部分看到匹配部分,因为匹配部分的query
是学习得到的,不包含真值对象的信息。
多个去噪分组引入的额外计算量是微不足道的。当引入5个去噪分组时,在ResNet-50主干下,DAB-DETR训练计算量从94.4GFLOPs增加到94.6GFLOPs,并且在测试阶段不增加任何计算开销。
4.5 Label Embedding
在我们的模型中,解码器嵌入被指定为标签嵌入,以支持边界框去噪和类别标签去噪。除了COCO 2017中的80个类别,我们还在匹配部分加入了一个未知类别嵌入,在语义上和去噪部分保持一致。我们在标签嵌入后增加了一个标记,当标记等于1时query
属于去噪部分,等于0时则属于匹配部分。
5. Experiment
5.1 Setup
数据集: 我们在COCO 2017检测任务上来证明DN-DETR的有效性。按照惯例,我们公布了COCO验证集上不同IOU阈值和目标尺度下的AP结果。
实现细节: DAB-DETR由一个CNN主干、多个Transformer编码层以及解码层组成,我们在DAB-DETR上测试去噪训练的有效性。我们同样证明了去噪训练可以嵌入到其他DETR类模型中来提升性能。比如,我们的DN-Deformable-DETR就是在建立在多尺度的Deformable DETR基础之上。
我们使用了几组在ImageNet上预训练ResNet作为我们的主干,并公布了4组ResNet配置下的结果:ResNet-50、ResNet-101及其16倍分辨率的扩展ResNet-50-DC5和ResNet-101-DC5。超参数方面,我们沿用了DAB-DETR的配置,6层Transformer编码器,6层Transformer解码器,隐藏层特征维度为256。我们向边界框添加均匀噪声,噪声超参数为 λ 1 = 0.4 , λ 2 = 0.4 , γ = 0.2 \lambda_1=0.4,\lambda_2=0.4,\gamma=0.2 λ1=0.4,λ2=0.4,γ=0.2。对于学习率策略,我们使用 1 e − 5 1e^{-5} 1e−5的初始学习率,并在50个和12个epoch训练配置下时,分别在第40个和11个epoch将学习率乘以0.1。我们使用AdamW优化器,权重衰减系数为 1 e − 4 1e^{-4} 1e−4,在8张Nvidia A100 GPU上训练我们的模型。Batch Size等于16。如果没有另外说明,我们默认使用5个去噪分组。
我们按照DAB-DETR的基础配置,未加入任何训练技巧下,进行了一系列实验来阐明性能的提升,如表1所示。为了比较在12个epoch和50个epoch下(DETR类模型最常使用的配置)SOTA的性能,我们依照DAB-DETR使用了Anchor DETR中的3中模式嵌入,如表2和表3所示。所有DAB-DETR及其变体的对比实验都在相同的配置下进行。
DN-Deformable-DETR: 为了证明去噪训练应用到其他DETR类模型同样有效,我们使用10个去噪分组,将去噪训练整合进Deformable DETR中,称为DN-Deformable-DETR。我们沿用Deformable DETR的训练配置,但为了更好的使用去噪训练,我们将其query
指定为4D框。
当和标准50个epoch配置进行比较时,为了消除DN-Deformable-DETR性能提升可能是由于query
显式指定为锚点框导致的误导信息,我们还实现了一个强健的DAB-Deformable-DETR基线用于比较。它精Deformable DETR的query
组织成锚点框的形式,但不使用去噪训练,其他的配置则和其他实验完全一致。我们严格遵循Deformable DETR,在没有FPN的情况下使用4个尺度的特征。Dynamic DETR增加了FPN,并且使用了5个尺度的特征,能进一步提升性能,但我们方法的性能依旧更好。
5.2 Denoising Training Improves Performance
为了体现相比DAB-DETR以及其他单尺度DETR方法的绝对性能提升,我们使用单尺度配置,在不同的主干网络下进行了一系列实验,实验结果见表1。
结果表明,在4种常用的主干网络下,我们在所有单尺度模型中的性能最好。比如,相比基线DAB-DETR,我们在ResNet-50下AP指标提升了1.9。表格数据还表明,去噪过程增加的参数量和计算量可以忽略不计。
5.3 1x Setting
去噪训练可以极大地加速检测任务的训练。表2对比我们的方法和传统检测器和一些DETR类模型。由于Dynamic DETR使用了动态编码器,为了公平起见,我们同样比较了没有动态编码器的Dynamic DETR版本。
5.4 Compared with State-of-Art Detectors
我们还通过实验比较了我们的方法和多尺度模型,结果如表3所示。我们提出的DN-Deformable-DETR在ResNet-50主干下达到了最好的48.6的AP性能。为了消除修改Deformable DETR的query
带来的干扰,我们实现了一个没有去噪训练的DAB-Deformable-DETR的基线。实验结果表明我们仍然可以获得1.7的AP性能提升。DN-Deformable-DETR的性能提升同样表明去噪训练可以集成到其他DETR类的方法中帮助他们提升性能。尽管和Dynamic DETR的比较不是很公平,因为它包含动态编码器以及5个尺度的FPN,但我们仍然取得了1.4的AP提升。
我们还展示了单尺度和多尺度配置下的收敛曲线,如图5所示。我们在不同的epoch进行了学习率降低至原来0.1倍的操作,如图5(b)所示。
5.6 消融实验
我们在ResNet-50,50个epoch的配置下进行了一系列消融实验来验证每个组件的作用,结果见表4和表5。表4的结果展示了去噪训练中各个组件对性能的贡献。在没有注意力掩模防止信息泄漏的情况下,性能会发生显著下降。
我们还分析了去噪分组数目的影响,如表5所示。结果表明增加去噪分组可以提升性能,但是分组数目的提升对于性能贡献很小。因此,在我们的实验中默认设置5个去噪分组,但是更多的分组能够进一步提升模型性能和收敛速度。
在图6中,我们探索了噪声尺度的影响。我们以64的batch size在ResNet-50上跑了20个epoch,没有使用学习率下降。结果表明中心偏移和尺度缩放都能够提升性能,但当噪声过大时,性能会下降。
6. Conclusion
本文中,我们分析了DETR收敛慢的原因是不稳定的二分图匹配,并提出了一种全新的去噪训练方法来解决这个问题。基于这个分析结果,我们精去噪训练集成到DAB-DETR中,提出DN-DETR来测试方法的有效性。DN-DETR指定编码器embedding作为标签embedding,并为边界框和类别标签引入去噪训练。我们还将去噪训练加入到Deformable DETR中来证明方法的通用性。结果表明去噪过程显著加速了收敛并提升了性能。本项研究表明,去噪训练可以很容易地以一种通用训练方法集成到DETR类模型中,在只引入很小的训练代价情况下带来显著的收敛速度和检测性能的提升。
局限性和未来工作: 本项工作中,我们只是简单地添加了均匀分布噪声。我们没有探索更复杂的噪声机制,在未来工作中考虑。重构叠加了噪声的数据再无监督学习领域中去的了很大的成功,本文只是将其初步应用到了目标检测任务中。在未来,我们将继续探索使用无监督学习技术在标签数据上对检测器进行训练,或探索其他诸如对比学习的无监督学习方法。