MAttNet: Modular Attention Network for Referring Expression Comprehension
出版年份:2018\
出版期刊:CVPR2018\
影响因子:\
文章作者:Yu Licheng,Lin Zhe,Shen Xiaohui,Yang Jimei,Lu Xin,Bansal Mohit,Berg Tamara L.
摘要+引言+结论:
研究背景:
最近的大多数研究都将表达式视为一个单一的单元
然而,这些工作大多使用所有特征(目标对象特征、位置特征和上下文特征)的简单串联作为输入,使用单个LSTM对整个表达式进行编码/解码,忽略了不同类型指称表达式之间的差异。
模块化网络
我们提出了第一个用于一般指称表达式理解任务的模块化网络。此外,这些先前的工作通常依赖于现成的语言解析器[ 24 ]将查询语句/问题解析为不同的组件,并动态地将模块组装成处理任务的模型。然而,外部解析器会增加解析错误并将其传播到模型设置中,从而影响性能。
研究设计(这篇文献的研究方法是什么,数据是怎么获取的):
将表达式分解为与主体外观、位置和与其他对象的关系相关的三个模块化组件
能够灵活适应不同的表达式
模块化注意力网络(MAttNet)的模型中,使用了两种类型的注意力:
1.一种是基于语言的注意力,它可以学习模块权重以及每个模块应关注的单词/短语
2.另一种是视觉注意力,它允许主体和关系模块关注相关的图像组件
模块权重将来自所有三个模块的分数动态地结合起来,输出一个总分。
我们的模型如图1所示。MAttNet主要有3个创新点。”
1、首先,MAttNet是针对一般指称表达式设计的。
它由主体、位置和关系三个模块构成。与文献[ 13 ]一样,一个指称表达式可以解析为7个属性:类别名、颜色、大小、绝对位置、相对位置、相对对象和类属属性。MAttNet覆盖了其中的全部。
主题模块处理类别名称、颜色等属性
位置模块处理绝对位置和(部分)相对位置
关系模块处理主客体关系。
每个模块具有不同的结构,在各自的模块空间内学习参数,而不影响其他模块。”
2、通过基于软注意力的机制自动解析表达式,不依赖外部语言解析器
本文学习的解析器关注每个模块的相关单词,很大程度上优于现成的解析器
模型计算与输入表达式相适应的模块权重,衡量每个模块的总体贡献程度
3、主题和关系模块中使用不同的视觉注意技术
在主题模块中"软关注"是指"穿红衣服的人"或"戴黄帽子的人"这样的表述所指涉的对象本身的部分。我们称这种"框内"的注意力。
在关系模块中,硬性注意用于关注"猫在椅子上"或"女孩抱着飞蜂"等表达所提到的关系对象。
这里的注意力集中在"椅子"和"飞盘"上,以确定目标物体"猫"和"女孩"。我们称这种"开箱即用"的注意力。我们证明了这两种注意在提高理解准确性方面起着重要的作用。”
实验结果(研究获得了什么结果):
数据集
我们使用了3个参照表达数据集:Ref COCO、Ref COCO + [ 13 ]和Ref COCOg [ 19 ]进行评估,它们都是在MS COCO图像上采集的[ 14 ],但存在一些差异。
1 ) RefCOCO和RefCOCO +在交互式游戏界面中收集,而RefCOCOg在非交互式环境中收集,从而产生更长的表达,平均分别为3.5和8.4个单词。
2 ) RefCOCO和RefCOCO +包含更多的同类型对象,分别为3.9和1.63。
3 ) RefCOCO +禁止使用绝对位置词,使得数据更加集中于外观区分器。”
在图像指代检测和图像指代分割任务上分别进行实验
研究结论(作者得出了什么结论):
模块化注意力网络通过在模块化框架中同时关注相关单词和视觉区域来解决指称表达式中的差异,并动态计算整体匹配分数。我们展示了我们的模型在边界框级别和像素级别理解上的有效性
基础知识:
Fast R-CNN
Faster R-CNN
Mask R-CNN
VGG16
模块化网络
hinge loss
图表:
图1:
模块化注意力网络( Mattnet )。给定一个表达式,我们注意地将其解析为三个短语嵌入,输入到三个视觉模块中,这些模块以不同的方式处理描述的视觉区域并计算个体匹配分数。然后将整体评分计算为模块评分的加权组合。
图2:
语言编码器使用Bi-LSTM
图3:?
主题模块由视觉主题表示和短语引导嵌入组成。在ResNet - C4阶段后加入属性预测分支,将属性预测和C4的1x1卷积输出作为主体视觉表征。主题短语嵌入在空间区域上进行注意力池化,并将池化后的特征输入到匹配函数中。
图4:
疑问:(在粗读的过程中的疑问)
什么是模块化网络
初步理解是将语言分成主题模块、关系模块、位置模块三个模块分别进行注意力机制,最后对每个模块加权再相加
后面相关工作部分也有解释
位置模块具体的操作
研究目的:
提出了一个用于指称表达式理解的模块化网络- -模块化注意力网络
以自然语言表达式作为输入,并将其软分解为三个短语嵌入。这些嵌入被用来触发三个单独的视觉模块(对于主题、位置和关系理解,各自具有不同的注意模型)来计算匹配分数,最后根据模块权重组合成一个整体区域分数
用模块化的方式提高图像指代分割的性能
理论基础:
指代表达理解
为了解决这个问题,最近的一些工作[ 19、32、20、11、18]使用CNNLSTM结构对P ( r | o )进行建模,寻找概率最大化的对象o。
使用CNN-LSTM结构进行建模
19:“Generation and comprehension of unambiguous object descriptions. CVPR, 2016.”
32:“Modeling context in referring expressions. In ECCV, 2016.”
20:“Modeling context between objects for referring expression understanding. In ECCV, 2016”
11:“Natural language object retrieval. CVPR, 2016”
18:“Natural language object retrieval. CVPR, 2016”
使用联合嵌入模型进行建模
最近的其他工作使用联合嵌入模型[ 22、26、16、4]直接计算P ( o | r )
22:“Grounding of textual phrases in images by reconstruction”“ECCV, 2016”
26:“Learning deep structurepreserving image-text embeddings. CVPR, 2016.”
16:“Referring expression generation and comprehension via attributes. In ICCV, 2017”
4:“Query-guided regression network with context policy for phrase grounding. In ICCV”
混合方法
在这两种方法的混合中,[ 33 ]提出了一个联合说话人-听众-增强器模型,将CNN - LSTM (说话人)与嵌入模型(听众)相结合,以达到最先进的结果。
33:“A joint speakerlistener-reinforcer model for referring expressions. In CVPR, 2017.”
上述方法大多将理解视为边界框定位,但最近的一些工作[ 9、15]也对指称表达式中的对象分割进行了研究。这些论文使用FCN风格[ 17 ]的方法来执行表达式驱动的前/后台系统分类。我们证明,除了边界框预测外,我们还优于先前的分割结果。”
9:“Segmentation from natural language expressions. In ECCV, 2016”
10:“Recurrent multimodal interaction for referring image segmentation. In ICCV, 2017.”
模块化网络
神经模块网络[ 3 ]被引入到视觉问答中。这些网络将问题分解为若干个组件,并动态地组合一个网络来计算给定问题的答案。
自提出以来,模块化网络已经被应用于其他几个任务:视觉推理[ 8、12 ]、问答[ 2 ]、关系建模[ 10 ]、多任务强化学习[ 1 ]等。虽然早期的工作[ 3、12、2]需要外部语言解析器来完成分解,但最近的方法[ 10、8]提出了端到端的学习分解。我们将这一思想应用到指称表达式理解中,也采取了一种端到端的方法来绕过外部解析器的使用。”
10:“Modeling relationship in referential expressions with compositional modular networks. In CVPR, 2017”
8:“End-to-end module networks for visual question answering. ICCV, 2017.”
我们发现我们的软注意力方法比解析器预测的硬决策取得了更好的性能。与我们最相关的工作是[ 10 ],它将表达式分解成(主语、介词/动词、宾语)三元组。但是,指称表达式的形式要比这个固定的模板丰富得多。例如,"左边的狗"和"红色的人"等表达很难建模[ 10 ]。
本文动态解析器是在此基础上进行改进的
在本文中,我们提出了一个通用的模块化网络来处理所有类型的指称表达式。我们的网络通过分配单词级别的注意力和模块级别的权重来适应输入的表达。”
模型:
MAttNet由语言注意力网络加上视觉主体、位置和关系模块组成。”
给定一个候选对象oi和指称表达式r,
我们首先使用语言注意力网络将指称表达式的软语法分析计算成三个组件(每个视觉模块一个),并将每个组件映射为短语嵌入。
其次,我们使用三个视觉模块(具有独特的注意机制)来计算oi到各自嵌入的匹配分数。
最后,我们将这些得分进行加权组合,得到一个整体的匹配得分,衡量oi和r之间的相容性。”
“Language Attention Network”
1、对于给定的referring,使用双向LSTM给每个单词编码
2、给定H = { ht } tT = 1,我们应用三个可训练向量fm,其中m∈{ subj,loc,rel },计算每个模块在每个词上的注意力:”
3、词嵌入的加权和作为模块的词嵌入
指称表达式没有这样的适定结构。为了处理这个方差,我们为表达式计算了3个模块权重,加权每个模块对表达式对象得分的贡献。
我们将来自H的第一个和最后一个隐藏向量进行拼接,该向量同时记忆了整个表达式的结构和语义,然后使用另一个全连接( FC )层将其转化为3个模块权重
这里有点疑问不太理解?
为什么可以这样处理求得三个部分的权重?
Visual Modules
虽然先前的大多数工作[ 32、33、19、20]评估了每个区域建议/候选对象的CNN特征,但我们使用Faster R-CNN [ 21 ]作为主干网络,以实现更快速和更有原则性的实现。此外,我们使用ResNet [ 7 ]作为我们的主要特征提取器,同时也提供了与之前使用相同VGGNet特征[ 23 ] (在Sec . 4.2 )的方法的比较。
给定一幅图像和一组候选区域,我们运行Faster R - CNN来提取它们的区域表示。
具体来说,我们将整幅图像转到Faster R - CNN中,并为每个oi裁剪C3特征(第三阶段的最后一个卷积输出)
然后进一步计算C4特征(第4级的最后一个卷积输出)。
在Faster R - CNN中,C4通常包含用于类别预测的较高层次的视觉线索,而C3包含用于建议判断的相对较低层次的线索,包括颜色和形状,使得两者都对我们的目的有用。
最后,我们计算每个oi在每个模块短语嵌入下的匹配得分”
下面叙述如何计算每个模块的得分
主题模块
主题模块由视觉主题表示和短语引导嵌入组成。
在ResNet - C4阶段后加入属性预测分支,将属性预测和C4的1x1卷积输出作为主体视觉表征。
主题短语嵌入在空间区域上进行注意力池化,并将池化后的特征输入到匹配函数中
属性预测
在准备训练集中的属性标签时,我们首先运行一个模板解析器获取颜色和泛型属性词,去除低频词
我们结合C3和C4来预测属性,因为低级和高级视觉线索都很重要。将C3和C4串联后进行1 × 1卷积生成属性特征blob。经过平均池化后,我们得到候选区域的属性表示。”
采用二进制交叉熵损失进行多属性分类
其中wtrr j = 1 /√freqattr 对属性标签进行加权,缓解了数据不平衡问题。在训练过程中,只有带有属性词的表达式才会经过这个分支
短语引导的注意力池化
主体描述根据对象的哪些信息最显著而不同。以人为例。有时一个人被他们的配饰描述,例如"戴眼镜的女孩";或者有时会提到特定的服装项目,例如"穿白裤子的女人"。因此,我们允许我们的主题模块通过"框内"注意力定位边界框内的相关区域。”
为了计算空间注意力,我们首先将属性blob与C4串联,.
然后使用1 × 1卷积将它们融合成一个主体块,该主体块由特征的空间网格V∈Rd × G组成,其中G = 14 × 14。
给定主题短语嵌入qsubj,我们计算其在每个网格位置上的注意力:
V的加权和即为候选区域oi的最终主体视觉表征:
匹配函数
使用一个匹配函数来衡量主题表示" vsubj i "和短语嵌入qsubj之间的相似性,即S ( oi | qsubj ) = F ( ’ vsubj i , qsubj)。
如图3右上角所示,它由两个MLP (多层感知)和每个输入后面的两个L2归一化层组成。每个MLP由两个带有ReLU激活的全连接层组成,用于将视觉和短语表示转换为一个公共的嵌入空间。
计算两个l2归一化表示的内积作为它们的相似度得分。使用相同的匹配函数计算位置得分S ( oi | qloc )和关系得分S ( oi | qrel )。
损失如何计算?
位置模块
使用5维向量,编码左上位置和右下位置以及候选对象的相对面积
此外,"中间的狗"和"第二个左边的人"等表达暗示了同类物体之间的相对定位。我们通过选择最多五个相同类别的周围对象并计算它们的偏移量和面积比来编码候选对象的相对位置表示。
注意,这里选择的是五个相同类别的对象来计算偏移和面积比
目标物体最终表示为
计算位置模块匹配分数
关系模块
当主题模块处理目标对象的"框内"细节时,一些其他表达式可能涉及其与其他"框外"对象的关系,例如"猫在沙发间"。
关系模块用于处理这些情况。如图5所示,给定一个候选对象oi,我们首先寻找其周围(至多5个)对象oij,而不管它们的类别如何。我们使用平均池化的C4特征作为每个支持对象的外观特征vij。
这里是找候选对象周围5个对象计算相对偏移,这五个对象不一定是同类别的
问题:候选对象是如何确定的?是通过主题模块确定的吗
然后,我们将它们的偏移量编码到候选对象via中
然后对每个周围的对象进行视觉表示
使用qrel计算它们的匹配分数,并选择其中最高的作为关系分数
这可以视为弱监督的多实例学习
弱监督的多实例学习参考文献:
“Modeling relationship in referential expressions with compositional modular networks. In CVPR, 2017.”
“Modeling context between objects for referring expression understanding. In ECCV, 2016”
“Loss Function”
候选对象oi和表达式r的整体加权匹配分数为:
!
在训练过程中,对于每一个给定的正对( oi , ri),我们随机采样两个负对( oi , rj)和( ok , ri),其中rj是描述同一图像中其他物体的表达式,ok是同一图像中其他物体的表达式,计算一个组合“hinge loss”
总体损失同时包含了属性交叉熵损失和排序损失
实验:
数据集
Ref COCO、Ref COCO+、Ref COCOg
三个数据集的区别在于
1 ) RefCOCO和RefCOCO +在交互式游戏界面中收集,而RefCOCOg在非交互式环境中收集,从而产生更长的表达,平均分别为3.5和8.4个单词。
2 ) RefCOCO和RefCOCO +包含更多的同类型对象,分别为3.9和1.63。
3 ) RefCOCO +禁止使用绝对位置词,使得数据更加集中于外观区分器
数据集处理过程
在测试过程中,RefCOCO和RefCOCO +提供了人和物体的分割来进行评估,其中包含多个人的图像在测试A中,包含其他类别的多个物体的图像在测试B中。训练、验证和测试图像之间没有重叠。
分testA和testB是为了区分模型和模型的各个模块究竟对哪些类别比较有效,是对人的图像比较有效还是对物体的图像比较有效
Ref COCOg有两种类型的数据分区。
第一个[ 19 ]通过将对象随机划分为训练和验证分割来划分数据集。由于测试分割尚未发布,最近的工作在验证集上评估性能。我们将这种验证拆分为Ref COCOg ’ s ’ val * '。
值得注意的是,由于这些数据是被对象分割的,因此在训练和验证中可能会出现相同的图像。
这句话不太理解是什么意思,可以找源码看一下
因为对象是被随机划分为训练集和测试集的,因此每次的数据集很可能会存在不同
第二个划分[ 20 ]是由随机划分图像为训练,验证和测试分割组成的。
我们用RefCOCOg的" val “和” test "来表示它的验证和测试分裂,并在这个分裂上运行大多数的实验
图像指代检测
与之前模型的比较
我们使用公式 1 计算输入表达式 r 的每个提议/对象的匹配得分 S(oi|r),并选出得分最高的一个。为了进行评估,我们计算了所选区域与地面实况边界框的交集-重合(IoU),认为 IoU > 0.5 为正确理解。
因为之前的模型都使用vgg16进行比较,因此为了公平本文的特征提取框架也使用VGG16
平坦的fc7是一个单一的4096维特征,无法使用图三中短语引导的注意力池化,因此使用平均池化进行注意匹配
没有使用短语引导的的注意力池化,而是直接使用平均池化后进行注意力匹配
尽管如此,我们的结果(第9行)仍然优于以前所有最先进的方法。改用基于res101的Faster R-CNN ( res101-frcn )表示后,理解精度进一步提高了3 % ( Line 10 )
注意我们的Faster R - CNN是在COCO的训练图像上预训练的,不包括RefCOCO,RefCOCO +和RefCOCOg的验证+测试图像。因此在我们的评估过程中没有看到训练图像
研究MAttNet各个模块的好处
1:基线模型,使用区域视觉特征和位置特征级联作为视觉表示
没有使用模块的处理,仅仅使用级联操作
LSTM编码表达式最后一个隐藏输出作为语言表示,将它们输入到匹配函数中获得相似性分数
2:用相同特征的简单主题模块和位置模块两个模块
已经优于基线,显示了模块化学习的优势
3:体现了编码位置的有效性?
4:加入关系模块后,性能进一步提升
5:属性子分支的
6:短语引导的注意力池化
我们发现注意聚合(第6行)在人的类别( Ref COCO和Ref COCO +的test A)上有了很大的提升,体现了模块化注意在理解"戴红帽子的女孩"等局部细节上的优势。
解析器的好处
第三,我们尝试使用模板语言解析器[ 13 ]中的3个硬编码短语训练我们的模型,如表中第7行所示。
2,比我们的端到端模型(第6行)低5 %。造成这种下降的主要原因是外部解析器的错误,而外部解析器并没有针对引用表达式进行调整。
模板语言解析器固定的将模板分割为三个部分,没有动态的调整
使用Faster Rcnn自动检测对象的结果,提供全自动理解性能的分析
虽然由于检测错误导致性能下降,但每个模块带来的整体改进与表 2 一致,显示了 MAttNet 的鲁棒性。
我们的结果也大大优于最先进的 [33](1,2 号线)。
此外,我们在第 9 行展示了使用 Mask R-CNN [6] 的检测器分支(res101-mrcn)时的性能,其结果甚至比使用 Faster R-CNN 时更好。
这里与实验2、3的不同是这里使用的是自动的faster rcnn
主要是为了体现模块作用的鲁棒性
使用完整模型进行理解的一些实例的可视化
我们在图 6 中展示了一些使用我们的完整模型进行理解的可视化示例,以及注意力预测的可视化示例。
"全自动理解 “示例。蓝色虚线方框表示我们的预测,黄色虚线方框表示相对区域,绿色方框表示基本事实。单词关注度乘以模块权重”
相关区域是指5个区域中最高的
我们还观察到,RefCOCO 和 RefCOCO+ 中的表达式更频繁地描述目标对象的位置或细节,而 RefCOCOg 则更频繁地提及目标对象与其周围对象之间的关系,这与数据集的属性相符。需要注意的是,对于一些复杂的表达式,如 “穿着格子夹克和蓝色裤子的女人在滑雪”,其中包含多种关系(图 6 最后一行),我们的语言模型能够关注 "框内 "主题模块应该使用的部分和 "框外 "关系模块应该使用的部分。
此外,我们的主体模块也显示出合理的空间 "框内 "注意力,这就从本质上解释了为什么注意力集合(表 2 第 6 行)优于平均集合(表 2 第 5 行)。
为便于比较,图 7 显示了一些错误的理解。大多数错误是由于训练数据稀疏、表达含糊或检测错误造成的。
针对可以理解为多个模块的单词是如何理解的?
是通过注意力机制能够将其区分吗?
eg on?
图像指代分割
使用mask-rcnn
评价指标
我们采用与Sec3相同的步骤对检测到的对象,使用匹配得分最高的一个作为我们的预测。然后我们将预测的边界框反馈到掩码分支,以获得像素级的分割。我们对MAttNet的全模型进行了评估,并与文献中报道的最好结果进行了比较
“由于[ 15 ]和MAttNet都使用了res101特征,这样大的增益可能是由于我们提出的模型。我们相信解耦框定位(理解)和分割为这个实例级分割问题带来了比FCN风格[ 17 ]前/后台系统掩码分类[ 9、15]大的增益,但更多端到端的分割系统可能在未来的工作中被研究。图8给出了一些可供参考的分割实例。
附录
训练细节
计算效率
属性预测
MAttNet+Grabcut
使用了一种次优的掩码分割技术,最后得到的结果仍然优于最优的方法,说明前面提供的模块化网络方法的有效性
Mask R-CNN Implementation
更多示例
●总结
创新点:
1、对于语言编码不是硬性的划分而是基于语言注意力网络进行动态的编码,计算模块的分数
语言注意力网络:获得模块权重,和模块短语嵌入
(原来的硬性编码划分为每个类都是一样的·,通过语言注意力编码体现出来区别)
2、对主题模块、位置模块、关系模块三个模块使用不同的技术分别进行设计
主题模块:视觉主题表达(属性预测)和短语引导的嵌入
位置模块:通过最多五个相同类别的周围对象并计算她们的偏移量和面积比来编码候选对象的相对位置表示,并且计算最终目标物体表示
关系模块:
3、计算分数的匹配函数,以及损失函数的设计
局限性:
1、对训练数据以来较高,泛化能力较弱
2、RES任务本身的缺点,不能很好的实现多目标分割和无目标分割任务
思考:
能不能用模块化的方法来对GRES任务进行改进
将GRES的表语言表达也分为多个模块进行处理
(多看一些多模态中模块化网络的内容)
疑问与发现:
1、针对可以理解为多个模块的单词是如何理解的?
是通过注意力机制能够将其区分吗?
eg on?
2、实验三是怎么体现编码的有效性的
3、三个模块权重部分,为什么可以这样计算以及这样计算的目的文章来源:https://www.toymoban.com/news/detail-841495.html
目的:计算候选对象oi和表达式r的整体加权匹配分数文章来源地址https://www.toymoban.com/news/detail-841495.html
后期回顾:
到了这里,关于MAttNet- Modular Attention Network for Referring Expression Comprehension的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!