24年12月来自中山大学、腾讯美研和鹏城实验室的论文“Towards Long-Horizon Vision-Language Navigation: Platform, Benchmark and Method”。
现有的
视觉-语言导航 (VLN)
方法主要侧重于单阶段导航,限制它们在复杂动态环境中的多阶段和长远任务有效性。为了解决这些限制,提出一项VLN 任务,称为
长范围视觉-语言导航 (LH-VLN)
,它强调跨连续子任务的长期规划和决策一致性。此外,为了支持 LH-VLN,开发一个自动数据生成平台
NavGen
,它构建具有复杂任务结构的数据集并通过双向、多粒度生成方法提高数据效用。为了准确评估复杂任务,构建
VLN 的长范围规划和推理 (LHPR-VLN)
基准,该基准由 3,260 个任务组成,平均有 150 个任务步骤,是第一个专门为长范围视觉-语言导航任务设计的数据集。此外,提出独立成功率 (ISR)、条件成功率 (CSR) 和真值加权 CSR (CGT) 指标,以提供对任务完成情况的细粒度评估。为了提高模型在复杂任务中的适应性,提出一种
多粒度动态记忆 (MGDM)
模块,该模块将短期记忆模糊与长期记忆检索相结合,以实现动态环境中的灵活导航。该平台、基准和方法为 LH-VLN 提供强大的数据生成流程、全面的模型评估数据集、合理的指标和新 VLN 模型,为推进 LH-VLN 建立基础框架。
如图所示框架概述。与现有的视觉语言导航、目标定位导航和需求驱动导航基准不同,LH-VLN 将导航分为多个子任务,要求智体在场景内按顺序完成这些任务。数据生成框架提供通用的 LH-VLN 任务生成流水线,以及为多阶段导航任务新构建的 LHPR-VLN 基准。导航模型基于思维链 (CoT) 反馈和自适应记忆设计,通过利用 CoT 提示和动态的长期和短期记忆实现高效导航。
具身视觉-语言导航 (VLN) 旨在使智体能够根据语言指令在复杂环境中执行导航任务。当前的方法主要在三个方向上发展:基于地图的策略、航点预测、基于图的方法和大模型预测。基于地图的策略,例如 VLN-VER [19] 和 HNR-VLN [38],采用体表示或神经辐射场来促进智体对空间的理解和探索。类似 FILM [26] 中的模块化设计将语言指令与环境感知相结合,提高任务效率。第二类是基于航点预测的方法,包括 ETPNav [1] 和 MultiPLY [10] 等模型,它们通过关键点预测和环境图学习来优化导航,从而支持在离散和连续环境中提高泛化能力 [9]。此外,基于大语言模型的方法(包括 NaviLLM [47] 和 NaViD [45])通过将语言推理与视觉任务紧密结合,擅长解释复杂指令。然而,现有方法通常仍然局限于单阶段任务,缺乏对长期、多阶段任务的一致规划。
一系列数据集推动 VLN 任务的发展,每个数据集都引入独特的挑战,并提高执行复杂环境中任务的具身智体评估基准。早期的数据集,如 Room-to-Room (R2R) [3] 及其扩展 Room-for-Room (R4R) [11],侧重于通过基于静态图像的细粒度指令在预定义路径上进行分步导航,而后期的数据集(如 VLN-CE [15])则转向动态空间中的连续导航,需要更灵活的决策。最近的数据集,包括 CVDN [34]、REVERIE [28] 和 SOON [50],通过集成对话历史、目标定位和复杂指令理解,进一步拓宽 VLN 的范围,推动智体理解高级自然语言命令并定位特定目标。同时,OVMM [44] 和 Behavior-1K [17] 通过整合导航、操作和目标交互增加复杂性,模拟涉及多个子任务的扩展现实世界任务。尽管取得这些进展,但在支持高度复杂环境中具有多阶段子任务的 LH-VLN 基准测试中仍然存在显着差距。
本文开发一个名为 NavGen 的数据生成平台,专门用于支持 LH-VLN 任务的数据需求。基于此平台,创建 LHPR-VLN 基准,以评估模型在此任务中长期规划能力方面的表现。
NavGen 平台将自动数据生成与双向生成机制相结合,以生成任务指令和相关轨迹数据。双管齐下的方法包括前向数据生成(侧重于复杂的 LH-VLN 任务创建)和后向数据生成(将多阶段导航子任务分解为细粒度可操作步骤,如图所示)。
在前向数据生成阶段,利用 GPT-4 通过合成场景资产和机器人配置来创建任务指令,如图 (a) 所示。具体来说,场景资产来自 HM3D 数据集 [42],该数据集提供丰富的 3D 全景场景集合,并在 216 个设置中进行语义注释,为任务创建提供广泛的基础。此外,机器人配置针对不同的机器人平台进行精心定制,例如 Boston Dynamics 的 Spot 和 Hello Robot 的 Stretch,每个配置都有独特的摄像头高度、任务空间和传感器参数,以适应各种任务。
以这些资产和配置作为初始资源池,定制设计的提示作为 GPT-4 的输入,它结合场景细节 S、机器人配置 R 和任务目标 G。然后 GPT-4 输出一个指令列表 Dins = G(S, R, G, prompt/1),包括子任务和多阶段指令,G 表示为 GPT-4。该列表被导入到
Habitat3
模拟器 Sim 中,其中专家模型或训练有素的导航模型引导智体 A 完成任务,其中专家模型是从 Habitat [8, 16] 构建的导航网格模型和贪婪路径查找算法。模拟器自主生成轨迹 D/traj,这是后续拆分成任务段的基础数据。
通过前向任务生成获得轨迹后,对复杂任务的轨迹进行分解,并为每个轨迹段创建分步 VLN 任务。轨迹分解算法将复杂任务轨迹拆分为多个单阶段导航任务轨迹。在单阶段导航目标轨迹内,该算法将轨迹划分为代表“向前移动”、“左转”、“右转”和“绕行前进”的段。通过使用动态滑动窗口,该算法不断搜索轨迹内所有最长的连续动作段。这些连续动作段作为分步导航任务中动作指令的基本单位。对于每个段,RAM 图像注释模型 [46] 提供高置信度的视觉注释。这些注释与动作指令相结合,作为提示输入到 GPT-4 中,以生成 VLN 任务进行分步指导,从而创建一组精炼的分解单阶段导航任务。
LHPR-VLN 基准定义一个包含多个单阶段子任务的复杂任务。对于 LHPR-VLN 任务,基本格式是:“在某处找到某物,并将其带到某处,然后……”。每个复杂任务都涉及将目标定位在指定的初始位置并将其运送到指定的目标位置,可能包含两到四个连续的导航子任务。具身智体需要按顺序完成这些单阶段导航任务才能最终完成指令。对于每个单阶段导航任务,智体必须在距离目标物体测地距离 1 米内接近目标物体,确保物体位于 60 度水平视野内以保持任务保真度。
在整个导航过程中,智体从三个角度(+60◦、0◦、−60◦)获取观测数据,并被允许执行基本操作:左转、前进、右转和停止。当智体选择“停止”操作时,子任务被视为完成,任务成功与否将根据智体相对于目标的最终位置状态进行评估。 LHPR-VLN 是第一个 LH-VLN 基准,包含来自 216 个复杂场景的 3,260 个多阶段和分步 VLN 任务,平均有 150 个任务操作步骤和 18.17 个指令长度。
为了实现稳健的 LH-VLN,提出的多粒度动态记忆 (MGDM) 模型遵循通用 VLN 流程,包含三个基本组件:基础模型、思维链 (CoT) 反馈模块和自适应记忆整合与更新 (AMIU),如图所示。这些组件使 LH-VLN 具有稳健的性能,解决了与空间感知、指令理解和长范围序列任务连续性相关的挑战。
基础模型
基础框架的设计与 VLN 模型的标准结构一致。对于场景观察,该模型使用预训练的视觉编码器 ViT 对多方向视觉信息进行编码。每个观察的图像 I/i 被处理成视觉特征 v/i。为了整合跨多个方向的场景信息,Transformer 编码器用于多视图特征融合。方向图像特征 {v/i} 通过 Transformer 编码器处理,产生上下文丰富的表示 {o/i},可捕获跨视图的相互关系信息。
每个方向视图通过嵌入方向 tokens(“左”、“前”、“右”)来区分,以构建全面的场景表示 S。
对于历史观察,每个先前的场景都以类似的方式进行编码,并添加逐步嵌入以捕捉时间关系,从而在观察历史中建立顺序。
然后将场景和历史表征组合成统一的提示,并将其输入到大语言模型 (LLM) G 中以选择下一个动作。
使用 CoT 和记忆进行导航
为了解决基于 LLM VLN 模型中可解释性有限和易产生“幻觉”[35] 的问题(其中智体在没有真正理解的情况下完成任务),引入思维链 (CoT) [39] 反馈模块,该模块接收任务指令,并基于对相应记忆的历史观察,生成思维链并构建语言提示。该模块旨在通过迭代地完善智体任务理解和行动规划来增强智体的推理能力。
CoT 反馈
。在每个子任务开始时以及在导航过程中定期,CoT 反馈模块接收任务指令、当前观察和记忆中的历史视觉观察以及提示,并输入到 GPT-4 中以生成思维链 CoT = GPT-4(Obs, Hist, Instruction, Prompt)。GPT-4 使用过去的观察和任务指令来建立当前任务上下文,这意味着全面的任务理解。然后根据这种理解分解任务,指导智体的即时行动。这种反思过程使智体能够调整和改进其解释,从而提高任务理解和执行能力。
自适应记忆整合与更新
。以前的 VLN 工作通常使用过去观察的视觉编码作为记忆,这通常很有效。然而,在 LH-VLN 任务中,漫长的任务持续时间会导致记忆过度积累,造成这种方法不切实际。此外,现有方法通常会丢弃最旧的记忆以维持固定长度的记忆序列,或者只是丢弃一些模型认为不合适的记忆 [2],这会无意中删除关键信息。为了缓解这些限制,设计一个自适应记忆整合和更新 (AMIU) 模块,其中包含短期记忆、长期记忆以及记忆模糊和遗忘过程。
短期记忆 M/st
由历史观察编码构成,当智体在环境中移动时,捕获按时间顺序排列的观察结果。
当记忆长度 n 达到设定的最大值 N 时,就会触发动态遗忘。每个记忆元素 h/i 都有一个关联的置信度分数 c/i = G(·)/i,表示模型对动作 i 的置信度。因此,记忆序列 M/st 有一个关联的置信度向量 C = {c/i } 。
遗忘模块使用一个“池化函数”,定义为 P。P(C)/i 表示对 C 中的第 i 个元素及其相邻元素应用窗口大小为 2 的池化操作。
对 C 中的每个元素分别应用池化操作,得到 {C/i } = {P (C )/i }。然后计算每个 C/i 的熵并确定熵最小的池化索引。
对池化索引对应的M/st元素进行相同的池化操作,并添加新的短期记忆以维持记忆序列。