DETR:End-to-End Object Detection with Transformers

2005.12872v3

https://github.com/facebookresearch/detr

摘要

提出了一种将对象检测视为直接集预测问题的新方法。我们的方法简化了检测管道,有效地消除了许多手工设计的组件的需要,如非最大抑制程序或锚定生成,显式地编码了我们对任务的先验知识。新框架的主要成分,称为DEtection TRansformer或DETR,是一个基于集合的全局损失,通过双向匹配迫使唯一的预测,以及encoder-decoder架构。给定一组固定的小型学习对象查询,DETR对对象和全局图像上下文之间的关系进行推理,以直接并行输出最终的预测集。与许多其他现代检测器不同,这个新模型在概念上很简单,不需要专门的库。DETR在具有挑战性的COCO目标检测数据集上展示了准确性和运行时性能,与完善和高度优化的快速RCNN基线相当。此外,DETR可以很容易地推广到以统一的方式产生全光分割。我们证明,它明显优于竞争基线。

导言

image.png

图1: DETR通过将一个常见的CNN与一个变压器体系结构相结合,直接预测(并行地)最终的检测集。在训练过程中,双向匹配用地面真值盒唯一地分配预测。没有匹配的预测应该产生一个“no object”(∅)类预测。

我们通过将目标检测视为一个直接集的预测问题来简化训练管道。我们采用了一种基于变压器[47]的编解码器结构,这是一种流行的序列预测结构。变压器的自我注意机制,明确地模拟了序列中元素之间的所有成对交互作用,使得这些架构特别适合于集合预测的特定约束,如删除重复的预测。

我们的工作建立在之前在几个领域的工作基础上:集合预测的二部匹配损失、基于变压器的编解码器架构、并行解码和目标检测方法。

Set Prediction

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

Transformers and Parallel Decoding

Transformers是由Vaswani等人. [47]介绍的,作为一种新的基于注意力的机器翻译构建模块。注意机制[2]是一种从整个输入序列中聚合信息的神经网络层。Transformers引入了自注意层,类似于非局部神经网络[49],它会扫描一个序列中的每个元素,并通过聚合整个序列中的信息来更新它。基于注意力的模型的主要优点之一是其全局计算和完美的内存,这使得它们比rnn更适合于长序列。Transformers现在在自然语言处理、语音处理和计算机视觉方面的许多问题中取代rnn。

Transformers首先被用于自回归模型,遵循早期的序列到序列模型[44],逐个生成输出令牌。然而,高昂的推理成本(与输出长度成正比,难以批处理)导致了并行序列生成的发展,在音频[29]、机器翻译[12,10]、单词表示学习[8]和最近的语音识别[6]领域。我们还结合了变压器和并行解码,以便在计算成本和执行集合预测所需的全局计算的能力之间进行适当的权衡。

Object detection

大多数现代的目标检测方法都是相对于一些初始的猜测而做出预测的。两阶段检测器[37,5]预测盒关于proposals,而单阶段的方法使预测关于anchors[23]或可能的对象中心[53,46]的网格。最近的工作[52]表明,这些系统的最终性能在很大程度上取决于这些初始猜测的确切设置方式。在我们的模型中,我们能够删除这个手工制作的过程,并通过使用绝对预测盒预测直接预测检测集来简化检测过程输入图像而不是锚。

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

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

**Recurrent detectors。**最接近我们的方法的是目标检测[43]和实例分割[41,30,36,42]的端到端集预测。与我们类似,他们使用基于CNN激活的编解码器架构的二部匹配损失来直接产生一组边界框。然而,这些方法只在小数据集上进行评估,而不是根据现代基线进行评估。特别是,它们是基于自回归模型(更准确地说是rnn),所以它们没有利用最近的并行decoding transformers。

The DETR model

在检测中,直接集预测是必不可少的: (1)集合预测损失,迫使预测和地面真相之间的唯一匹配。(2)一种预测(在一次传递中)一组对象并建模它们之间的关系的体系结构。

Object detection set prediction loss

DETR architecture

整体的DETR体系结构出奇的简单,如图2所示。它包含三个主要组件,我们将在下面描述:一个CNN主干来提取一个紧凑的特征表示,一个编码器-解码器变压器,和一个简单的前馈网络(FFN)来进行最终的检测预测。

与许多现代检测器不同,DETR可以在任何深度学习框架中实现,该框架提供了一个通用的CNN主干和一个只有几百行的转换器架构实现。DETR的推理代码可以在PyTorch [32]中在少于50行中实现。我们希望我们的方法的简单性将吸引新的研究人员到检测社区。

**Backbone。**resnet50

Transformer编解码器就是原Transformer的编解码器。

匈牙利算法

![image.png](End-to-End+Object+Detection+with+Transformers/image 1.png)

Last updated