在本文中,作者解决的任务是基于文本的实例分割(referring segmentation,RES)。在这个任务中,作为query的文本通常描述了实例之间的关系,模型需要根据这些关系来定位出描述的实例。要在图像中的所有实例中找到一个目标实例,模型必须对整个图像有一个全面的理解。
为了实现这一点,作者将RES重新定义为一个Attention问题:在图像中找到作为query的文本最受关注的区域。作者引入了Transformer和Multi-head Self-Attention,构建了一个具有编码器-解码器注意机制架构的网络,用语言表达式“查询”给定的图像。此外,作者还提出了一个查询生成模块(Query Generation Module) ,它能够产生多组具有不同注意权重的查询,代表了对语言表达式的多样性理解。同时,为了从这些多样性理解找到最佳的表达,作者进一步提出了一个查询平衡模块(Query Balance Module) ,以自适应地选择这些查询的输出特征,以更好地生成Mask。
Vision-Language Transformer and Query Generation for Referring Segmentation
论文:https://arxiv.org/abs/2108.05565
代码:https://github.com/henghuiding/Vision-Language-Transformer
RES的目标为,以自然语言作为查询,来生成图像中目标实例的Mask。由于RES既涉及自然语言处理,又涉及计算机视觉,因此它也是最基本的多模态任务之一。
在RES任务中,图片中对象关联方式复杂,而查询表达式(文本)经常通过描述与其他对象的关系来表示目标对象,这使得模型需要对图像和语言表达式的整体理解。另一个挑战是由于图像的多样性以及语言的不受限制的表达,造成了数据高度的随机性。首先,为了解决给定图像和语言中复杂相关性的挑战,作者通过构建具有全局操作的网络来增强对多模态特征的整体理解,建模了所有元素(如pixel-pixel, word-word, pixel-word)之间的直接交互。目前的RES任务大多采用FCN结构,它们通常对融合的视觉语言特征执行卷积操作,以生成目标Mask。然而,卷积操作中的长期依赖关系建模是间接的,因为卷积的大感受野通过是通过几个小感受野的卷积堆叠而成的。这种机制导致像素/单词之间的信息交互效率低下,因此不利于RES模型来理解图像的全局上下文。近年来,注意机制在交互方面的优势逐渐显现,有助于模型捕获全局语义信息。一些RES工作也使用注意机制来缓解长期依赖问题。然而,它们中的大多数只使用注意机制作为基于FCN的辅助模块,这限制了它们建模全局上下文的能力。在本文中,作者采用了Transformer结构。
作者使用视觉引导从语言特征中生成一组查询向量,并使用这些向量来“查询”给定的图像,并从响应中生成分割mask,如上图所示。这种基于注意力的框架在计算的每个阶段实现多模态特征之间的全局操作,使网络能够更好地建模视觉和语言信息的全局上下文。其次,为了处理由图像的多样性和语言的无约束表达所引起的随机性,作者结合视觉特征,以不同的方式来理解语言表达。在以往的方法中,经常使用语言的Self-Attention来提取信息 。对于这些方法,它们的语言理解仅来自语言表达本身,而不与图像交互,因此它们无法区分哪些强调更合适、更有效,更适合特定的图像。因此,他们检测到的重点可能是不准确的或低效的。另一方面,在以前的工作中,对Transformer Decoder的查询通常是一组固定的学习向量,每个向量都用于预测一个对象。如果在Decoder中使用固定查询,必须有一个假设,即输入图像中的对象是在一些统计规则下分布的 ,这与RES的随机性不匹配。为了解决这些问题,作者提出了一个查询生成模块(QGM),基于该语言和相应的视觉特征生成多个不同的查询向量。通过所提出的QGM,提升了文本和图像理解的多样性,增强了网络在处理高度随机输入方面的鲁棒性。同时,为了确保生成的查询向量有效,并找到更适合对图像和语言的理解方法,作者进一步提出了一个查询平衡模块(QBM) 来自适应地选择这些查询的输出特征,以更好地生成Mask。
模型的整体结构图上图所示。模型首先输入图片和文本进行分别编码,映射到特征空间 。然后语言和视觉特征通过查询生成模块(QGM)来处理产生一系列语言查询向量 ,代表了关于图像和文本的不同理解。同时,视觉特征被发送到Transformer Encoder,以生成一组内存特征 。从QGM获得的查询向量用于“查询”内存特征 ,然后由查询平衡模块(QBM)选择来自解码器的结果响应 。最后,网络为目标对象输出一个Mask 。
3.1. Query Generation Module
在大多数以前的Vision Transformer中,对Transformer解码器的查询通常是一组固定的学习向量,每个向量用于预测一个对象,并有其自己的操作模式,例如,专门处理特定类型或位于特定区域的对象。在这些使用固定查询的工作中,必须有一个假设,即输入图像中的对象分布在一些统计规则下。
对于RES任务,由语言定义的对象可能是图片中的任意一个物体。由于图像和语言表达式都是不受约束的,因此目标对象属性的随机性明显很高。因此,固定的查询向量不足以表示目标对象的属性。为了提取关键信息并解决参考分割中的高随机性,作者提出了一个查询生成模块,利用图像信息根据输入图像和语言表达式自适应地在线生成查询向量,如上图所示。为了让网络学习信息的不同方面,并增强查询的鲁棒性,尽管只有一个目标实例,模型也会生成多个查询。查询生成模块以语言特征和原始视觉特性作为输入。在中,第i个向量是单词的特征向量,它是输入语言表达式中的第i个词。该模块旨在输出个查询向量,每个查询向量都是在视觉信息引导下具有不同注意权值的语言特征(也就是视觉特征作为query, 语言 作为key、value )。
视觉特征的预处理如上图所示,作者将视觉特征的特征通道维度通过三个卷积层,得到通道维度为的特征映射,它们中的每一个维度都将参与一个查询向量的生成。将特征的空间维度flatten成一维的特征:对于一种语言的表达式,不同单词的重要性是不同的。以前的一些方法通过测量每个单词的重要性来解决这个问题。大多数工作通过语言的自注意来获得权重,它不利用图像中的信息,只输出一组权重。但是,同一个句子可能有不同的理解视角和强调,最合适和最有效的强调只能在图像的帮助下知道。如上图所示,用同一句话对于定位出红色的圈圈,对于(a)来说,是'left'单词比较重要,对于(b)来说,是'large'单词比较重要。因此,在查询生成模块中,作者从合并图像之后的多个方面来理解语言表达式,然后从语言中形成查询。不同的查询强调不同的单词,然后通过查询平衡模块找到并增强更合适的注意权重。为此,作者通过结合视觉特征F_{vq}来推导出语言特征F_t$的注意权重。计算方式和Self-Attention相似,第i个单词的第n个attention weight,可以通过视觉特征的第n个通道和语言特征的第i个单词,线性映射之后点乘得到:对于某一个查询,它由一组针对不同单词的注意权值组成,不同的查询可能涉及到语言表达式的不同部分。个不同的查询向量关注于语言表达式的不同理解方式。然后,得到的attention map乘到语言特征上:每个都是由视觉信息引导的语言特征向量,并作为Transformer解码器的一个查询向量。从数学上讲,每个查询都是语言表达式中不同单词特征的加权和,因此它仍然是作为一个语言特性的属性,可以用于查询图像。
3.2. Query Balance Module
从查询生成模块中可以得到了个不同的查询向量。每个查询表示对输入语言表达式的特定理解。正如前面所讨论的,输入图像和语言表达式都具有很高的随机性。因此,需要自适应地选择更好的理解方式,让网络专注于更合理和更合适的理解方式 。另一方面,在Transformer解码器存在多个查询向量中,但最终只需要一个mask输出,因此需要平衡不同查询对最终输出的影响。因此,作者提出了一个查询平衡模块来自适应地分配每个查询向量一个置信度量,该置信度反映了它与预测和图像上下文的匹配程度。结构如上图所示。查询平衡模块从查询生成模块中获取查询向量,并从Transformer解码器中获取响应,它与的大小相同。在查询平衡模块中,查询及其相应的响应首先concat在一起。然后,由两个连续的线性层生成一组大小为的查询置信级别。每个标量显示了查询的预测上下文,并控制了其响应对Mask解码的影响。第二个线性层后使用Sigmoid作为激活函数来控制输出范围。每个响应乘以相应的查询置信度,来获得最终选择之后的Decoder结果(其实这里做的就是一步加权求和的工作,用Query Confidence对Transformer Output进行加权求和 )。
3.3. Network Architecture
Encoding
由于Transformer结构只接受序列输入,因此在输入原始图像和语言之前,必须将其转换为特征空间。对于视觉特征,作者使用CNN主干网进行图像编码。将主干网络中最后三层的特征作为编码器的输入。通过将三组特征映射调整为相同的大小,并将它们汇总在一起,就得到了原始视觉特征。
对于语言特征,作者首先使用一个查找表将每个单词转换为单词embedding,然后使用一个RNN模块将单词embedding转换为与视觉特征相同的通道,从而得到一组语言特征。然后将和作为视觉和语言发送到查询生成模块。同时将视觉特征flatten之后输入到Transformer Encoder之中。
Transformer Module
作者使用一个完整但较浅的Transformer来应用对输入特征的attention操作。该网络有一个Transformer编码器和一个解码器,每个编码层都有两层。每一层都有一个(编码器)或两个(解码器)多头注意力模块和一个前馈网络。
Transformer编码器以视觉特征作为输入,得到视觉信息特征。在发送到编码器之前,作者在上添加了一个固定的位置编码。然后将视觉特征和得到的query在Decoder中进行信息的交互。
Mask Decoder Module
Mask Decoder由三个堆叠的3×3卷积层组成,用于解码,然后是一个1×1卷积层,用于输出最终的Mask。如果需要,上采样层也插入到不同层之间,以控制输出大小。
4.1. Ablation Study
Parameter Size
结果表明,基于注意力的模块的参数大小仅大致相当于7个卷积层,同时具有更优越的性能。
Query Generation
作者将查询生成模块与其他生成查询向量的方法进行比较。结果表明,学习到的固定查询向量不能像查询生成模块的在线生成的查询那样有效地表示目标对象。
Query Number
当查询数大于8后,性能增益会减慢,因此作者在实验中选择16作为默认的查询数。
4.2. Comparison with State-of-the-art
可以看出作者在不同数据集上都达到了SOTA的性能。
4.3. Visualization and Qualitative Results
(a)作者从一个点的Transformer编码器的第二层中提取一个attention map。可以看到,来自一个实例的点关注整个图像中的其他相关实例。(b)显示了一些查询向量,说明了查询向量的多样性。
本文中,作者利用注意力网络来缓解传统卷积网络中的全局信息交换问题,解决了RES的难题。作者将该任务重建为一个attention问题,并提出了一个利用Transformer来执行attention操作的框架。
此外,作者提出了一个查询生成模块和一个查询平衡模块来生成给定句子的不同理解。该模型在三个的数据集上均优于其他方法。
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV