这是一篇选自tpami2024的一篇新文章
ETPNav: Evolving Topological Planning for Vision-Language Navigation in Continuous Environments(tpami2024)
研究背景:这项工作解决了一个实用但具有挑战性的 VLN 设置——连续环境中的视觉语言导航 (VLN-CE)。为了开发强大的 VLN-CE 代理,作者提出了一种新的导航框架 ETPNav,该框架侧重于两项关键技能: 1)抽象环境和生成远程导航计划的能力,2)避障控制的能力在连续的环境中。 ETPNav 通过沿着遍历的路径自组织预测航路点来执行环境的在线拓扑映射,无需事先的环境经验。它使代理能够将导航过程分解为高层规划和低层控制。同时,ETPNav 利用基于变压器的跨模式规划器根据拓扑图和指令生成导航计划。然后通过避障控制器执行该计划,该控制器利用试错启发式方法来防止导航卡在障碍物中。实验结果证明了该方法的有效性。 ETPNav 在 R2R-CE 和 RxR-CE 数据集上分别比之前最先进的技术提高了 10% 和 20% 以上。
源码:https://github.com/MarSaKi/ETPNav
1. 环境观测与数据处理
每个导航决策循环(stept)开始时,ETPNav系统会收集当前的RGB-D观测数据。RGB图像提供了环境的颜色和纹理信息,而深度图像(D)则提供了物体的距离信息。这些数据通过预训练的视觉编码器进行处理,生成环境的特征向量。
2. Waypoint预测
系统使用一个基于Transformer的Waypoint预测器,专门从深度图像和方向特征中预测附近的可能目标位置。这个预测器通过两层的Transformer进行处理,生成一个概率热图,从中使用非极大值抑制(NMS)方法选取K个Waypoint。(我思考点)之所以只使用深度图像,是因为Waypoints主要代表空间的可达性,RGB图像的语义信息在这种情况下可能是冗余的,甚至会影响预测的准确性。
3. 拓扑图的更新
ETPNav动态构建拓扑图,在每次决策循环中,系统通过自组织方式将预测的Waypoint集成到现有的拓扑图中。这个过程使用了一个 Waypoint Localization(FL)函数来定位每个Waypoint并更新图中的节点和边。如果一个Waypoint与图中已有节点的欧几里得距离小于设定的阈值,则将其定位为现有节点,否则会将其作为新的节点加入拓扑图。
4. Waypoint与Ghost Nodes的处理
系统区分Visited Nodes、Current Node以及Ghost Nodes。Ghost Nodes是指已经观察到但尚未探索的节点。在更新拓扑图时,系统将新的Waypoints与这些Ghost Nodes进行比较,整合多步观察结果,以确保图的表示能够准确反映环境的结构。未定位到的Waypoints则被作为新的Ghost Nodes加入图中。
指令生成
1. 文本编码(Text Encoding)
系统首先将输入的自然语言指令通过一个文本编码器进行处理。这个编码器将每个单词转换为嵌入向量,同时加上位置信息和类型嵌入(如文本类型的标识)。这些嵌入向量会通过多层Transformer来生成上下文相关的单词表示。
2. 节点编码(Node Encoding)
结合拓扑地图中的节点信息(如位置、距离等),每个节点的视觉特征会被增强为一个包含位置编码(pose encoding)和导航步骤编码(navigation step encoding)的综合向量。位置编码表示节点相对于当前机器人位置的方位和欧几里得距离,而导航步骤编码则表明该节点在路径中的历史信息。
3. 跨模态图编码器(Cross-Modal Graph Encoder)
在这一阶段,节点编码和文本编码会被送入一个多层Transformer,该Transformer专门用于处理跨模态数据。它能够在节点和文本之间进行交互,生成视觉-文本相关的节点表示。这里使用了一个图感知的自注意力机制(Graph-Aware Self-Attention, GASA),该机制不仅关注节点之间的视觉相似性,还考虑图的拓扑结构,以便更好地理解环境的整体布局。
4. 长远目标预测(Long-term Goal Prediction)
经过跨模态交互后,每个节点会被赋予一个导航目标得分(goal score),表示该节点作为导航目标的可能性。系统通过一个前馈网络(Feed-Forward Network, FFN)对每个节点的表示进行评分。得分最高的节点将被选为导航的下一个目标。如果得分最高的是“停止”节点,则表示导航结束。
5. 路径规划与执行(Path Planning and Execution)
一旦选择了一个长远目标(通常是一个Ghost Node),系统会使用Dijkstra算法在图中计算到该节点的最短路径。该路径由多个子目标节点组成。接下来,控制模块将这些子目标节点转换为一系列的低级别动作(如前进、转向等),逐步引导机器人到达目标节点。
我关注的点是我学习需要的 具体的需要具体看论文奥
附原文翻译重点内容