论文点我
Code点我
许多视觉场景都包含了承载重要信息的文本,因此理解图像中的文本对于后续的推理任务是至关重要的。例如,一个警告标志上的深水标签警告人们在现场的危险。最近的工作探索了TextVQA任务,它要求阅读和理解图像中的文本来回答一个问题。然而,现有的TextVQA方法大多基于两种模式之间的自定义成对融合机制,并将TextVQA转换为分类任务,限制为单个预测步骤。在这项工作中,我们提出了一种新的基于多模态转换器架构的TextVQA任务模型,该架构具有丰富的图像文本表示。我们的模型通过将不同的模式嵌入到一个共同的语义空间中来自然地融合不同的模式,在这个语义空间中,自我注意被应用到模式间和模式内的环境中。此外,通过动态指针网络实现了答案的迭代解码,允许模型通过多步预测而不是一步分类来形成答案。我们的模型在用于TextVQA任务的三个基准数据集上优于现有方法的一大截儿。
作为视觉推理的一个突出任务,视觉问题回答(VQA)任务[4]在数据集(如[4,17,22,21,20])和方法(如[14,3,6,25,33])方面得到了广泛的关注。然而,这些数据集和方法主要关注场景中的可视化组件。另一方面,他们往往忽略了一个至关重要的模式——图像中的文本——它承载着理解和推理场景的基本信息。例如,在图1中,标志上的深水警告人们场景中的危险。为了解决这个缺陷,最近提出了新的VQA数据集[44,8,37],其中的问题明确要求理解和推理图像中的文本,称为TextVQA任务。
图1所示。与之前在TextVQA任务上的工作(例如[44])相比,我们的模型伴随着丰富的图像文本特征,在一个联合嵌入空间上处理所有的模态,而不是模态之间的成对融合机制。此外,通过指针的迭代解码来预测答案,而不是在固定的词汇表上进行一步分类或从图像中复制单个文本标记。
TextVQA任务特别要求模型通过三种方式来查看、阅读和推理:输入问题、图像中的可视内容(如可视对象)和图像中的文本。基于图像的OCR结果,针对TextVQA任务提出了几种方法[44,8,37,7]。特别是,LoRRA[44]扩展了以前的VQA使用OCR注意力分支对[43]进行建模并添加OCR标记作为答案分类器的动态词汇表,允许从图像中复制单个OCR标记作为答案。类似地,在[37]中,OCR标记被分组成块,并添加到VQA模型的输出空间中。
虽然这些方法在一定程度上使阅读图像中的文本成为可能,但它们通常依赖于两种模式之间的自定义成对多模态融合机制(例如对图像区域的单跳注意和基于输入问题的文本标记),这限制了模式之间可能的交互类型。
此外,他们将答案预测视为一个单步分类问题——从训练集中选择一个答案或从图像中复制一个文本标记——这使得生成复杂的答案变得很困难,比如有多个单词的图书标题或招牌名称,或者有常见单词和特定的图像文本标记的答案,比如麦当劳汉堡,麦当劳来自于图片中的文字,而汉堡来自于模特自己的词汇。此外,以往工作中基于图像文本嵌入的文字特征表达能力有限,忽略了重要的线索,如外观(如字体和颜色)和文本标记在图像中的位置。例如,具有不同字体并且在空间上彼此分离的标记通常不属于同一街道标记。
在本文中,我们为了解决上述限制,提出新型多模态多复制网格(M4C)模型的TextVQA任务,基于transformer[48]架构,并通过动态指针进行迭代应答解码,如图1所示。我们的模型自然地融合了这三种输入模式,并在一个多模态转换器中均匀地捕获模式内和模式间的交互,它将每种模式中的所有实体投射到一个通用的语义嵌入空间中,并应用自我注意机制[38,48]来收集每个实体的关系表示。不同于把应答预测作为分类任务,我们在多个步骤执行迭代应答,通过一个动态指针网络增强我们的应答解码器,它允许以一种置换不变的方式选择图像中的文本,而不需要依赖比如以前工作中的LoRRA [44]中的任何特殊位置索引。此外,我们的模型能够将自己的词汇表与生成的答案中的图像中的文本相结合,如图4和图5中的示例所示。最后,我们介绍了一种基于多种线索的图像文本标记的丰富表示方法,包括其单词嵌入、外观、位置和字符级信息。
本文的贡献如下:1)我们证明了多个(两个以上)输入模态可以通过我们的多模态变压器结构自然地融合和联合建模。2)与之前在TextVQA上的工作不同,我们的模型在单个分类步骤之外对答案进行推理,并通过我们的点扩展多步骤解码器进行预测。3)我们对图像中的文本标记采用了丰富的特征表示,并证明了它比之前工作中仅基于单词嵌入的特征更好。4)我们的模型在三个富有挑战的数据集上取得了相比以前的重大提升,TextVQA [44] (+25% relative), ST-VQA [8] (+65% relative), and OCR-VQA [37] (+32% relative)。
基于阅读和理解图像文本的VQA。最近,一些数据集和方法[44,8,37,7]被提出用于基于图像中的文本的可视化问题回答(称为TextVQA任务)。LoRRA [44],在此任务之前的一项重要工作是扩展了Pythia[43]框架的VQA,并允许它复制一个单一的OCR令牌从图像作为答案,通过应用一个单一的注意跳跃(受问题限制)OCR标记,并将OCR标记索引包含在答案分类器的输出空间中。在[37]中提出了一个概念上类似的模型,其中OCR标记被分组成块,并添加到VQA模型的输入特性和输出答案空间中。此外,一些其他的方法[8,7]通过使用OCR输入扩展现有的VQA模型来支持文本阅读。然而,这些现有的方法受限于图像文本的简单特征表示、多模态学习方法和单步分类应答。在这项工作中,我们使用M4C模型来解决这些限制。
视觉和语言任务中的多模态学习。早期视觉和语言任务的方法常常通过对一种模式的注意而对另一种模式的注意来将图像和文本结合起来,例如基于文本的图像注意(如[51,34])。一些方法已经探索了多模态融合机制,如双线性模型(如[14,25])、自我注意(如[15])和图网络(如[30])。受在自然语言任务中Transformer和BERT架构的成功的启发,一些最近的工作[33,1,47,31,29,45,53,11]利用自监督也在大规模数据集上应用了基于变换的图像与文本融合。然而,现有的大多数作品都用一组特定的参数来处理每种模态,这使得它们很难扩展到更多的输入模态。另一方面,在我们的工作中,我们将所有来自每种形式的实体投射到一个联合嵌入空间中,用transformer架构在所有事物的列表上同样的对待它们。我们的结果表明,联合嵌入和自我注意是有效的建模多个(两个以上)输入模式。
使用指针进行动态复制。 TextVQA任务的许多答案来自于图像中的文本标记,如图书标题或街道标志。由于很难在答案词汇表中包含所有可能的文本标记,因此从图像中复制文本通常是更容易的答案预测选项。之前的工作已经探索了在不同的任务中动态复制输入,例如文本摘要[42],知识检索[52,基于指针网络[50]的图像字幕[35]及其变体。对于TextVQA任务,[44,37]提出通过复制OCR标记的索引添加到分类器输出中。但是,除了复制单个标记的限制之外(或块),这些方法的一个缺点是它们需要预先定义的OCR标记数量(因为分类器的输出维度是固定的),并且它们的输出依赖于标记的顺序。我们使用置换不变的指针网络和我们的多模态转换器克服了这个缺点。
在这项工作中,我们提出了多模态多复制网格(M4C),一种新的TextVQA任务的方法,基于指针增强的多模态变压器结构与迭代答案预测。给定一个问题和一个图像作为输入,我们从三种模式中提取特征表示——问题、图像中的视觉对象和图像中的文本。这三种模式分别表示为疑问词特征列表,来自现成目标检测器的可视目标特征列表,和基于外部OCR系统的OCR标记特征列表。
我们的模型将实体的特征表现(在我们的例子中是问题词、检测到的对象和检测到的OCR标记)从三种模式投射成一个学习的公共嵌入空间中的向量。然后,将多层转换器[48]应用于所有投影特征的列表中,用模内和模间上下文丰富它们的表示。我们的模型通过动态指针网络的迭代解码来预测答案。在解码过程中,它以自回归的方式输入前一个输出来预测下一个答案组件。在每个步骤中,它要么从图像中复制一个OCR标记,要么从其固定的回答词汇表中选择一个单词。图2显示了我们的模型的概述。
我们的模型接收来自三种模式的输入——问题词语、可视对象和OCR标记。我们为每种模态提取特征表示,并通过以下特定领域的嵌入方法将它们投射到一个公共的d维语义空间中。
嵌入问题词语。给出一个K个单词序列的问题,我们使用预先训练好的BERT[13]模型将这些单词嵌入到 d d d维特征向量 { x k q u e s } \{x_k^{ques}\} {xkques} (其中 k = 1 , … , K k = 1,\dots,K k=1,…,K)。在训练过程中,使用问题回答损失对BERT参数进行微调。
嵌入检测到的对象。 给定一幅图像,我们通过一个预先训练好的检测器(在我们的例子中是Faster R-CNN[41])获得一组M个可视对象。追随之前的工作[3,43,44],我们从第 m m m个对象的检测器输出中提取外观特征 x m f r x_m^{fr} xmfr(其中 m = 1 , … , M m = 1,\dots,M m=1,…,M)。为了捕获其在图像中的位置,我们从第 m m m对象的相对边界框坐标 [ x m i n / W i m , y m i n / H i m , x m a x / W i m , y m a x / H i m ] [x_{min}/W_{im},y_{min}/H_{im},x_{max}/W_{im},y_{max}/H_{im}] [xmin/Wim,ymin/Him,xmax/Wim,ymax/Him],引入一个4维度位置特征,其中 W i m , H i m W_{im},H_{im} Wim,Him分别是图像的宽度和高度。然后,外观特征和位置特征通过两个学习过的线性变换被投影到d维度空间(其中 d d d与前面的问题词嵌入相同).并将其归结为最终嵌入对象 { x m o b j } \{x_m^{obj}\} {xmobj}:
x m o b j = L N ( W 1 x m f r + L N ( W 2 x m b ) ) (1) x_m^{obj} = LN(W_1x_m^{fr} + LN(W_2x_m^b)) \tag{1} xmobj=LN(W1xmfr+LN(W2xmb))(1)
式中, W 1 , W 2 W_1,W_2 W1,W2是学习过的投影矩阵。 L N ( ⋅ ) LN(\centerdot) LN(⋅)是归一化层,线性变换的输出相加,以确保对象嵌入与问题词嵌入具有相同的尺度。在训练中,我们微调了最后一层速度更快的R-CNN检测器。
嵌入具有丰富表示的OCR标记。 直观地说,为了在图像中表示文本,不仅需要对其字符进行编码,还需要对其外观进行编码(例如,图像中的颜色、字体和背景)和空间位置(例如,出现在书的封面上的单词更可能是书的标题)。我们在模型中遵循这种直觉,并使用丰富的OCR表示法,该表示法由四种类型的特征组成,在我们的实验中显示,这明显优于单字嵌入(如FastText)在之前的工作[44]。通过外部OCR系统在图像中获取一组 N N N个OCR标记后,从第 n n n个令牌(其中 n = 1 , … , N n = 1,\dots,N n=1,…,N我们提取一个300维的FastText [9]向量 x n f t x_n^{ft} xnft,它是一个嵌入了子单词信息的单词;和上面的对象检测中Faster R-CNN检测器一样,外观特征 x n f t x_n^{ft} xnft由OCR标记的边界框上的RoI-Pooling提取;一个604 维字符的金字塔直方图(PHOC)[2]向量 x n p x_n^p xnp,捕捉标记中出现的字符,这对OCR错误更健壮,可以看作是一个粗糙的字符模型,基于OCR标记的相对边界框坐标的四维定位特征 [ x m i n / W i m , y m i n / H i m , x m a x / W i m , y m a x / H i m ] [x_{min}/W_{im},y_{min}/H_{im},x_{max}/W_{im},y_{max}/H_{im}] [xmin/Wim,ymin/Him,xmax/Wim,ymax/Him]。我们将每个特征线性投影到 d d d维空间中,并将它们加起来(经过层归一化后)作为最终OCR标记嵌入 x x o c r x_x^{ocr} xxocr,如下:
x n o c r = L N ( W 3 x n f t + W 4 x n f r + W 5 x n p + L N ( W 6 x n b ) ) (2) x_n^{ocr} = LN(W_3x_n^{ft} + W_4x_n^{fr} + W_5x_n^p + LN(W_6x_n^b)) \tag{2} xnocr=LN(W3xnft+W4xnfr+W5xnp+LN(W6xnb))(2)
式中, W 3 , W 4 , W 5 , W 6 W_3,W_4,W_5,W_6 W3,W4,W5,W6是学习过的投影矩阵。 L N ( ⋅ ) LN(\centerdot) LN(⋅)是归一化层。
将每个模态中的所有实体(问题词语、可视对象和OCR标记)作为向量嵌入到 d d d维联合嵌入空间中之后,如3.1节,我们应用一个隐含维数为 d d d的 L L L个变形层[48]堆栈在所有 K + M + N K + M + N K+M+N个实体 { x k q u e s } , { x m o b j } , { x n o c r } \{x_k^{ques}\},\{x_m^{obj}\},\{x_n^{ocr}\} {xkques},{xmobj},{xnocr}列表上。通过变形器中的多头自我注意机制,每个实体都可以自由地关注所有其他实体,而不管他们是否来自相同的模态。例如,允许一个OCR标记伴随另一个OCR标记、检测到的对象或问题词。这使得通过相同的变形器参数集以同样的方式建模模态间和模态内部关系成为可能。我们的多模态转换器的输出是每个模态中实体的 d d d维特征向量的列表,这可以看作是它们在多模态上下文中丰富的嵌入。
图2。M4C模型概览。我们通过特定于域的嵌入方法将所有实体(问题词、检测到的可视对象和检测到的OCR标记)投射到一个公共的 d d d-dimensional语义空间中,并在投射的事物列表上应用多模态transformer层。基于变形器输出,我们通过迭代自回归译码来预测答案,在每个步骤中,我们的模型要么通过动态指针网络选择一个OCR标记,要么从其固定的回答词汇表中选择一个单词。
我们使用与解码器完全相同的transformer层,通过迭代解码来预测问题的答案。我们以自回归的方式,一个词一个词地对答案进行解码,总共 T T T个步骤,其中每个解码的单词可以是图像中的OCR标记,也可以是从我们固定的答案单词词汇表中提取的单词。如图2所示,在解码的每个步骤中,我们输入先前预测的单词的嵌入,并根据动态指针网络的transformer输出预测下一个答案单词。
让 { z 1 o c r , … , z N o c r } \{z_1^{ocr},\dots,z_N^{ocr}\} {z1ocr,…,zNocr}是图像中 N N N个OCR标记的d维变形器输出。假设我们有 V V V个经常出现在训练集答案中字汇表。在第 t t t个解码步骤,transformer模型输出一个 d d d维向量 z t d e c z_t^{dec} ztdec,对应于第t步的输入 x t d e c x_t^{dec} xtdec(本节稍后解释)。从 z t d e c z_t^{dec} ztdec中,我们预测了从固定答案词汇表中选择一个单词的 V V V维分数 y t v o c y_t^{voc} ytvoc和在解码步骤 t t t时,从图像中选择OCR标记的 N N N维分数 y t o c r y_t^{ocr} ytocr。在我们的实现中,固定的回答词汇第 i i i个单词的得分 y t , i v o c y_{t,i}^{voc} yt,ivoc(其中 i = 1 , … , V i = 1,\dots,V i=1,…,V),通过一个简单的线性层来预测:
y t , i v o c = ( w i v o c ) T z t d e c + b i v o c (3) y_{t,i}^{voc} = (w_i^{voc})^Tz_t^{dec} + b_i^{voc} \tag{3} yt,ivoc=(wivoc)Tztdec+bivoc(3)
其中 w i v o c w_i^{voc} wivoc是答案词汇表中第 i i i个单词的 d d d维参数,而 b i v o c b_i^{voc} bivoc是标量参数。
为了从图片中 N N N个OCR标记中选择一个,我们使用一个动态指针网络扩展转换器模型,预测每个标记通过解码输出 z t d e c z_t^{dec} ztdec与每个OCR标记的输出表示 z n o c r z_n^{ocr} znocr之间的双线性交互作用的复制分数 y t , i o c r y_{t,i}^{ocr} yt,iocr(其中 n = 1 , … , N n = 1,\dots,N n=1,…,N)
y t , n o c r = ( W o c r z n o c r ) T ( W d e c z t d e c + b d e c (4) y_{t,n}^{ocr} = (W^{ocr}z_n^{ocr})^T(W^{dec}z_t^{dec} + b^{dec} \tag{4} yt,nocr=(Wocrznocr)T(Wdecztdec+bdec(4)
其中 W o c r , W d e c W^{ocr},W^{dec} Wocr,Wdec是 d × d d \times d d×d矩阵, b o c r , b d e c b^{ocr},b^{dec} bocr,bdec是 d d d维度向量。
在预测过程中,串联固定答案词汇得分和动态OCR复制得分 y t a l l = [ y t v o c ; y t o c r y_t^{all} = [y_t^{voc};y_t^{ocr} ytall=[ytvoc;ytocr选择机制,从所有V + N候选词中选择得分最高的元素(一个单词或一个OCR标记)。
在我们的迭代自回归译码过程中,如果译码时步 t t t的预测是一个OCR标记,我们将它的OCR表示 x n o c r x_n^{ocr} xnocr作为变形器输入 x t + 1 d e c x_{t+1}^{dec} xt+1dec输入到下一个预测步 t + 1 t+1 t+1。否则(之前的预测是固定答案词汇表中的一个单词),我们在Eqn. 3中输入相应的权重向量 w i v o c w_i^{voc} wivoc作为下一步的输入 x t + 1 d e c x_{t+1}^{dec} xt+1dec。此外,我们添加两个额外的d维向量作为输入——一个对应于步骤 t t t的位置嵌入向量,以及一个类型嵌入向量,该类型嵌入向量对应于先前的预测是一个固定词汇表单词还是一个OCR标记。与机器翻译类似,我们使用两个特殊的标记来增加回答词汇表,
在训练过程中,我们监督我们的多模转换器在每个解码步骤。与机器翻译等序列预测任务类似,我们使用teacherforce28来训练我们的多步回答解码器,其中每个groundtruth回答都被标记为单词序列。给定一个答案单词可以同时出现在固定答案词汇表和OCR标记中,我们应用多标签sigmoid损失(而不是softmax损失)在连接的分数 y t a l l y_t^{all} ytall上。
我们在TextVQA任务的三个具有挑战性的数据集上评估我们的模型,包括TextVQA[44]、ST-VQA[8]和OCR-VQA[37](我们仅为研究目的使用这些数据集)。我们的模型在所有三个数据集上都比以前的工作表现好得多。
表1。在TextVQA数据集上,我们简化了M4C模型,并与之前的工作LoRRA[44]进行了详细的比较。我们的多模态变形器(第3行vs . 1行)、丰富的OCR表示(第8行vs . 5行)和迭代答案预测(第11行vs . 8行)都显著提高了准确性。值得注意的是,即使使用较少的预训练参数(第9行与第1行),我们的模型仍然比LoRRA的性能高出9.5%(绝对)。
我们的最终模型在没有和使用ST-VQA数据集作为额外训练数据的情况下,测试精度分别达到39.01%(第11行)和40.46%(第14行),比具有挑战性的DCD ZJU方法高出9%(绝对)。详情见第4.1节。
图3。TextVQA、ST-VQA、OCR-VQA验证集在不同最大解码步骤下的准确率单步( T = 1 T = 1 T=1)和多步( T > 1 T > 1 T>1)回答预测之间存在较大差距。我们在实验中默认使用12步。
图4。来自我们的M4C模型的TextVQA验证集的质量示例(橙色单词来自OCR标记,蓝色单词来自固定答案词汇表)。与之前LoRRA[44]从训练集中选择一个答案或者只复制一个OCR标记相比,我们的模型可以复制多个OCR标记,并通过迭代解码将其与固定词汇表结合起来。
表2。在ST-VQA数据集上,我们的不带解码器的受限模型(M4C w/o dec)已经大大优于以前的工作。我们的最后一个模型实现了+0.18(绝对)ANLS超过挑战冠军,VTA[7]的推进。详见4.2节。
图5。来自我们的M4C模型在ST-VQA验证集上的质量示例(来自OCR标记的橙色单词和来自固定答案词汇表的蓝色单词)。我们的模型可以选择多个OCR标记,并将它们与其固定的词汇表结合起来,以预测答案。
表3。在OCR-VQA数据集上,我们尝试使用迭代解码器(我们的完整模型)或单步分类器(M4C w/o dec)作为输出模块,我们的迭代解码器大大提高了精度,大大优于基线方法。详情见第4.3节。
图6。来自我们的M4C模型在OCRVQA验证集上的定性示例(来自OCR标记的橙色单词和来自固定答案词汇表的蓝色单词)。
在本文中,我们提出了多模态多复制网格(M4C)用于基于对图像中的文本的理解和推理的可视化问题回答。M4C对图像中的文本采用丰富的表示形式,通过指针增强的多模态转换器体系结构在联合嵌入空间上对所有模式进行联合建模,并通过迭代解码预测答案,在TextVQA任务的三个具有挑战性的数据集上大大超过了之前的工作。结果表明,通过领域特定的嵌入和同质的自我注意来处理多模态是有效的,可以通过多步解码而不是一步分类来产生复杂的答案。