一、背景
目前,多模态推理模型大多都依赖于预先训练好的目标检测器来从图像中提取proposal。然而检测器只能检测出固定类别的目标,这使得模型很难适应自由文本中视觉concept的长尾分布,因此本文提出了MDETR,一种端到端调制检测器,能够根据原始文本query直接来检测图像中的目标,基于Transformer的结构,通过在模型的早期阶段融合这两种模态的信息,来对文本和图像进行共同的推理。
最终,MDETR在检测和多个下游任务上都取得了SOTA的性能。
二、动机
在SOTA的多模态语义理解系统中,通常会采用目标检测网络从图像中提取proposal。
这样的处理方式会导致一些问题,比如不适用于一些下游任务、成为模型性能提升的瓶颈等等。除此之外,由于在模型的训练过程中,目标检测网络的参数通常是被固定的,这就会进一步影响模型的感知能力;另外,使用的检测网络提取的特征,也会导致模型只能访问到检测区域的信息,不能感知整张图片的信息。因此,在视觉-语言的跨模态任务中,这样的方式就回导致语言和视觉信息的交互限制在了语言信息和检测结果之间的交互,极大地影响了模型的性能上限。
因此,本文的作者基于DETR,提出了一个端到端的调制检测器MDETR,结合训练数据中的自然语言理解来执行目标检测任务,真正实现了端到端的多模态推理。在训练过程中,MDETR将文本和检测框的对齐作为一种监督信号。
不同于目前的目标检测网络,MDETR能够检测出自由形式文本中的concept,然后泛化到没见过的类别和属性的组合。(如下图所示,对于 “A pink elephant”,虽然MDETR在训练过程中没有见过粉色和蓝色的大象,但是依旧能够推理检测出正确颜色的大象。)
三、方法
3.1 背景
本文提出的MDETR基于DETR模型,DETR是一个由Backbone和Transformer Encoder-Decoder组成的端到端目标检测网络(DETR结构如下图所示)。
DETR首先将图片经过一个CNN backbone生成视觉特征,然后将这些视觉特征flatten之后,加上position encoding,送入到Transformer的Encoder中。Decoder的输入为N个可学习的embedding,原文中叫做object queries,这些queries可以被视为模型需要填充检测目标的插槽。
这些object queries送入到decoder之后,采用cross-attention层,与encoded的图像特征做信息交互,并预测每个query的输出embedding。
最后每个query的输出embedding通过一个参数共享的FFN来预测框的坐标和类别标签。
因为每个query负责预测一个框,所以预设的query数量是图像中object数量的上界。由于图像中的实际对象数量可能小于的query数量N,作者使用一个与“无对象”对应的额外类标签,由$\phi$表示。
DETR在训练过程中采用了Hungarian matching loss,用来计算N和queries对应的object和ground-truth的二分匹配。每个匹配的对象都使用相应的目标作为ground truth进行监督,而不匹配的对象则用“无对象”标签$\phi$进行监督。
分类的head用cross-entropy进行监督,bounding box的head用L1 Loss和广义IoU进行监督。
3.2 MDETR
MDETR的结构如上图所示。
对于图像模型,MDETR采用的是一个CNN backbone来提取视觉特征,然后加上二维的位置编码;对于语言模态,作者采用了一个预训练好的Transformer语言模型来生成与输入值相同大小的hidden state。然后作者采用了一个模态相关的Linear Projection将图像和文本特征映射到一个共享的embedding空间。
接着,将图像embedding和语言embedding进行concat,生成一个样本的图像和文本特征序列。这个序列特征首先被送入到一个Cross Encoder进行处理,后面的步骤就和DETR一样,设置Object Query用于预测目标框。