DUET详解草稿

本文以《Think Global, Act Local: Dual-scale Graph Transformer for Vision-and-Language Navigation》为例,详细解释了visual language navigation流程
项目地址:https://cshizhe.github.io/projects/vln_duet.html
数据增强的扩展任务:https://github.com/shonnon-zxs/HM3DAutoVLN

动机:

在这里插入图片描述
本文首先分析了基于graph的VLN方法和HAMT模型的缺点(HAMT是本文之前的sota模型)
HAMT模型虽然在每一步都记忆了当前和历史访问过的视觉信息但是,只能在局部做出行为决策(预测action),而基于graph的方法是对所有访问过的节点建立一个map,使得agent能够进行全局的决策,但仍然具有两个缺点:一是依赖于循环架构进行导航阻止了长期探索的能力,(不记忆是否访问过,访问过的节点还可能再次访问),另一方面是节点的视觉特征过于简单,虽然会降低复杂性,但也会忽略一些object的信息。

本文提出了双尺度的规划导航方法,双尺度指的是进行全局的粗粒度的规划 和 局部的细粒度的预测。

当前节点信息没做处理,全局和局部的推理还是有gap的,因为DUET动态进行local和global的action是分开的并没有融合
在这里插入图片描述

流程

  • 根据observation构造以自我为中心的map,
    这个map是包括访问过的的点边得信息,这些蓝色的点表示可导航点,黄色的点表示访问过的点,红色的点表示当前node,边是距离无向的,

  • 根据当前节点进行局部行为预测

  • 动态融合局部和全局的预测目标导航点之后

  • 根据弗洛伊德全局的最短路径做出location action,到达新的节点,不重复访问

  • 如果做出的是停止动作,或者没有vp剩余,或者达到了最大值(15)则下一步停止

在这里插入图片描述

拓扑图

代理可以访问已访问节点(黄色)和当前节点(红色)的全景视图。可导航节点(蓝色)未经探索,仅从已访问的位置部分观察到,因此,它们具有不同的视觉表示。

在每一步中,agent接收节点Vt的图像特征Rt和对象特征Ot。使用多层transformer进行视觉编码,然后再进行池化vi(即不带圈的红色node)。对于可导航点仅仅保留在Vt位置能观察到的部分view,如果能够从多个节点观察到,就进行平均
在这里插入图片描述

为了进行细粒度的推理,作者还保留当前的节点没有池化的特征(红色带圈的node),这个节点包括r1到 r n个view和om个object,r0表示停止

Text Encoder

使用transform编码的文本指令表示为
在这里插入图片描述

Coarse-scale Cross-modal Encoder

Node embedding

node = visual+location+step (所有的位置编码信息都是相对与当前的节点方向和距离),step编码为访问节点嵌入最近访问的时间步骤, 0表示没有访问过的节点。v0表示为停止的节点

Graph-aware cross-modal encoding

等式2中的标准注意力,只考虑节点之间的视觉相似性,因此它可能会忽略附近的节点,这些节点比远处的节点更相关。
在这里插入图片描述
其中X表示节点表示,E是从Et获得的成对距离矩阵,We,be是两个可学习的参数。我们在编码器中堆叠N个层,并将节点Vi的输出嵌入记为vëi.

Global action prediction

预测在构建的图中每个节点的分数, s 0 c s^c_0 s0c表示stop的分数
在这里插入图片描述
note:访问过的节点不重新访问(访问过的分数设为0)

Fine-scale Cross-modal Encoder

Visual Embedding

在粗粒度的编码中,添加的节点位置编码信息是相对于当前节点的方向和距离
而在细粒度的编码中,作者添加了两种位置类型(相对的,和相对于起点的,即绝对的)

Fine-grained cross-modal reasoning

使用注意力机制建模视觉和语言指令的关系

Local action prediction and object grounding.

类似于公式5,在局部导航空间预测导航分数,
局部的动作空间是{stop,}
$s^f_i in , N ( V t ) N(V_t) N(Vt)表示当前的临节点,
到底是节点还是view

Dynamic Fusion

这个是有问题的,局部和全局预测空间融合,但是预测空间不一致呀

全局和局部的预测空间不一致,维度不相同,无法进行全局预测(局部辅助全局,主要还是全局预测), s t o p , N ( V t ) {stop, N(V_t)} stop,N(Vt)表示当前节点和当前节点可导航节点,
为了导航到未与当前节点连接的其他未探索节点,代理需要回溯到其相邻的访问节点。

在这里插入图片描述
也就是除了t步周围的可导航点,其他的点(访问过的点和不相邻的点(其他的蓝色的点))都设为 s b a c k s_{back} sback, 也就是 N ( V t ) N(V_t) N(Vt)上访问过的和(0或者说是负无穷)

在每一步中,我们将来自粗尺度编码器的 v ^ 0 \hat{v}_0 v^0 和来自细尺度编码器的 r ^ 0 \hat{r}_0 r^0 连接起来,以预测用于融合的标量:
在这里插入图片描述
σ t σ_t σt其实可以理解为stop的分数,越大说明越应该在当前位置停止,越相信全局的分数。
在test的时候选择最大的分数作为选择下一个行动

由上面的描述可发现,无论全局还是局部,最终是选择可导航点,
局部的预测是对n个view都输出一个预测分数,只保留可导航节点的预测分数

Training and Inference

Pretraining

masked language modeling (MLM) [28], masked region classification (MRC) [48], single-step action prediction (SAP) [15] and object grounding (OG) [49] if object annotations are available.

在这里插入图片描述

在这里插入图片描述
pid也就是说,at不是gtaction而是按照预测概率采样的at,
在这里插入图片描述
这意味训练时每一步都要预测一个object

推理

在测试过程中的每个时间步骤,我们更新第3.1节中介绍的拓扑图,然后预测第3.2节中解释的全局动作。如果是导航动作,则在给定地图的情况下,最短路线规划模块采用Floyd算法来获得从当前节点到预测节点的最短路径,否则代理停止在当前位置。如果代理超过最大操作步骤,则会强制停止。在这种情况下,它将返回到具有最大停止概率的节点作为其最终预测。在停止的位置,代理选择具有最大对象预测得分的对象。

other Q&A

预测的时候是根据最后一步选择object

补充材料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值