【颠覆传统 VLN】RSS2024 NaVid 阅读|RGB 视频 VLM 做连续视觉语言导航,不靠地图里程计
一句话理解:NaVid 将机器人之前看到的 RGB 图像当作一段视频历史输入 VLM,结合人类语言指令,直接预测“前进多少厘米 / 左右转多少度 / 停止”,不要求额外输入地图、里程计或深度图。
0. 论文基本信息
- 论文名称:NaVid: Video-based VLM Plans the Next Step for Vision-and-Language Navigation
- 中文译名:NaVid:基于视频的视觉语言大模型规划视觉语言导航的下一步动作
- 作者:Jiazhao Zhang、Kunyu Wang、Rongtao Xu 等
- 会议:Robotics: Science and Systems(RSS 2024)
- 研究方向:Vision-and-Language Navigation(VLN)、Embodied AI、Video VLM、Vision-Language-Action(VLA)、Sim-to-Real
- 论文类型:方法研究(连续环境、视频历史建模、低层动作预测)
- 关键词:NaVid、VLN-CE、LLaMA-VID、EVA-CLIP、Vicuna-7B、Instruction-aware Tokens、DAgger
- 阅读目的:理解如何利用视频 VLM 在不输入地图、里程计、深度信息的条件下完成连续环境中的机器人导航,并从 Token 设计、数据训练与泛化实验中提炼可复现的研究思路。
资料链接:
- 原论文:https://arxiv.org/abs/2402.15852
- RSS 正式论文:https://roboticsproceedings.org/rss20/p079.pdf
- 项目主页:https://pku-epic.github.io/NaVid/
- 官方评测代码:https://github.com/jzhzhang/NaVid-VLN-CE

1. 文献核心信息:What—Why—How—Experiments—Conclusion
1.1 What——本文做了什么?
NaVid 提出了一种基于在线 RGB 视频和自然语言指令的连续环境导航方法。机器人每执行一步动作,就获取一帧新的 RGB 画面;模型把当前画面与历史视频联合编码,通过 VLM 生成下一步可执行的语言动作。
主要贡献可概括为:
- RGB-only 输入建模:动作决策只需要单目 RGB 视频与导航指令,不依赖作为模型输入的地图、深度图或里程计。
- 视频化历史记忆:直接保留机器人走过的画面,不必先把所有历史信息变成文字摘要或显式地图。
- 指令相关与无关 Token 协同:同时表示“和当前指令相关的信息”以及“完整场景中的空间细节”,并对历史帧和当前帧使用不同的 Token 数量。
- 可执行低层动作输出:直接生成“Forward 75 cm”“Turn left 30 degrees”等带数值参数的动作,而不止是抽象的高层目标。
- 混合训练与泛化验证:结合专家轨迹、模型实际执行产生的非专家轨迹、轨迹指令推理及大规模通用视频数据,验证跨场景、跨数据集和真实机器人部署能力。
直白理解:传统 VLN 可能需要告诉机器人“下一处 waypoint 在哪里”;NaVid 则尝试直接让模型回答“我现在应该走多少、转多少,什么时候停”。
1.2 Why——研究动机是什么?
A. 离散 VLN 与真实机器人之间存在鸿沟
早期 R2R 等研究通常把建筑表示为预先构建的导航图,智能体在图上的节点间进行离散决策。这很适合验证语言理解,但实际机器人不能简单地在视点间“瞬移”;它必须连续运动、转弯、避开障碍并判断停止位置。
B. 地图、深度和里程计会引入新的泛化问题
一些 VLN-CE 方法使用 RGB-D、里程计或地图。额外输入虽然帮助几何推理,却可能受到传感器误差、仿真与真实数据差异以及定位误差的影响。
NaVid 的选择是:先研究能否只依靠视觉历史与指令直接产生导航行为,从而减少对这些中间表示的依赖。但“不要这些输入”不等于模型已具备严格的碰撞安全保证。
C. 普通 VLM 不等于机器人控制器
通用 VLM 会识别图片、描述视频,却不一定知道怎样输出可执行导航动作。VLN 需要持续记录任务进度、判断目标的左右方位,并输出距离和角度等量化参数。
因此,NaVid 的核心问题不是简单地把相机画面塞进大模型,而是:怎样组织导航视频为有用的 Token,怎样提供动作监督,以及怎样让模型在陌生环境下可靠工作?
1.3 How——具体方法(论文核心)
A. 问题定义:连续环境中的下一步决策
在时刻 ttt,机器人收到自然语言指令 III,以及从出发到现在的 RGB 视频观测:
Ot={x0,x1,…,xt} O_t=\{x_0,x_1,\ldots,x_t\} Ot={x0,x1,…,xt}
模型需要根据历史和当前观测规划下一个低层动作:
at+1∈A a_{t+1}\in\mathcal{A} at+1∈A
这里 xtx_txt 是时刻 ttt 的第一人称画面,OtO_tOt 是图像序列,A\mathcal{A}A 是低层动作空间。论文将这种连续视觉交互视为部分可观测决策问题(POMDP)。
模型的四种动作类型为:
| 动作 | 含义 | 额外参数 |
|---|---|---|
| FORWARD | 向前移动 | 距离,单位 cm |
| TURN-LEFT | 向左旋转 | 角度,单位 degree |
| TURN-RIGHT | 向右旋转 | 角度,单位 degree |
| STOP | 停止 | 无 |
B. 模型总架构:视频编码器 + 大语言模型

沿着 Fig.2 的箭头读,模型可以拆成五部分:
- Vision Encoder(EVA-CLIP):将每一帧 RGB 图像编码为视觉 Patch 特征。
- Query Generator(基于 Q-Former):让自然语言指令参与视觉特征查询,挑选与任务相关的视觉内容。
- Two Cross-Modality Projectors:将两类视觉表示投影到 LLM 可使用的特征空间。
- Text Encoder(BERT):将语言指令转换为语言 Token。
- Vicuna-7B:融合历史视频 Token、当前观测 Token 和语言 Token,生成下一步动作文本。
注意:NaVid 基于 LLaMA-VID 扩展,而不是从零发明一套全新的 Transformer。论文更有价值的创新集中在导航任务建模、Token 数量分配、动作格式和训练数据组织。
C. 两类视觉 Token:Instruction-queried 与 Instruction-agnostic
假设第 ttt 帧经视觉编码后得到:
Xt∈RNx×C,Nx=256 X_t\in\mathbb{R}^{N_x\times C},\qquad N_x=256 Xt∈RNx×C,Nx=256
其中 NxN_xNx 是 Patch 数量,CCC 是特征维度。
第一类:Instruction-queried Token(指令查询 Token)
指令例如:“Walk forward until you reach a white pail and stop.”(向前走直到白色桶附近并停止)。机器人需要重点关注“白色桶”及其相对位置。
公式(1):先生成受指令影响的查询向量:
Qt=GQ(Xt,I) Q_t=G_Q(X_t,I) Qt=GQ(Xt,I)
- GQG_QGQ:基于 Q-Former 的查询生成器;
- XtX_tXt:该帧视觉特征;
- III:语言指令;
- Qt∈RM×CQ_t\in\mathbb{R}^{M\times C}Qt∈RM×C:MMM 个查询向量,每个维度为 CCC。
公式(2):再通过交叉注意力提取与指令有关的视觉信息,并对查询维度平均池化:
EtQ=PQ(Pool(Softmax(QtXtT)Xt)) E_t^Q=P_Q\left(\operatorname{Pool}\left(\operatorname{Softmax}(Q_tX_t^{\mathsf T})X_t\right)\right) EtQ=PQ(Pool(Softmax(QtXtT)Xt))
- QtXtTQ_tX_t^{\mathsf T}QtXtT:每个 Query 与各图像 Patch 的相似度;
- Softmax\operatorname{Softmax}Softmax:把相似度转成注意力权重;
- 与 XtX_tXt 相乘:对视觉 Patch 加权求和;
- Pool\operatorname{Pool}Pool:沿 Query 维度平均;
- PQP_QPQ:跨模态投影器,得到一个与指令相关的视觉 Token。
最终,每帧保留 1 个 Instruction-queried Token,让模型知道“我需要完成哪一部分指令”。
第二类:Instruction-agnostic Tokens(指令无关 Token)
只关注白色桶可能不够:还必须知道门口在哪里、通道是否弯曲、附近是否有其他物体。因此还要保留相对丰富的场景空间信息。
公式(3):
EtV=PV(GridPool(Xt)) E_t^V=P_V\left(\operatorname{GridPool}(X_t)\right) EtV=PV(GridPool(Xt))
- GridPool\operatorname{GridPool}GridPool:按空间网格池化视觉 Patch,而非仅取一个全局向量;
- PVP_VPV:将池化后的视觉特征投影到语言模型的特征空间;
- EtV∈RNv×CE_t^V\in\mathbb{R}^{N_v\times C}EtV∈RNv×C:得到 NvN_vNv 个指令无关 Token。
最关键的 Token 设计:
| 观测类型 | 指令查询 Token | 指令无关 Token | 合计视觉 Token |
|---|---|---|---|
| 每帧历史观测 x0…xt−1x_0\ldots x_{t-1}x0…xt−1 | 1 | 4 | 5 |
| 当前观测 xtx_txt | 1 | 64 | 65 |
历史帧主要解决“我刚才经过了什么、指令做到哪一步”,保留粗粒度信息即可;当前帧直接决定“现在转多少度、走多少厘米”,需要更加精细的几何线索。
这是全文最值得学习的设计之一:不同时间位置的信息价值不同,Token 预算不应平均分配。
D. 特殊 Token 与动作格式
在送入 Vicuna-7B 之前,NaVid 使用三组语义标记组织输入:
<HIS> 历史帧视觉Tokens </HIS>
<OBS> 当前帧视觉Tokens </OBS>
<NAV> 语言导航指令
其中 HIS 表示历史(History),OBS 表示当前观测(Observation),NAV 表示导航任务/指令区段。论文 Fig.2 的框图使用方括号作示意,正文输入模板使用尖括号;两者表示相同的区段标识概念。
示例输出:
The next action is move forward 75 cm.
The next action is turn left 30 degrees.
The next action is stop.
最后用正则表达式提取动作类别与数值参数,交给仿真器或真实机器人执行。
精读理解:这里的 LLM 并不是简单“回答导航问题”,而是承担一个离散动作类型 + 连续数值参数的生成式策略角色;机器人执行之后再重新观测,形成闭环决策。
E. 训练策略:专家轨迹、非专家轨迹与辅助任务

NaVid 的训练不是仅靠大量图文预训练,还需要导航动作级监督。
| 数据类别 | 数量 | 用途 |
|---|---|---|
| Oracle(专家)导航动作样本 | 320k | 学习正确的下一步动作 |
| Non-oracle(非专家)导航动作样本 | 180k | 学习在模型自己可能走到的状态下继续导航 |
| Instruction reasoning(轨迹推理)样本 | 10k | 看一段轨迹视频,反推对应的自然语言导航描述 |
| Web-scale 视频等通用数据 | 763k | 保留和增强一般视觉语言能力 |
| 导航相关样本合计 | 510k | 500k 动作 + 10k 轨迹推理 |
为什么要 Non-oracle?
训练时若始终让模型看到完美的专家路线,推理时一旦稍微走偏,后续观测就与训练数据分布不同,容易越走越偏。NaVid 借鉴 DAgger 思想,让已训练的策略自己在环境中执行,再收集新的训练样本,以减轻这种暴露偏差。
另外,通过“视频 → 描述这段导航路线”的辅助任务,模型被迫理解轨迹与语言之间的对应关系,而不是机械地记忆单帧动作标签。
F. 实现细节
- 视觉骨干:EVA-CLIP;查询模块:Q-Former;文本编码器:BERT;语言模型:Vicuna-7B。
- 作者报告训练资源:24 张 NVIDIA A100,约 28 小时,累计约 672 GPU-hours。
- 论文报告训练 1 个 epoch,遵循 LLaMA-VID 的参数训练策略;不能据此推断普通单卡可以复现完整训练。
- 导航视频中保留动作序列帧;视频字幕数据按约 1 FPS 采样以降低冗余。
- 实机推理每步约 1.2~1.5 秒,并非高频直接电机控制。
1.4 Experiments——实验设计和结果
A. 评价设置与指标
模拟评测:VLN-CE 的 R2R Val-Unseen 与 RxR Val-Unseen。论文使用 R2R 训练集训练,分别在 R2R、RxR 未见场景上评估跨场景与跨数据集泛化。
常见指标:
- SR(Success Rate)↑:机器人按要求停止在目标附近的成功率。
- SPL(Success weighted by Path Length)↑:兼顾成功率和路径效率,论文主要关注的指标。
- NE(Navigation Error)↓:最终位置到目标的导航误差。
- OS(Oracle Success)↑:假如能在走过的最优接近目标位置停止,理论上可成功的比例。
- TL(Trajectory Length):轨迹长度。
原文设置:VLN-CE 中执行 STOP 且距离目标不超过 3 m 算成功;真实环境采用 1.5 m 阈值。
B. R2R:跨场景性能

NaVid 在 R2R Val-Unseen 上取得:
| 方法 | 输入 | SR↑ | SPL↑ | NE↓ |
|---|---|---|---|---|
| RGB-CMA | RGB | 5.0 | 4.43 | 9.55 |
| CMA | RGB + Depth | 32.0 | 30.0 | 7.37 |
| WS-MGMap | RGB + Depth + Odometer | 38.9 | 34.3 | 6.28 |
| NaVid | RGB | 37.4 | 35.9 | 5.47 |
结论:仅用 RGB 的 NaVid 明显强于 RGB-CMA,在论文所比较的低层动作方法里 SPL 表现突出。需要注意,表中若干采用高层动作空间/额外组件的方法 SR 或 SPL 仍高于 NaVid,不能将本表简化为“NaVid 全面超过所有 VLN 方法”。
C. RxR:跨数据集零样本泛化

| 方法 | RxR SR↑ | RxR SPL↑ |
|---|---|---|
| A² Nav(Zero-shot) | 16.8 | 6.3 |
| WS-MGMap | 15.0 | 12.1 |
| NaVid | 23.8 | 21.2 |
作者将 R2R 训练好的模型直接迁移到 RxR 未见场景,没有把 RxR 当作这一组实验的导航训练数据。该结果比单纯在 R2R 上验证更能反映对指令风格和场景变化的适应能力。
D. 视频历史真的重要吗?

| 历史表示方式 | SR↑ | SPL↑ |
|---|---|---|
| Text-based(文字描述) | 0.0 | 0.0 |
| Map-text(地图+文字) | 9.13 | 8.97 |
| Ego-view-text(当前图像+历史文字) | 23.5 | 20.8 |
| Video-based(NaVid) | 37.4 | 35.9 |
这个实验直接支持本文最重要的观点:将导航历史编码为视频视觉 Token,比先压缩成文字摘要更适合当前研究设置。注意这是作者训练与实现条件下的对比,不表示所有文本记忆方案永远不如视频。
E. 真实机器人:不仅在仿真中有效

作者在 Meeting Room、Office、Lab、Lounge 四类室内场景下测试了 200 条指令,每个场景含 25 条简单地标指令和 25 条复杂组合指令。
NaVid 在四场景的平均结果为:
- 简单指令成功率 85%(92%、84%、76%、88% 的平均);
- 复杂指令成功率 47%(56%、48%、40%、44% 的平均);
- 按两类指令等量计算总体成功率约 66%。

这说明模型具备一定实机泛化能力;同时复杂任务相较简单任务仍然明显更难。真实实验平台使用 TurtleBot4 和 Kinect DK,其他对比方法可以使用深度、激光与建图组件;“NaVid 的导航决策只输入 RGB”不等于实验设备本身没有其他传感器。
F. 消融实验:哪些设计确实有用?

| 消融设置 | SR↑ | SPL↑ |
|---|---|---|
| 不使用联合训练 | 24.7 | 23.6 |
| 移除轨迹指令推理样本 | 31.1 | 29.1 |
| 移除非专家导航样本 | 34.2 | 32.0 |
| 移除 NAV 标记 | 35.9 | 33.5 |
| 移除 HIS/OBS 标记 | 35.7 | 33.4 |
| 完整 NaVid | 37.4 | 35.9 |
说明数据设计和多任务联合训练对最终性能影响很大,特殊 Token 也有帮助,但不能把性能提升全部归功于网络结构创新。

| 每历史帧的指令无关 Token | SR↑ | SPL↑ | 平均每步耗时↓ |
|---|---|---|---|
| 1 | 23.9 | 20.5 | 0.87 s |
| 4 | 37.4 | 35.9 | 1.22 s |
| 16 | 38.0 | 36.1 | 2.72 s |
从 4 个增加到 16 个 Token,SR 只由 37.4% 增至 38.0%,但平均计算耗时由 1.22 s 增至 2.72 s。因此作者选用 4 个历史指令无关 Token 作为性价比折中;当前观测仍采用 64 个。
1.5 Conclusion——论文结论
NaVid 的价值在于把“连续导航”转化为“指令 + 在线视频历史 → 下一步可执行语言动作”,并用两类视觉 Token 与非均匀历史/当前 Token 预算组织输入。实验表明,在该论文评测条件下,RGB-only 的视频 VLM 可获得具有竞争力的连续 VLN 性能,并展现一定跨数据集与真实环境迁移能力。
但其结论仍有边界:模型推理存在较高延迟、长时程任务可能遗忘历史,真实复杂指令的成功率也远未达到可靠部署要求。
2. 读后四问
2.1 这篇论文有什么局限性?
- 推理慢:每步约 1.2~1.5 秒,不适合直接承担高频、强实时的底层避障控制。
- 长历史成本高:历史帧不断累积,Token 增长导致长程任务的计算和记忆压力。
- 缺乏显式几何与安全约束:不用深度、地图和里程计的代价是难以直接提供可验证的碰撞安全与定位精度保证。
- 复杂指令较困难:真实环境复杂组合指令平均 SR 约 47%,反映多阶段任务的累积误差。
- 训练资源要求高:论文报告的完整训练需要大规模 GPU 资源和较复杂的数据采集过程。
- 实验场景有范围限制:主要评测室内 VLN;不能直接推出其在复杂动态人群、户外道路或多机器人场景中的可靠性。
2.2 有什么值得学习的地方?
- 研究问题切得准:将跨环境泛化与 Sim-to-Real 作为核心问题,而非只追求模型规模。
- 输入表示设计有效:区分指令查询 Token、指令无关 Token、历史帧与当前帧。
- 低层动作输出可执行:将预训练 VLM 从“会描述”进一步变成“能决定下一步怎么动”。
- 重视偏离专家路线的训练状态:DAgger 风格数据有助于减少策略执行中的误差累积。
- 实验链条完整:跨场景、跨数据集、与通用大模型对比、历史表示消融、实机验证相互支撑。
- 明确效率—性能权衡:Token 不是越多越好,决定性的因素是信息价值与计算预算的平衡。
2.3 有什么没有搞懂、需要继续追问?
- 指令查询 Token 仅保留 1 个,会不会丢失多阶段指令中不同地标的关系?
- 64 个当前视觉 Token 如何保留精确距离信息?最终“前进 75 cm”的尺度从何而来?
- 如果摄像头运动频繁、视觉模糊或出现动态遮挡,没有几何模块时如何避免失败?
- 长视频的哪些历史帧可以删除?能否使用关键帧、场景图、语义事件或在线 Token 合并?
- DAgger 带来的改善相对有限,怎样设计更有多样性的失败轨迹与纠错监督?
- 能否让 VLM 负责高层语义策略,同时让传统控制/局部规划模块提供安全执行?
2.4 这篇论文与我的研究有什么关系?
- 视觉导航:可借鉴其视觉历史表征、场景泛化与目标停止判断机制。
- SLAM 与导航结合:可以研究显式几何信息是否能在保留泛化能力的同时补足尺度、定位及安全性短板。
- 具身智能 / VLA:学习如何让视觉语言模型输出含数值参数的真实机器人动作。
- 长时程 VLN:从关键帧选择、历史 Token 动态压缩、指令进度估计切入,是自然的扩展课题。
- 机器人系统复现:非常适合结合 ROS 2 / Nav2 研究“VLM 决策 + 安全控制器”的混合系统。
3. 个人小结
NaVid 是理解 “视频 VLM 如何从感知模型走向闭环机器人导航策略” 的一篇非常有代表性的论文。
我的三个最重要收获是:
第一,历史观测本身是一种记忆,不一定需要先恢复成地图或转写为文字。 视频形式能保留更多可用于判断运动进度的视觉上下文。
第二,当前帧与历史帧应采用不同的特征预算。 历史帧关心路线进度,当前帧关心下一步动作数值;NaVid 用“历史 4 + 当前 64”的指令无关 Token 分配实现了一个实用折中。
第三,训练数据设计往往和模型架构同样重要。 专家动作、模型偏离路线的状态、轨迹语言推理、通用视频数据共同构成了 NaVid 的泛化能力来源。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)