Vision-and-Language Navigation: A Survey of Tasks, Methods, and Future Directions
- 摘要
- 核心定义:VLN 要求智能体根据自然语言指令,在真实/模拟的 3D 环境中导航,最终到达目标地点或完成特定任务。
- 跨领域性:CV + NLP + Robotics的交叉学科。
- 多模态融合:智能体必须将“听到的”(指令)与“看到的”(图像流)进行实时对齐(Alignment)。
- 综述价值:这篇论文不仅会教你基础知识,更重要的是它梳理了Metrics,因为在导航中,判断“走得好不好”比单纯的分类任务要复杂得多
1. Introduction
VLN的Motivation
社会价值:人类习惯用语言沟通,如果机器人也能听懂人话并去办事,价值巨大。
应用场景:
- 室内:家务(比如“去厨房拿苹果”)。
- 室外:快递配送。
- 高危环境:桥梁检测、火灾救援(人类指挥机器人去危险的地方)。
科学价值:这不仅是工程问题,还是探索 AI 如何将语言、视觉和行动结合的科学问题。
VLN的定义
定义:VLN 是**具身智能(Embodied AI)**的一个子领域。
区别:传统的视觉导航可能只是“走到坐标点 (x,y)”,而 VLN 是“根据语言指令走到哪里”。
核心三要素:
- Oracle(先知/指导者):通常指人类或发出指令的一方。
- Agent(智能体):执行任务的机器人。
- Environment(环境):真实或模拟的 3D 空间。
交互流程:
- Agent 听指令 -> Agent 观察环境 -> Agent 移动/交互。
- Agent 也可以提问(Ask for guidance),Oracle 给予反馈。
VLN 的分类
沟通程度 (Degree of Communication):
低级:被动听一句指令,然后闷头走。
高级:自由对话(Dialog),边走边问。
任务目标 (Task Objective):
基础:只管走路(Navigation),到了就行。
进阶:包含物体交互(Interaction),比如 ALFRED 数据集,不仅要走到厨房,还要把面包切了。
- 文中特意说明,虽然有些术语滥用,但为了方便,把这种带交互的任务也归类为 VLN。
VLN的挑战与解决方案
挑战 困难点描述 解决方案 跨模态理解 环境复杂,需要对齐视觉和语言信息 Representation Learning:更好地提取特征并融合。 推理策略 怎么做决定?下一步往哪走? Action Strategy Learning:强化学习、模仿学习等决策算法。 数据稀缺 3D环境标注数据太少,很难训练 Data-centric Learning:数据增强、合成数据。 泛化能力 在 A 房子训练,去 B 房子就傻了 (Unseen) Prior Exploration:让模型先熟悉环境,或利用预训练知识。
2. Task and Datasets
VLN的独特性:VLN 的核心护城河是语言理解。
- 传统视觉导航可能只是让机器人“避障”或“走到坐标 (10, 10)”,而 VLN 必须理解语义(比如“走到白色的沙发后面”)。
VLN数据集分类:作者主要从两个维度对当前的数据集进行分类:沟通复杂度和任务目标。
沟通复杂度——Communication Complexity
第一层级(Initial Instruction):智能体只需要在导航开始前理解一条初始指令。
- 这是最基础的,也是目前最主流的设置(如 R2R 数据集)。
- 场景:人说:“左转进卧室停在床边。” -> 机器人出发。中间没有任何交流。
第二层级(Guidance):智能体在不确定时发送求助信号,利用来自 Oracle 的指引。
- 这是单向求助。
- 场景:机器人走到路口懵了,发个信号“嘀嘀”,Oracle 再给一句“往左”。
- 机器人不能问具体问题,只能报错。
第三层级(Dialogue):具备对话能力的智能体在导航过程中用自然语言提问,并理解进一步的 Oracle 指引。
- 这是最高级的双向交互。
- 场景:机器人问:“是这个蓝色的门吗?” Oracle 答:“不是,是旁边那个。”
任务目标——Task Objective
第一种:细粒度导航(Fine-grained Navigation)。智能体根据详细的、分步的路线描述找到目标。
- 指令示例:“走出房间,右转,直走经过走廊,在挂画的地方停下。”(指令非常具体,紧贴路径)。
第二种:粗粒度导航(Coarse-grained Navigation)。智能体需要根据粗略的导航描述找到遥远的目标,这要求智能体在可通行的环境中推理出一条路径,并可能需要寻求额外的 Oracle 帮助。
- 指令示例:“去主卧室。”(指令很模糊)。
- 难点:机器人得自己想:“主卧室通常在二楼,我得先找楼梯。” 这就是文中提到的Reasoning(推理)。
第三种:导航与物体交互(Navigation and Object Interaction)。除了推理路径外,智能体还需要与环境中的物体进行交互以达成目标,因为物体可能被遮挡,或者需要改变物理状态。
指令示例:“去厨房把微波炉热过的苹果拿给我。”
难点:不仅要走路,还要“打开微波炉”(改变物理状态)、“拿起苹果”(交互)。
与粗粒度导航一样,某些物体交互任务也可能需要通过与 Oracle 的对话获得额外的监督信息。
2.1 Inital Instruction
只有一句指令,说完之后,Agent 就要自己去干活,中间没有额外的提示。
Fine-grained Navigation
- 这是目前研究最多的领域。指令非常详细,像 GPS 导航一样告诉你每一步怎么走(例如:“上楼,经过客厅的桌子,左转穿过中间的门”)。
室内离散环境(Indoor - Discrete Graph)
R2R (Room-to-Room):
- 环境:基于 Matterport3D 模拟器,是真实的房屋扫描。
- 移动方式:导航图(Navigation Graph)。Agent 不是连续走路,而是在离散的“节点”之间跳跃(从一个全景图跳到下一个全景图)。
R2R 的衍生版:
- RxR (Room-across-Room):【多语言+时间对齐】。比 R2R 更难,指令涵盖英语、印地语、泰卢固语。最重要的是它有Pose Trace(姿态轨迹),即指令的每个词和 Agent 看到的画面在时间上是对齐的(解决了 R2R 指令与路径对应不准的问题)。
- XL-R2R: R2R 的中文版指令。
- Landmark-RxR: 在 RxR 基础上增加了地标信息。
室内连续环境(Indoor - Continuous)
为了解决“模拟器里是跳跃,真机器人是走路”的**Sim-to-Real(虚实迁移)**问题。
VLNCE: 把 R2R 的离散图变成了连续空间。Agent 需要输出具体的动作(前进 0.25米,左转 15度),而不是选择下一个节点。这更接近真实机器人的控制。
Robo-VLN: 同样是连续空间,侧重长周期的轨迹。
室外环境(Outdoor)
室外环境更复杂,物体更多,视野更开阔。
TOUCHDOWN: 。基于纽约市的 Google 街景。任务是导航并找到一个隐藏的物体(比如“在那家星巴克伞下的泰迪熊”)。
StreetLearn / StreetNav / Talk2Nav: 都是基于 Google Street View 开发的,侧重于城市街道导航。
无人机/合成环境(Drone / Synthetic)
- LANI / Unity3D: 使用合成环境,通常用于无人机视角的导航指令跟随。
Coarse-grained Navigation
指令很简略,通常只给目的地,不给路径。这对 Agent 的探索和常识推理能力要求很高。
REVERIE:【远程物体定位】
- 特点:指令描述一个远处的物体(例如“去书房找到那本红色的书”)。Agent 需要先找到书房,再从一堆物体中识别出那本书。
- 难点:导航 + 细粒度的物体引用(Grounding)。
SOON: 也是找物体,但指令是从粗到细逐渐缩小的(Coarse-to-fine)。
Embodied QA: 具身问答。Agent 为了回答问题(例如“汽车是什么颜色的?”)必须先主动走到车库看到汽车。
Navigation + Object Interaction
这是最高级的任务,也是目前最火的方向(Agent AI)。不仅要看,还要动。
ALFRED:
- 定义:基于 AI2-THOR 模拟器。
- 任务:日常家务。例如“把切好的苹果热一下”。
- 流程:Agent 需要分解任务 -> 导航到苹果 -> 拿起苹果 -> 找刀 -> 切苹果 -> 找微波炉 -> 放进去 -> 开启。
- 难点:涉及状态改变(State Change),比如苹果从“完整的”变成“切开的”,微波炉从“关”变成“开”。
IQA (Interactive QA): 为了回答问题,可能需要打开抽屉才能看到里面的东西。
2.2 Oracle Guidance
Guidance
触发机制:智能体在导航过程中,如果发现自己迷路了或者不确定,可以主动发出一个信号。
Oracle 的反馈:Oracle收到信号后,会根据当前情况给出一句新的、短期的指令,把智能体拉回正轨。
区别于对话:这里通常只是简单的Request -> Response模式(单向求助),而不是像人聊天那样你来我往。
细粒度导航 + 指引(Fine-grained + Guidance)
虽然细粒度指令(如 R2R)已经很详细了,但环境太复杂,智能体还是容易晕。
难点:比如指令说“走进那扇门”,结果面前有两扇长得一模一样的门。
代表作:Just Ask
- 机制:这个模型不仅学怎么走,还学**“什么时候该问”**。
- 如果它预测自己迷路的概率超过阈值,它就停下来问 Oracle:“我现在该咋办?”
- Oracle 会补充一句:“选左边那个带玻璃的门。”
粗粒度导航 + 指引(Coarse-grained + Guidance)
这部分是 Guidance 发挥最大作用的地方。因为指令太模糊(比如“找厨房”),智能体如果不问路,可能要把整个房子像没头苍蝇一样转遍。
VNLA
- 设定:让 Agent 在室内找物体。
- Oracle:是脚本写死的 (Predefined Script)。比如 Agent 发出求助,脚本就根据最短路径算法算出下一步,然后填进模板里:“向左转”。
- 缺点:回答太生硬,不像人说话。
HANNA
- 地位:VNLA 的进化版。
- Oracle:这是一个神经网络 (Neural Network),而不是脚本。
- 优势:这个 Oracle 是学会了“看图说话”的。它会看 Agent 当前看到的画面,然后生成一句自然的语言:“你走过了,掉头回到刚才那个走廊。”这更接近真实的人类远程协助。
CEREALBAR
- 设定:这是一个协作游戏 (Collaborative Game)。
- 角色:一个 Leader(指挥者)和一个 Follower(执行者)。
- 任务:两人要在游戏环境里配合收集卡片。这已经有点像多智能体协作(Multi-Agent RL)了。
导航 + 物体交互 + 指引(Navigation + Interaction + Guidance)
- 现状:No datasets。
2.3 Human Dialogue
作者认为,使用自然语言进行双向沟通是人类最友好的方式。特别是当机器不确定的时候,与其瞎猜,不如直接问。
细粒度导航(Fine-grained Navigation)
现状:No datasets
为什么没有?因为在细粒度导航(如 R2R)里,指令已经细到“左转、直走 2 米、右转”了。如果指令这么细,Agent 通常不需要对话就能走完。
未来预测:作者认为,未来如果任务变成超长视距的导航(比如在整个大商场里逛一圈),中间会有很多动态变化,这时候就需要对话了。
粗粒度导航(Coarse-grained Navigation)
CVDN
核心模式:人-人对话 (Human-Human Dialogues)。
任务:
- Oracle(向导)知道最佳路径。
- Agent(游客)在房子里走。
- Agent 不仅要走,还要用自然语言提问(不仅仅是按求助键)。
- Oracle 必须理解问题并回答。
例子:
- Agent: “前面有个分叉口,左边是卧室,右边是楼梯,走哪边?”
- Oracle: “去卧室找找。”
Talk the Walk
核心模式:信息不对称 (Asymmetric Information)。
设定:这个设定非常有意思,模拟了真实迷路的场景。
- Guide (向导):手拿地图 (Map),但看不到周围环境。
- Tourist (游客/Agent):看得到周围环境 (Street View),但没有地图。
玩法:
- 游客说:“我看到前面有个红色的邮筒。”
- 向导看地图:“哦,那你在 A 街区,你现在左转。”
- 这要求双方必须极度信任并准确交换信息。
导航 + 物体交互(Navigation + Object Interaction)
Minecraft Collaborative Building
场景:Minecraft 游戏。
任务:Agent 和人对话,把方块放到指定位置盖房子。这是早期的探索。
TEACh (Task-driven Embodied Agents that Chat)
任务:日常家务(House Chores)。比如“煮咖啡”、“做早饭”。
角色:
- Commander (指挥官):掌握任务目标(比如“煮一杯加奶的咖啡”),但不能动。
- Follower (执行者):能动,能拿东西,但不知道具体步骤。
流程:
- Follower: “咖啡粉在哪?”
- Commander: “在头顶的橱柜里。”
- Follower: (打开橱柜) “没看到啊。”
- Commander: “那可能在旁边的抽屉里。”
DialFRED
背景:它是ALFRED的对话升级版。
改进:原来的 ALFRED 是“闷头干活”,DialFRED 允许 Agent 在干活过程中主动提问。
3. Evaluation
3.1 Goal-oriented Metrics
只要你能到终点,怎么走的不太重要。
目标导向指标主要考虑智能体与目标的接近程度。
这是最直观的评估方式。不管你中间绕了多少圈,只要最后停在目标附近,分数就高。
SR——Success Rate
它衡量智能体在距离目标一定范围内完成任务的频率。
讲解:
- 定义:SR=成功次数总测试次数SR = \frac{\text{成功次数}}{\text{总测试次数}}SR=总测试次数成功次数
- 判定标准:通常是距离目标3米以内算成功(不同数据集标准不同,R2R 是 3m)。
- 缺点:它不管你走了多远。哪怕你在屋子里乱转了 100 圈最后蒙到了终点,SR 也是 100%。
Goal Progress
衡量的是剩余距离目标的减少量。
比如起点离终点 10 米,你走到了离终点 2 米的地方停下,虽然失败了,但你完成了 8 米的进度。
PL——Path Length
路径长度 (PL)衡量导航路径的总长度。
讲解:越短越好吗?不一定。它通常用来辅助判断。如果 SR 很高但 PL 特别长,说明模型在“乱逛”。
SPD——Shortest-Path Distance
最短路径距离 (SPD)衡量智能体最终位置与目标之间的平均距离。
注意:在很多其他论文里,这个指标常被称为Navigation Error (NE)。
讲解:这就是“离终点还有多远”。如果是 0,说明完美重合。如果是 3.5 米,说明虽然失败了(大于3米),但离得很近。
SPL——Success weighted by Path Length
由于较长的路径长度是不可取的,路径长度加权成功率 (SPL)平衡了成功率和路径长度。
SPL 是目前 VLN 领域最重要的指标。
- 公式:SPL=SR×最短路径长度max(最短路径长度,实际路径长度)SPL = SR \times \frac{\text{最短路径长度}}{\max(\text{最短路径长度}, \text{实际路径长度})}SPL=SR×max(最短路径长度,实际路径长度)最短路径长度
- 含义:只有当你成功到达(SR=1)且走了最短路(实际长度=最短长度)时,SPL 才是 1。如果你绕路了,分母变大,SPL 就会下降。
- 价值:它惩罚了那些靠“随机游走”蒙对终点的模型。
SED—— Success weighted by Edit Distance
编辑距离加权成功率 (SED)比较专家动作/轨迹与智能体动作/轨迹,同样平衡了 SR 和 PL。
这是针对离散环境(如 R2R)的变体。
- 它不比距离,而是比动作序列。比如专家是“前、前、左”,你是“前、左、前”。
ONE——Oracle Navigation Error
Oracle 导航误差 (ONE)取路径中任意节点到目标的最近距离,而不仅仅是最后一个节点
这是“最佳时刻”指标。只要你曾经路过终点,ONE 就很小。
OSR——Oracle Success Rate
Oracle 成功率 (OSR)衡量路径中是否有任意节点在目标的阈值范围内。
OSR vs. SR:SR 要求停在终点才算赢;OSR 只要你路过终点就算赢。
洞察:如果一个模型 OSR 很高但 SR 很低,说明它能找到路,但不知道什么时候该停下来(Stop signal 没学好)。
3.2 Path-fidelity Metrics
路径保真度指标评估智能体在多大程度上遵循了期望的路径。
- 有些任务不仅要求智能体找到目标位置,还要求其遵循特定路径。
- 比如 RxR 数据集。如果你不按指令走,可能会踩到地雷或者吓到人。
保真度(Fidelity)衡量专家演示中的动作序列与智能体轨迹中的动作序列之间的匹配程度。
CLS——Coverage weighted by Length Score
长度分数加权覆盖率 (CLS)是相对于参考路径的路径覆盖率 (PC) 和长度分数 (LS) 的乘积。它衡量智能体轨迹与参考路径的贴合程度。
PC (Path Coverage):看你的轨迹和参考轨迹重合了多少。
LS (Length Score):看长度是否一致。
用途:主要用于 RxR 等强调路径遵循的任务。
nDTW——Normalized Dynamic Time Warping
归一化动态时间规整 (nDTW)软性地惩罚偏离参考路径的行为,以计算两条路径之间的匹配度。
DTW是一个经典的算法,用来比较两个序列的相似度(比如语音识别里比较两个波形)。
在这里,它比较你的轨迹坐标序列(x,y)(x, y)(x,y)和专家的轨迹序列。
哪怕你走得慢一点或者快一点没关系,只要形状对得上,分数就高。但如果你走偏了(Deviation),分数就低。
SDTW——Success weighted by normalized Dynamic Time Warping
SDTW进一步将 nDTW 限制为仅针对成功的回合,以同时捕捉成功率和保真度。
这就像 SPL 的升级版。SPL 只看长度,SDTW 看形状。
只有当你到了终点,你的 nDTW 分数才有效;否则直接为 0。
这是目前最严格的指标之一。
4. VLN Methods
- 如图 2 所示,作者将现有方法归类为表征学习、动作策略学习、以数据为中心的学习和先验探索。
- 解读:
- 怎么看懂世界?(Representation)
- 怎么做决定?(Action Strategy)
- 数据不够怎么办?(Data-centric)
- 去新环境怎么办?(Prior Exploration)
4.1 Representation Learning
4.1.1 Pretraining
视觉-语言预训练模型为文本和视觉提供了良好的联合表征 (Joint Representation)。
单模态是不够的,关键是跨模态。
比如ViLBERT或LXMERT。它们在预训练时就看过成千上万张图和对应的描述,知道图像里的“狗”对应文本里的“Dog”。这直接解决了 VLN 的核心痛点——对齐 (Alignment)。
研究人员还探索了直接在VLN 领域进行预训练。
- 通用的 ViLBERT 是看静态图的,不懂“导航”。
- VLN-BERT:把 VLN 变成路径选择题。给一条指令和几条路径,让模型打分,看哪个路径和指令最匹配。
- PREVALENT:从零开始训练,输入是(图像, 文本, 动作)三元组。这是为了让模型理解“动作”这个概念。
- Airbert:在巨量的室内环境数据上做预训练,实现了 Few-shot 学习的突破。
基于 BERT 的预训练模型中[CLS] 标记的输出嵌入,可以被以循环的方式利用,来表示历史状态。
- [CLS]是 BERT 的第一个特殊 token,通常代表“整句话”或“整个状态”的语义。
- Recurrent VLN-BERT:这是一个经典模型。它把每一步的 [CLS] 向量存起来,传给下一步,这样 BERT 就能处理序列决策问题了(原本 BERT 只能处理一次性输入)。
4.1.2 Semantic Understanding
高级特征(如视觉外观、路线结构和检测到的物体)优于 CNN 提取的低级视觉特征。
- 低级特征:ResNet 输出的一堆 2048 维的数字,没人看得懂。
- 高级特征:直接告诉模型“前面有张桌子(Object Label)”、“这是厨房(Room Type)”。
- 结论:直接把物体检测的结果喂给模型,效果更好。
不同模态之间的语义联系(动作、场景、物体、方向等)可以被提取出来,然后通过注意力机制进行软对齐。
- Soft Alignment是指:当指令说到“向左转”时,模型的注意力应该由 90% 集中在左边的画面上,而不是盯着天花板看。
4.1.3 Graph Representation (图表征)
构建图来整合来自指令和环境观察的结构化信息,可以提供显式的语义关系来指导导航。
- 人类导航是建立拓扑地图的:房间 A 连着走廊 B,走廊 B 连着厨房 C。
- 模型也应该这样。不要把世界看成一连串的图片,要看成节点和边。
图神经网络可以编码文本和视觉之间的关系…
- 用 GNN 来处理这些节点,推理出:“如果我现在在厨房,我想去卧室,根据图结构,我应该先去走廊。”
4.1.4 Memory-augmented Model
记忆结构帮助智能体有效地利用导航历史。
- 走过的路如果不记下来,Agent 就会在那儿转圈圈。
一些解决方案利用 LSTM 等记忆模块… 但随着路径长度增加,可能难以记住路径开头的特征。
- LSTM 有长程遗忘问题。走了 50 步之后,它可能就忘了第 1 步看到的门是什么颜色的了。
值得注意的是,HAMT通过分层编码单一视图、全景图以及历史上的所有全景图,成功利用了完整的导航历史进行决策。
- HAMT (History Aware Multimodal Transformer)是 VLN 领域的一个里程碑模型。
- 它不用 LSTM,而是用Transformer来存历史。Transformer 的 Self-Attention 机制可以让当前这一步直接“看到”过去任何一步的信息,完美解决了遗忘问题。
4.1.5 Auxiliary Tasks
辅助任务帮助智能体在没有额外标签的情况下,更好地理解环境和自身状态。
我们不只是要预测下一步去哪,还要预测一些别的东西来增加 Loss,强迫模型学到更多。
例如,辅助任务可以是解释其先前的动作,或者预测关于未来决策的信息。
解释:Agent 走了一步,让它试着生成这步对应的指令。如果生成的指令和原始指令像,说明它走对了。
预测进度:这是一个非常经典的辅助任务。让模型输出一个 0-1 的数字:“我现在离终点还有多远?”这能让模型具备全局观,防止它在终点附近不停车。
4.2 Action Strategy Learning
4.2.1 Reinforcement Learning
这是 VLN 领域最主流的训练方法之一,用来弥补模仿学习(Imitation Learning)的不足。
RL 方法面临的一个关键挑战是,VLN 智能体通常只能在episode结束时收到成功信号,因此很难知道哪些动作导致了成功,哪些动作导致了失败。
这就是经典的稀疏奖励和信用分配问题。
- 例子:Agent 走了 50 步,最后到了终点。是因为第 3 步左转转得好?还是第 40 步直走走得对?Agent 不知道。如果最后失败了,它也不知道是哪一步走错了。
为了解决这个反馈不明确的问题,Wang 等人提出了 RCM 模型,通过目标导向的外在奖励和指令保真的内在奖励,在局部和全局强制执行跨模态定位。
既然终点奖励太远,我们就给它加入Intrinsic Reward。
只要 Agent 走对了当前这一小步,或者看对了路标,就立刻奖励。这样它学得更快。
He 等人提出利用指令与关键路标之间的局部对齐作为奖励。
- 如果指令提到“沙发”,而 Agent 确实走到了沙发旁边,给奖励。
评估指标(如 CLS 或 nDTW)也可以提供信息丰富的奖励信号,自然语言也可以提供奖励建议。
为了对环境动态进行建模,Wang 等人利用基于模型的强化学习来预测下一个状态,并提高在未见环境中的泛化能力。
- Model-free:不管环境怎么变,我就记住看到墙左转。
- Model-based:我在脑子里模拟,如果我左转会看到什么?如果预测得准,说明我理解了这个世界,泛化能力自然就强。
Zhang 等人发现,交替进行模仿学习和强化学习的训练方案可以提高性能。
4.2.2 Exploration during Navigation
在导航时探索并收集环境信息,能提供对状态空间的更好理解。
Student-forcing是一种常用的策略,即智能体根据采样的动作继续导航,并由最短路径动作进行监督。
- Teacher Forcing: 无论 Agent 上一步走错没,下一步都强行把它拉回正确路线。
- 缺点:Agent 产生依赖,不会纠错。
- Student Forcing: Agent 这一步走错了?没关系,让它在错误的位置继续走,然后告诉它“在这个错误点,最佳动作是啥”。这样它就学会了从错误中恢复。
- Teacher Forcing: 无论 Agent 上一步走错没,下一步都强行把它拉回正确路线。
在探索与利用之间存在权衡:更多的探索会带来更好的性能,但代价是路径更长、耗时更久,因此模型需要决定何时探索以及探索多深。
- 在测试时,Agent 可以选择“稳扎稳打”(直接选概率最大的路),也可以选择探索。
- 到处看看能防止走死胡同,但会被 SPL 指标惩罚(因为路变长了)。
Koh 等人设计了Pathdreamer,这是一个视觉世界模型,可以在不实际移动的情况下合成未来视角的视觉观察。
- Agent 站在原地,想象“如果我往前走两步会看到什么”。如果想象出来前面是墙,那就不走了。这大大提高了效率。
4.2.3 Navigation Planning
规划未来的导航步骤能带来更好的动作策略。
从视觉方面来看,预测路点、下一个状态和奖励、生成未来观察或整合邻居视图已被证明是有效的。
识别并在正确的位置停止也能降低导航成本。
- 很多模型不是走不到,而是走到了停不下来。所以专门训练一个“停车规划器”很有用。
Anderson 等人根据指令预测即将发生的事件,并利用语义空间地图来预测动作。
- 指令说:“经过厨房,在卧室停下。”
- 模型预测:Event 1 = 看到微波炉(厨房特征);Event 2 = 看到床(卧室特征)。
- 然后它就带着这个预期去走路,看到了微波炉就知道完成了一半。
指令也可以用来标记智能体需要一步步完成的导航和交互里程碑 (Milestones)。
- 把长任务拆解成小目标(Sub-goals)。
4.2.4 Asking for Help
智能体在对下一个动作不确定 (Uncertain)时会寻求帮助。
利用动作概率或单独训练的模型可以决定是否求助。
- 如果输出概率是
[左: 0.9, 右: 0.1]-> 很确定。 - 如果输出概率是
[左: 0.51, 右: 0.49]-> 纠结,问
- 如果输出概率是
使用自然语言与 Oracle 对话比单纯发送信号涵盖了更广的问题范围。
- 发信号只能解决“我迷路了”,对话能解决“具体哪里不懂”。
4.3 Data-centric Learning
4.3.1 Data Augmentation
**轨迹-指令增强 **
核心逻辑:Speaker-Follower 模型
- 我们缺的是
(指令, 路径)这样成对的数据。 - Follower (导航者):输入指令 -> 输出路径。这是我们要训练的主模型。
- Speaker (说话者):输入路径 -> 输出指令。这是一个反向模型。
- 我们缺的是
怎么造数据?
- 在模拟器里随机生成几万条路径(Random Walk)。
- 把这些路径扔给训练好的Speaker。
- Speaker 看着路径,生成一句合成指令(Synthetic Instruction)。
质量控制:
- 机器生成的指令可能不通顺或者有错。
- 所以需要引入Alignment Scorer (对齐打分器)或Discriminator (判别器)。只有当生成的指令质量很高时,才把它加入训练集。
环境增强
**Masking **:随机把画面里的一部分盖住(比如把椅子遮住),强迫模型去通过其他线索(如桌子、床)来识别房间。这能防止模型过拟合特定的物体。
Re-mixing:把厨房的贴图贴到卧室去,或者把两个房子拼在一起。
Style Transfer:把白天的房子变成晚上的,把写实风格变成卡通风格。
4.3.2 Curriculum Learning
刚开始训练时,只给 Agent 看短指令和短路径。
随着训练进行,慢慢增加难度,给它长指令和复杂路径(走 10 步,拐好几个弯)。
好处:这能让 Loss 下降得更平滑,防止模型一开始就因为任务太难而陷入局部最优。
4.3.3 Multitask Learning
- 做法:让 Agent 同时学 VLN(导航)和 QA(问答)或者 Dialog(对话)。
- 原理:虽然任务不同,但它们都需要理解视觉和语言的对应关系。学 QA 能帮助 Agent 更好地理解物体属性,这反过来能提升导航能力。
4.3.4 Instruction Interpretation
- 核心逻辑:把复杂的指令变简单。
- 人类指令通常很长:“走出房间,右转,经过厨房,在沙发旁停下。”
- 这个方法会把长指令切分成原子操作:
[走出房间] -> [右转] -> [经过厨房] -> [在沙发旁停下]。 - Agent 每完成一个小目标,就更有把握去完成下一个。
4.4 Prior Exploration
- 这一节讲的是怎么解决Unseen Environment的问题。
- Self-Supervised Imitation Learning
- 流程:
- Agent 刚进新房子,不知道怎么走。
- 让它先尝试性地走几次(哪怕走错了)。
- 如果某次走得比较顺(根据一致性打分),就把这次的经验当做“伪标签(Pseudo Label)”来通过模仿学习(IL)微调自己。
- 效果:利用自己的经验来适应新环境。
- 流程:
- Environment-based Exploration
- Agent 在探索过程中,会收集这个特定房子的视觉特征。比如这个房子的门都是红色的,那个房子的门都是木头的。它会快速适应这个房子的视觉风格。
- Graph Construction
- 这是目前最有效的方法之一。
- Agent 在溜达的时候,顺便画了一张拓扑地图。
- 正式导航时,它就不再是“盲人摸象”,而是变成了“看着地图导航”。它可以直接在图上搜索最短路径。
5. Conclusion
Current Limitations
缺乏外部知识:现在的 Agent 只有视觉,没有常识(比如不知道冰箱通常在厨房)。
最后一公里问题:Agent 能走到勺子旁边,但捡不起来(Interaction 短板)。这
环境缺乏多样性:现有数据大多是American houses,缺乏仓库、医院、或者其他国家的建筑风格。
Future Directions
Collaborative VLN
现状:现在的 VLN 是单打独斗。
未来:多智能体 (Multi-Agent)协作,或者人机协作。
Sim-to-Real
痛点:现在的模拟器是“瞬移”的,且定位完美。
真实世界:
- 连续空间:不能瞬移,要一点点滑过去。
- 噪声:传感器有误差,定位不准。
- 动态环境:真实世界有人走来走去,有光照变化(模拟器通常是静态的)。
方向:开发更真实的模拟器,或者研究 Domain Adaptation(域适应)算法。
Ethics & Privacy
痛点:VLN Agent 带着摄像头进别人家里,会拍到隐私。
方向:联邦学习或差分隐私。如何在不上传用户照片的情况下训练导航模型。
Multicultural VLN
痛点:现有数据集全是美式风格。模型到了中国、印度或者日本的房子里效果变差。
方向:收集多国数据,研究跨文化、多语言的泛化能力。