ETPNav:基于演进拓扑规划的连续环境视觉语言导航模型
1、现有工作的缺陷:
最近,出现了一种基于模块化航路点的方法的新兴趋势,该方法将复杂任务分为航路点生成、子目标规划和导航控制:
(1)在每个决策循环中,代理使用预训练的网络来预测附近的几个候选航路点,然后执行跨模态接地,从航路点中选择一个子目标;
(2)控制器通过低级操作驱动代理到达选定的子目标。
基于航路点的方法存在三个问题:
(1)预测的航路点仍然是局部的,并且局限于代理的附近区域,这不足以捕捉全局环境布局,并可能阻碍代理的长期规划能力;
(2)航路点预测的关键设计选择尚未得到很好的研究;
(3)针对航路点到达,提出了不同类型的控制器(启发式、基于地图、基于学习,但它们对障碍物的鲁棒性仍然未知。
2、本工作的主要贡献:
(1)提出了一种新的基于拓扑图的VLN-CE鲁棒导航规划方法。它可以有效地抽象连续环境,并促进代理的长期目标规划;
(2)通过综合实验研究了构建拓扑图的基本设计选择,证明了简洁的深度设计是航路点预测的最佳选择;
(3)提出了一种有效的试错控制器来解决避障问题。
一、模型整体框架
1.1 任务描述
在每个Eposide:
(1)文本输入:将L个单词的文本指令的嵌入表示为;
(2)视觉输入:在每个位置,接受全景RGB-D观察,即由12个RGB图像和12个深度图像组成。其中这些图像是在12个等距的水平航向角(即(0°、30°、…、330°)上捕获的。
1.2 模型介绍
模型的整体框架如下图所示,该模型利用基于高级拓扑图的规划和低级控制器来完成VLN-CE任务:

可以看出,主要包括三个模块:拓扑映射、跨模态规划和控制。
(1)拓扑映射:拓扑映射模块为每个Eposide维护一个拓扑图。在每个决策循环中,拓扑映射模块首先通过合并当前观测值来更新拓扑图;
(2)跨模态规划:跨模态规划模块对拓扑图和指令进行跨模态推理,以制定高级拓扑路径规划;
(3)控制:当跨模态规划模块指定完毕计划后,由控制模块负责执行,该模块通过一系列低级操作驱动代理。
二、难点
2.1 拓扑映射
2.1.1 拓扑图构建
拓扑图构建——总共分为已访问节点、当前节点和ghost节点(已观察但未探索):
(1)将遍历路径上访问或观察到的位置抽象为图形表示,在步骤 表示为
:
(2)每个节点()都包含在其位置观察到的视觉信息以及位置信息;
(3)如果两个节点的表示位置可以直接相互到达,则它们由边()连接,边存储两个节点之间的相对欧几里德距离。
拓扑图构建及更新整体流程如下图所示:

(1)在每个步骤 ,代理首先预测几个附近可能可访问位置的航路点,表示代理附近大概能访问的位置;
(2)当前节点也在代理的当前位置初始化,并连接到上次访问的节点(如果存在);
(3)预测的航路点和当前节点由当前观测值 的特征嵌入表示。这些航路点将被组织起来,以更新之前的地形图
并获得当前的地图
。
2.1.2 视觉输入处理
给定当前步骤的RGB-D观测值,使用两个不同的预训练视觉编码器分别提取RGB特征向量
和深度特征向量
。为了区分从全景的不同视图捕获的特征,我们还应用了方向特征
,其中
表示偏航角。两个视觉编码器的参数是固定的。
2.1.3 航路点预测
采用基于Transformer的航路点预测器来生成附近的航路点。预测器采用深度特征向量 和方向特征向量
来预测航路点的相对位姿:
(1)使用线性层融合 和
中的特征向量;
(2)融合后的向量被馈送到两层Transformer中,以进行视图间交互并获得上下文深度嵌入;
(3)将这些嵌入输入多层感知器,以获得表示空间中附近航路点概率的热图;
(4)使用非最大抑制(NMS)从热图中采样K个航路点 ,其中
表示与无人机的相对位姿。
需要注意的是:
(1)预测器只将深度图像作为输入,而不是全部使用RGBD图像。这种深度设计的动机是,航路点只代表空间可达性,而语义级RGB信息可能没有帮助,甚至是有害的;
(2)预测器在MP3D图形数据集上进行了预训练,它的参数是固定的。
2.1.4 航路点和当前节点的视觉表示
对当前观测值 进行特征映射,以表示预测的航路点和当前节点:
(1)RGB特征 、深度特征
和方向特征
使用线性层进行融合,然后馈送到全景编码器中,全景编码器使用多层Transformer来执行视图间交互,并输出上下文视觉嵌入
;
(2)当前节点可以访问全景观测,因此表示为 的平均值;
(3)预测的航路点是部分观察到的航路点,由可以观察到它们的视图的嵌入表示。例如,如果航路点与代理的相对偏航角在0°~30°以内,则航路点由第一个视图嵌入 表示;
(4)航路点表示将被合并以更新ghost节点的表示。
2.1.5 拓扑图更新
根据预测的航路点与图中现有节点的空间关系更新拓扑图。该过程利用航路点定位(FL)功能来定位图中的航路点——FL将航路点的位置作为输入,并计算其与图中所有节点的欧几里德距离。如果最小距离小于阈值γ,FL将相应的节点作为局部节点返回。主要分为三类:
(1)如果已访问节点被定位,删除输入航路点,并在当前节点和本地化的访问节点之间添加一条边;
(2)如果ghost节点被定位,则将输入航路点的位置视觉表示累积到定位的ghost节点,同时删除输入航路点。局部ghost节点的新位置和表示被更新为其累积的航路点位置和表示的平均值;
(3)如果没有节点被定位,将输入的航路点视为新的ghost节点。
2.2 跨模态规划
跨模态规划模块由文本编码器和跨模态图编码器组成,如下图所示:

当前Episode的指令由文本编码器编码,然后,跨模态图编码器对编码的拓扑图和编码的指令进行推理,以预测长期目标节点,输出是到达目标的规划拓扑路径。
文本编码器为多层Transformer,此处不再赘述,重点分析跨模态图编码器。
2.2.1 节点编码
该模块采用拓扑图 和编码指令
来预测拓扑图中的长期目标节点。节点
中的视觉特征添加了位姿编码和导航步骤编码:
(1)位姿编码嵌入了节点相对于代理当前位置的全局相对位姿信息,包括其方向和相对于当前节点的欧几里德距离;
(2)导航步骤编码为访问过的节点嵌入了最新访问的时间步,为ghost节点嵌入了0,这种方式允许用不同的历史对访问过的节点进行编码,以捕获导航依赖关系并促进与指令的对齐。
的编码表示为
。为了表示STOP操作,在图中添加一个“STOP”节点,并将其与所有其他节点连接。
2.2.2 跨模态图Transformer
编码的节点和词嵌入被馈送到多层Transformer中,以进行跨模态交互。Transformer的结构类似于LXMERT,每一层由一个双向交叉注意力子层、两个自注意力子层和两个前馈子层组成。;
(1)首先计算节点和文本的交叉注意力;
(2)然后对编码的节点计算自注意力(GASA)。对于节点编码,标准的注意力层只考虑节点之间的视觉相似性,这可能会忽略比远处节点更相关的附近节点。为此,本工作设计了一种图感知自注意力(GASA),在计算节点编码的节点间注意时进一步考虑了图拓扑:
![]()
其中X表示所有节点编码的堆栈,E是由从图边 获得的所有对最短距离构造的空间矩阵。生成的节点视觉文本关联表示
。
(3)再通过前馈层。
2.2.3 长期目标预测
拓扑图 中每个节点
的导航目标预测得分计算如下:
![]()
需要注意的是:
(1)得分 计算的是“stop”节点的得分,表示“停止”动作的概率;
(2)为了避免对已访问节点进行不必要的重复访问,屏蔽已访问节点和当前节点的得分,只从ghost节点或“停止”节点中选择长期目标;
(3)代理根据预测的目标分数选择一个长期目标(即分数最大的那个),通过在图上执行Dikjstra算法来计算到目标的最短路径,此路径由一系列子目标节点 组成。
2.3 控制
控制模块负责将拓扑计划 转换为一系列低级动作,以引导代理实现目标。控制模块的输入包括子目标节点规划
的序列,以及无人机在每个时间步长的位姿。导航控制的输出动作空间是由VLN-CE任务定义的一组参数化低级动作,例如前进(0.25m)、左、右旋转(15°)和停止。
主要实施过程采用旋转然后向前控制器(RF):
(1)为了到达子目标节点,RF首先访问代理的当前位姿并计算其与
的相对方向和距离
;
(2)然后, 被量化并转化为一系列旋转(15°)动作,然后是前进(0.25m)动作序列。RF按顺序执行这些转换后的动作;
(3)当前子目标完成, 中的后续节点成为新的子目标。循环重复,直到
中不再有节点。
三、总结
(1)航路点预测器的结论(只采用深度图像信息)能否应用到目标预测器上?
(2)之前那片文章没有很好地利用已访问节点(位置)的信息?
相关文章:
ETPNav:基于演进拓扑规划的连续环境视觉语言导航模型
1、现有工作的缺陷: 最近,出现了一种基于模块化航路点的方法的新兴趋势,该方法将复杂任务分为航路点生成、子目标规划和导航控制: (1)在每个决策循环中,代理使用预训练的网络来预测附近的几个…...
Spring Cloud LoadBalancer负载均衡+算法切换
目录 介绍核心功能负载均衡启动两个支付服务订单模块引入依赖LoadBalanced 注解启动订单服务测试结果 负载均衡算法切换总结 介绍 Spring Cloud LoadBalancer 是 Spring Cloud 提供的客户端负载均衡解决方案,提供更现代化的 API 和更好的 Spring 生态系统集成。它支…...
游戏引擎学习第210天
回顾并为今天的工作做准备 今天我们,进行一些编码工作。这部分的编码内容对那些对代码架构感兴趣的人非常有帮助,我认为今天的编码内容会很有教育意义,尤其是在展示一些代码转化的过程中,希望大家能够从中获得一些启发。 接下来…...
XXL-JOB 分片广播模式深度解析:从原理到实战
前言 XXL-JOB 是一个轻量级的分布式任务调度平台,它以其简单易用、灵活扩展的特点受到了开发者的青睐。本文将深入探讨 XXL-JOB 的分片广播模式,包括其工作原理、实现方法、异常处理及监控告警策略,并通过 Java 代码示例和工作流程图来帮助大…...
UML类图综合实验三补档
1.使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man对象,如果传入参数“W”,则返回一个Woman对象,用Java语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”&#…...
WinForm真入门(11)——ComboBox控件详解
WinForm中 ComboBox 控件详解 ComboBox 是 WinForms 中一个集文本框与下拉列表于一体的控件,支持用户从预定义选项中选择或直接输入内容。以下从核心属性、事件、使用场景到高级技巧的全面解析: 一、ComboBox 核心属性 属性说明示例Items下拉…...
DeepSeek底层揭秘——《推理时Scaling方法》技术对比浅析
4月初,DeepSeek 提交到 arXiv 上的最新论文正在 AI 社区逐渐升温。 笔者尝试对比了“关于推理时Scaling”与现有技术,粗浅分析如下: 与LoRA的对比 区别: 应用场景:LoRA是一种参数高效微调方法,主要用于在…...
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(四)
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(四) 对 Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(三)-CSDN博客 进行完善,注意完善 …...
Adam优化器研究综述
摘要 Adam优化器(Adaptive Moment Estimation)是一种广泛应用于深度学习的优化算法,通过自适应学习率加速梯度下降过程。本文从Adam的定义、算法原理、优势与局限性、应用场景及变体等方面进行调研,结合学术文献和实践经验&#x…...
在 macOS 上连接 PostgreSQL 数据库(pgAdmin、DBeaver)
在 macOS 上连接 PostgreSQL 数据库 pgAdmin 官方提供的图形化管理工具,支持 macOS。 下载地址:https://www.pgadmin.org/ pgAdmin 4 是对 pgAdmin 的完全重写,使用 Python、ReactJs 和 Javascript 构建。一个用 Electron 编写的桌面运行时…...
使用文本翻译API打破语言障碍
一、引言 在当今全球化的商业环境中,企业面临着前所未有的语言挑战。无论是出口商品、引进技术,还是与国际客户进行交流,语言障碍始终是一个亟待解决的问题。文本翻译API作为一款高效、稳定的工具,支持多种语言的翻译,…...
UniappX动态引入在线字体图标,不兼容css时可用。
优缺点 优点:不需要占用本地存储,可直接在线同步库图标,不用再手动引入ttf文件,不用手动添加键值对对应表。 缺点:受网速影响,字体库cdn路径可能会更改,ios端首次加载,可能会无图标…...
2018年真题
数学基础 一、 (共4分)用逻辑符号表达下列语句(论域为包含一切事物的集合) 1、(2分)集合A的任一元素的元素都是A的元素 经过对图片文字的识别与逻辑分析,结果如下: 符号定义&…...
Efficient Burst Raw Denoising:稳定噪声方差和分频率降噪
Efficient Burst Raw Denoising with Stabilization and Multi-Frequency Denoising Network Burst Raw Denoising必要性Burst Raw Image Denoising流程Main Contributions具体方法介绍集成noise priorCMOS sensor 噪声建模噪声变换(Variance stabilization…...
Ansible的使用2
#### 一、Ansible变量 ##### facts变量 > facts组件是Ansible用于采集被控节点机器的设备信息,比如IP地址、操作系统、以太网设备、mac 地址、时间/日期相关数据,硬件信息等 - setup模块 - 用于获取所有facts信息 shell ## 常用参数 filter…...
Springboot JPA ShardingSphere 根据年分表java详细代码Demo
一、项目结构 src/main/java ├── com.example │ ├── config │ │ └── TableInitializer.java # 动态建表配置 │ ├── entity │ │ └── Order.java # JPA实体类 │ ├── repository │ │ └── OrderRepository.j…...
mapbox进阶,使用本地dem数据,加载hillshade山体阴影图层
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️hillshade 山体阴影图层 api1.3.1 ☘️…...
【C++】Stack Queue 仿函数
📝前言: 这篇文章我们来讲讲STL中的stack和queue。因为前面我们已经有了string、vector和list的学习基础,所以这篇文章主要关注一些stack和queue的细节问题,以及了解一下deque(缝合怪)和priority_queue &am…...
代码随想录_单调栈
代码随想录_单调栈 739.每日温度 739. 每日温度 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,…...
C++类与对象进阶知识深度解析
目录 一、再谈构造函数 (一)构造函数体赋值 (二)初始化列表 (三)成员变量初始化顺序 (四)explicit关键字 二、static成员 (一)概念 (二&am…...
BoostSearch搜索引擎项目 —— 测试用例设计 + web自动化测试代码
web自动化代码: https://gitee.com/chicken-c/boost-search/tree/master/AutoTest...
【Ansible自动化运维】一、初步了解,开启自动化运维之旅
在当今数字化时代,随着企业 IT 基础设施规模的不断扩大,传统的手工运维方式逐渐显得力不从心。自动化运维技术应运而生,其中 Ansible 凭借其简洁易用、功能强大的特点,成为众多运维工程师和开发人员的首选工具。本篇文章将从基础概…...
AI日报 - 2025年4月9日
🌟 今日概览(60秒速览) ▎🤖 AGI突破 | DeepSeek AI推出自我原则批判调优(SPCT)新方法 通过GRMs自我创建和批判原则,性能媲美671B参数大模型 ▎💼 商业动向 | NVIDIA发布Llama-Nemotron-Ultra 253B模型 开放权重和训练数据&#x…...
2025年二级建造师考前冲刺题库
二建考前冲刺练习通常会涵盖考试的重点和高频考点,考生在做题过程中可以加深对这些知识点的理解和记忆,提高对重点知识的掌握程度。 建设工程法规及相关知识 1、单选题:关于建设工程中代理的说法,正确的是( …...
蓝桥·20264-祝福语--找连续字串的长度
#include <iostream> using namespace std; int main() {// 请在此输入您的代码//最小字典序,一定是全a,找s的最长字串a,结果就是该字串长度加1(t不能是s的子串)//所以这道题就变成了,找s中字串a出现的长度strin…...
条件概率、概率乘法公式、全概率公式和贝叶斯 (Bayes) 公式
定义 设 P ( A ) > 0 P(A) > 0 P(A)>0,若在随机事件 A A A发生的条件下随机事件 B B B发生的概率记作 P ( B ∣ A ) P(B|A) P(B∣A),定义 P ( B ∣ A ) P ( A B ) P ( A ) P(B|A) \frac{P(AB)}{P(A)} P(B∣A)P(A)P(AB) 则称 P ( B ∣ A ) …...
pdf转latex
Doc2X(https://doc2x.noedgeai.com/) Doc2X 是一个由 NoEdgeAI 提供的在线工具,主要用于将 PDF 文件(尤其是学术论文、报告等文档)转换为 LaTeX 格式。LaTeX 是一种高质量排版系统,广泛应用于学术界和出版…...
【Unity】Unity Transform缩放控制教程:实现3D模型缩放交互,支持按钮/鼠标/手势操作
【Unity 】Transform缩放控制教程:实现3D模型缩放交互,支持按钮/鼠标/手势操作 在Unity开发中,Transform组件承担着场景中物体的空间信息控制,包括位置、旋转和缩放。而缩放(Scale)操作,作为三…...
【Linux篇】缓冲区的工作原理:如何影响你程序的输入输出速度
从内存到磁盘:缓冲区如何提升文件I/O效率 一. 缓冲区1.1 什么是缓冲区1.2 为什么要引入缓冲区1.3 缓冲区类型1.4 FILE1.4.1 基本概念1.4.2 FILE 结构体的作用1.4.3 FILE 的工作机制 二. 最后 在程序开发中,缓冲区是一个经常被提及却不容易深入理解的概念…...
kotlin,Android,jetpack compose,日期时间设置
AI生成,调试出来学习,这些小组件会用了,就可以组合一个大点的程序了。 package com.example.mydatetimeimport android.app.AlertDialog import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.co…...
