论文阅读:Visual Object Search by Learning Spatial Context(RA-L2020)

文章提出了一种基于上下文信息的视觉导航方法,通过上下文网格表示场景中对象的语义相似性,帮助智能体在目标不可见时依据周围上下文导航。实验表明,这种方法在未知场景中的性能优于传统方法,且对新对象和场景类型有良好泛化能力。
摘要由CSDN通过智能技术生成

摘要

我们提出了一种视觉导航方法,它使用上下文信息来导航Agent以找到并到达目标对象。为了从场景中存在的对象中学习上下文,我们将视觉信息转换为一个中间表示,称为上下文网格,它本质上代表了该位置的对象与目标对象在语义上的相似性。由于这种表示可以将目标对象和其他对象一起编码,它允许我们以一种受人启发的方式导航智能体:当目标不可见时,智能体将通过看到周围的上下文对象去可能的地方,一旦目标对象进入视线,它将迅速到达目标。由于上下文网格不直接包含那些由于新对象的引入而改变的视觉或语义特征值,例如相同对象的新实例具有不同的外观或对象来自稍微不同的类,我们的导航模型很好地推广到未见的场景/对象。 实验结果表明,该方法在未见场景中的导航性能优于以往的方法,尤其是在广阔的场景中。 我们还评估了目标驱动导航任务中的人类性能,并与包括本工作在内的基于机器学习的导航方法进行了比较。

介绍

目标驱动的视觉导航和对象搜索是一种基于第一人称视觉信息在环境中学习导航Agent到达特定目标位置的新方法。与以前的导航范例(如使用SLAM的范例)不同,这种方法不需要环境地图。

目标驱动的视觉导航任务的挑战之一是对未知场景的泛化,因为它依赖于场景图像中的视觉特征来产生动作,而视觉特征容易受到外观变化的影响。事实上,该领域中的大多数方法对每个场景[1]、[3]或每个场景类型[2]例如厨房或起居室使用特定的策略网络,并不完全适用于未见过的场景。 因此,在广泛不同的室内场景中使用这些导航方法仍然存在差距,也不同于人类在这些场景中的一般导航方式。当前导航方法的另一个问题是,它们的导航能力随着探索空间的增大而下降,因为这增加了目标对象在起始位置不可见的可能性。

提高泛化的一种方法是利用语义和上下文信息抽象视觉信息。 上下文的使用已经在许多领域得到了广泛的研究,在图像检索[4]、三维场景合成[5]和对象功能分析[6]等领域都发挥着重要作用。 然而,在导航中使用上下文的效果直到最近才被探索,需要进一步的研究。

我们的方法是受人类行为的启发进行对象搜索的。想象一下我们在日常生活中寻找一个物体的情景。 为了找到物体,我们不会在房间里到处寻找,而是看最有可能找到它的地方。在这样做的同时,我们看到了我们周围的环境和存在于我们视图中的其他对象,即上下文,并以此为线索。一旦目标物体进入我们的视线,我们就会径直朝它走去。我们想模仿我们的智能体的这种行为。 例如,智能体正在寻找一个海绵,但它不能从图1(a)看到。利用上下文,智能体在基于其他可见对象的最可能位置的方向上搜索,在这里是水槽,并在移动到目标可见的位置后找到并到达目标,在这里是海绵(图1(b))。

我们提出了一种基于上下文信息的视觉导航方法来搜索室内环境中的目标。为此,我们引入了一种中间表示,称为上下文网格(Context Grid),它由视图中存在的对象的bounding boxes构造而成。然后从这个表示中提取上下文特征,并由智能体通过学习上下文特征到其动作的映射来导航场景。由于上下文网格包含关于视图中的目标对象和上下文对象的信息,因此,这种表示使得智能体不仅能够在目标可见时快速导航到目标,而且能够在目标基于上下文不可见时快速导航到可能的位置。 这提高了智能体查找隐藏对象或难以从起点看到的小对象的能力由于这种表示对外观变化具有鲁棒性,我们的方法可以使用一个策略推广到不同场景类型的未见场景。

相关工作

上下文推理和学习

理解和利用2D/3D场景的上下文信息是计算机视觉和计算机图形学领域的一个重要问题,已经得到了广泛的研究,并在许多工作中发挥着重要作用。 费希尔等人[5]提出了利用上下文信息以合理的方式排列三维模型的三维场景检索和合成系统。 胡等人[6]引入了一种名为Icon的上下文描述符,其目的是在给定场景的上下文中提供3D对象功能的几何描述。 上下文也被用于基本的计算机视觉任务中,如目标检测[7]。 约翰逊等人[4]提出了一种更丰富的上下文表示形式,称为场景图,其中对象之间的关系,如空间关系、比较关系、动词关系、介词关系等,都用图的结构来表示。 使用场景图,可以完成更复杂的任务,如图像字幕和图像生成[8]。

基于地图的导航

经典的导航方法[9]、[10]使用基于地图的环境先验信息,这些信息通常是利用SLAM技术在飞行中计算得到的。一旦创建了环境地图,就可以应用全局路径规划算法,如A* search [11], probability roadmaps (PRM) [12], and rapd - explore random tree (RRT)[13],生成导航agent从起点到目标位置的路径点。最近,基于深度学习的方法[14],[15]被提出来替代传统的路径规划方法,使导航对动态场景更具鲁棒性。提出了深度强化学习方法来学习避障行为,并将其应用于基于地图的导航框架[16]-[18]中。在这些工作中,给出了导航的目标位置。Dong等人[19]提出了一种多机器人在线路径规划算法来实现未知室内环境的三维重建,该算法没有给出目标位置,但重建质量最大,整体扫描工作量最小。

无目标无地图的导航

在map-less导航方法,不需要地图导航机器人的环境。陈等人[20]学会从驾驶的图像使用深卷积神经网络框架预测驾驶行为。古普塔等[21]提出导航在广泛的室内环境中使用视觉信息和egomotion,学会使用深度学习构建一个潜在的地图和导航。Giusti等[22]提出学习策略对于一个微型飞行器(飞行器)遵循一条使用在室外环境中视觉信息,而Sadeghi和莱文[23]学习控制策略对飞行器使用模拟CAD环境中的强化学习。这些工作的目的是从未给定目标物体的视觉特征中学习导航性能。

基于目标的导航

目标驱动的视觉导航方法[1]-[3]使用来自场景的第一人称视觉信息来导航其中的智能体。朱等人 [3]提出了该领域的第一种方法,即利用目标场景的图像作为目标来导航智能体。沃茨曼等人[24]最近提出了一种目标驱动导航的元学习方法,以获得在测试时间内从其错误中学习的能力。叶等人[1]提出了一种搜索感兴趣对象的方法。他们的重点是通过设计一个定制的目标识别模块来定位整个图像中的一个目标,从而快速找到一个以图像形式显示的目标的具体实例。 虽然他们通过在一个场景中找到4个不同的对象来验证他们的方法,但他们没有考虑对未见过的对象或同一对象的不同实例的概括。

同时,Yang等人提出通过图卷积网络(Graph Convolutional Network, GCN)融合ResNet和词嵌入特征提取对象关系特征,并使用目标名称的语义表示抽象目标。相比之下,我们建议使用从目标和其他物体的检测中建立的空间上下文信息,在当前视图中使用一个完善的物体检测器[25],并将其提供给网络。正如我们稍后将展示的那样,这使得我们的导航模型对外观变化具有鲁棒性,并能更好地泛化到未知的场景/对象。事实上,我们的方法对所有场景类型使用单一的策略网络,而[2]对每个场景类型使用不同的策略(例如,厨房、浴室),在推广到未见过的场景时存在一些困难。

本文方法

任务定义

给定一个目标对象,例如一支笔,我们的任务是在一个场景中导航一个智能体到这个对象类别的实例。我们考虑一个场景集合S=\left \{ s_0,s_1,...,s_n \right \}和目标对象O=\left \{ o_0,o_1,...,o_m \right \}。任务是场景s_i、目标对象o_i和agent初始位置p_i的组合,表示为T=\left \{ s_i,o_i,p_i \right \}。智能体从场景s_i中的位置p_i开始,并尝试到达一个状态,该状态下对象o_i可见。更准确地说,目标只有在对象是可见的情况下才会达到。例如:如果它存在于当前视图中,并且位于智能体[26]1米之内,即对象是可见的。对于每个当前状态,智能体将从一组动作中采取一个动作,A = {MoveAhead, MoveBack, MoveRight, MoveLeft, RotateRight, RotateLeft, LookUp, LookDown, DONE},导致一个新的状态,除非发生碰撞。其中左右旋转是45度,上下看是30度。

DONE信号:这一特殊动作将向环境表明,该智能体已准备好进行评估。成功由智能体在目标可见的状态下产生的DONE信号表示。如果目标不可见,智能体产生DONE信号,则表示失败。可见性定义允许我们避免显式地监视目标对象的确切位置。因此,它可以在不需要知道目标位置的真实场景中工作。请注意,正如[2]中提到的,使用done信号使导航问题更具挑战性,因为智能体需要学会自己在目标处停止。

基线模型

我们使用一个深度强化学习框架来学习导航,使用一组视觉和语义输入来找到并到达目标对象。 作为一个基线模型,我们使用一个从语义目标和视觉信息输入输出一个动作的网络架构(图2),这部分共享了最近方法[2],[24]的共同网络结构。请注意,在我们的工作中,所有场景都使用一个策略网络。对于时间步长t的每个状态s,给定语义目标g\in \mathbb{R}^{300},视觉特征v_s\in \mathbb{R}^{512},策略网络将输出当前时间步长t的一个动作a_t。策略函数可以表示为:

a_t\approx \pi (f(g;v_s;\theta ))

其中f是神经网络,\theta是参数。

视觉网络

我们使用与[3]中相同的视觉特征提取机制,其中Agent的当前RGB视图给Resnet50[27]网络提取特征。视觉网络在ImageNet上进行预训练,并在导航训练期间冻结。我们删除网络的最后一个完全连接的层,即最后一个平均池之后的层。 这就产生了一个2048-D的特性,输入为400×300。为了表明历史状态信息,最后四个之前的帧被堆叠在一起,产生了一个8192-D特性。 然后,这些特征通过RELU激活传递到一个完全连接的层,该层输出一个512-D特征。

语义网络

为了从表示为对象类文本的目标对象中提取特征,我们使用Spacy[28]工具包提取单词嵌入,每个类单词产生300-D特征。然后,这个300-D特征被传递到一个完全连接的层中,该层具有输出300-D特征的RELU激活。利用词嵌入作为输入特征,可以帮助网络泛化到语义上与训练中使用的目标对象接近的未见过的目标,例如,一把叉子将接近一把刀子。

Embedding

这两种类型的特征然后堆叠在一起,以产生一个联合嵌入层。由于语义和视觉特征在不同的模态空间中表达,这一层有助于网络泛化到一个新的场景和目标。这个联合嵌入层是一个完全连接的层,它输出传递给AC模型的512-D特征。

AC策略网络

我们使用A3C[29]来预测策略和每一步的值。该网络的输入是联合嵌入层的输出特征,它输出两个值:下一个动作(输出大小为|A|)和当前状态的Q值。 该网络包含两个完全连接的层。

奖励

我们使用[3]和[1]提出的奖励函数的混合。我们希望最小化起始位置和目标之间的路径长度,也希望最大化目标类的bounding box面积。并且,我们使用特定的信号DONE来强迫智能体学习任务。 为此,我们提出了新的奖励函数:

 其中S_{bbox}是由总面积视图规范化的bounding box区域。 例如,S_{bbox}=1表示边界框覆盖整个智能体的视场。这种奖励背后的想法是惩罚一个没有导致对象比以前更可见的状态的动作,这意味着智能体没有靠近对象。

这个奖励函数将首先使用bounding box区域奖励迫使网络不断靠近目标,即使状态不是最终状态。 然后它将迫使网络只有在目标可见时才输出Done信号。这对网络学习导航到目标有最大的影响,因为在评估期间,完成信号决定了episode是成功还是失败。

目标搜索的空间上下文网络

图3为我们使用上下文信息进行对象搜索的网络模型。为了在导航中学习和使用上下文,我们建议使用一种中间表示,称之为上下文网格。为了提取上下文特征,将上下文网格传递到由两个二维卷积层组成的上下文网络中,并使用RELU激活,然后进行最大池化处理。与图2的基线模式不同,由于上下文网格已经对语义目标信息进行了编码,因此我们还建议删除语义网络中使用语义目标作为输入的语义网络。

上下文网格是从视图中存在的目标对象和上下文对象的bounding boxes中构造的。这使得我们不仅可以在目标可见时快速地将智能体导航到目标,而且还可以在目标不可见时根据上下文信息导航到最可能的位置。本文使用的上下文网格的大小是16×16,并在图4显示了上下文网格的示例。上下文网格使用检测到的对象类,并计算目标对象和框出来的对象之间的相似性。在与bounding boxes中心相对应的位置填充目标对象与该位置对象之间的相似度值。例如,如果目标对象是“瓶子”,并且由对象检测网络检测到一个瓶子,则在智能体当前视图中瓶子的位置处分配一个值1。如果检测到一个玻璃杯,则在该玻璃杯位置处分配“玻璃杯”和“瓶子”之间的相似度分数。 否则,分配0。

我们使用一个完善的对象检测器YOLOV3[25]来检测当前视图中的对象。为了计算目标与被检测对象之间的语义相似度,我们采用与语义网络(图2)相同的方法,从被检测类x和目标类y中使用word-embedding的特征v来计算目标与被检测对象之间的语义相似度。然后,我们使用以下公式计算这两个向量之间的余弦相似度(CS):

CS(v_x,v_y)=\frac{v_x .v_y}{\left \| v_x \right \| .\left \| v_y \right \| }

如果两个对象在上下文网格中重叠,则取两个相似值之间的最大值。这里使用最大值是因为较高的值表示对象更类似于目标。为了进一步捕获空间关系而不是语义关系,我们还提出了visual genome数据集[30]上训练的word embedding特征提取方法。为此,我们使用gensim[32]中可用的word2vec[31]实现来训练visual genome区域标题的模型。这允许我们在图像中提取更有意义的真实世界对象关系。

这种使用上下文网格的新方法背后的主要动机是基于一种人性化的对象搜索策略来提高其导航能力。根据目标检测结果构造上下文网格时,当目标可见并被检测到时,网络会强烈地将Agent推向目标对象。即使目标对象不可见,智能体也会被移动到目标对象可能存在的位置,因为上下文网格还包含与目标语义相似的其他对象的相似性。

另一个动机是对未知场景/目标的泛化。通过向网络提供编码对象间语义关系的上下文网格表示,智能体将首先学会使用该表示在训练环境中导航,然后可以以同样的方式在未知环境中使用该表示。这是因为我们从标量余弦相似性构造上下文网格,这些相似性已经从300维的词嵌入向量中转换和压缩,当我们引入语义上新的对象时,这些向量可能会发生变化。 在上下文网格中,一个未见过的目标的处理方式与训练中见过的目标的处理方式相似,即使在测试过程中也携带相同的语义信息。这样,空间上下文网络就不会被未见过的目标输入所破坏,并且可以推广到未见过的场景和目标对象。

上下文网格是一种简单而有效的表示,它对对象的语义和位置进行编码。表示上下文的一种更复杂的方法是使用场景图[4]来表示更详细的关系。Yang等人[2]使用GCN编码对象关系,其本质类似于场景图,但由于这些关系标签的稀缺性,无法明确使用top、bottom、left、right等详细关系。我们认为,对于像导航这样的大规模问题,一个简单的表示方式,比如上下文网格,就足够了,而且更容易从中学习特性。事实上,在未见过的环境设置中,我们的方法比GCN的表现要好得多。

实验

数据集

数据集是 AI2-THOR [33]。该框架提出了 120 个逼真的环境,分为 4 种不同的房间类型(浴室、客厅、厨房和卧室),每个房间有 30 个不同的环境。

实现

智能体模型

结果和讨论

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值