先记住一句话
VLN 的难点不是把整句指令分类成一个终点,而是在移动导致视角不断变化时,持续回答“我完成到哪一步、当前 landmark 在哪、下一动作是否仍与整条路线一致”。
1. POMDP 表达
aₜ ~ π(a | o₀:ₜ, instruction, memory), sₜ 不完全可见真实状态含全局位置、朝向、障碍和目标,但 agent 只看到 ego RGB/RGB-D、可能的 odometry/proprioception。历史用于推断 belief;语言既描述 goal,也给出沿途 landmarks、转向和顺序 constraints。
2. 三种常见动作层级
| 动作 | 优点 | 被隐藏的问题 |
|---|---|---|
| 图节点 / navigable view | 规划清晰、评测稳定 | teleport/完美连通性绕开局部控制 |
| 原子动作 | Move 0.25 m、Turn 15°,更接近 continuous env | 动作碎片、VLM 调用频繁 |
| waypoint / trajectory chunk | 平滑、高频 controller 可执行 | 需要几何、碰撞与 embodiment 接口 |
3. R2R、RxR 与连续环境
R2R 以英文室内路线为经典起点;RxR 更长、更多语言和路径变化。离散版本在预定义 viewpoint graph 上行动;VLN-CE 把任务移到连续 Habitat 环境,agent 要处理实际位姿与碰撞。VLN-PE 又把 locomotion controller、跌倒和卡住带进物理仿真,模型之间不能只按同名 “R2R” 横比。
4. 基础指标
- NE:终点到目标的距离,越低越好;
- SR:agent 主动 Stop 且落在阈值内的比例;
- OSR/OS:整条轨迹曾到过阈值内即算,揭示“到过但不会停”;
- SPL:成功率按实际/最短路径比惩罚绕路;
- nDTW:预测轨迹与 reference route 的形状/顺序相似性。
SPL = (1/N) Σ Sᵢ · Lᵢ / max(Lᵢ, Pᵢ)5. SR 高仍可能不好用
目标附近乱撞后 Stop 也可能成功;reference 路线忠实度低会违反“经过沙发再左转”的指令;动态人群中静态 benchmark 的成功不代表安全。部署还要测 collision/human collision、fall/stuck、轨迹曲率、控制频率、重规划时延、算力与 energy。
6. Language 本身也有分布
- route instruction:按顺序描述“出门、过楼梯、左转”;
- goal description:“去有白板的工位”;
- underspecified intent:“找个安静的地方”;
- interaction/repair:“不是这个门”“绕开那个人”;
- 风格/多语言:省略、口语、用户习惯和语言切换。
在 basic-style instruction 上训练好,不等于能处理真实用户的歧义和反馈。
7. 一次失败如何归因
- 语言解析错:subgoal/先后关系错;
- visual grounding 错:landmark 或 passage 识别错;
- localization/memory 错:不知道来路与进度;
- global planning 错:选错 frontier/分叉;
- local control 错:碰撞、过不去、动态避障失败;
- termination 错:到达却不 Stop,或过早 Stop。
“加 System 2 后 SR 上升”只有结合这种 diagnosis 才知道改进来自 reasoning、spatial representation 还是 controller。
8. 四个 VLN 指标手算
例 1:Success Rate
100 episodes 中 68 次最终位置落在成功阈值内,SR=68/100=68%。它不关心成功路线绕了多远。
例 2:SPL
某成功 episode 的 shortest path L=8 m,实际 path P=12 m,贡献=L/max(L,P)=8/12=0.667;失败 episode 贡献 0。10 个 episode 的 SPL 是这些贡献的平均。
例 3:Navigation Error
成功阈值=3 m,终点到 goal geodesic distance=2.4 m,判成功;另一条路径 endpoint Euclidean distance 2 m 但被墙隔开、geodesic 5 m,应失败。指标必须用同一 distance convention。
例 4:动作层级改变 step 数
一条 10 m 路:low-level move step=0.25 m 约需 40 forward actions;若 graph node 平均间距 2 m,只需约 5 high-level moves。不能直接比较两者 episode step count。
scene split、传感器(panorama/odometry/depth/single RGB)、额外训练数据、动作空间、成功阈值与 locomotion 是否一致。输入更强或数据更多的数字不能直接证明架构更好。
自测
1. SR 与 OSR 差距大意味着什么?
agent 经常到过目标附近却没正确停下,termination/progress estimation 可能有问题。
2. 为什么 nDTW 对路线指令重要?
终点相同不代表遵循了指令指定的路径和 landmarks;nDTW 衡量整条轨迹相似度。
3. VLN-CE 比 viewpoint graph 多了什么?
连续位姿、局部 waypoint/control、碰撞和更真实的感知—行动误差,不再在已知可达节点间直接跳转。