目录
《Vision-and-Language Navigation: Interpreting visually-grounded navigation instructions in real environments》论文主要内容翻译。
参考论文:https://arxiv.org/pdf/1711.07280.pdf
开源代码:https://github.com/peteanderson80/Matterport3DSimulator
摘要
自从《杰森一家》动画片想象了由一群细心的机器人助手带来的休闲生活,人们一直梦想机器人能够执行自然语言指令。如今视觉和语言研究的最新进展在相关领域取得了难以置信的进步。机器人根据看到的内容来理解自然语言指令,这和视觉问答(visual question answering)很相似。为支持和鼓励将视觉和自然语言方法应用到基于视觉的导航指令解释上,作者提出了Matterport3D仿真器,这是一个基于真实图像的大规模强化学习环境。作者基于该仿真器提出了第一个视觉语言导航benchmark数据集——Room-to-Room(R2R)数据集。
1介绍
给机器人一个指令,机器人能至少以合理的概率完成该任务是长期以来的目标。这其中包含了很多挑战,将自然语言和视觉信息联系在一起,以及在之前未见过的环境中工作(泛化能力)。
关联图像和自然语言的RNN的发展推动了VLN任务的研究,R2R数据集也被提出用来简化视觉和自然语言方法的应用。
之前关于机器人处理自然语言命令的方法经常忽略问题的视觉信息处理。使用渲染的而非真实的图像,这限制了环境中可视物体必须为渲染器可用的手工模型。这将具有挑战性的真实语言与真实图像相关联的开放式问题变成了更为简单的封闭式分类问题。限制图像的变化也将限制导航命令的变化。VLN挑战的不同之处在于要求智能体根据未见过的真实环境生成的图像来解释未见过的自然语言导航指令。 因此VLN任务将更紧密地建模问题的开放性。
为了使VLN任务评估可重复,作者提出了Matterport3D仿真器。仿真环境包括了90个实际建筑内部环境的10800张密集采样的全景RGB-D图像。与合成RL环境相比,使用真实世界的图像可以保留视觉和语言的丰富性,从而最大可能地将训练的模型转移到真实的应用中。
R2R数据集共有21567种单词,指令平均包含29个单词,描述一条穿过多个房间的轨迹。作者成功将几个baselines和基于sequence-to-sequence的模型应用到VLN问题上,调查了VLN任务的难度,尤其是在未知环境中的难度。
本文贡献总结为:1、提出了Matterport3D仿真器;2、提出了第一个视觉语言导航benchmark数据集R2R;3、将sequence-to-sequence用于解决VLN并提出了几个baselines。
2相关工作
导航和自然语言 现在的很多方法抽象了视觉感知问题。如:假设已枚举所有导航目标或操作对象,且都用标签标识;或在不需要感知的视觉受限环境中操作。作者首次为导航提供了有丰富的语言和视觉效果的benchmark数据集,使其更接近真实场景,同时仍然可进行可重复的评估。
视觉和自然语言 尽管已有许多结合了视觉和语言推理的任务,但这些任务均不允许智能体移动或控制摄像机。作者提出的R2R benchmark解决了这一局限性。
导航仿真器 作者提出的数据改善了视觉逼真度,但将导航限制在离散的位置。
导航中的强化学习 [12]和[41]已经研究了RL在基于自然语言的导航中的使用,但是环境设置在视觉和语言上都不复杂。 [12]的RL模型以在Doom环境中执行基于模板的指令。[41]在完全可观察的积木世界中研究复杂的语言指令。通过发布我们的模拟器和数据集,我们希望鼓励在更真实的部分可观察的环境中进行研究。
3Matterport3D仿真器
3.1Matterport3D数据集
大多数RGB-D数据集都取自视频序列。这些数据集通常仅提供穿过场景的一条或两条路径,这使得它们不足以模拟机器人运动。Matterport3D数据集包含全面的全景视图,也是当前最大的RGB-D研究数据集。
Matterport3D数据集包括10800张全景图像,由194400张RGB-D图像拼成。离散视野点间平均距离为2.25米,每个点的全景图由18张RGB-D图构成,这些RGB-D图拍摄高度为人类站立的高度。
Matterport场景涵盖了一系列建筑物,包括大小、复杂程度各异的房屋,公寓,酒店,办公室和教堂。
3.2仿真器
3.2.1观测状态
为了构建仿真器,令一个内嵌的智能体(不存在实体智能体)在全景视角点之间移动,智能体的姿态由三维坐标,朝向角
,相机高度角
,其中V是全景视野点的坐标集合。
在每个时间步t,仿真器都会输出与智能体第一人称视角相对应的RGB图像观察状态。 图像是根据每个视点处预先计算的立方体映射图像的透视投影生成的。
3.2.2动作空间
创建基于状态的动作空间是构建仿真器的主要挑战,作者希望阻止智能体穿过墙壁或地板,或穿过其他不可通过的区域。因此在每个时间步t,模拟器输出一组下一时刻可到达的视角点,智能体通过选择新的视角点
,调整相机朝向和高度来与模拟器进行交互。动作都是确定性的。
为了确定下一步可到达的视角点集,对于每个场景,模拟器都给出一个全景视角点上的加权无向图,
,图的边表示两个视点之间的机器人可导航,该边的权重反映视点之间的直线距离。为了构造图,作者在Matterport3D场景中的视点之间进行光线追踪以检测中间的障碍。为了确保运动的局部性(避免单次移动距离过长),移除了超过5米的边。
已知图G,则下一时刻可到达视点集为,
是当前视点,
是时间步t相机左右视锥包围的区域。实际上,如果目的地在当前视野之内,或者通过向上或向下扫视就可以看到,则允许智能体跟随导航图中的任何边缘。或者。智能体可以选择留在相同的视点仅移动摄像机。
平均每个图包含117个视点,平均顶点度为4.1。 这与网格世界导航图相比是有利的,由于墙壁和障碍物的存在,网格世界导航图的平均顶点度必须小于4。这样尽管智能体动作是离散的,但是在大多数高级任务中并不构成明显的限制。即使使用真正的机器人,使用每个新获取的RGB-D图连续重新计划更高级别的目标也是不切实际或不必要的。实际上,即使在名义上支持连续运动的3D模拟器中,智能体在实践中通常也会使用离散的动作空间。
模拟器未对智能体的目标,奖励函数或任何其他内容(例如自然语言导航指令)进行定义或设置限制。RL环境的这些方面取决于具体的任务和数据集。
3.2.3实施细节
仿真器提供了C++、Python API,可以轻松与深度学习框架结合使用。提供各种可修改配置选项,例如图像分辨率和视野大小。
3.2.4偏差
在Matterport3D数据集中,我们观察到了几种选择的偏差。首先,大部分被拍摄的居住空间都是干净整洁的,并且常常是豪华的。其次,数据集包含的人和动物很少。最后,我们观察到一些拍摄偏差,因为选定的视点通常可以提供环境的命令性视图(因此不位于机器人可能会发现自己的位置)。
4Room-to-Room导航
本节讲R2R任务和数据集,包括数据的收集过程和导航指令的分析。
4.1任务
R2R任务要求内嵌智能体跟随自然语言指令从初始位置到目标位置。每个回合开始给智能体一个自然语言指令,L是指令长度,
是单个词语。根据智能体的初始姿态
,智能体观测到初始RGB图像
。智能体必须执行一系列动作
,执行动作
将导致智能体进入状态
,并观测到新图像
。若智能体采取stop动作,则回合结束。
4.2数据收集
首先采集到一些初始状态和目标位置
对。然后在加权无向导航图中找到
到
的最短路径。抛弃少于5米、经过的视点少于4或大于6的路径。最终收集到7189条路线,平均长度为10米。
4.3R2R数据集分析
总共收集了21567条指令(一条路线对应三条指令),平均每条29个单词。指令一共包括约3.1k个单词,其中1.2k个单词出现次数超过5次。
4.4评估方法
R2R任务与很多其他视觉语言任务如image caption和visual dialog不同,任务的成功与否可以衡量。定义导航误差navigation error,即最终到达点和目标点在导航图中的最短距离(忽略智能体朝向和视角高度)。若导航误差小于3米则认为成功。作者并没有对整个导航路线进行评估,因为本身在标注指令时就没有规定一定按照哪条路线到达终点。
作者评估的核心是要求智能体在识别目标位置后结束回合。停下来是完成任务的基本,表明智能体理解了任务。这一要求也与仅基于视觉的导航的最新工作形成对比,这些工作并没有训练智能体去停止工作。为了解决识别目标位置的问题,还根据oracle停止规则(智能体是否在路径上最接近目标的位置停止)计算成功率。
数据集划分 共90种建筑场景和21567条指令。将18种场景和4173条指令作为测试集。11种场景和2349条指令作为验证集的未知环境部分。剩余61种场景混合在一起,14025条指令作为训练集、1020条指令作为验证集的已知环境部分。测试集的目标位置没有公布,但提供了测试平台。
5视觉语言导航智能体
本节描述了提出的sequence-to-sequence智能体,和其他探索R2R导航任务难度的baselines。
5.1sequence-to-sequence模型
建立带有注意力机制的LSTM模型。智能体初始时刻有指令和初始RGB图像
。编码器计算
的表示。在每一个时间步t,解码器观察到图像
并将上一时刻动作
一起输入,将注意力机制用到自然语言编码器的隐状态,预测下一状态动作
的分布。使用这种方法,解码器可以保留先前历史的记忆,这对于在部分可观察的环境中导航至关重要。
自然语言指令编码 将指令每个单词依次作为词嵌入向量输入LSTM。编码器第i步输出为
,
。将
作为编码向量用到注意力机制中。作者发现反转输入语言指令中的单词顺序很有价值。
动作空间 前面已经介绍了动作空间是和状态相关的。但作者将动作空间简化为左、右、上、下、前和停止,“前”动作将智能体移动到距离视野中心最近的点,左、右、上、下动作将相机移动30度。
图像和动作嵌入 对于观察到的图像,使用ImageNet上预训练的ResNet-152提取平均池化特征向量。类似指令单词嵌入,学习了每个动作的嵌入。编码的图像和前一时刻动作特征被拼接来构成向量
。LSTM的解码器计算
。
带有注意力机制的动作预测 为了预测动作的分布,使用注意力机制首先确定导航指令中的最相关部分。使用[34]中的全局通用对齐函数来计算指令内容。然后计算注意力隐状态
,然后计算动作分布
。尽管视觉注意力在视觉和语言问题上也被证明是非常有益的,但作者将视觉和语言导航中视觉注意力的研究留给未来的工作。
5.2训练
作者提出两种训练方法,teacher-forcing和student-forcing。每一步给定之前状态动作序列,用交叉熵来最大化真实动作
的可能性。
被定义为当前状态
到目标位置
的最短路径上的下一个动作。
在teacher-forcing方法中,训练时每一步选择真实目标动作,以将其作为条件来预测以后的动作。然而,这将探索仅限于处于真实最短路径轨迹中的状态,导致训练和测试之间的输入分布发生变化。为了解决这一限制提出了student-forcing方法,在每一步从预测的动作分布中选择下一动作。student-forcing类似online DAGGER。
实施细节 我们仅执行最少文本预处理,将句子转为小写,以空格为标志将句子划分,将出现次数低于5次的单词过滤掉。图像分辨率为640x480,垂直视场为60度。LSTM隐藏单元设为512,输入词嵌入大小为256,动作嵌入为32。词嵌入从随机初始开始学习。我们在嵌入、CNN特征以及注意力模型内将dropout设置为0.5。
由于我们已经离散化了智能体的航向和仰角变化(以30度为增量),因此为了进行快速训练,我们提取并预先缓存了所有CNN特征向量。我们使用Adam优化器,batchsize为100的,在PyTorch中进行训练。所有情况下都进行固定数量的迭代训练。由于评估是single-shot(单目标),因此在测试时我们使用贪婪解码。
5.3额外的baseline
无需学习的 提供了两个不需要进行学习的baselines,RANDOM和SHORTEST。RANDOM中智能体选择随机方向,并进行五次前进动作(如果无法执行前进则右转)。SHORTEST中智能体总是沿着最短路径到达目标。
人类 我们收集三分之一测试集(1390条指令)下人类生成的轨迹来量化人类的表现。收集过程与第4.2节中描述的数据集收集过程相似,有两个主要区别。首先,向工人提供了导航指令。其次,通过单击附近的视点,可以第一人称视角自由浏览整个场景环境。实际上,向工作人员提供了由模拟器中的智能体接收的相同信息。
6结果
RANDOM在测试集上的平均成功率为13.2%,人类为86.4%,体现了数据集指令的高质量。
关于sequence-to-sequence模型,student-forcing是一种比teacher-forcing更有效的训练方式,但由于探索更多的环境需要花费更长的时间进行训练。这两种方法在RANDOM baseline上都有显着改善。使用student-forcing,建立了第一个测试集排行榜,获得了20.4%的成功率。
结果在可见和不可见的验证环境中的表现之间存在显着差异(38.6%与21.8%的成功率)。 为了更好地解释这些结果,在图7中绘制了训练期间的验证集表现。 即使使用强正则化(丢失和权重衰减),在看不见的环境中的表现也会很快达到稳定状态,但是进一步的训练仍将继续改善训练环境中的表现。这表明所学到的模型可能非常适合于训练环境。
结果说明了训练智能体所面对的重大挑战,即可以泛化适用于以前看不见的环境。用于在现有数据集上优化性能的技术并不足以用于预期在新的未知环境中运行的模型。
7总结和未来工作
通过这项工作得出三个结论。首先,VLN可以成功地应用现有的视觉和语言方法。第二,将其泛化到以前看不见的环境是巨大的挑战。第三,众包的真实建筑重建是高度可扩展且未充分利用的资源(Matterport3D仅仅用了700000个建筑中的90的)。生成R2R的过程适用于许多视觉和语言相关的问题。作者希望该模拟器提供一个视觉逼真的框架来研究VLN和相关问题,例如导航指令生成、视觉问答、人机对话以及将模型迁移到实际中。