Iterative visual reasoning beyond convolutions (超越卷积的迭代视觉推理)

Abstract

提出了一种新的迭代视觉推理框架,超越了现有的识别系统,这些系统缺乏超越卷积的推理能力。该框架由两个核心模块组成:一个是使用空间内存存储previous beliefs的并行更新的局部模块;一个是全局图推理模块。图模块有三个组件:a)一个知识图,类表示为节点,并构建边以编码它们之间不同类型的语义关系;b)当前图像的区域图,图像中的区域是节点,区域之间的空间关系是边;c)为类分配区域的赋值图。局部模块和全局模块都迭代地推出预测,并相互交叉传递预测以优化估计。最后的预测是由结合最好的两个模块和一个注意机制产生的。

Introduction

与人类在视觉上对空间和语义的推理至关重要不同,现有的视觉系统除了具有大接受域卷积外,缺乏任何上下文推理。因此,在构建下一代视觉系统时,如何将空间推理和语义推理结合是一个关键问题。

我们的目标是建立一个系统,不仅可以提取和利用卷积特征的层次结构,还可以通过空间和语义关系改进其估计。
图1举例
空间推理(左上角):如果一行中四个区域中有三个是“window”,那么第四个区域也可能是“window”。
语义推理(右下角):识别“school bus”,即使很少或根本没有见过校车例子,只是给出了“bus”并知道它们之间的联系。
空间语义推理:在路上识别“car”应该有助于识别“driving” the “car”的“person”。

用关系进行推理的关键方法是迭代地建立估计值。

本文提出了一个空间推理和语义推理的通用框架。与目前只依赖卷积的方法不同,我们的框架还可以从知识库形式的结构化信息中学习以用于视觉识别。算法的核心由两个模块组成:基于空间存储器的局部模块,使用ConvNets进行像素级推理,通过并行内存更新来提高效率;全局模块用于超越局部区域的推理。在全局模块中,推理是基于图结构的。它有三个组成部分:a)一个知识图,类表示为节点,并构建边以编码它们之间不同类型的语义关系;b)当前图像的区域图,图像中的区域是节点,区域之间的空间关系是边;c)为类分配区域的赋值图。利用这种结构,开发了一个推理模块专门设计用于在该图上传递信息。局部模块和全局模块都迭代地推出预测,并相互交叉传递预测以优化估计。注意,局部推理和全局推理并不是孤立的:一个好的图像理解通常是先验背景知识和图像特定观察之间的折衷。因此,完整的模型通过一个注意机制将两个模块结合起来,使模型在做出最终预测时能够依赖最相关的特征。

Introduction

作者认为对于视觉数据,推理应该是局部的和全局的:对于涉及区域的任务,丢弃二维图像结构既不高效也不有效。

Reasoning framework

模型

除了来自ConvNet的简单预测之外,还包括两个用于推理预测的核心模块。第一个是局部模块,使用空间存储器来存储previous beliefs并进行并行更新,仍然属于基于卷积的推理。除了卷积,全局模块直接在图中表示为节点的区域和类之间进行推理。两个模块迭代地建立估计,beliefs交叉传递给对方。最后,利用局部和全局的优势,使用注意机制整合所有迭代的预测并使用集中于hard examples的sample re-weighting训练模型。

Reasoning with convolutions

在更高的层次上,局部模块的想法是使用空间存储器S将先前检测到的对象存储在它们被找到的位置。S是一个三维张量。前两个高度H和宽度W对应图像的缩小尺寸(1/16)。第三个深度D(=512)使存储器的每个单元c成为在该位置存储潜在有用信息的向量。S由高级和中级特征更新。对于高级,存储有关估计类标签的信息。然而,仅仅知道类可能不是理想的——更多关于形状、姿势等的细节对其他对象也很有用。例如,知道一个打网球的“person”的姿势对于识别“racket”是件好事。在本文中,在softmax激活前使用logits f,结合来自底层卷积层的特征映射h来馈入存储器。

给定一个要更新的图像区域r,首先从底层裁剪出相应的特征,然后用双线性插值法将其调整为一个预定义的正方形h(7×7)。由于高级特征f是覆盖整个区域的向量,将其附加到所有49个位置。两个1×1卷积用于融合信息并形成r的输入fr。存储器S中的相同区域也被裁剪并调整为7×7,记为sr。在这种对齐之后,使用卷积GRU写入内存:公式1
sr是r的更新,u是更新门,z是复位门,W、b是卷积权重和偏差,◦是entry-wise product。 σ(·)是激活函数。更新后,sr通过另一种裁剪和调整大小操作被放回S。

并行更新:本文使用并行更新区域作为近似。

实际推理模块是一个由三个3×3卷积和两个4096-D全连接层组成的ConvNet,以S作为输入,在其接收域的局部窗口内建立连接来进行预测。由于二维图像结构和位置信息被保存在S中,这样的结构对于空间推理关系特别有用。

Beyond convolutions

第二个模块超越了局部区域和卷积进行全局推理。全局的含义是双重的。首先是空间的,我们希望让距离较远的区域直接进行信息交流,而不受局部推理模块的接受域的限制。其次是语义的,意味着我们希望可以利用视觉知识库,它可以提供跨图像的全局真实(即常识)的类之间的关系。为了实现这两种推理,构建了一个图G = (N,E),N和E分别表示节点和边的集合。N中定义了两种节点,区域节点和类节点。

对于E,在节点之间定义了三组边。首先,使用空间图编码区域之间的空间关系。设计了多种类型的边来描述相对位置。从“left/reight”、“top/down”等基本关系开始,通过测量二者之间的像素级距离来定义边的权重。然后在图的邻接矩阵中直接使用边的权重。此外,还包含了对覆盖模式进行编码的边(如相交),当两个区域重叠时这一点尤其有用。

第二组边位于区域和类之间,将区域分配给类。这种边将beliefs从区域传到类或从类传回边。选择full softmax分数来定义到所有类的连接的边的权重,而不是只连接到最可能的类。希望可以提供更多的信息,从而对错误的分配更有效。

利用知识库中的语义关系构造类间的第三组边。同样,这里可以包含多种类型的边。经典的例子有“is-kind-of”,“is-part-of”,“similarity”,其中很多都是普遍存在的,因此被视为人类的常识。这些常识可以手动列出,也可以自动收集。有趣的是,即使是这些之外的关系(例如动词、介词)也能帮助识别。以“person ride bike”为例,这显然是一种形象特定的关系。然而,由于对“person”和“bike”的预测不那么自信,了解“ride”关系以及两者的空间配置也有助于修饰其他伪造的解释。为了研究这两种情况,本文实验了两种知识图:一种是在内部创建的,大部分是常识性的边,另一种是包含了大量积累的关系类型。
graph
类节点:词向量表示

直接在图上传递消息。由于最终目标是更好地识别区域,所有类节点都应仅用作中间“跳跃”,以获得更好的区域表示。基于这一认识,设计了两种推理路径来学习输出特征Gr
(1)一种只涉及区域节点的空间路径:
空间路径
Ae是边类型e的邻接矩阵,We是权重(偏差省略)。
(2)一种是通过类节点进行语义推理的路径:
语义路径
先将区域映射到类,将中间特征与类特征结合,再从类之间的多种类的边聚集特征。

最后,合并两条路径来计算区域输出Gr
输出
首先将语义信息传回区域,然后应用非线性激活。
过程
就像卷积过滤器一样,上面的路径也可以堆叠,输出Gr可以通过另一组图操作——允许框架使用更深层的特征执行联合空间-语义推理。在输出被送入预测之前,在全局推理模块中使用三个带有残差连接的操作栈。

Iterative reasoning

推理的一个关键因素是迭代地建立估计。但是信息如何从一个迭代传递到另一个迭代呢?我们的答案是显式内存,它存储先前迭代的所有历史。局部模块使用空间存储器S,全局模块使用另一个存储器M但没有空间结构。在迭代i中,Si后面是卷积推理模块C,以生成每个区域的新预测。类似地,全局模块也从R给出了新预测。这些新预测作为高级特征可以用来得到更新的存储器Si+1和Mi+1。新的记忆将导致另一轮更新并继续迭代。

虽然可以孤立地进行局部推理和全局推理,但这两个模块协同工作的效果最好。因此,对于我们的整个模型,希望在生成预测时将这两个模块结合起来。为此,引入cross-feed connections。推理之后,局部特征和全局特征被连接在一起,用GRU更新存储器Si+1和Mi+1。这样,空间记忆可以从空间和语义关系的全局知识中获益,graph可以更好地理解局部区域布局。

Attention

除了生成分数之外,模型还必须生成一个注意值,该值表示当前预测与来自其他迭代或模块的预测相比的相对置信度。然后融合的输出是所有预测使用注意的加权版本。从数学上讲,如果模型推理I次,并输出N=2I+1(包括I local、I global和1 from plain ConvNet)个预测fn,使用注意an,最终输出f计算如下:
最终输出
再次注意,这里fn是softmax之前的logits,它随后被激活以产生pn。注意力的引入使得模型能够从不同的模块和迭代中智能地选择可行的预测。

Training

Experiments

Datasets and graphs

ADE和Visual Genome(VG)

Task and evaluation

区域分类任务

Implementation details

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值