![](https://i-blog.csdnimg.cn/blog_migrate/ff68aa2b309806c139ba0b0dc6655228.png)
引言
![](https://i-blog.csdnimg.cn/blog_migrate/d12934d4e7a4d464ca583e6c5226bd20.png)
人类能够有效地完成复杂的任务,如对象-目标导航,并内隐地记忆不同对象之间的关系。 例如,要导航到一个目标,如厨房里的烤面包机,一件自然的事情是从周围一组较大的候选对象开始,这些对象可能在附近,如炉子或微波炉。 遗憾的是,这种类型的层次关系在机器人导航中很少使用。 因此,当他们离得更远时,智能体通常无法对目标位置产生任何直觉。
本文方法
当前方法存在的问题
利用对象-对象关系形式的上下文可以有效地对目标进行分层搜索。目前的方法大多倾向于直接将感官输入纳入基于奖赏的学习方法,而没有学习自然环境中的对象关系,因此跨领域的泛化能力很差。
本文方法
提出了一种基于记忆利用的联合层次目标学习的室内导航算法(MJOLNIR),该算法考虑了目标对象之间的内在联系以及周围环境中出现的更突出的上下文对象,是一种目标驱动的导航算法。
我们将对象目标设定为target。 将那些与目标有空间和语义关系的较大候选对象称为parent。
本文贡献
通过理解语义上下文的作用,我们提出了一种层次化的对象关系学习方法来解决对象-目标导航问题;
强调了目标检测所起的作用;
提出了一种新的奖励机制将parent-target对象关系结合起来。
存在的挑战
正确地将机器人当前的观察和一些关于对象关系的先验直觉关联到模型中。
有效的利用这种层次关系解决视觉导航问题。
模型细节
任务定义
object-goal导航问题的目标是在给定的环境中找到一个目标对象,并且不提供任务关于环境的语义和拓扑图形式的信息。
智能体在一个episode开始的时候在环境中的一个随机位置产生。
模型的输入:当前观测的RGB图像+目标对象的word embedding+当前时间步长上的滚动。
智能体采样的动作有{moveahead、rotateleft、rotateright、lookup、lookdown、done}
在论文《visual semantic navigation suding scene priors》中的智能体动作类型为{move forward,move back, rotate right, rotate left, and stop},其中没有stop的效果比有stop的效果好。
如果目标对象可见,则意味着智能体可以在当前帧中检测到它,并且在它距离的1.5米内,则这个episode被认为是成功了。当Done这个动作被智能体采样的时候,episode结束,并且模型检查是否符合这个标准。
模型细节
parent-target object relationship
一组target object的定义:
![](https://i-blog.csdnimg.cn/blog_migrate/935364b62afdaf679538a4236dc091f6.png)
一组parent object的定义:
![](https://i-blog.csdnimg.cn/blog_migrate/ccd7e9e3b5aecaccd531acee5f672337.png)
parent object是由房间内较大的对象组成的,并且它们在语义或者空间上与目标对象相关。导航Agent的目标是从探索p∈P周围的区域开始,最终到达目标物体ti∈T。
知识图谱的构建和上下文向量
本文和论文《visual semantic navigation using scene priors》的做法一样,在VG数据集上构建物体和关系,通过剪枝大量的对象和关系的别名,构建了一个更干净的邻接矩阵,包含了对象之间的强关系对应。
除了构建的知识图谱,还为每个对象
![](https://i-blog.csdnimg.cn/blog_migrate/062d9dab0d5c580cb36167cb1dd93ebd.png)
构建了一个新的上下文向量cj,该矩阵的大小为101*5,其中O是在我们环境中所有101个物体的列表。该5维的上下文向量给出了物体oj在当前帧的状态,包括:
![](https://i-blog.csdnimg.cn/blog_migrate/48a79fb34198142eabfbda7eeac3eca8.png)
b是一个二进制向量,表示在当前帧是否可以检测到物体oj
接下来三个元素表示的是物体oj边界框的中心(x,y)以及覆盖的区域,两者相对于图像大小进行了归一化。
CS是一个数字,表示 o j 和目标对象 t ∈ T 的各个词嵌入之间的余弦相似度。
![](https://i-blog.csdnimg.cn/blog_migrate/fcaaeaa3036343d6603aba239d41e790.png)
其中,g为用GloVE向量形式表示的词向量,本实验采用的是300维的GloVE
端到端模型
![](https://i-blog.csdnimg.cn/blog_migrate/6aff38a7193181760b7b4ea6fd0917ec.png)
奖励
本文通过调整奖励函数以便正确地学习导航任务中的parent-target关系。
![](https://i-blog.csdnimg.cn/blog_migrate/4ba26605dac4d77a69cf472592dcac77.png)
1、
![](https://i-blog.csdnimg.cn/blog_migrate/2d935d602c2cba3136080251960c425d.png)
Rt表示目标奖励,k是比例因子,范围是0-1之间,本文将Rt取为5,k为0.1。Pr(t|p)来自于奖励矩阵M。奖励矩阵M的每一行都表示了所有parent物体对于给定的target object的相对“贴合度”的概率分布,其中“贴合度”是根据L2距离进行的计算。如果多个parent节点都可见,则选Rp最大的一个。智能体在下一个时刻看到同样的parent物体时不会得到该奖励。这可以使在目标未被定位之前,智能体更多的探索不同的父对象。
M是利用AI2-THOR环境的训练切割产生的。对于每个平面图,绘制了每个对象的3D位置,然后计算位于parent物体1m的欧氏距离内不同目标对象出现的次数。由于即便同一parent对象可能出现在不止一种房间类型中,它与target对象的关系也可能不同。因此,为每种房间类型计算了 M。
2、如果"Done"动作被采样,且t是可见的,则获得Rt和Rp。通过这种方式,它学习将parent对象与target对象以及当前状态关联起来。
3、具体的算法流程
![](https://i-blog.csdnimg.cn/blog_migrate/f7d684bafe7c8a45f1c760836d208696.png)
训练的一些超参数
![](https://i-blog.csdnimg.cn/blog_migrate/5c9933d4bbbcc366ea45e99a3bc05fca.png)
实验结果
实验设置
导航任务的平台:AI2-THOR,由120张平面图组成,4种不同的房间布局,包括厨房、客厅、卧室和浴室。每个房间布局有30个平面图。每个场景前20个是在训练集,后10个是测试集。
对比模型
1、Baseline:该模型与 Zhu 等人[1] 的模型非常相似,因为它包括当前观察(以当前 RGB 帧的 ResNet 特征的形式)和目标信息(以目标对象的GloVE嵌入形式) ) 作为它的状态。
2、Scene Prior:该方法以知识图的形式使用先验知识,但不利用对象之间的层次关系。
3、SAVN:在这个模型中,即使在推理过程中,智能体也通过一个交互损失函数来不断地学习它所处的环境。
实验结果
![](https://i-blog.csdnimg.cn/blog_migrate/ea929b017fd873b7db6710281abe5151.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e1ab3769dfb58f3fcca3e1d15f5bfe00.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2e5a54e92e8eb62d524fba5f13ffa118.png)
首先,当目标是可见的,但直通目标的路径被障碍物阻塞时,智能体会陷入一个特定的状态。 我们假设一个检查冲突的计划器模块可能有助于克服这一点。 其次,由于“done”是候选动作之一,(i)即使在目标尚未达到时也可能被错误地采样,或者(ii)即使在达到目标后也可能没有被采样。 一个解决办法是由环境提供终止标准。