End-to-End Object Detection with Transformers
0.论文摘要
我们提出了一种新的方法,将目标检测视为一个直接的集合预测问题。我们的方法简化了检测管道,有效地消除了对许多手工设计组件的需求,如非极大抑制程序或锚生成,它们显式地编码了我们关于任务的先验知识。新框架的主要成分被称为检测Transformer model或DETR,是基于集合的全局损失,通过二分匹配强制进行独特的预测,以及Transformer model编码器——解码器架构。给定一组固定的学习对象查询,DETR推理对象和全局图像上下文的关系,以并行直接输出最终的预测集。新模型在概念上很简单,不需要专门的库,不像许多其他现代检测器。在具有挑战性的COCO对象检测数据集上,DETR展示了与成熟且高度优化的Faster RCNN基线相当的准确性和运行时性能。此外,DETR可以很容易地推广,以统一的方式产生全景分割。我们表明,它明显优于竞争基线
1.研究背景
目标检测的目标是为每个感兴趣的对象预测一组边界框和类别标签。现代检测器通过在大量建议[37,5]、锚[23]或窗口中心[53,46]上定义替代回归和分类问题,以间接的方式解决这一集合预测任务。它们的性能受到折叠接近重复的预测的后处理步骤、锚集的设计以及将目标框分配给锚的试探法的显著影响[52]。为了简化这些管道,我们提出了一种直接集合预测方法来绕过代理任务。这种端到端的理念已经导致了复杂的结构化预测任务(如机器翻译或语音识别)的重大进展,但尚未在目标检测方面取得重大进展:以前的尝试[43,16,4,39]要么添加了其他形式的先验知识,要么尚未证明在具有挑战性的基准上与强基线具有竞争力。本文旨在弥合这一差距。
我们通过将目标检测视为直接集合预测问题来简化训练管道。我们采用基于transformers[47]的编码器——解码器架构,这是一种流行的序列预测架构。Transformers的自注意力机制显式地模拟了序列中元素之间的所有成对交互,这使得这些架构特别适合于集合预测的特定约束,例如去除重复预测。
我们的检测Transformer model(DETR,见图1)一次预测所有对象,并使用一组损失函数进行端到端训练,该函数在预测对象和地面真实对象之间执行二分匹配。DETR通过丢弃多个手工设计的编码先验知识的组件,如空间锚或非最大抑制,简化了检测管道。与大多数现有的检测方法不同,DETR不需要任何定制层,因此可以在任何包含标准CNN和Transformer model类的框架中轻松复制。
图1:DETR通过将公共CNN与Transformer model架构相结合,直接预测(并行)最终检测集。在训练期间,二分匹配唯一地分配具有基本真实框的预测。没有匹配的预测应该产生“无对象”(∅)类预测。
与大多数先前关于直接集合预测的工作相比,DETR的主要特征是二分匹配损耗和Transformers与(非自回归)并行解码的结合[29,12,10,8]。相比之下,以前的工作集中在RNNs的自回归解码[43,41,30,36,42]。我们的匹配损失函数唯一地将预测分配给地面真实对象,并且对于预测对象的排列是不变的,因此我们可以并行发射它们。
我们在最受欢迎的目标检测数据集之一COCO[24]上评估了DETR,并与极具竞争力的更快R-CNN基线[37]进行了对比。更快的RCNN经历了许多设计迭代,自最初发布以来,其性能得到了极大的提高。我们的实验表明,我们的新模型达到了相当的性能。更准确地说,DETR在大型物体上表现出明显更好的性能,这一结果可能是由Transformer model的非局部计算实现的。然而,它在小物体上的性能较低。我们期望未来的工作将改善这一方面,就像FPN[22]的发展对更快的R-CNN所做的那样。
DETR的设计理念很容易延伸到更复杂的任务。在我们的实验中,我们表明,在预训练的DETR上训练的简单分割头在全景分割上优于竞争基线[19],全景分割是一项具有挑战性的像素级识别任务,最近越来越受欢迎。
2.相关工作
我们的工作建立在几个领域的前期工作基础上:用于集合预测的二分匹配损失、基于Transformer model的编码器——解码器架构、并行解码和目标检测方法。
2.1 集合预测
没有规范的深度学习模型来直接预测集合。基本的集合预测任务是多标签分类(例如,参见计算机视觉上下文中的参考文献[40,33]),对于该分类,基线方法one-vs-rest不适用于诸如元素之间存在底层结构(即,几乎相同的框)的检测之类的问题。这些任务的第一个困难是避免接近重复。大多数当前的检测器使用后处理,例如非最大抑制来解决这个问题,但是直接集合预测是无后处理的。他们需要全局推理方案来模拟所有预测元素之间的交互,以避免冗余。对于恒定大小的集合预测,密集的全连通网络[9]是足够的,但成本高昂。一般方法是使用自回归序列模型,如递归神经网络[48]。在所有情况下,损失函数应该是不变的排列的预测。通常的解决方案是基于匈牙利算法[20]设计损失,以找到地面真实和预测之间的二方匹配。这加强了排列不变性,并保证每个目标元素都有唯一的匹配。我们遵循二分匹配损失方法。然而,与大多数先前的工作相反,我们远离自回归模型,使用具有并行解码的Transformers,我们将在下面描述。
2.2 Transformers和并行解码器
Transformers是由瓦斯瓦尼等引进的[47]作为一种新的基于注意力的机器翻译构建模块。注意力机制[2]是从整个输入序列中聚集信息的神经网络层。Transformers引入了自我关注层,类似于非局部神经网络[49],扫描序列的每个元素,并通过聚合整个序列的信息来更新它。基于注意力的模型的主要优势之一是它们的全局计算和完美的记忆,这使得它们比RNNs更适合长序列。Transformers是第四名。在自然语言处理、语音处理和计算机视觉的许多问题中取代RNNs[8,27,45,34,31]。
Transformers首先用于自回归模型,遵循早期的序列到序列模型[44],一个接一个地生成输出令牌。然而,在音频[29]、机器翻译[12,10]、单词表示学习[8]以及最近的语音识别[6]领域,令人望而却步的推理成本(与输出长度成比例,并且难以批量处理)导致了并行序列生成的发展。我们还结合了Transformers和并行解码,以便在计算成本和执行集合预测所需的全局计算的能力之间进行适当的权衡。
2.3 目标检测
大多数现代目标检测方法相对于一些初始猜测进行预测。两级检测器[37,5]预测框建议,而单阶段方法进行预测。锚[23]或可能的对象中心网格[53,46]。最近的工作[52]表明,这些系统的最终性能在很大程度上取决于这些初始猜测的确切设置方式。在我们的模型中,我们能够消除这种手工制作的过程,并通过使用绝对盒预测w.r.t直接预测检测集来简化检测过程。输入图像而不是锚点。
基于集合的损失。一些物体检测器[9,25,35]使用了二分匹配损耗。然而,在这些早期的深度学习模型中,不同预测之间的关系仅用卷积或全连接层建模,手工设计的NMS后处理可以提高它们的性能。最近的检测器[37,23,53]使用地面实况和预测之间的非唯一分配规则以及NMS。可学习的NMS方法[16,4]和关系网络[17]明确地对不同预测之间的关系进行了建模。使用直接设置损耗,它们不需要任何后处理步骤。然而,这些方法采用额外的手工制作的上下文特征,如建议框坐标,来有效地建模检测之间的关系,同时我们寻找减少模型中编码的先验知识的解决方案。
循环检测器。最接近我们方法的是目标检测[43]和实例分割[41,30,36,42]的端到端集合预测。与我们类似,他们使用基于CNN激活的编码器——解码器架构的二分匹配损耗来直接产生一组边界盒。然而,这些方法仅在小数据集上进行评估,而不是对照现代基线。特别是,它们基于自回归模型(更准确地说是RNNs),因此它们没有利用最近的并行解码Transformers。
3.核心思想
对于检测中的直接集合预测,两个因素是必不可少的:(1)集合预测损失,它迫使预测和地面真实之间唯一匹配
(2)预测(在单次传递中)一组对象并对它们的关系建模的体系结构。我们在图2中详细描述了我们的体系结构。
图2:DETR使用传统的CNN主干来学习输入图像的2D表示。该模型将其展平,并在将其传递到Transformer model编码器之前用位置编码对其进行补充。然后,Transformer model解码器将少量固定数量的学习位置嵌入作为输入,我们称之为对象查询,并额外关注编码器输出。我们将解码器的每个输出嵌入传递给共享前馈网络(FFN),该网络预测检测(类和边界框)或“无对象”类。
3.1 目标检测集合预测损失
DETR在通过解码器的单次传递中推断出N个预测的固定大小的集合,其中N被设置为明显大于图像中对象的典型数量。训练的主要困难之一是相对于真实目标对预测的对象(类别、位置、大小)进行评分。我们的损失在预测和真实对象之间产生最佳二分匹配,然后优化特定于对象的(边界框)损失。
让我们用y来表示对象的真实集,而用 y ^ = { y ^ i } i = 1 N \hat{y} = \{\hat{y}_i\}^N_{i=1} y^={y^i}i=1N来表示N个预测集。假设N大于图像中对象的数量,我们将y也视为一组大小为N的集合,填充有∅(无对象)。为了找到这两个集合之间的二分匹配,我们搜索具有最低代价的N个元素的置换σ∈SN:
其中
L
m
a
t
c
h
(
y
i
,
y
^
σ
(
i
)
)
L_{match}(y_i, \hat{y}_{σ(i)})
Lmatch(yi,y^σ(i))是地面真实
y
i
y_i
yi和具有指示函数
σ
(
i
)
σ(i)
σ(i)的预测之间的成对匹配代价。在先前的工作(例如[43])之后,用匈牙利算法有效地计算该最优分配。
匹配损失既考虑了类预测,也考虑了预测和真实目标框的相似性。真实目标集的每个元素i可以被视为 y i = ( c i , b i ) y_i = (c_i, b_i) yi=(ci,bi),其中 c i c_i ci是目标类标签(可以是∅), b i ∈ [ 0 , 1 ] 4 b_i ∈ [0, 1]^4 bi∈[0,1]4是定义真实目标中心坐标及其相对于图像大小的高度和宽度的向量。对于指数为 σ ( i ) σ(i) σ(i)的预测,我们将类 c i c_i ci的概率定义为 p ^ σ ( i ) ( c i ) \hat{p}_{σ(i)}(ci) p^σ(i)(ci),预测框定义为 b ^ σ ( i ) \hat{b}_{σ(i)} b^σ(i)。根据这些符号,我们将 L m a t c h ( y i , y ^ σ ( i ) ) \mathcal{L}_{match}(y_i, \hat{y}_{σ(i)}) Lmatch(yi,y^σ(i))定义为 − 1 c i ≠ ∅ p ^ σ ( i ) ( c i ) + 1 c i ≠ ∅ L b o x ( b i , ˆ b ^ σ ( i ) ) −\mathbb{1}_{{c_i\neq∅}} \hat{p}_{σ(i)}(ci) + \mathbb{1}_{{c_i\neq∅}}\mathcal{L}_{box}(bi, ˆ\hat{b}_{σ(i)}) −1ci=∅p^σ(i)(ci)+1ci=∅Lbox(bi,ˆb^σ(i))。
这种寻找匹配的过程起着与启发式分配规则相同的作用,启发式分配规则用于将建议[37]或锚[22]匹配到现代检测器中的地面真实对象。主要区别在于,对于没有重复的直接集合预测,我们需要找到一对一的匹配。第二步是计算损失函数,即上一步中匹配的所有配对的匈牙利损失。我们对损失的定义类似于普通目标检测器的损失,即类预测的负对数似然和后面定义的边界框损失的线性组合:
其中, σ ^ \hat{σ} σ^是在第一步(1)中计算的最优分配。在实践中,当 c i = ∅ c_i=∅ ci=∅时,我们将对数概率项的权重降低了10倍,以考虑类别失衡。这类似于更快的R-CNN训练程序如何通过二次采样来平衡正/负建议[37]。请注意,对象和∅之间的匹配成本不依赖于预测,这意味着在这种情况下,成本是一个常数。在匹配成本中,我们使用概率 p ^ σ ( i ) ( c i ) \hat{p}_{σ(i)}(ci) p^σ(i)(ci)而不是对数概率(log-probabilities)。这使得类预测项可公度到 L b o x ( ⋅ , ⋅ ) \mathcal{L}_{box}(·, ·) Lbox(⋅,⋅)(如下所述),并且我们观察到更好的经验性能。
边界框损失。匹配损失和匈牙利损失的第二部分是 L b o x ( ⋅ ) \mathcal{L}_{box}(·) Lbox(⋅),它对边界框进行评分。不像许多检测器把预测作为∆ w.r.t。一些初步的猜测,我们直接做边界框预测。虽然这种方法简化了实施,但也带来了损失相对比例的问题。最常用的L1损失对于小边界框和大边界框会有不同的尺度,即使它们的相对误差相似。为了缓解这个问题,我们使用了L1损失”和广义IoU损失[38] L i o u ( ⋅ , ⋅ ) L_{iou}(·, ·) Liou(⋅,⋅)的线性组合,它是尺度不变的。总的来说,我们的边界框损失是定义为 λ i o u L i o u ( b i , b ^ σ ( i ) ) + λ L 1 ∣ ∣ b i − b ^ σ ( i ) ∣ ∣ 1 λ_{iou}\mathcal{L}_{iou}(b_i, \hat{b}_{σ(i)}) + λ_{L1}||b_i − \hat{b}_{σ(i)}||_1 λiouLiou(bi,b^σ(i))+λL1∣∣bi−b^σ(i)∣∣1的 L b o x ( b i , b ^ σ ( i ) ) \mathcal{L}_{box}(b_i, \hat{b}_{σ(i)}) Lbox(bi,b^σ(i)),其中 λ i o u , λ L 1 ∈ R λ_{iou}, λ_{L1} ∈ \mathbb{R} λiou,λL1∈R是超参数。这两个损失通过批处理中的对象数量来归一化。
3.2 DETR架构
整个DETR体系结构非常简单,如图2所示。它包含三个主要组件,我们将在下面描述:用于提取紧凑特征表示的CNN主干、编码器——解码器Transformer model和进行最终检测预测的简单前馈网络(FFN)。
图2:DETR使用传统的CNN主干来学习输入图像的2D表示。该模型将其展平,并在将其传递到Transformer model编码器之前用位置编码对其进行补充。然后,Transformer model解码器将少量固定数量的学习位置嵌入作为输入,我们称之为对象查询object queries,并额外关注编码器输出。我们将解码器的每个输出嵌入传递给共享前馈网络(FFN),该网络预测检测(类和边界框)或“无对象”类。
与许多现代检测器不同,DETR可以在任何深度学习框架中实现,该框架提供了一个通用的CNN主干和一个只有几百行的Transformer model架构实现。DETR的推理代码可以在PyTorch[32]中用不到50行代码实现。我们希望我们方法的简单性将吸引新的研究人员加入检测社区。
3.2.1 主干网络
主干网络。从初始图像 x i m g ∈ R 3 × H 0 × W 0 x_{img} ∈ \mathbb{R}^{3×H_0×W_0} ximg∈R3×H0×W0(具有3个颜色通道2)开始,传统的CNN主干生成较低分辨率的激活特征图图 f ∈ R C × H × W f ∈ \mathbb{R}^{C×H×W} f∈RC×H×W。我们使用的典型值是C=2048和 H , W = H 0 / 32 , W 0 / 32 H, W = H_0/32 , W_0/32 H,W=H0/32,W0/32。
输入图像被批处理在一起,充分应用0填充以确保它们都具有与批处理中最大图像相同的尺寸(H0,W0)。
3.2.2 Transformer model编码器
Transformer model编码器。首先,1x1卷积将高级激活图f的通道维数从C降低到更小的维数d。创建新的特征图 z 0 ∈ R d × H × W z_0 ∈ \mathbb{R}^{d×H×W} z0∈Rd×H×W。编码器期望一个序列作为输入,因此我们将 z 0 z_0 z0的空间维度折叠成一维,产生d × HW特征图。每个编码器层都有一个标准架构,由多头自注意模块和前馈网络(FFN)组成。由于Transformer model架构是排列不变的,我们用固定的位置编码[31,3]来补充它,这些编码被添加到每个注意力层的输入中。我们遵从补充材料中架构的详细定义,该定义遵循[47]中描述的定义。
3.2.3 Transformer model解码器
Transformer model解码器。解码器遵循Transformer model的标准架构,使用多头自我和编码器——解码器注意机制来转换N个大小为d的嵌入。与原始Transformer model的不同之处在于,我们的模型在每个解码器层并行解码N个对象,而Vaswani等[47]使用一个自回归模型,一次预测一个元素的输出序列。我们建议不熟悉这些概念的读者参考补充材料。由于解码器也是排列不变的,N个输入嵌入必须不同才能产生不同的结果。这些输入嵌入是我们称之为对象查询object queries的可学习位置编码,与编码器类似,我们将它们添加到每个注意力层的输入中。该N个对象查询object queries被解码器转换成输出嵌入。然后,它们被一个前馈网络(在下一小节中描述)独立地解码成边界框坐标和类标签,产生N个最终预测。使用对这些嵌入的自注意力和编码器——解码器注意力,该模型使用它们之间的成对关系来全局地推理所有对象,同时能够使用整个图像作为上下文。
3.2.4 预测前馈网络FFNs
预测前馈网络。最终预测由具有ReLU激活函数和隐藏维数d的3层感知器和线性投影层计算。FFN预测框w.r.t。的归一化中心坐标、高度和宽度输入图像和线性图层使用softmax函数预测类别标签。因为我们预测一组固定大小的N个边界框,其中N通常比图像中感兴趣的对象的实际数量大得多,所以使用额外的特殊类标签∅来表示在槽内没有检测到对象。这个类与标准目标检测方法中的“背景”类起着类似的作用。
辅助解码损失。我们发现在训练过程中使用解码器中的辅助损耗[1]很有帮助,特别是有助于模型输出正确的数字每个类的对象。我们在每个解码器层后添加预测FFNs和匈牙利损失。所有预测FFN共享它们的参数。我们使用额外的共享层范数来归一化来自不同解码器层的预测FFN的输入。
4.实验
我们表明,与Faster的R-CNN相比,DETR在可可的定量评估中取得了有竞争力的结果。然后,我们提供了一个详细的消融研究的架构和损失,与见解和定性结果。最后,为了证明DETR是一个通用的和可扩展的模型,我们给出了全景分割的结果,在固定的DETR模型上只训练了一个小的扩展。我们提供代码和预训练模型来重现我们的实验
我们在COCO 2017检测和全景分割数据集[24,18]上进行实验,包含118k训练图像和5k验证图像。每个图像都用边界框和全景分割进行注释。平均每个图像有7个实例,在训练集中的单个图像中多达63个实例,在相同的图像上从小到大。如果没有指定,我们将AP报告为bbox AP,即多个阈值上的积分度量。为了与Faster R-CNN进行比较,我们报告了最后一个训练周期的验证AP,对于消融实验,我们报告了最后10个时期验证结果的中位数。
我们用AdamW[26]训练DETR,将初始Transformer model学习率设置为 1 0 − 4 10^{−4} 10−4,主干学习率设置为 1 0 − 5 10^{−5} 10−5,权重衰减设置为 1 0 − 4 10^{−4} 10−4。所有Transformer model权重都使用Xavier init[11]初始化,主干使用来自torchvision的ImageNet预训练ResNet模型[15],该模型具有冻结的batchnorm层。我们报告了两种不同主干的结果:ResNet50和ResNet-101。相应的型号分别称为DETR和DETR-R101。在[21]之后,我们还通过向主干的最后一级添加膨胀并从该一级的第一次卷积中移除步幅来增加特征分辨率。相应的型号分别称为DETR-DC5和DETR-DC5-R101(扩张C5级)。这种修改将分辨率提高了两倍,从而提高了小物体的性能,代价是编码器的自关注成本增加了16倍,导致计算成本总体增加了2倍。表1给出了这些模型和Faster R-CNN的FLOPs的完整比较。
表1:在COCO验证集上与具有ResNet-50和ResNet-101主干的Faster R-CNN的比较。顶部显示了Detectron2[50]中Faster R-CNN模型的结果,中间部分显示了具有GIoU[38]、随机Crop训练时间增加和长9x训练计划的Faster R-CNN模型的结果。DETR模型实现了与高度调谐的更快R-CNN基线相当的结果,具有更低的AP,但大大提高了APL。我们使用torchscript Faster R-CNN和DETR模型来测量FLOPS和FPS。名称中没有R101的结果对应于ResNet-50。
我们使用比例增强,调整输入图像的大小,使最短边至少480,最多800像素,而最长边最多1333[50]。为了通过编码器的自注意力来帮助学习全局关系,我们还在训练期间应用随机裁剪增强,将性能提高了大约1 AP。具体而言,训练图像以0.5的概率被裁剪成随机矩形块,然后再次将其大小调整为800-1333。Transformer model被训练为默认dropout 0.1。推理阶段,一些槽预测空类。为了优化AP,我们使用相应的置信度,用第二高的得分类别覆盖这些时隙的预测。与过滤掉空槽相比,这将AP提高了2个点。其他训练超参数可在A.4节中找到。对于我们的消融实验,我们使用300个周期的训练时间表,在200个时期后学习率下降10倍,其中单个时期是对所有训练图像的一次传递。在16个V100 GPU上训练300个周期的基线模型需要3天,每个GPU有4个图像(因此总批量大小为64)。对于用于与Faster R-CNN比较的更长的时间表,我们训练500个周期,在400个周期后学习率下降。与较短的时间表相比,该时间表增加了1.5 AP。
4.1 与Faster R-CNN相比
Transformers通常由Adam或Adagrad优化器训练,训练时间很长,dropout率很高,DETR也是如此。然而,Faster R-CNN是用SGD训练的,具有最小的数据扩充,我们不知道Adam或dropout的成功应用。尽管有这些差异,我们试图使Faster R-CNN基线更强。为了使其与DETR保持一致,我们将广义IoU[38]添加到边界框损失中,同样的随机crop增加和长期训练已知可以改善结果[13]。结果如表1所示。在顶部,我们展示了来自Detectron2 Model Zoo[50]的Faster R-CNN结果,用于用3倍时间表训练的模型。在中间部分,我们显示了相同模型但经过训练的结果(带“+”)使用9x调度(109个周期)和所描述的增强,这总共增加了1-2个AP。在表1的最后一部分,我们展示了多个DETR模型的结果。为了在参数数量上具有可比性,我们选择具有6个Transformer model和6个宽度为256的解码器层的模型,具有8个注意头。与FPN的Faster R-CNN一样,该模型有4130万个参数,其中2350万个在ResNet-50中,1780万个在Transformer model中。即使Faster R-CNN和DETR仍然有可能随着更长时间的训练而进一步提高,我们可以得出结论,DETR可以在相同数量的参数下与Faster R-CNN竞争,在COCO val子集上实现42 AP。DETR实现这一点的方法是通过改进APL(+7.8),但是请注意,该模型在APS(-5.5)方面仍然落后。具有相同参数数量和相似FLOP数的DETR-DC5具有更高的AP,但在AP方面仍然明显落后。具有ResNet-101主干的Faster R-CNN和DETR也显示了类似的结果。
4.2 消融实验
Transformer model解码器中的注意力机制是模拟不同检测的特征表示之间关系的关键组件。在我们的消融分析中,我们探讨了架构的其他组件和损失如何影响最终性能。在这项研究中,我们选择了基于ResNet-50的DETR模型,该模型具有6个编码器、6个解码器层和256个宽度。该模型具有41.3 M参数,在短调度和长调度上分别实现40.6和42.0 AP,运行速度为28 FPS,类似于具有相同主干的Faster R-CNN-FPN。
4.2.1 编码器数量
我们通过改变编码器层数来评估全局图像级自关注力的重要性(表2)。如果没有编码器层,整体AP会下降3.9个点,大型对象的AP会下降6.0个点。我们假设,通过使用全局场景推理,编码器对于解开物体是重要的。在图3中,我们将训练模型的最后一个编码器层的注意力图可视化,集中在图像中的几个点上。编码器似乎已经分离了实例,这可能简化了解码器的对象提取和定位
表2:编码器尺寸的影响。每一行对应于具有不同数量的编码器层和固定数量的解码器层的模型。随着编码器层的增加,性能逐渐提高。
图3:编码器对一组参考点的自注意力。编码器能够分离单个实例。使用验证集图像上的基线DETR模型进行预测。
4.2.2 解码器的数量
我们在每个解码层之后应用辅助损失(参见第3.2节),因此,预测FFN通过设计被训练以预测从每个解码器层的输出中提取对象。我们通过评估将在解码的每个阶段预测的对象来分析每个解码器层的重要性(图4)。AP和AP50在每一层后都有所改善,在第一层和最后一层之间总共有非常显著的+8.2/9.5 AP改善。由于其基于集合的损耗,DETR在设计上不需要NMS。为了验证这一点,我们为每个解码器后的输出运行一个带有默认参数[50]的标准NMS程序。NMS提高了来自第一解码器的预测的性能。这可以通过Transformer model的单个解码层不能计算输出元素之间的任何交叉相关性的事实来解释,因此它倾向于对同一对象进行多个预测。在第二层和随后的层中,激活的自我注意机制允许模型抑制重复预测。我们观察到NMS带来的改善随着深度的增加而减少。在最后一层,我们观察到AP的小损失,因为NMS错误地删除了真正的正预测。
类似于可视化编码器注意力,我们在图6中可视化解码器注意力,用不同的颜色给每个预测对象的注意力图着色。我们观察到解码器的注意力是相当局部的,这意味着它主要关注物体的四肢,如头部或腿部。我们假设,在编码器通过全局注意力分离实例后,解码器只需要注意末端来提取类和对象边界。
图6:可视化每个预测对象的解码器注意力(来自COCO val集合的图像)。预测是用DETR-DC5模型进行的。对于不同的物体,注意力得分用不同的颜色编码。解码器通常关注对象的四肢,如腿和头。最佳彩色观看。
4.2.3 FFN层的重要性
tranformer内部的FFN可以被视为1 × 1卷积层,使得编码器类似于注意力增强卷积网络[3]。我们试图完全移除它,只留下Transformer model层的注意力。通过将网络参数的数量从41.3 M减少到28.7 M,在Transformer model中只留下10.8 M,性能下降2.3 AP,我们因此得出结论,FFN对于实现良好的结果是重要的。
4.2.4 位置编码的重要性
模型中有两种位置编码:空间位置编码和输出位置编码(对象查询)。我们实验了固定编码和学习编码的各种组合,结果可以在表3中找到。输出位置编码是必需的,不能被删除,所以我们尝试在解码器输入时传递一次,或者在每个解码器注意力层添加到查询中。在第一个实验中,我们完全移除空间位置编码,并在输入时传递输出位置编码,有趣的是,该模型仍然实现了超过32 AP,比基线损失了7.8 AP。然后,我们在输入端传递一次固定正弦空间位置编码和输出编码,如在原始Transformer model[47]中,并发现与直接在注意力中传递位置编码相比,这导致1.4 AP下降。传递给注意力的学习空间编码给出了类似的结果。令人惊讶的是,我们发现在编码器中不传递任何空间编码只会导致1.3 AP的微小AP下降。当我们将编码传递给注意力时,它们在所有层之间共享,并且输出编码(对象查询)总是被学习。
表3:与具有固定正弦位置编码的基线(最后一行)相比,不同位置编码的结果。编码器和解码器中每个注意力层传递的编码。学习到的嵌入在所有层之间共享。不使用空间位置编码会导致AP显著下降。有趣的是,在解码器中传递它们只会导致轻微的AP下降。所有这些模型都使用学习输出位置编码。
鉴于这些消融研究,我们得出结论,Transformer model分量:编码器中的全局自我注意力、FFN、多解码器层和位置编码,都对最终的
目标检测性能有显著贡献。
4.2.5 损失消融
为了评估匹配损失和损失的不同组成部分的重要性,我们训练了几个模型来打开和关闭它们。损失有三个组成部分:分类损失、L1边界框距离损失和GIoU[38]损失。分类损失对于训练是必不可少的,并且不能关闭,因此我们训练一个没有边界框距离损失的模型和一个没有GIoU损失的模型,并与基线进行比较,用所有三种损失训练。结果如表4所示。GIoU损失对于大部分模型性能有影响,综合损失仅比基线损失0.7 AP。使用L1而不使用GIoU会显示较差的结果。我们只是学习不同损耗的简单消融(每次使用相同的权重),但组合它们的其他方法可能会获得不同的结果
表4:损失成分对AP的影响。我们训练了关闭“L1损失”和“GIoU损失”的两个模型,并观察到“L1”本身给出了较差的结果,但是当与GIoU结合时,改善了APM和APL。我们的基线(最后一行)结合了两种损失。
4.3 分析
4.3.1 解码器输出槽分析
在图7中,我们可视化了COCO 2017 val集中所有图像的不同槽预测的框。DETR为每个查询槽学习不同的专门化。我们观察到,每个插槽都有几种操作模式,侧重于不同的区域和边界框大小。特别是,所有槽都有预测图像范围框的模式(可见于图中间对齐的红点)。我们假设这与COCO中物体的分布有关。
图7:DETR解码器中总N=100个预测槽中的20个设置的来自COCO 2017 val的所有图像上的所有框预测的可视化。每个方框预测都表示为一个点,其中心坐标在1乘1的正方形中,由每个图像大小归一化。这些点是用颜色编码的,因此绿色对应于小方框,红色对应于大的水平方框,蓝色对应于大的垂直方框。我们观察到,每个插槽都学习通过几种操作模式来专注于特定的区域和盒子大小。我们注意到,几乎所有的槽都有一种预测大图像范围框的模式,这在COCO数据集中很常见。
4.3.2 推广到看不见的实例数量
COCO中的一些类不能很好地用同一个图中同一个类的许多实例来表示。例如,训练集中没有超过13只长颈鹿的图像。我们创建了一个合成图像3来验证DETR的泛化能力(见图5)。我们的模型能够在图像上找到所有24只长颈鹿,这显然是不分布的。这个实验证实了在每个对象查询中没有强的类专门化。
图5:稀有类的分布外推广。即使训练集中没有图像有超过13只长颈鹿,DETR也不难推广到同一类的24个或更多实例。
4.4 用于全景分割的DETR
全景分割[19]最近吸引了计算机视觉社区的大量关注。类似于将Faster R-CNN[37]扩展到Mask R-CNN[14],DETR可以通过在解码器输出顶部添加掩模头来自然扩展。在这一节中,我们演示了这样一个头可以通过处理东西和事物类来产生全景分割[19]以统一的方式。我们在COCO数据集的全景注释上进行实验,该数据集除了80个事物类别之外,还有53个事物类别。
我们训练DETR使用相同的配方预测COCO上stuff和things类周围的盒子。由于匈牙利匹配是使用框之间的距离计算的,因此训练需要预测框。我们还添加了一个掩码头,它为每个预测的框预测一个二进制掩码,见图8。它将每个对象的Transformer model解码器的输出作为输入,并在编码器的输出上计算该嵌入的多头(具有M个头)注意力分数,以小分辨率为每个对象生成M个注意力热图。为了进行最终预测并提高分辨率,使用了类似FPN的架构。我们将在附录中更详细地描述该架构。掩模的最终分辨率具有步幅4,并且使用DICE/F-1损失[28]和焦点损失[23]独立地监督每个掩模。面具头可以联合训练,也可以分两步训练,我们只训练边界框的DETR,然后冻结所有权重,只训练mask头25周期。实验上,这两种方法给出了相似的结果,我们报告了使用后一种方法的结果,因为它导致更短的总时间训练。
图8:全景头的图示。为每个检测到的对象并行生成一个二进制掩码,然后使用逐像素argmax合并mask。
为了预测最终的全景分割,我们只需在每个像素的mask分数上使用argmax,并将相应的类别分配给生成的mask。这个过程保证了最终的掩模没有重叠,因此,DETR不需要经常用于对齐不同掩模的启发式[19]。
训练细节。我们按照边界框检测的方法训练DETR、DETR-DC5和DETR-R101模型,以预测COCO数据集中stuff和things类周围的框。新的掩模头训练了25个epoch(详见补充)。在推理过程中,我们首先过滤掉置信度低于85%的检测,然后计算每个像素的argmax,以确定每个像素属于哪个掩码。然后,我们将同一材料类别的不同遮罩预测折叠成一个,并过滤空的(小于4像素)。
主要结果。定性结果如图9所示。在表5中,我们将我们的统一全景分割方法与几种不同对待事物和材料的既定方法进行了比较。我们报告全景质量(PQ)以及事物(PQth)和材料(PQst)的分解。我们还报告了在任何全景后处理之前(在我们的例子中,在进行像素级argmax之前)的遮罩AP(在things类上计算)。我们表明,DETR优于COCO-val 2017上公布的结果,以及我们强大的PanopticFPN基线(为了公平比较,使用与DETR相同的数据扩充进行训练)。结果分解表明,DETR在stuff类上尤其占优势,我们假设编码器注意力允许的全局推理是这一结果的关键因素。对于事物类,尽管与掩码AP计算上的基线相比,存在高达8个mAP的严重赤字,DETR获得了有竞争力的PQth。我们还在COCO数据集的测试集上评估了我们的方法,并获得了46 PQ。我们希望我们的方法将激发未来工作中对全景分割完全统一模型的探索。
图9:由DETR-R101生成的全景分割的定性结果。DETR以统一的方式为事物和材料产生一致的掩码预测。
5.总结
我们提出了DETR,一种基于transformers和二分匹配损失的目标检测系统的新设计,用于直接集合预测。该方法在具有挑战性的COCO数据集上实现了与优化的Faster R-CNN基线相当的结果。DETR易于实施,具有灵活的架构,可轻松扩展到全景分割,具有竞争力的结果。此外,它在大型对象上的性能明显优于Faster R-CNN,这可能要归功于自注意力对全局信息的处理。这种探测器的新设计也带来了新的挑战,特别是关于小物体的训练、优化和性能。目前的探测器需要几年的改进来应对类似的问题,我们希望未来的工作能够成功地为DETR解决这些问题。