2021:MDETR-Modulated Detection for End-to-end Multi-Modal Understanding

2023-10-31 21:30

本文主要是介绍2021:MDETR-Modulated Detection for End-to-end Multi-Modal Understanding,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

        多模态推理依赖于一个预训练过的对象检测器来从图像中提取感兴趣的区域,然而,这个关键的模块通常作为一个黑箱,在对象和属性的固定词汇表上进行训练, 独立于下游任务。这使得捕获自由形式文本表达的视觉概念的长尾具有挑战性。本文中,我们提出MDETR一种端到端的调制检测器,它可以检测基于原始文本查询的图像中的对象,如标题或一个问题。我们使用一个基于Transformer的结构,通过在模型的早期阶段融合这两个模态,来对文本和图像进行联合推理。我们在1.3M文本-图像对上对网络预训练,从已存在的多模态数据集中挖掘出来,在文本和对象之间有显示对齐。然后在几个下游任务上进行微调,如短语接地、参考表达理解和分割,在流行的基准测试上实现最先进的结果。我们还研究了当在一个少量样本设置中微调时,我们的模型作为一个对象检测器在一个给定的标签集上的效用。我们表明,我们的预训练方法提供了一种方法来处理那些有很少的标签实例的对象类别的长尾类。我们的方法可以很容易扩展到视觉问答、在GQA和CLEVER上取得竞争性能。

一、介绍

        对象检测是最先进的多模态理解系统[6,28]的组成部分,通常用作黑盒检测图像中固定的固定词汇,然后进行多模态对齐。这种“流水线”方法限制了与其他模式作为上下文的协同训练,并限制了下游模型只能访问检测到的对象,而不能访问整个图像。此外,检测系统通常是冻结的,阻止了进一步细化模型的感知能力。在视觉语言设置中,它意味着将结果系统的词汇限制在检测器的类别和属性中,通常是这些任务的性能的瓶颈,因此,这样的系统不能识别在自由形式文本中表达的概念的新组合。

        [66,45,13]最近的一系列工作考虑了文本条件对象检测的问题,这些方法扩展了主流的一阶段和两阶段的检测架构来实现这一目标。然而,据我们所知,还没有人证明这种检测器可以提高需要对被检测对象进行推理的下游任务的性能,例如视觉问题回答(VQA)。我们认为,这是因为这些检测器不是端到端可区分的,因此不能与下游任务协同训练

        我们的方法,MDETR,是一种基于最近的DETR[2]检测框架的端到端调制检测器,并结合自然语言理解执行对象检测实现真正的端到端多模态推理MDETR仅依赖于文本和对齐的框作为对图像中概念的一种监督形式,因此,与之前检测方法不同,MDETR从自由形式的文本中检测细微的概念,并推广到看不见的类别和属性的组合。图1展示了这种组合以及调制检测。根据设计,我们的预测是接地于文本的,这是视觉推理的关键要求。当使用200000张图像和对齐的文本和框注释的一个数据集预训练,我们在Flickr30k数据集上的短语接地任务、RefCOCO/+/g数据集参考表达式理解、和参考表达式分割实现最好的结果,以及在GQA和CLEVR基准视觉问题回答上有竞争的性能。

         我们的贡献如下:1)引入一个来自DETR检测器的端到端的文本调制的检测系统;2)我们证明了调制检测方法可以无缝地应用于解决如短语接地和引用表达理解等任务,使用具有合成和真实图像的数据集在这两个任务上实现最先进的性能;3)我们表明,良好的调制检测性能可以自然地转移到下游任务的性能,如在视觉问答、参考表达分割和在少样本长尾目标检测方面实现具有竞争力的性能。

二、方法

2.1 背景

        DETR  DETR由一个主干(典型的是一个卷积残差网络),然后是一个Transformer编码-解码器组成的端到端检测模型。DETR编码器在来自主干的二维平面图像特征上操作并应用一系列transformer层解码器将一组被称为对象查询学习嵌入作为输入,它们可以视为模型需要用检测的对象填充的插槽。所有的对象查询都被并行输入解码器,解码器使用交叉注意力层来查看编码的图像,并预测每个查询的输出嵌入每个对象查询的最终表示使用共享的前馈层独立地解码为框坐标和类标签对象查询的数量实际上是模型可以同时检测到的对象数量的上限。它必须被设置为一个人在一个给定的图像中可能期望遇到的物体数量的一个足够大的上限。由于特定图像中的实际对象数量可能小于查询N的数量,因此使用了一个对应于“no object”的额外类标签,用∅表示。该模型被训练为为不对应于一个对象的每个查询输出此类。

        DETR使用Hungarian匹配损失进行训练,其中计算N个提出的对象和真实对象之间的二部匹配。每个匹配的对象都使用相应的目标作为ground-truth进行监督,而不匹配的对象则被监督来预测“no object”标签∅。分类头使用标准的交叉熵进行监督,而边界框头则使用绝对误差(L1损失)和广义IoU[48]的组合进行监督

2.2 MDETR

2.2.1 结构

        图2描述了MDETR的结构,与DETR一样,图像由卷积主干编码并展平。为了保存空间信息,在这个展平的向量上添加了二维位置嵌入。使用预训练过的transformer语言模型对文本进行编码,以生成与输入同样尺寸的隐藏向量序列。然后对图像和文本特征应用一个模态依赖线性投影,将它们投影到共享的嵌入空间中,然后将这些特征向量连接在序列维度上生成一个单一的图像和文本特征序列。这个序列被输入给一个被称为交叉编码器的联合transformer编码器。根据DETR,我们对对象查询应用一个transformer解码器,同时交叉参与注意交叉编码器的最终隐藏状态。解码器的输出用于预测实际的框

 2.2.2 训练

        我们提出了MDETR使用的两个附加的损失函数,它们鼓励图像和文本间的对齐。这两者都使用相同的注释来源:带有对齐的边界框的自由形式的文本。第一个损失函数,我们称为软token预测损失,是一个非参数对齐损失。第二个称为文本-查询对比对齐,是一个参数损失函数,强制执行对齐的对象查询和tokens之间的相似性。

        软token预测   对于调制检测,与标准检测设置不同,我们从引用每个匹配的对象的原始文本中预测tokens的跨度。具体地说,我们首先将任何给定句子的最大标记数设置为L=256。对于每个使用二部匹配匹配地面真实框的预测框,训练模型预测对象对应的所有标记位置的均匀分布。图2显示了一个例子,其中猫的框被训练来预测前两个单词的均匀分布。图6中,我们展示了这个例子中损失的简化可视化,即每个框的单词分布,但在实践中,我们使用BPE方案在标记化后使用令牌跨度。任何与目标不匹配的查询都会被训练来预测“无对象”标签∅。请注意,文本中的几个单词可以对应于图像中的同一对象,相反,有几个对象可以对应于同一个文本。例如,图像中两个框引用的“一对”可以在同一个标题中单独引用。通过以这种方式设计损失函数,我们的模型能够从相同的引用表达式中学习共引用的对象。

        对比对齐   虽然软令牌预测使用位置信息将对象与文本对齐,但对比对齐损失强制解码器输出的对象嵌入表示与交叉编码器输出的文本表示之间的对齐。这种额外的对比性对齐丢失确保了一个(视觉)对象的嵌入及其相应的(文本)标记在特征空间中的嵌入比不相关标记的嵌入更接近。这种约束比软令牌预测损失更强,因为它直接作用于表示,而不仅仅基于位置信息。更具体地说,考虑最大数量的标记L和最大数量的对象N。让Ti+是标记的集合,标记中一个给定的对象oi应该对齐,和Oi+是对象的集合,对象与一个给定的标记ti对齐。

        受InfoNCE[40]的启发,所有对象的对比损失由每个对象的正标记数归一化,可以写如下:

 其中τ是一个温度参数,我们根据文献[63,47]将其设置为0.07。通过对称性,所有标记的对比损失,由每个标记的正对象数归一化为:

 我们取这两个损失函数的平均值作为我们的对比性对齐损失。

        结合所有的损失   在MDETR中,使用二部匹配来寻找预测和地面真实目标之间的最佳匹配,就像在DETR中一样。主要的区别是,没有为每个对象预测类标签——而是预测文本中对应的相关位置的均匀分布(软标记预测)使用软交叉熵进行监督。除了DETR中的L1和GIoU损失外,匹配成本还包括这些。匹配后,总损失包括框预测损失(L1&GIoU)、软标记预测损失和对比性对齐损失。

三、实验

3.1 预训练调制检测

        对于预训练,我们专注于调制检测的任务,其目的是检测在对齐的自由形式文本中引用的所有对象。我们使用来自Flichr30k、MSCOCO和Visual Genome数据集的图像组成的一个合成数据集。使用参考表达式数据集、VG区域、Flickr实体和GQA训练平衡集的注释进行训练。 

        数据结合  对于每张图像,我们从这些数据集中获取所有注释,结合引用相同图像的文本,同时确保在所有的下游任务的验证或测试集中所有图像都从训练集中删除。句子的组合是使用图着色算法来完成的,该算法确保只有具有GIoU≤0.5的框的短语被组合,并且一个组合后的句子的总长度小于250个字符。通过这种方式,我们得到了一个具有1.3M对齐的图像-文本对的数据集。这种组合步骤是重要的有两个原因:1)数据效率,通过包装更多的信息到一个训练的例子;2)为我们的软标记预测损失提供了一个更好的学习信号,因为模型必须学会消除相同对象类别的多次出现的歧义,如图3所示。在单句情况下,软标记预测任务变得简单,因为它总是不看图像就能预测句子的根。在实验中,我们发现这种密集注释可以转化为文本和图像间更好的接地,进而实现更好的下游性能。

        模型   我们使用预训练过的RoBERTa-base作为文本编码器,有12个transformer编码器层,在多头注意力中隐藏层维度为768,每个有12个头。我们使用来自HuggingFace的实现和权重,对于视觉主干,我们探索了两个选择,一个是在ImageNet上,冻结的batchnorm层预训练的ResNet-101,与目前在多模态理解空间的文献相比较,流行的方法是使用在VG数据集上训练以ResNet-101主干的BUTD对象检测器。在我们的工作中,我们不受预训练的检测器的限制,并受它在对象检测器的成功的启发,我们选择探索EfficientNet family作为我们的主干。我们使用一个在除ImageNet外的大量无标签数据进行训练使用一种称为Noisy-Student的伪标记技术。我们选择EfficientNetB3,在ImageNet上只有12M权重的准确率达到84.1%,EfficientB5使用30M权重实现86.1%。我们使用Timm库提供的实现,冻结的batchnorm层。

3.2 下游任务

        在四个下游任务上评估我们的方法:参考表达式理解和分割、视觉问答和短语接地。

        视觉问答   我们评估我们的假设,调制检测通过在GQA数据集上微调我们的预训练模型对于多模态推理是一种有用的组成。为训练MDETR,我们使用GQA中提供的场景图来获得问题词和框间的对齐。我们的模型结构如图4所示,对象查询是输入到解码器的学习嵌入,每个嵌入都可用于检测对象。除了用于检测的100个查询外,我们还使用专门针对问题类型以及用于预测问题类型的查询,其中GQA注释中定义为REL、OBJ、全局、CAT和ATTR。我们将我们预训练过的模型在我们的组合数据集上训练40个epoch,并随机初始化这些查询以及每个的头,在非平衡的所有GQA分割上微调前125epoch,然后在平衡的分割上10epoch。在前125epoch时,我们训练调制的检测损失和问题回答,而重视回答问题的损失,鼓励模型更关注这个任务。对于平衡的分割微调,我们只使用问题回答损失,在推理过程中,类型头预测问题的类型,并从该头中提取答案。使用我们的ResNet-101主干的模型,我们不仅优于LXMERT和VL-T5,它们使用相当数量的数据,而且OSCAR在预训练中使用更多的数据。具有EfficientNet-B5主干的MDETR能够有更高的性能,如表5所示。NSM模型使用了外部场景图生成模型,而NMN模型在训练过程中使用了场景图和功能程序。

 3.2.1 用于长尾检测的少样本转移

        受CLIP成功的启发,在图像分类的零样本传输方面,我们探索了从一个预训练的MDETR模型在一个给定标签集上构建一个有用的检测器的机会与CLIP不同,我们不确保我们的预训练数据集包含所有目标类的平衡表示。通过构造,我们的数据集没有训练实例,其中有零个框与文本对齐,从而使模型产生偏差,以总是预测给定文本的框。这阻止了在真正的零镜头传输设置中进行评估,因此我们转向几镜头设置,其中模型根据部分可用标记数据进行训练。我们在LVIS数据集[11]上进行了实验,这是一个具有1.2k类的大词汇量的检测数据集,其长尾数据包含的训练样本很少,这使它成为当前方法的一个具有挑战性的数据集。联合的数据集通常会给标准检测器带来问题,并且需要开发特定的损失函数[56]。然而这种属性使得很适合训练MDETR:对于每个正的类别,我们创建一个由图像和类名的文本版本组成的训练实例,并提供该类别的所有实例作为注释。对于每个负的类别,我们提供了类名和一组空的注释。为了对给定的图像进行推断,我们查询每个可能的类名,然后合并在每个文本提示上检测到的框集。该推理方案在一个GPU上的成本约为10秒/张图像。

        我们对LVIS训练集的三个子集进行了微调MDETR,每个子集分别包含1%、10%和100%的图像。我们确保了类别的平衡抽样,这样我们的1%的集合包含每个类别中至少一个正的和一个负的例子。我们比较了两个基线:第一个基线是专门在LVIS的完整训练集上训练的Mask-RCNN。另一个是在MSCOCO上预先训练的DETR模型,然后在LVIS训练集的各个子集上进行微调。我们的结果如表6所示。根据最近关于[8]在大词汇表背景下的AP评估的建议,我们报告了固定的AP框,通过限制每个类别而不是每张图像的检测数量来获得。即使每个类只有1个示例,MDETR也利用了训练前的文本,并且在罕见类别上优于完全微调的DETR。然而,我们注意到,在整个训练集的完全微调下,罕见对象的性能从10%数据的20.9AP显著下降到100%的7.5,可能是由于极端的类别不平衡。我们希望重复因子采样等常用技术能够在未来的工作中改善这种情况。

 四、相关工作

        我们的方法虽然没有显式地使用程序监督,但它经过训练以检测执行中间推理步骤所需的对象。

        多模态理解的最新进展主要是通过预训练大型transformer模型从大量对齐的图像-文本数据中学习通用的多模态表示,然后对下游任务进行微调。这些方法可以被分为单流双流结构,这取决于文本和图像是由一个单一的组合transformer还是两个单独的transformer,然后是一些交叉注意力层。对于这两种类型,流行的方法是独立地提取视觉和文本特征,然后使用transformer的注意力机制学习两者的对齐。虽然这种方法改进了各种任务先进的结果,如图像-文本检索、短语接地、图像标注和视觉问答[25],它给更紧密的架构留下了机会,如MDETR,在模型的更早阶段在两个模态间流动信息。之前使用[42]和[39]等调制架构来实现这一点的一些尝试显示了在计数任务和视觉问题回答方面的改进。

        当前最先进的模型所使用的视觉特征是使用外部预先训练的检测器[1]提取的,它输出有噪声、经常过采样和模糊的区域。[28]试图通过使用标记作为文本和图像之间的锚点来缓解图像特征噪声的问题,这仍然是一种比MDETR中更弱的监督形式,在MDETR中,我们在文本中的单词或短语和图像中的对象之间有明确的对齐。为了减轻固定概念词汇表所隐含的约束,[72]对一个更大的对象检测数据集进行了训练,以追求更好的覆盖率。[9]在现有的高性能模型上进行对抗训练,提高更高性能。[68]试图将场景图预测作为其预训练的一部分,以学习更鲁棒的表示。最近的一些工作还试图构建多用途的多模态架构,从而能够在单个架构[16]中处理各种视觉语言的[7]和纯语言任务。另一个单独的工作是表达分割和短语检测模型,它们是[66,4,27]和两个阶段的[45,13],它们是专门为这个任务设计的。

五、结论

        我们提出了MDETR,一种完全可区分的调制检测器,我们在各种数据集上建立了它在多模态理解任务上的强大性能,并论证了它在其它下游应用中的潜力,如少样本检测和视觉问答。我们希望这项工作能为开发完全集成的多模态结构提供新的机会,而不依赖于黑盒对象检测器。

这篇关于2021:MDETR-Modulated Detection for End-to-end Multi-Modal Understanding的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/318271

相关文章

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro

2021-8-14 react笔记-2 创建组件 基本用法

1、目录解析 public中的index.html为入口文件 src目录中文件很乱,先整理文件夹。 新建components 放组件 新建assets放资源   ->/images      ->/css 把乱的文件放进去  修改App.js 根组件和index.js入口文件中的引入路径 2、新建组件 在components文件夹中新建[Name].js文件 //组件名首字母大写

2021-08-14 react笔记-1 安装、环境搭建、创建项目

1、环境 1、安装nodejs 2.安装react脚手架工具 //  cnpm install -g create-react-app 全局安装 2、创建项目 create-react-app [项目名称] 3、运行项目 npm strat  //cd到项目文件夹    进入这个页面  代表运行成功  4、打包 npm run build

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

Understanding the GitHub Flow

这里看下Github的入门介绍    --链接 GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub Flow works

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法