Transformers - 2 - End-to-End Object Detection with Transformers - 1

 

End-to-End Object Detection with Transformers

Abstract: 提出了一种将目标检测视为直接的集合预测问题的新方法。我们的方法简化了检测管道,有效地消除了对许多手工设计组件的需求,比如非最大抑制程序或anchor生成,它们明确地编码了我们关于任务的先验知识。这个名为DEtection TRansformer或DETR的新框架的主要组成部分是一个基于集合的全局损失,通过双边匹配强制进行唯一的预测,以及一个transformer编码器-解码器架构。给定一组固定的小范围学习对象查询,DETR会考虑对象和全局图像上下文的关系,以直接并行输出最终的预测集。与许多其他现代探测器不同,新模型概念简单,不需要专门的库。DETR演示了该模型的精度和运行时性能 与构建得很好且高度优化的Faster-RCNN基线 在challenging COCO对象检测数据集上的一致性。此外,DETR可以很容易地进行推广,能以统一的方式生成全景分割。我们发现,它显著优于有竞争性的baselings。训练代码和预训练模型可见https://github.com/facebookresearch/detr.

 

1 Introduction

目标检测的目标是为每个感兴趣的对象预测一组边界框和类别标签。现代检测器以一种间接的方式解决这一集合预测任务,方法是在大量proposals[37,5]、anchors[23]或window denters[53,46]上定义替代回归和分类问题。它们的性能受到后处理步骤、anchor集的设计以及将目标框分配给anchor的启发式算法的显著影响,这些步骤在重复预测附近崩溃[52]。为了简化这些管道,我们提出了一种直接集预测方法来绕过替代任务。这种端到端的理念在复杂的结构化预测任务(如机器翻译或语音识别)方面取得了重大进展,但在目标检测方面还没有取得进展:之前的尝试[43,16,4,39]要么添加了其他形式的先验知识,要么在具有挑战性的基准上没有被证明具有强大的竞争力。本文旨在弥合这一差距。

我们将目标检测视为一个直接集预测问题,从而简化了训练流程。我们采用了一种基于transformers[47]的encoder-decoder架构,这是一种流行的序列预测架构。transformers的自注意机制明确地模拟了序列中元素之间的所有成对交互,使这些体系结构特别适用于集合预测的特定约束,例如删除重复预测。

我们的DEtection TRansformer(DETR,见图1)能一次预测所有对象,并使用集损失函数进行端到端训练,该函数在预测对象和ground truth对象之间执行二分匹配。DETR通过丢弃多个手工设计的编码先验知识的组件(如空间anchor或非最大抑制),简化了检测管道。与大多数现有的检测方法不同,DETR不需要任何自定义层,因此可以在包含标准CNN和transformer类的任何框架中轻松复制(在我们的工作中,我们使用标准深度学习库中Transformers[47]和ResNet[15] backbone的标准实现)。

与之前大多数关于直接集预测的工作相比,DETR的主要特点是二分匹配损失和transformer与(非自回归)并行解码的结合[29,12,10,8]。相比之下,以前的工作侧重于RNN的自回归解码[43,41,30,36,42]。我们的匹配损失函数唯一地将预测分配给ground truth对象,并对预测对象的排列保持不变,因此我们可以并行地呈现它们。

我们在一个最流行的目标检测数据集COCO[24]上评估DETR,与一个非常有竞争力的Faster R-CNN基线[37]进行对比。Faster R-CNN经历了多次设计迭代,自最初发布以来,其性能得到了极大提高。我们的实验表明,我们的新模型达到了相当的性能。更准确地说,DETR在大型对象上表现出明显更好的性能,这一结果可能是由transformer的非局部计算实现的。然而,它在小对象上的性能较低。我们预计,未来的工作将以类似FPN[22]开发 Faster R-CNN的方式来改善这一方面。
DETR的训练设置在多个方面不同于标准对象检测器。新模型需要超长的训练计划,并受益于transformer中的辅助解码损失。我们将深入探讨哪些组件对演示的性能至关重要。
DETR的设计理念很容易扩展到更复杂的任务。在我们的实验中,我们展示了在预训练的DETR 上训练的简单分割head超过了在全景分割[19](Panoptic Segmentation )上具有竞争力的基线,这是一项具有挑战性的像素级识别任务,最近变得很流行。

 

2 Related work 

我们的工作建立在多个领域的先前工作之上:集合预测的二分匹配损失、基于transformer的encoder-decoder架构、并行解码和对象检测方法。

2.1 Set Prediction 

没有标准的深度学习模型可以直接预测集合。基本的集合预测任务是多标签分类(参见[40,33]了解计算机视觉背景下的参考文献),其中基线方法one-vs-rest不适用于检测等问题,其中元素之间存在潜在结构(即基本相同的框)。这些任务的第一个困难是避免重复。目前大多数检测器使用非最大抑制等后处理方法来解决这个问题,但直接集预测不需要后处理。他们需要全局推理方案来模拟所有预测元素之间的交互,以避免冗余。对于恒定大小集预测,密集的全连接网络[9]是足够的,但代价高昂。一般的方法是使用自回归序列模型,如递归神经网络[48]。在所有情况下,损失函数基本不受预测的排列的影响。通常的解决方案是基于Hungarian算法[20]设计一个损失,以找到ground truth和预测之间的二分匹配。这加强了排列不变性,并保证每个目标元素都有唯一的匹配。我们遵循二分匹配损失方法。然而,与大多数之前的工作相比,我们不再使用自回归模型,而是使用具有并行解码的transformer,我们将在下面描述。

 

2.2 Transformers and Parallel Decoding

Vaswani等人[47]引入了Transformers,作为机器翻译的一个新的基于注意力的构建块。注意机制[2]是从整个输入序列中聚合信息的神经网络层。Transformers引入了自注意层,与Non-Local Neural Networks[49]类似,它扫描序列的每个元素,并通过聚合整个序列的信息来更新。基于注意的模型的主要优点之一是其全局计算能力和完美的记忆能力,这使得它们比RNNs更适合长序列。在自然语言处理、语音处理和计算机视觉的许多问题上,Transformers正在取代RNNs[8,27,45,34,31]。
Transformers最初用于自回归模型,遵循早期的序列到序列模型[44],一个接一个地生成输出tokens。然而,在音频[29]、机器翻译[12,10]、词表示学习[8]和最近的语音识别[6]等领域,令人望而却步的推理成本(与输出长度成正比,且难以批量操作)导致了并行序列生成的发展。我们还将transformer和并行解码结合起来,以便在计算成本和执行集合预测所需的全局计算能力之间进行适当的权衡。

 

2.3 Object detection

大多数现代目标检测方法都会根据一些初始猜测进行预测。two-stage探测器[37,5]预测关于proposals的boxes,而single-stage方法对anchors[23]或可能的物体中心网格[53,46]进行预测。最近的研究[52]表明,这些系统的最终性能在很大程度上取决于这些初始猜测的确切设置方式。在我们的模型中,我们能够删除这种手工制作的过程,并通过直接对输入图像而不是一个anchor做一个带有绝对box预测的检测集来简化检测过程

Set-based loss.  几个目标探测器[9,25,35]使用了二分匹配损失。然而,在这些早期的深度学习模型中,不同预测之间的关系仅用卷积层或全连接层建模,手工设计的NMS后处理可以提高它们的性能。最近的探测器[37,23,53]在ground truth和使用NMS的预测之间使用非唯一分配规则。

可学习的NMS方法[16,4]和关系网络[17]明确地对不同带有注意的预测之间的关系进行了建模。使用直接集损失不需要任何后处理步骤。然而,这些方法使用了额外的手工的上下文特征,比如proposal box坐标,来有效地建模检测之间的关系,同时我们寻找减少模型中编码的先验知识的解决方案。

Recurrent detectors.  最接近我们的方法是用于目标检测[43]和实例分割[41,30,36,42]的端到端集预测。与我们类似,他们使用基于CNN激活的encoder-decoder架构的二分匹配损失直接生成一组边界框。然而,这些方法仅在小数据集上进行评估,而不是根据现代基线进行评估。特别是,它们基于自回归模型(更准确地说是RNN),因此它们不会利用最近的并行解码transformer。

 

3 The DETR model

在检测中,直接集预测有两个要素是必不可少的:(1)集预测损失,它迫使预测和ground truth框之间进行唯一匹配;(2) 一个用来预测(在一次传播中)一组对象并对其关系建模的体系结构。我们在图2中详细描述了我们的体系结构。

 

3.1 Object detection set prediction loss 

DETR在decoder的一次传递中推断出一组固定大小的N个预测,其中N被设置为显著大于图像中对象数量的数字。训练的主要困难之一是根据ground truth对预测对象(类别、位置、大小)进行评分。我们的损失会在预测对象和ground truth对象之间产生最佳的二分匹配,然后优化特定对象(边界框)的损失。

使用y表示对象的ground truth集,是N个预测集。假设N是一个比图像中对象数量还大的值,我们将y当作一个前面是大小为N的集,后面跟着一个∅表示无对象类(因此这是一个N+1大小的集)。为了找到这两个集之间的二分匹配,我们使用最小的成本去搜索N个元素的排列

 其中是ground truth yi和索引为σ(i)的预测之间的一个成对匹配成本。遵循之前的研究(例如[43]),使用Hungarian算法能高效地计算该最优分配。

匹配成本将类预测和预测框和ground truth框相似度都考虑了进来。ground truth集的每个元素i可以看作,其中ci是目标类标签(有可能是∅),是一个定义了ground truth框中心坐标的向量,其高和宽于图像大小相关。对于索引为σ(i)的预测,我们定义其类ci的概率为,预测框为。根据这些注释,我们将定义为

这种寻找匹配的过程与现代检测器中用于将proposals[37]或anchors[22]匹配到ground truth对象的启发式分配规则的作用相同。主要的区别在于,我们需要找到一对一的匹配,以实现无重复的直接集预测。
第二步是计算损失函数,即前一步匹配的所有对的Hungarian损失。我们对损失的定义类似于普通物体探测器的损失,即类预测的负对数似然和后面定义的box损失的线性组合:

 其中在第一步(1)中计算得到的最佳分配。实际中,当ci=∅时,我们使用因子10去对log概率降权以解决类不平衡问题。这类似于Faster R-CNN训练程序中通过二次抽样平衡正/负proposals[37]。请注意,对象和∅之间的匹配成本不依赖于预测,这意味着在这种情况下,成本是一个常数。在匹配成本中,我们使用概率而不是log概率。这使得类预测项与(如下)同单位,能观察到更好的性能。

Bounding box loss.  匹配损失和Hungarian损失的第二部分是,对边界box进行评分与将box预测当作一些初始guesses的

的许多检测器不同,我们直接进行box预测。虽然这种方法简化了实现,但也带来了损失相对扩大的问题。最常用的损失对小的和大的boxes有着不用的尺度,即使他们有着相似的相对errors。为了缓解该问题,我们将损失线性连接到一个广义尺度不变的IoU损失上。总之,box损失被定义为了,其中为超参数。这两个损失使用batch中的对象数量进行归一化。

 

3.2 DETR architecture 

 整个DETR体系结构非常简单,如图2所示。它包含三个主要组件,我们将在下面描述:用于提取紧凑特征表示的CNN backbone、 encoder-decoder transformer和用于进行最终检测预测的简单前馈网络(FFN,feed forward network )。

与许多现代检测器不同,DETR可以在任何提供了常见的CNN backbone和Transformer架构的深度学习框架中实现,且只需几百行。在Pytorch[32]中,DETR的推理代码可以在不到50行的代码中实现。我们希望,我们方法的简单性将吸引新的研究人员加入检测界。

 Backbone. 从初始图像开始(将输入图像批处理在一起,充分应用0填充,以确保它们都具有与批处理中最大图像相同的尺寸(H0,W0)),CNN backbone生成一个有着更低分辨率的激活map 。其中

 

Transformer encoder. 首先,1x1卷积将高层激活map f的channel维数从C降低到更小的维数d。创建一个新的特征map 。encoder需要一个序列作为输入,因此我们将z0的空间维度压缩为一维,从而生成d×HW的特征map。每个encoder层都有一个标准体系结构,由一个多头自注意模块和一个前馈网络(FFN)组成。由于transformer架构是permutation-invariant的,因此我们用固定的位置编码(positional encodings )[31,3]对其进行补充,这些编码被添加到每个注意层的输入中。我们根据补充材料给出了架构的详细定义,该定义遵循[47]中描述的定义。

Transformer decoder. decoder遵循transformer的标准架构,使用多头自注意encoder-decoder机制转换大小为d的N个嵌入。与原始transformer的不同之处在于,我们的模型在每个decoder层并行解码N个对象,而Vaswani等人[47]使用自回归模型,一次预测一个元素的输出序列。我们建议不熟悉这些概念的读者阅读补充材料。由于decoder也是permutation-invariant的,N个输入嵌入必须不同才能产生不同的结果。这些输入嵌入是学习的位置编码,我们称之为对象查询(object queries),与encoder类似,我们将它们添加到每个注意层的输入中。decoder将N个对象查询转化为一个输出嵌入。然后,通过前馈网络(在下一小节中描述)将它们独立解码为框坐标和类标签,从而产生N个最终预测。该模型利用对这些嵌入的self-和encoder-decoder的注意,利用对象之间的成对关系,对所有对象进行全局推理,同时能够将整个图像用作上下文。

 Prediction feed-forward networks (FFNs). 最终的预测由一个具有ReLU激活函数和隐藏维度d的三层感知器和一个线性投影层计算。FFN预测输入图像的box的标准化中心坐标、高度和宽度,线性层使用softmax函数预测类别标签。因为我们预测了一个由N个边界框组成的固定大小的集合,其中N通常比图像中感兴趣的对象的实际数量大得多,所以我们需要一个额外的特殊类标签∅ 用于表示未检测到任何对象。该类与标准对象检测方法中的“background”类起着类似的作用。

 Auxiliary decoding losses.  我们发现,在训练过程中,在decoder中使用辅助损失[1]很有帮助,尤其是帮助模型输出每个类的正确对象数。我们在每个decoder层之后添加预测FFN和Hungarian损失。所有预测FFN都共享其参数。我们使用一个额外的共享layer-norm来规范来自不同decoder层的预测FFN的输入。

 

4 Experiments 

我们表明,通过在COCO上的定量评估,与Faster R-CNN相比,DETR取得了更有竞争力的结果。然后,我们对结构和损失进行了详细的消融研究,并提供了见解和定性结果。最后,为了证明DETR是一个通用且可扩展的模型,我们给出了全景分割的结果,其在固定的DETR模型上只训练了一个小的扩展。 代码可见https://github.com/facebookresearch/detr. 

 Dataset.  我们在COCO 2017检测和全景分割数据集[24,18]上进行了实验,其中包含118k训练图像和5k验证图像。每个图像都用边界框和全景分割进行注释。每个图像平均有7个实例,在训练集中,单个图像中最多有63个实例,有小有大。如果未指定,我们将AP报告作为bbox AP,即多个阈值上的整数度量。为了与Faster R-CNN进行比较,我们报告了最后一个训练epoch的验证AP,对于消融实验,我们报告了最后10个epoch的验证结果的中位数。

Technical details.  我们使用AdamW[26]对DETR进行训练,将初始transformer的学习率设置为10−4,backbone的设置为10−5,权重衰减设置为10−4.所有transformer权重均采用Xavier init[11]进行初始化,backbone采用torchvision的ImageNet预训练ResNet模型[15],带有冻结的batchnorm层。我们报告了两个不同backbone的结果:一个ResNet-50和一个ResNet-101。相应的模型分别称为DETR和DETR-R101。遵循[21],我们还通过在backbone的最后一个阶段增加一个dilation,并从该阶段的第一个卷积中移除一个stride来提高特征分辨率。相应的模型分别称为DETR-DC5和DETR-DC5-R101(dilated C5 stage)。这种修改将分辨率提高了两倍,从而提高了小对象的性能,但encoder的自注意成本增加了16倍,导致计算成本总体增加了2倍。表1给出了这些模型的FLOPs与Faster R-CNN的完整比较。

 

我们使用比例增强,调整输入图像的大小,使最短边至少为480,最多为800像素,而最长边最多为1333[50]。为了通过encoder的自注意来帮助学习全局关系,我们还在训练期间应用随机裁剪增强,将性能提高约1 AP。具体来说,一个训练图像以0.5的概率裁剪为随机矩形patch,然后再次调整大小为800-1333。对transformer进行训练,默认dropout率为0.1。在推理时,一些slots被预测为空类(即无对象)。为了优化AP,我们使用得分第二高的类来作为这些slots的预测结果。与过滤掉空slots的方法相比,这中方法将AP提高了2个点。其他训练参数见A.4节。在我们的消融实验中,我们使用了300个epochs的训练方案,200个epochs后学习率下降了10倍,其中一个epoch是对所有训练图像的一次传递。在16个V100 GPU上训练300个epochs的基准模型需要3天,每个GPU有4个图像(因此总batch为64个)。与Faster R-CNN相比,我们训练了500个epochs,学习率在400个epochs后下降。与较短的训练方案(即epochs数更少的方案)相比,该方案增加了1.5 AP。 

 

4.1 Comparison with Faster R-CNN 

Transformer通常使用Adam或Adagrad优化器进行训练,训练方案很长(即epoch数量大),且使用dropout,对于DETR来说也是如此。然而,Faster R-CNN是用SGD进行训练的,仅进行少量的数据增强,因此我们不知道Adam或dropout的应用效果。尽管存在这些差异,我们还是试图让Faster R-CNN的基线更强。为了使其与DETR一致,我们将广义IoU[38]添加到box损失中,同样的随机裁剪增强数据和长期训练已知可以改善结果[13]。结果见表1。在顶部部分中,我们展示了Detectron2 Model Zoo[50]对按照3倍时间方案训练的Faster R-CNN结果。在中间部分,我们显示了模型相同(带“+”)且有着相同增强操作,但训练时长是9倍(109个epochs)的模型的结果,总共增加了1-2 AP。在表1的最后一部分中,我们展示了多个DETR模型的结果。为了在参数数量上具有可比性,我们选择了一个带有6个Transformer和6个decoder层的模型,宽度为256,带有8个注意头。与带有FPN的Faster R-CNN一样,该模型有413万个参数,其中23.5万个在ResNet-50中,17.8万个在Transformer中。尽管Faster R-CNN和DETR仍有可能随着训练时间的延长而进一步提高,但我们可以得出结论,在相同的参数数量下,DETR可以有和Faster R-CNN相同的竞争力,在COCO-val子集上得到了42 AP的效果。DETR实现该效果的方法是通过提高APL(+7.8),但请注意,该模型在APS(-5.5)中仍然落后。具有相同参数数量和类似FLOP计数的DETR-DC5具有更高的AP,但在APs中仍然显著落后。Faster R-CNN和带有ResNet-101 backbone的DETR也显示出类似的结果。

 

4.2 Ablations 

transformer decoder中的注意机制是建模不同检测的特征表示之间关系的关键组件。在我们的消融分析中,我们探讨了架构的其他组件和损失如何影响最终性能。在本研究中,我们选择了基于ResNet-50的DETR模型,该模型具有6个encoder、6个decoder层,宽度为256。该模型的参数为41.3M,在短方案(即短epochs)和长方案内分别达到40.6和42.0 AP的结果,运行速度为28 FPS,与具有相同backbone的Faster R-CNN-FPN类似。
Number of encoder layers.  我们通过改变encoders层的数量来评估全局图像级自注意的重要性(表2)。在没有encoder层的情况下,整体AP下降了3.9个点,在大对象上更显著地下降了6.0个AP。我们假设,通过使用全局场景推理,encoder对于分离对象很重要。在图3中,我们将训练模型的最后一个encoder层的注意力map可视化,集中在图像中的几个点上。encoder似乎已经分离了实例,这可能简化了decoder的对象提取和定位。

 

 

Number of decoder layers.  我们在每个解码层之后应用辅助损失(见第3.2节),因此,通过设计对预测FFNs进行训练,以从每个解码层的输出中预测对象。我们通过评估在解码的每个阶段预测的对象来分析每个decoder层的重要性(图4)。AP和AP50在每一层之后都会改善,在第一层和最后一层之间,总共有非常显著的+8.2/9.5 AP改善。由于其set-based的损失,DETR在设计上不需要NMS。为了验证这一点,我们为每个解码器后的输出运行默认参数[50]的标准NMS程序。NMS提高了来自第一个decoder的预测的性能。这可以解释为transformer的单个解码层无法计算输出元素之间的任何互相关关系,因此容易对同一对象进行多个预测。在第二层和后续层中,激活过程中的自注意机制允许模型抑制重复预测。我们观察到,NMS带来的改善随着深度的增加而减少。在最后几层,我们观察到,由于NMS错误地删除了正确的正预测,AP出现了小幅度的损失。

 

 与可视化encoder注意类似,我们在图6中可视化decoder注意,用不同的颜色为每个预测对象的注意map着色。我们观察到decoder的注意力是相当局部的,这意味着它主要关注物体的端点,如头部或腿部。我们假设,在encoder通过全局注意分离实例之后,decoder只需要关注端点来提取类和对象边界。

 Importance of FFN.  Transformer内部的FFN可以被视为1×1卷积层,使得encoder类似于注意力增强卷积网络[3]。我们试图完全移除它,只留下transformer层的注意。通过将网络参数的数量从41.3M减少到28.7M,只在transformer中留下10.8M,性能下降了2.3 AP,因此我们得出结论,FFN对于实现良好的结果非常重要。

Importance of positional encodings.   在我们的模型中有两种位置编码:空间位置编码(spatial positional encodings)和输出位置编码(output positional encodings,也叫对象查询,这是ground truth的位置编码)。我们对固定编码和学习编码的各种组合进行了实验,结果见表3。输出位置编码是必需的,不能删除,所以我们尝试在decoder输入端传递一次,或者在每个decoder注意层将其添加到查询中。在第一个实验中,我们完全删除了空间位置编码,并在输入端传递了输出位置编码,有趣的是,模型仍然达到了32个AP以上,与基线相比损失了7.8个AP。然后,我们在输入端一次性传递固定的sine空间位置编码和输出编码(如原始transformer[47]做的那样),并发现与直接传递位置编码到注意相比,这会导致1.4 AP下降。通过将学习到的空间编码传递给注意,可以得到类似的结果。令人惊讶的是,我们发现不在encoder中传递任何空间编码只会导致较小的AP下降(1.3 AP)。当我们将编码传递给注意时,它们会在所有层中共享,并且输出编码(对象查询)总是被学习的。

考虑到这些消融,我们得出结论,transformer组件:encoder中的全局自注意、FFN、多个decoder层和位置编码,都对最终的目标检测性能有显著影响。

 

Loss ablations.   为了评估匹配成本和损失的不同组成部分的重要性,我们训练了几个打开和关闭它们的模型。损失有三个组成部分:分类损失、边界box距离损失和GIoU[38]损失。分类损失对于训练来说是必不可少的,并且无法关闭,因此我们训练了一个没有边界box距离损失的模型,以及一个没有GIoU损失的模型,并与基线,即在所有三种损失的情况下进行训练的模型进行比较。结果见表4。GIoU损失本身占了模型性能的大部分,与基线相比仅损失0.7 AP。在没有GIoU的情况下使用,结果很差。我们只研究了不同损失的简单消融(每次使用相同的权重),但其他组合方法可能会获得不同的结果。

 

 

 4.3 Analysis 

 Decoder output slot analysis 在图7中,我们将COCO 2017 val集合中所有图像的不同slots预测框可视化。DETR为每个查询slot学习不同的特点。我们观察到,每个slot都有不同的操作模式,关注不同的区域和box大小。特别地,所有slots都具有用于预测图像这么宽的box的模式(可视为在图的中间对齐的红色点)。我们假设这与COCO中物体的分布有关。

 Generalization to unseen numbers of instances.  COCO中的一些类没有在同一图像中用同一类的多个实例很好地表示。例如,训练集中没有超过13只长颈鹿的图像。我们创建一个合成图像来验证DETR的泛化能力(见图5)。我们的模型能够在图像上找到所有的24只长颈鹿,这显然是不符合分布的。这个实验证实了在每个对象查询中没有强大的类专门化。

 

 

4.4 DETR for panoptic segmentation 

全景分割[19]最近引起了计算机视觉界的广泛关注。与Faster R-CNN[37]扩展为Mask R-CNN[14]类似,DETR可以通过在decoder输出上添加mask head来实现自然扩展。在本节中,我们演示了这样一个head可以通过以统一的方式处理stuff和thing类来产生全景分割[19]。我们在COCO数据集的全景注释上进行了实验,该数据集除80个stuff类别外,还有53个things类别。

我们使用相同的配方训练DETR去预测COCO上的stuff和things类的boxes。为了使训练成为可能,需要预测框,因为Hungarian匹配是使用框之间的距离计算的。我们还添加了一个mask head,用于预测每个预测框的二进制mask,见图8。它将每个对象的transformer decoder的输出作为输入,并在encoder的输出上计算该嵌入的多头(有M个头部)注意分数,以小分辨率生成每个对象的M个注意热图。为了进行最终预测并提高分辨率,使用了类似FPN的体系结构。我们将在附录中详细描述该体系结构。masks的最终分辨率为的stride为4,每个mask使用DICE/F-1损耗[28]和Focal损耗[23]进行独立监督。

mask head可以联合训练,也可以分两步进行,即我们只为了boxes训练DETR,然后冻结所有权重,只训练mask head25个epochs。在实验上,这两种方法给出了相似的结果,我们报告了使用后一种方法的结果,因为它可以缩短总的训练时间。

 

为了预测最终的全景分割,我们只需在每个像素的mask分数上使用argmax,并将相应的类别分配给生成的mask。该程序确保最终masks没有重叠,因此,DETR不需要经常用于对齐不同masks的启发式[19]。

Training details. 我们按照边界框检测的方法训练DETR、DETR-DC5和DETR-R101模型,以预测COCO数据集中的stuff和things类周围的boxes。新的mask head经过了25个epochs的训练(详见补充资料)。在推断过程中,我们首先以低于85%的置信度过滤掉检测,然后计算每像素的argmax以确定每个像素属于哪个mask。然后,我们将同一stuff类别的不同mask预测折叠成一个,并过滤空mask预测(小于4像素)。

 Main results. 定性结果如图9所示。在表5中,我们将我们的统一全景分割方法与几种不同对待things和stuff的既定方法进行了比较。我们报告了Panoptic Quality (PQ)和break-down on things(PQth)和break-down on stuff(PQst)。在任何全景后处理之前(在我们的案例中,即在使用像素级argmax之前),我们也会报告mask AP(根据things类计算)。我们表明,DETR的表现优于COCO val 2017上公布的结果,以及我们强大的PanopticFPN基线(为了公平比较,使用与DETR相同的数据增强进行训练)。结果break-down显示,DETR在stuff类中尤其占主导地位,我们假设encoder注意所允许的全局推理是这个结果的关键因素。对于things类,尽管与mask AP计算的基线相比,DETR的mAP少了多达8个,但DETR获得了具有竞争力的PQth。我们还在COCO数据集的测试集上评估了我们的方法,获得了46 PQ。我们希望,我们的方法将对未来探索全景分割的完全统一模型的工作有所启发。

 

 

5 Conclusion 

我们提出了DETR,这是一种基于transformer和用于直接集预测的二分匹配损失的新设计的目标检测系统。该方法在具有挑战性的COCO数据集上实现了与优化Faster R-CNN基线相当的结果。DETR易于实现,具有灵活的体系结构,易于扩展到全景分割,具有有竞争力的结果。此外,与Faster R-CNN相比,它在大型物体上的表现要好得多,这可能要归功于自注意对全局信息的处理。
探测器的这种新设计也带来了新的挑战,特别是在小物体的训练、优化和性能方面。目前的探测器需要几年的改进来应对类似的问题,我们希望未来的工作能够成功地为DETR解决这些问题。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-03-16 18:52  慢行厚积  阅读(320)  评论(0编辑  收藏  举报