DUET详解草稿

news2024/11/24 10:34:01

详解VLN

      • 动机:
      • 流程
      • 拓扑图
      • Text Encoder
      • Coarse-scale Cross-modal Encoder
          • Node embedding
          • Graph-aware cross-modal encoding
          • Global action prediction
      • Fine-scale Cross-modal Encoder
          • Visual Embedding
          • Fine-grained cross-modal reasoning
          • Local action prediction and object grounding.
      • Dynamic Fusion
      • Training and Inference
          • Pretraining
          • 推理
      • other Q&A
      • 补充材料

本文以《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

补充材料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

heic格式怎么改成jpg?

你想知道heic格式怎么改成jpg吗?当我们面对heic格式图片时,很有可能就会遇到无法打开图片的情况。因为heic与JPG相比,heic格式占用空间更少,图像质量更无损。HEIC格式照片支持iOS11和macOS High Sierra(10.13)及更高版本。但是这种…

【数据结构】链表 详解

我们不废话,直入正题。引入什么是链表?来看看百度怎么说:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点&#…

STM32+ESP8266点灯(STA 模式)点灯(2)

1、简介 STM32ESP8266点灯(APSTA 模式)点灯(1)一文已经通过串口助手实现与网络调试助手透传,本文通过STM32单片机替代网络调试助手,实现远程点灯。 2、单片机配置 2.1 cubemax配置 2.1.1 RCC配置 2.1.2…

华为手表开发:WATCH 3 Pro(13)websocket 请求数据到服务器

华为手表开发:WATCH 3 Pro(13)websocket 请求数据到服务器初环境与设备文件夹:文件重点核心代码:app.js新增一个文本输入框index.hmlindex.cssindex.js初 希望能写一些简单的教程和案例分享给需要的人 鸿蒙可穿戴开发…

Detectron2小白教程之安装试用篇

这里写自定义目录标题官方安装说明1、安装python2、安装opencv3、安装nvdia显卡驱动4、安装cuda11.75、安装pytorch6、安装nijia7、clone并安装detectron8、试运行detectronDetectron2是facebook主导的支持图像分类(Image classification),目标检测(Object detectio…

【Java EE】-文件IO

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 主要内容:文件的认识,绝对路径相对路径,二进制文件文本文件,File的方法的使用,普通文件的…

如何用docker容器部署nuxt3项目

Nuxt3是基于Vue3的一个开发框架,基于服务器端渲染SSR,可以更加方便的用于Vue的SEO优化。 Nuxt 3.0 新特性包括: 更轻量:以现代浏览器为目标的服务器部署和客户端产物最多可缩小 75 倍 更快:基于 nitro 提供动态代码…

CentOS 查找未挂载磁盘,格式化后并挂载

1.查看当前Linux服务器磁盘分区 1 # df -Th 2.查看当前服务器硬盘 1 # fdisk -l 图中磁盘 /dev/sdb为未挂载的磁盘(磁盘符号依次为sda、sdb、sdc……) 后面以sdb为例 3.磁盘分区 fdisk /dev/sdb (依次键入) n 回车 p 回车 1 回车 (此处…

总结822

学习目标: 4月(复习完高数18讲内容,背诵23篇短文,熟词僻义300词基础词) 学习内容: 暴力英语:早上背了《the method of learning 》,之后默写了一遍,还不是很熟练。抄写了前10篇的短…

BVH ==>SMPL for Unified

BVH to SMPL 将BVH文件转换为SMPL模型,需要使用专业的3D建模软件。 例如 Blender或Maya。 Steps 导入BVH文件到建模软件中。将BVH文件应用于一个适当的人体模型。将人体模型转换为SMPL模型。导出SMPL模型文件。 Realization https://github.com/Meshcapade/SMPL_b…

软件质量保证与软件测试复习笔记(第一周总体介绍+黑盒测试详细)

第一周 2.23 (总体性介绍) 软件测试的定义 常用术语解释 错误 缺陷 故障 失效 测试和测试用例、测试过程 出现软件缺陷的原因 软件开发的主要环节 测试过程的生命周期模型 软件测试的本质是针对要测试的内容确定一组测试用例 测试用…

电脑无法正常关机?点了关机又会自动重启

“真木马”相信不少朋友遇到过电脑关机自动重启现象,一点关机,但随后电脑有会进入重启状态,就是一直不会停,属实是很难崩。 目录 一、问题症状 二、问题原因 三、解决方案 方法一: 1.关闭系统发生错误时电脑自动…

生命在于折腾——PicGo+Minio+Typora图床搭建

好久没更新了,前段时间太忙了,还有些摆烂,所以,嗯,懂得都懂,写这篇博客前一天我还在椅子上坐了两个小时,思考人生的意义。 话不多说,开始吧。 一、起因 因为好久没管过博客&#…

显存不够用?一种大模型加载时节约一半显存的方法

Loading huge PyTorch models with linear memory consumption 本文主要介绍了一种用于加载巨大模型权重时节约接近一半显存的方法 首先,创建一个模型: import torch from torch import nnclass BoringModel(nn.Sequential):def __init__(self):super().__init__…

NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_实际操作_03---大数据之Nifi工作笔记0035

然后我们来操作一下首先创建一个处理器组名字是: MysqlToHive_timely 创建组以后我们进入这个组 然后我们先去添加CaptureChangeMySql这个处理器 拖入处理器以后,我们配置这个处理器 可以看到很多属性,这里我们配置 首先看这个Distrbuted Map Cache Client 这个客户端,我们先来…

ChatGPT聊天机器人程序

ChatGPT聊天机器人程序是一种基于人工智能技术的智能对话程序,利用ChatGPT等自然语言处理模型和算法实现与用户的交互,回答问题、提供服务等。 ChatGPT聊天机器人程序通常包括以下模块: 输入模块:用于接收用户输入的信息&…

vmware虚拟机上网设置教程(vmware虚拟机设置网络)

安装vmware后,一般都会有虚拟机能连互联网的需求(如虚拟机中Linux想访问百度),vmware为我们提供了几种连接网络的方式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模…

SpringBootApplication最详细注解

SpringBootApplication最详细注解SpringBootApplication的注解分类1.Target2.Retention3.Document4.Inherited5.SpringBootConfiguration6.EnableAutoConfiguration6.1AutoConfigurationPackage这个注解6.1.1 Import6.1.2 AutoConfigurationpackages.Registrar.class6.2 AutoCo…

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍

DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮。 这场风潮对数字世界产生了革命性影响。ChatGPT类模型具有惊人的泛用性&#xff0…

硬盘未格式化如何处理(硬盘忽然未格式化如何处理)

将硬盘插入电脑的时候为什么会出现“未格式化”的提示框呢?遇到这个问题时又该怎么处理呢?别慌,下面小编就来给大家演示一下子解决未格式化这个问题的解决方法。 硬盘未格式化如何处理工具/软件:sayRecy 步骤1:先百度搜索并下载程序打开后&…