空间记忆与地图表示调研报告:从绝对坐标到相对空间关系
Runqing Xu | 2026年7月2日(2026-07-07更新第九节)
一、调研背景与目标
在具身智能体的室内导航任务中,基于绝对坐标的空间理解体系面临固有局限:对建图精度高度依赖、难以处理动态环境变化、且与自然语言指令之间存在语义鸿沟。相比之下,人类主要依靠周围物体和空间关系(如"桌子旁边"、"厨房对面的房间")来理解和描述位置,这种相对空间关系理解体系更具鲁棒性和灵活性。本报告围绕"如何从绝对坐标体系转向相对空间关系体系"这一核心问题,从语义地图表示、空间认知定位、Planner消费模式、空间关系建模、代表性系统五个方向,调研了15篇代表性工作。
本报告系统调研了15篇代表性工作,覆盖语义地图与embedding表示(ConceptGraphs、VLMaps、CLIP-Fields)、空间认知与非几何定位(SceneGraphLoc、RoboHop、SPACE Benchmark)、Planner消费地图(SayPlan、SG-Nav、MapGPT、MapNav)、空间关系建模(SpatialVLM、SR-Nav、HRON)、代表性端到端系统(3D-Mem、ESCA)五个方向,为技术选型和系统设计提供决策依据。
二、核心结论
问题1:有没有不依赖传统地图或精确坐标的空间表示方案?
结论:有,且已形成三条成熟技术路线。
- 路线A:语义embedding地图。 VLMaps将CLIP/LSeg的稠密pixel embedding融合到2D栅格地图中,每个栅格存储连续语义向量而非离散标签,支持开放词汇查询(pixel accuracy 92.3%)。CLIP-Fields更进一步,用隐式神经场将CLIP+SBERT embedding编码到3D坐标上,理论上支持任意精度的连续3D查询。两者均不依赖预定义类别,查询时只需计算文本embedding与地图embedding的相似度。
- 路线B:物体级3D场景图。 ConceptGraphs以物体为节点、空间关系为边构建图结构,每个节点携带CLIP特征、自然语言描述和3D包围盒。节点级粒度相比逐像素表示大幅降低存储开销,图结构天然编码"on"、"in"、"next to"等相对空间关系。SG-Nav在此基础上增加了group和room两个层级,形成object-group-room三层结构。
- 路线C:纯拓扑图。 RoboHop和MapGPT证明了完全不需要3D坐标也能支持导航——RoboHop以图像segment为节点、帧内/帧间关联为边构建纯拓扑图;MapGPT将拓扑连接关系表述为"Place X is connected with Places Y, Z"的自然语言,完全去坐标化。MapGPT的消融实验明确表明:引入GPS坐标反而降低性能(SR从44.9%降至41.2%),而纯拓扑文本地图带来显著提升。
问题2:有没有基于空间认知而非几何定位的方案?
结论:有,但必须清醒认识VLM空间认知能力的严重不足。
SceneGraphLoc证明了场景图可以作为极其紧凑的定位参考——仅5.4MB存储即可替代5720.3MB的图像数据库,存储压缩1000倍,检索速度快1000倍以上。RoboHop更激进地证明了纯拓扑表示(无任何度量坐标)即可支持导航规划。
但SPACE Benchmark(ICLR 2025)揭示了一个结构性问题:该基准测试时的前沿VLM(GPT-4o、Claude 3.5 Sonnet等)在第一人称视角下的大尺度空间认知任务中接近随机水平(GPT-4o仅23.0%,chance为15.0%)。Mental rotation、perspective taking等核心空间认知能力均接近随机。尽管此后模型能力有所提升,但这一结论指向的是VLM架构层面的固有短板——空间认知并非简单的语义理解,而需要专门的空间推理机制。因此,不宜将空间推理直接委托给通用VLM,应当构建显式的外部空间表示作为辅助。
一个重要发现是:VLM在纯文本呈现下的空间认知显著优于多模态呈现(Claude 3.5: 文本64.5% vs 多模态43.8%),这为将空间信息结构化为文本/符号表示后再交给LLM处理的技术路线提供了有力支持。
问题3:Planner如何利用地图?
结论:主流消费模式有四种,文本序列化是当前最优解。
| 消费模式 | 代表工作 | 优势 | 局限 |
|---|---|---|---|
| JSON序列化 | ConceptGraphs, SayPlan | 结构化、LLM友好 | 大场景token开销大 |
| 纯文本拓扑 | MapGPT | 最轻量、LLM理解最好 | 丢失距离/方向信息 |
| 代码生成调用API | VLMaps | 封装好、可扩展 | 需预定义API |
| 视觉地图直接输入 | MapNav | 保留2D空间拓扑 | 需VLM微调、依赖文字标注 |
SayPlan的collapse-and-expand机制特别值得关注:通过层级折叠将6731 tokens压缩至878 tokens(压缩86.9%),在保证LLM可消费性的同时解决了大场景的扩展性问题。SG-Nav的层级Chain-of-Thought prompting证明了结构化场景图比扁平文本列表更有效(SR提升+3.7%)。
MapNav提出了一个值得关注的思路:在语义地图上叠加物体名称的文字标注以提升VLM的理解能力。但需注意,该工作在实际复现中效果远低于论文报告的数值,其方案更适合作为思路参考而非直接工程借鉴。
问题4:如何建模空间关系(前后左右相邻连通)?
结论:多维关系编码(拓扑+方向+距离)效果最佳,拓扑关系是最关键的维度。
SR-Nav的DSRG提出了最完整的空间关系编码方案,同时编码三种维度:拓扑关系(包含、连接)、方向关系(相对角度方位)、距离关系(欧氏距离量化)。消融实验表明拓扑关系对性能影响最大(去除后SR降5.6%),距离次之(降2.3%),方向最小(降1.0%)。
SpatialVLM通过20亿条自动生成的spatial VQA数据训练VLM,使其具备定性空间判断能力(75.2% accuracy),证明了"A在B左边"等定性描述的可行性。但定量距离估计精度有限(仅37.2%在GT的半到两倍范围内),不足以支撑精确控制。
HRON的层次化关系设计(object-onTop/inside/under-furniture-inRoom-room-roomConnected-room)为我们提供了可直接借鉴的关系谓词体系。其实验证明:场景图+任务驱动注意力的SR(0.879)远超2D语义地图(0.554),为场景图路线提供了定量支撑。
问题5:代表性系统总结
系统一:SG-Nav(在线场景图 + 层级CoT导航)
SG-Nav是将场景图与LLM结合进行导航的最完整工程落地方案。感知端在线构建object-group-room三层场景图,增量式更新边关系;决策端将场景图切分为子图,通过层级Chain-of-Thought引导LLM逐层推理目标位置;验证端通过Re-perception机制利用场景图上下文过滤检测误报。在三个benchmark上以zero-shot方式超越此前所有zero-shot方法(MP3D SR 40.2%,超越supervised方法SemEXP的36.0%)。
系统二:SR-Nav(空间关系图 + 双模块协同)
SR-Nav将空间关系建模提升到最高水平。其DSRG融合LLM生成的经验性空间先验与在线感知观测,同时服务于感知校正(RAMM模块通过空间关系一致性检验甄别FP/FN)和导航规划(DRPM模块将关系路径转化为语义导航线索)。在HM3D上达到58.3% SR,比SG-Nav高4.4%,同时推理速度快8.7倍。
系统三:3D-Mem(视觉快照记忆 + VLM直接推理)
3D-Mem挑战了场景图范式,提出用精选的多视角快照图像替代图结构作为空间记忆。通过Co-Visibility Clustering选出信息密度最高的代表帧,让VLM直接在图像上推理空间关系。在需要精细空间判断的任务上(如"扶手椅前方是否有足够空间")显著优于ConceptGraphs的文本化场景图(spatial understanding: 43.4 vs 32.9)。
三、全景对比
| 论文简称 | 所属方向 | 空间表示类型 | Planner消费方式 | 是否需要坐标 | 是否在线构建 | 是否真机部署 | 关键指标 |
|---|---|---|---|---|---|---|---|
| ConceptGraphs | 方向1,5 | 3D场景图(物体节点+关系边) | JSON序列化送LLM | 需要(包围盒) | 增量式 | 真机 | 节点精度0.71, 边精度0.88 |
| VLMaps | 方向1 | 2D栅格embedding地图 | LLM生成代码调API | 需要(栅格坐标) | 增量式 | 否(仿真) | 导航SR 59%, pixel acc 92.3% |
| CLIP-Fields | 方向1 | 隐式3D神经场 | Embedding检索+SLAM导航 | 需要(3D坐标) | 否(场景级训练) | 真机 | 语义查询SR 71-86% |
| SceneGraphLoc | 方向2 | 3D场景图(多模态节点) | Patch-to-node匹配定位 | 需要(3D点云) | 否(离线) | 否 | R@1 81.5%, 存储5.4MB |
| RoboHop | 方向2 | 纯拓扑segment图 | Dijkstra最短路径 | 不需要 | 在线 | 真机 | 零样本导航, 无需训练 |
| SPACE | 方向2 | Benchmark(无表示) | 评估VLM空间认知 | N/A | N/A | N/A | GPT-4o大尺度任务仅23.0% |
| SayPlan | 方向3 | 层级3DSG(4层) | 折叠-展开语义搜索 | 需要(位姿) | 否(预建) | 否(仿真) | 长程可执行率86.6%, 压缩86.9% |
| SG-Nav | 方向3 | 层级场景图(3层) | 层级CoT prompting | 需要(3D实例) | 在线增量 | 否(仿真) | MP3D SR 40.2%(zero-shot SOTA) |
| MapGPT | 方向3 | 纯文本拓扑地图 | 文本注入LLM prompt | 不需要 | 在线 | 否(仿真) | R2R SR 47.7%(GPT-4V) |
| MapNav | 方向3 | 带文字标注的语义顶视图 | VLM视觉编码器消费 | 需要(栅格坐标) | 在线 | 否(仿真) | 论文报告R2R-CE SR 39.7%,实际复现效果远低于此 |
| SpatialVLM | 方向4 | VLM内化的空间知识 | CoT空间查询子模块 | 不需要(单图推理) | N/A | 否 | 定性acc 75.2%, 定量有效率99% |
| SR-Nav | 方向4 | 动态空间关系图(DSRG) | 关系路径推理+语义线索 | 部分(距离估计) | 在线动态 | 否(仿真) | HM3D SR 58.3%(zero-shot SOTA) |
| HRON | 方向4 | 层次化场景图(3层关系) | GNN编码+任务驱动注意力 | 需要(局部坐标) | 增量式 | 否(仿真) | 探索导航SR 0.879(+注意力) |
| 3D-Mem | 方向5 | 多视角快照图像集 | VLM直接视觉推理 | 需要(底层物体集) | 在线增量 | 否(仿真) | A-EQA 52.6%, GOAT SR 69.1% |
| ESCA | 方向5 | 概率时空场景图 | 选择性注入MLLM prompt | 不需要(相对关系) | 在线 | 否(仿真) | 感知错误69%降至30% |
四、方向1:语义地图与embedding表示
4.1 问题定义
传统语义地图将每个栅格标注为预定义类别集合中的离散标签(如40类Matterport类别),这种封闭词汇的表示无法应对开放世界中的新物体和新概念。方向1探索的核心问题是:如何构建一种语义丰富、支持开放词汇查询、且能有效服务于下游规划任务的空间表示?
4.2 现有方案对比
| 维度 | ConceptGraphs | VLMaps | CLIP-Fields |
|---|---|---|---|
| 表示粒度 | 物体级(每个节点=一个物体) | 像素级(每个栅格=一个embedding) | 点级(任意3D坐标=一个embedding) |
| 空间维度 | 3D(点云+包围盒) | 2D(俯视栅格) | 3D(隐式神经场) |
| 显式/隐式 | 显式图结构 | 显式栅格存储 | 隐式神经网络权重 |
| 开放词汇 | 是(CLIP+LLaVA+GPT-4) | 是(LSeg/CLIP) | 是(CLIP+SBERT+Detic) |
| 物体关系 | 显式边(LLM推断语义关系) | 无(需通过坐标计算) | 无(需遍历点积) |
| 增量更新 | 支持(添加/删除节点) | 支持(均值融合) | 不支持(需重训) |
| 查询方式 | JSON序列化送LLM推理 | 文本embedding余弦相似度 | embedding点积检索 |
| 存储效率 | 高(仅存节点信息) | 中(H x W x C栅格) | 高(神经网络参数) |
| 对动态场景 | 部分支持(增删节点) | 不支持 | 不支持 |
| 真机验证 | 是(Jackal, Stretch) | 否(Habitat仿真) | 是(Hello Robot Stretch) |
三者构成了一条清晰的演进线索:VLMaps的2D像素级栅格 -> CLIP-Fields的3D点级神经场 -> ConceptGraphs的3D物体级场景图,表示粒度逐步提升,从稠密底层特征走向结构化高层语义。
4.3 系统设计启示
- 推荐采用ConceptGraphs的物体级场景图路线。 物体级粒度与人类的空间认知方式最为接近——人类记住的是"桌子上有杯子",而非"坐标(3.2, 5.1)处有embedding向量"。图结构天然支持相对空间关系的编码,且JSON序列化后可直接供LLM消费。
- 保留VLMaps的embedding查询能力作为底层检索引擎。 当需要回答"哪里有红色的东西"这类细粒度查询时,embedding相似度检索比遍历场景图节点描述更高效。可以在场景图节点中保留CLIP embedding作为属性。
- CLIP-Fields的隐式表示不适合在线场景。 场景级训练无法支持增量更新,且查询需要遍历全场景点,不适合实时系统。但其"将多模态embedding编码到空间坐标"的理念可以借鉴。
4.4 推荐关键图
五、方向2:空间认知与非几何定位
5.1 问题定义
传统定位方案依赖精确的6DoF位姿估计和大规模图像/点云数据库,存储和计算代价高昂。方向2探索的问题是:能否像人类一样,通过识别周围物体和理解空间关系来判断"我在哪里",而非依赖精确坐标?更根本地,当前的VLM到底具备多少空间认知能力?
5.2 现有方案对比
| 维度 | SceneGraphLoc | RoboHop | SPACE Benchmark |
|---|---|---|---|
| 核心目标 | 场景级粗定位 | 无坐标导航 | 评估VLM空间认知 |
| 是否需要坐标 | 需要(节点含3D信息) | 完全不需要 | N/A(评估框架) |
| 地图表示 | 3D场景图(多模态节点) | 纯拓扑segment图 | 无 |
| 存储效率 | 5.4MB(1000倍压缩) | 极低(仅描述子) | N/A |
| 检索速度 | 1.5ms/50场景 | 实时(Dijkstra) | N/A |
| 空间关系利用 | 结构+关系embedding | 帧内邻接+帧间持续 | 15项认知测试 |
| 核心发现 | 场景图可替代图像库 | 纯拓扑即可导航 | VLM空间认知接近随机 |
| 对VLM的依赖 | 不依赖(对比学习) | 仅查询解析用GPT-4 | 被评估对象 |
5.3 系统设计启示
- SPACE Benchmark的结论是最重要的警示:不能将空间推理委托给VLM。 所有前沿VLM在egocentric image模式下的大尺度空间认知接近随机水平。这意味着必须构建显式的外部空间表示(场景图或拓扑图),而非期望VLM通过"看"就能理解空间。
- 文本/符号表示优于视觉表示。 SPACE的数据清晰表明,将空间信息结构化为文本后再交给LLM,效果显著优于直接输入图像。这直接验证了通过场景图等符号化表示来桥接VLM与空间推理的技术路线。
- RoboHop的纯拓扑方案可作为轻量级备选。 在不需要精确位置但需要快速部署的场景中,RoboHop的segment-as-node拓扑图提供了一种零样本、不需要训练策略的导航方案。
- SceneGraphLoc的多模态融合框架值得借鉴。 其将几何(点云)、语义(类别、属性)、拓扑(关系)和视觉(图像)信息融合到统一的节点embedding中的设计,为构建丰富的空间表示提供了参考。
5.4 推荐关键图
六、方向3:Planner如何消费地图
6.1 问题定义
构建好的空间表示如何被Planner有效消费,是决定整体系统性能的关键接口。方向3探索的问题是:LLM/VLM-based Planner应该以什么形式接收空间信息?文本序列化、视觉输入、代码生成、还是其他方式?
6.2 现有方案对比
| 维度 | SayPlan | SG-Nav | MapGPT | MapNav |
|---|---|---|---|---|
| 地图类型 | 层级3DSG(4层) | 层级场景图(3层) | 纯文本拓扑图 | 带文字标注的语义顶视图 |
| 消费方式 | JSON序列化+交互式搜索 | 子图+层级CoT | 纯文本注入prompt | VLM视觉编码器 |
| LLM交互模式 | 多轮(搜索+规划) | 单轮(每步评分) | 单轮(思考+规划+动作) | 单轮(直接输出动作) |
| 扩展性方案 | Collapse-expand+contraction | 子图切分+批量推理 | 三类节点分类 | 恒定0.17MB |
| Token效率 | 6731->878(压缩86.9%) | O(m)边生成 | 平均672/步 | 恒定(图像token) |
| 是否在线 | 否(预建) | 是(在线增量) | 是(在线) | 是(在线) |
| 是否需要坐标 | 需要(位姿) | 需要(3D实例) | 不需要 | 需要(栅格坐标) |
| 任务类型 | 多步操作规划 | 物体目标导航 | VLN指令跟随 | VLN-CE连续导航 |
| 关键指标 | 长程可执行率86.6% | MP3D SR 40.2% | R2R SR 47.7% | 论文报告R2R-CE SR 39.7%(复现不达预期) |
四种消费模式的核心差异在于信息传递的"接口层":SayPlan和SG-Nav通过文本序列化保留了图结构信息;MapGPT彻底去结构化,只保留拓扑连接的文本描述;MapNav则走视觉路线,让VLM直接"看"地图图像,但其实际复现效果不佳,"文字标注提升VLM地图理解"的思路仍有价值,工程落地需谨慎。
6.3 系统设计启示
- 推荐采用分层文本序列化作为主消费接口。 SG-Nav的实验证明层级CoT比扁平文本列表提升3.7% SR,SayPlan证明层级折叠可将token压缩86.9%。
- MapGPT的去坐标化提供了有力的实验支撑。 坐标输入反而降低性能(SR降1.4%)的实验结果,表明从绝对坐标向相对空间关系转型在技术上是合理的。
- MapNav的文字标注思路可作为参考。 在顶视图上叠加物体名称文字标签的方向是合理的,但该方案在实际复现中效果有限,不宜直接采信论文数据,需结合具体场景验证。
- 迭代验证机制是保证可执行性的关键。 SayPlan的Scene Graph Simulator验证+迭代重规划将长程任务可执行率从13.3%提升到86.6%。
6.4 推荐关键图
七、方向4:空间关系建模
7.1 问题定义
从绝对坐标转向相对空间关系,核心技术挑战是:如何有效建模前后、左右、相邻、连通、包含等空间关系?这些关系应以什么形式编码,以便被Planner消费?VLM能在多大程度上理解这些关系?
7.2 现有方案对比
| 维度 | SpatialVLM | SR-Nav | HRON |
|---|---|---|---|
| 核心方法 | 大规模数据训练VLM | LLM先验+在线更新的关系图 | GNN+任务驱动注意力 |
| 关系类型 | 方向(左右前后上下)+距离+大小 | 拓扑+方向+距离(三维) | onTop/inside/under/inRoom/connected |
| 编码方式 | VLM内化(自然语言问答) | 显式图边(JSON三元组) | 有向类型化边(GNN消息传递) |
| 层级结构 | 无(扁平物体对) | 物体级+区域级 | object-furniture-room(3层) |
| 训练数据 | 20亿条自动生成QA | 无需训练(prompt工程) | RL训练(PPO, 150万步) |
| 定性/定量 | 两者兼有(38种问题类型) | 定性为主(定量为粗略估计) | 定性(谓词分类) |
| 关键发现 | 定性acc 75.2%, 定量精度有限 | 拓扑关系最关键(去除后SR降5.6%) | 场景图+注意力SR 0.879 vs 2D地图0.554 |
7.3 系统设计启示
- 采用SR-Nav的三维关系编码方案。 拓扑关系(包含、连通)+ 方向关系(相对方位)+ 距离关系(粗略量化)的三元组表示,与类人空间理解的目标高度契合。
- LLM先验+在线更新的双源融合策略可直接复用。 在进入新环境前,用LLM生成目标物体的空间关系先验,然后在探索中用实际观测逐步修正。
- HRON的实验为场景图路线提供了定量支撑。 场景图+任务驱动注意力(SR 0.879)远超2D语义地图(0.554),且纯场景图无注意力(0.458)反而不如无场景图(0.586),说明信息过滤机制至关重要。
- SpatialVLM证明了定性空间推理的可行性但定量精度不足。 "A在B左边""A比B高"等定性描述可以作为有效的空间表征(75.2% accuracy),但距离估计精度有限。
7.4 推荐关键图
八、方向5:代表性端到端系统
8.1 问题定义
上述四个方向分别解决了空间表示、认知定位、Planner消费和关系建模的子问题。方向5关注的是:当这些模块组合为端到端系统时,哪些是真正的瓶颈?场景图是否是最佳方案?
8.2 3D-Mem:挑战场景图范式
3D-Mem对场景图提出了有力的质疑:当需要回答"扶手椅前面是否有足够空间放咖啡桌"时,场景图只能提供"chair near sofa"这样的粗糙文本,无法度量空间余量或判断朝向性关系。3D-Mem的替代方案是:通过Co-Visibility Clustering选出信息密度最高的多视角快照图像,让VLM直接在图像上进行视觉推理。
实验表明,3D-Mem在spatial understanding类问题上显著优于ConceptGraphs(A-EQA: 43.4 vs 32.9),在GOAT-Bench终身导航上SR达69.1%。但3D-Mem并非完全抛弃结构化信息:它仍然维护底层物体集合作为索引,本质上是"结构化索引+视觉快照"的混合架构。
8.3 ESCA:感知是瓶颈而非规划
ESCA提供了最具冲击力的实证发现:在60个EB-Navigation任务中,69%的失败源于感知错误(hallucination + 误识别),仅11%源于推理错误,20%源于规划错误。引入ESCA的结构化scene graph增强后,感知错误降至30%,InternVL-2.5(开源38B)的性能超越了GPT-4o基线。
ESCA的核心设计是Selective Grounding:不将完整scene graph注入MLLM(这可能反而降低性能),而是根据任务instruction选择性地提取相关子集。
8.4 系统设计启示
- "场景图+视觉快照"的混合架构是最佳方案。 3D-Mem证明了视觉快照在精细空间推理上的优势,但场景图在跨区域推理、长程规划和快速检索上不可替代。
- 优先投入感知模块的改善。 ESCA的69%感知错误比例表明,在Planner不变的情况下,改善感知能力的ROI远高于改善规划。
- Selective Grounding原则应贯穿系统设计。 不论是场景图还是视觉快照,都不应无差别地全量传递给Planner。
8.5 推荐关键图
九、整体建议与实施路线
2026-07-07更新:本节新增完整证据链(9.1)与2025–2026定向补充检索(9.2);空间表示方案(9.3)与Planner消费接口(9.4)维持原判断不变。方案落地遵循两条工程约束:其一,现有系统模块多、耦合度高,方案必须简单、零训练、可解耦;其二,MapNav经实际复现证实效果远低于论文口径,"视觉地图作为主输入通道"已被第一手实验排除。9.5–9.11为代码级落地方案:基于对HOV-SG、MoMa-LLM、SG-Nav/UniGoal、3D-Mem、SceneGraphLoc开源仓库的逐文件核查,给出关键实现问题的结论速答(9.5)、重定位实现(9.6)、三层表示的逐层落地(9.7–9.9)、消费接口实现(9.10)与实施顺序(9.11)。
9.1 完整证据链:为什么主干是文本场景图
以下五环构成从问题到选型的完整推理链,每一环由文献定量证据(以及我们的第一手复现证据)支撑。任何一环被新证据推翻,都应触发方案复审。
- 环1:空间推理不能委托给VLM,必须外置显式空间表示。 SPACE(ICLR 2025):前沿VLM在第一人称大尺度空间认知上接近随机水平(GPT-4o 23.0%,chance 15.0%),mental rotation、perspective taking等核心能力接近随机。⇒ 环境结构必须由外部模块显式维护,VLM只消费、不推断。
- 环2:同样的空间信息,文本/符号呈现显著优于视觉呈现。 文献证据:SPACE中Claude 3.5纯文本64.5% vs 多模态43.8%(+20.7pt)。第一手证据:我们复现了MapNav(带文字标注的语义顶视图直接输入VLM),实际效果远低于论文报告。⇒ 主输入通道必须是文本;顶视图只作辅助通道,不作主干。
- 环3:文本中不应放精确坐标,应放模糊的相对关系。 MapGPT消融:在prompt中注入坐标反而使SR从44.9%降至41.2%,纯拓扑文本地图最优(47.7%);SpatialVLM:定性空间判断可用(75.2%),定量距离估计不可靠(仅37.2%落在GT的0.5–2倍内)。⇒ 给planner"连通/归属/相邻/大致方位"级别的定性关系;精确定量留在底层导航栈内部,不进prompt。
- 环4:文本形式中,层级场景图优于扁平列表和二维语义地图,且必须配任务过滤。 HRON:场景图+任务驱动注意力SR 0.879,远超二维语义地图0.554;但无过滤的场景图(0.458)反而低于不用场景图(0.586)。SG-Nav:层级CoT较扁平文本+3.7pt(MP3D 40.2%超越supervised方法SemEXP的36.0%,HM3D 54.0%)。SayPlan:层级折叠将token压缩86.9%(6731→878),"规划-验证-重规划"将长程可执行率从13.3%提升到86.6%。ESCA:selective grounding将感知错误从69%降到30%。SR-Nav消融给出关系边优先级:拓扑(去除后SR降5.6)> 距离(降2.3)> 方向(降1.0)。⇒ 层级化、按需展开、任务过滤是设计的组成部分而非可选项;关系边优先做拓扑(房间连通、物体归属)。
- 环5:文本场景图有两个已知短板,各有低成本兜底,不动摇主干。 短板一,精细空间判断:3D-Mem证明视觉快照优于文本化场景图(spatial understanding 43.4 vs 32.9)——兜底:节点保留代表帧,需要时回退视觉推理。短板二,感知级联:ESCA证明69%的失败来自感知错误——兜底:节点携带证据帧与置信度,错误可追溯、可校验。
链尾结论(对"二维地图重定位 vs 文本SceneGraph"之问的回答):两者不是二选一。
主干是层级文本场景图(模糊关系边 + 任务过滤 + 按需展开);带标注的二维顶视图定位为辅助通道(子任务拆解引导与进度监督,已有topdown skill承载);"我在哪"的重定位不做独立视觉定位模块,而是做成场景图上的物体级匹配——当前观测到的物体集合对照场景图节点,输出"所在房间 + 邻近物体"的模糊位置(SceneGraphLoc已证明场景图可作定位参考,存储较图像库压缩1000倍)。由环1、环2可知,指望VLM看着顶视图直接定位自身是行不通的。
9.2 定向补充检索:2025–2026文本场景图新进展
针对"文本场景图是否有更新、更好的工作"做了定向检索(2026-07)。结论:该路线仍是zero-shot具身导航的主流并持续获得顶会背书,且新工作的演进方向与本报告9.3/9.4的设计收敛——没有工作退回精确坐标或纯视觉地图路线。
| 工作 | 发表 | 核心思路 | 对本方案的含义 |
|---|---|---|---|
| UniGoal | CVPR 2025 (SG-Nav同组后续) | 场景图+目标图统一表示,LLM做显式图匹配推理,单模型覆盖object/instance-image/text三类目标 | ObjectNav MP3D 41.0 / HM3D 54.5 / RoboTHOR 48.0,较SG-Nav全面小幅提升并泛化到多种目标类型;机制仍是"图→文本→LLM",路线在顶会延续 |
| CogNav | ICCV 2025 | 语义场景图+地标图+占据图组成异构认知地图,LLM在有限状态机上切换"广域探索→接触→验证"等认知状态 | 自报SR较SOTA相对提升≥14%,并在两台真机上部署;"少量离散状态控制行为粒度"是可低成本借鉴的工程技巧 |
| MSGNav | arXiv 2511.10376 (v5 2026-03,preprint) | 指出纯文本关系边过于抽象,用动态分配的图像为边补充视觉证据(M3DSG),配可见性视点决策解决"最后一公里" | 与3D-Mem同向,从反面印证"文本骨架+视觉快照回退"混合设计的必要性 |
| KeySG | arXiv 2510.01049 (v2 2026-03,preprint) | floor-room-object-功能元件层级场景图,节点挂关键帧,层级多模态RAG按需检索,不预存全量关系边 | 层级结构与HOV-SG同构;证明关系边可"按需计算"而非全量维护——契合简单性约束,降低维护成本 |
| Structured Interfaces | arXiv 2510.16643 (2025-10,preprint) | 把"全图序列化进上下文"视为baseline,改为LLM生成图查询语句按需检索场景图 | 印证9.4"查询式接口"设计方向;单建筑规模下按需展开+过滤即可,无需引入图数据库 |
| Graph2Nav | arXiv 2504.16782 (2025-04) | 实时3D物体-关系图生成,接SayNav式LLM规划器 | 真机UGV物体搜索验证,"场景图+LLM"出仿真可用的又一证据 |
采信原则(MapNav的教训):上表数字均为论文自报。UniGoal/CogNav为顶会工作且CogNav有真机验证,可信度较高;MSGNav/KeySG/Structured Interfaces为preprint且我们未复现,仅作方向参考——任何机制进入系统前先做最小复现验证。
9.3 选定的空间表示方案
维持v1的三层混合方案不变(9.2的新工作进一步支持该设计)。落地前提是复用现有资产:HOV-SG/HMSG已产出floor-room-object层级结构与物体best_view关键帧,二维顶视图已封装为topdown skill,房间连通关系可从现有nav_graph导出——三层表示中没有需要从零新建的建图组件,唯一新增开发是"HMSG→文本序列化器 + 规则关系边"。
第一层:层级场景图(核心骨架)。 参考SG-Nav和SayPlan的设计,沿用HMSG已有的floor-room-object层级(zone层可后置)。节点属性包含语义类别、自然语言描述、CLIP embedding、置信度分数(HMSG节点已具备类别与CLIP特征)。节点间的边编码三种空间关系(参考SR-Nav):拓扑关系(包含、连通)、方向关系(前后左右)、距离关系(近/中/远的粗略量化)——全部由包围盒几何规则计算,零训练。这种表示不依赖绝对坐标,而是用相对空间关系描述物体和区域之间的关系。
第二层:拓扑连接索引(导航支撑)。 在场景图之上维护区域间的拓扑连接关系(哪些区域可以直接通行),支持Dijkstra等经典路径规划算法;房间连通关系从现有nav_graph直接导出,无需新建。保留轻量级的度量信息(如区域间的步数/距离估计)以支持路径长度估算。
第三层:视觉快照缓存(精细推理)。 参考3D-Mem的Memory Snapshot设计,为每个功能区域维护少量代表性快照。初版直接复用HMSG节点已有的best_view关键帧(每房间1–2张),Co-Visibility Clustering选帧作为后续优化。当Planner需要精细空间判断时(如"沙发前方是否有足够空间"),回退到视觉快照让VLM直接推理。
9.4 Planner消费接口
维持v1设计。查询式接口与现有skill机制天然契合(find_object_candidates、topdown本身就是查询式工具,场景图接口与之并列注册即可);Structured Interfaces(2025)也从文献侧印证了"按需查询优于全量序列化"的方向。本节为设计层描述,代码级实现(prompt模板、skill定义、触发规则与降级路径)见9.10。
主接口:分层文本序列化。 将场景图序列化为层级JSON,参考SayPlan的collapse-expand机制实现按需展开。默认情况下只暴露room级别的拓扑结构和当前所在room的详细内容,Planner可以通过API调用展开其他room的内容。每个物体节点的序列化格式为:{id, category, description, spatial_relations: [{target, relation_type, direction, distance}], zone, room}。
辅助接口:相对空间查询API。 参考VLMaps的导航原语设计,封装一组空间查询函数:get_objects_in(room/zone)、get_relation(objA, objB)(返回方向和距离)、get_path_between(roomA, roomB)(返回拓扑路径)、get_nearest(category, reference_object)。
回退接口:视觉快照推理。 当文本序列化的空间信息不足以支持决策时,Planner可以请求调取特定区域的视觉快照,让VLM在图像上直接推理。
9.5 落地实现总览:关键实现问题速答
9.5–9.11给出9.3/9.4方案的代码级落地设计(2026-07-07补充调研)。方法是对HOV-SG、MoMa-LLM、SG-Nav/UniGoal、3D-Mem、SceneGraphLoc等开源仓库逐文件核查,可复用代码全部定位到文件与行号。落地中需要明确的11个关键实现问题,结论汇总如下:
| # | 实现问题 | 结论 | 详见 |
|---|---|---|---|
| 1 | 重定位:SceneGraphLoc能否与HMSG结合? | 思想能直接用、代码不必急着接:它有官方代码和预训练权重,但在3RScan域上训练、节点输入格式与HMSG不同,直接接入等于写适配器+承担域迁移风险+引入训练栈。第一版用零训练的"观测物体集↔场景图匹配"(sg_locate)实现同一思想;SceneGraphLoc留作二期精度升级 | 9.6 |
| 2 | 重定位:输入除当前观测帧+二维地图外还需要什么? | 不需要任何新的信息源。但参与匹配的"地图"应是HMSG的结构化/文本形式,而不是让VLM看topdown图片(理由即9.1环1/环2的SPACE证据);观测帧经系统已有detector转成物体集合,不算新输入 | 9.6 |
| 3 | 文本化基座:SG-Nav和SayPlan具体选哪个repo? | 都不能当基座,这道选择题不成立:SayPlan从未开源(只有论文+项目页);SG-Nav开源但形态是Habitat仿真ObjectNav整机策略。基座只有一个,即现有HMSG落盘数据+新写约200行序列化器;两者是"模板供体"而非"候选基座" | 9.5、9.7 |
| 4 | 文本图的节点具体是什么定义和含义? | 各参考工作的"节点"不是同一种东西(SG-Nav=在线检测的物体实例;SayPlan=预建图room/pose/asset/object带状态;本方案=HMSG离线实例),必须自定义schema;节点/边已逐字段给出定义 | 9.7 |
| 5 | 高度如何处理?是否需要把二维拓扑扩展为三维拓扑? | 不需要三维拓扑:物体关系(on/above/under)由3D包围盒高度差规则算出(HMSG的vertices本来就是3D的);可通行拓扑保持"每层2D Voronoi+楼梯边"的2.5D结构即可 | 9.7 |
| 6 | 多楼层分别建图+楼梯连接点如何实现? | HOV-SG已完整实现(分层Voronoi、楼梯图、跨层连接、全局落盘),零开发 | 9.8 |
| 7 | 文本图已有空间关系边,还需要单独的拓扑连接层吗? | 不需要独立数据层:房间连通就是文本图边集的一个子类;"第二层"只是同一批边的派生视图(另存一张只含房间节点的小图供最短路计算),一份代码、两个出口 | 9.8 |
| 8 | 现有HMSG是否已有拓扑连接? | 米级有(nav graph含跨层楼梯的可通行连接),房间级没有(场景图只有层级边)——缺口正是需新写的约100行派生代码 | 9.8 |
| 9 | 视觉快照具体选哪个repo? | 不需要选:HOV-SG建图时已给每房间选好5张代表帧(represent_images),缺的只是导出图片+建索引两小步;3D-Mem仅作二期选帧算法升级(独立文件可整体移植) | 9.9 |
| 10 | 如何给节点增加快照索引的属性? | room节点挂snapshots[](帧号/路径/位姿/可见物体清单),object节点挂best_view{}(系统已有机制补录进json);文本序列化只输出"有无快照"标记,图片经include_snapshot按需返回 | 9.9 |
| 11 | 消费接口:参考哪个工作、选哪个repo? | 消费侧无整库可选(各家消费逻辑与其策略/仿真环境耦合);最接近可直接参考的模板是MoMa-LLM的_create_prompt(P1常驻摘要即按它重写);何时访问/取什么/什么格式已列成触发规则表 | 9.10 |
四个参考工作分别是什么:为什么不存在"选一个repo"的问题
若把SG-Nav、SayPlan、SceneGraphLoc、3D-Mem理解为可择一作基座的同类候选repo,会导致选型误判——四者的形态和定位完全不同:
- SayPlan(CoRL 2023 oral):方法论文,官方从未放出代码,社区能拿到的只有论文附录里的prompt设计。"用SayPlan"实际上等于"借它的prompt结构"——而这已有现成实现:MoMa-LLM仓库的
JsonLLMEnv(llm_env.py L607-680)逐字复刻了SayPlan论文第50页的prompt,是目前最接近"SayPlan代码"的公开实现。其collapse-expand思想在本方案中落成"room级摘要+按需展开"。 - SG-Nav(NeurIPS 2024):有代码,但形态是Habitat仿真里的zero-shot ObjectNav完整策略(自带在线建图、GLIP检测、本地ollama推理),依赖栈与现有系统完全不同,不可能整体接入。正确用法是复用三小块:图→文本序列化(3行)、子图prompt、物体关系判别规则——均已定位到行号(9.7、9.10)。
- SceneGraphLoc(ECCV 2024):有代码+预训练权重,但它是在3RScan扫描域上训练的跨模态编码器,不是即插即用的定位器。其价值第一是架构证明(场景图可以替代图像库作定位参考),第二才是可选的二期升级件(9.6)。
- 3D-Mem(CVPR 2025):有代码;其快照选帧算法是独立文件、可整体移植,但第一版用不上——HOV-SG自带代表帧(9.9)。
结论:基座=现有HMSG,四个参考工作在本方案中都是"供体"——SayPlan供prompt结构(经MoMa-LLM复刻),SG-Nav供文本化模板与关系判别规则,SceneGraphLoc供定位架构思想,3D-Mem供二期选帧算法。
9.6 重定位的实现:观测物体集×场景图匹配(sg_locate)
问题形态的界定
调研确认以下判断成立:不存在现成的端到端"二维地图+VLM"重定位路线;主流定位方案仍是点云配准/在线SLAM;重定位若依赖全量topdown,则画图困难、标注过多又会使VLM过载;VLM直接看图定位不可行(SPACE,见9.1环1)。
由此得到一个问题形态上的关键结论:"让VLM将当前观测帧和二维地图对应起来"应当放弃而非增强。二维topdown和文本场景图是同源的(都由HMSG渲染/序列化而来),既然VLM读结构化文本远好于读图(SPACE:文本64.5% vs 多模态43.8%),定位就应发生在结构化一侧——topdown保留给人看和进度监督,不承担定位。
输入信息:传感上不需要任何新输入。匹配的两端是:当前观测帧经系统已有detector得到的物体集合(可用runtime context里现成的近16帧做滑窗投票,提高稳健性)× HMSG的房间-物体结构。没有第三样东西。
SceneGraphLoc与HMSG的结合:思想先用、代码后置
SceneGraphLoc具备:官方代码+预训练权重(github: y9miao/VLSG,2024-09放出权重);五模态节点编码+图像patch↔节点对比学习;R@1 81.5%,场景图存储较图像数据库压缩约1000倍(详见SceneGraphLoc精读)。直接接入有三个障碍:
- 编码器在3RScan/ScanNet域上训练,迁移到实际部署场景有域差,效果需重新验证;
- 它要求的节点输入(逐物体点云、图像patch、属性/关系标注)与HMSG字段不一致,需写适配器;
- 引入训练/权重栈,违背本方案"零训练、可解耦"的第一原则。
第一版:零训练的sg_locate(约1天,实现SceneGraphLoc的架构思想)
- 当前帧(或近N帧)detector输出物体集合O;
- 对每个房间r打分:
score(r) = α·类别重合(O, objects(r)) + β·CLIP相似度。类别重合采用TF-IDF式加权——稀有物体权重高("冰箱"比"椅子"更能定位);CLIP相似度用检测crop的embedding×节点embedding(HMSG已存,零新增计算源); - 近N帧投票+连续性先验(上一次定位的房间及其连通邻居加分,复用9.8的房间图);
- 输出:
"you are in kitchen (floor 0), near fridge and sink"+置信度;低置信时如实返回"不确定,候选kitchen/dining room",交给planner决定下一步(原地转身补观测,或调topdown人工确认)。
二期(若房间级精度不够):写HMSG→VLSG输入格式的适配器,用其预训练编码器离线评测R@1,达标再上线做patch-to-node精匹配。
能力边界:sg_locate回答"在哪个房间、哪些物体附近"——即重定位目标"判断自身坐标或相对位置"中的后者;米级位姿仍由里程计/建图负责,不由VLM或匹配器估计。
与其他层的关系:重定位不是独立模块,它就是文本场景图上的一个查询(sg_locate skill,见9.10),复用9.8的房间归属函数,零新增数据结构;工作量并入9.11步骤5。
9.7 第一层落地:文本序列化器与节点schema
检索结论:没有现成repo,但缺口很小
经定向检索+逐仓库源码核查,不存在"基于HOV-SG改的、已实现图→文本序列化"的现成开源项目。HOV-SG官方库中LLM只用于两处:把用户指令解析成(floor, room, object)三元组(parse_hier_query),以及从物体列表推断房间类型;场景图本身从不进入LLM上下文,检索靠CLIP相似度逐层匹配。
但这不是坏消息——核查SOTA代码后发现,"图→文本"这一步在所有开源实现里都非常小。SG-Nav/UniGoal(同一作者组,代码相同)的完整实现只有3行:
# SG-Nav scenegraph.py L67-70 / UniGoal src/graph/graph.py L86-89
def graph_to_text(self, nodes, edges):
nodes_text = ', '.join([node.caption for node in nodes])
edges_text = ', '.join([f"{edge.node1.caption} {edge.relation} {edge.node2.caption}" for edge in edges])
return f"Nodes: {nodes_text}. Edges: {edges_text}."
价值大的不是这几行,而是围绕它的子图选择、层级组织、prompt骨架——这些都有可复用对象:
| 仓库 | 文件:行号 | 内容 | 用法 |
|---|---|---|---|
| HOV-SG | hovsg/graph/room.py L215-235 | Room持久化:json已含room_id/name/floor_id/objects列表/represent_images | 已有,序列化器直接读这些json,不动建图代码 |
| hovsg/graph/object.py L35-51 | Object持久化:json含object_id/room_id/name/vertices(包围盒8点)/embedding | 已有,关系边从vertices几何计算 | |
| hovsg/graph/graph.py L705-718 | create_graph:floor→room→object层级networkx图(只有层级边,无物体间关系边) | 已有;关系边需新增 | |
| hovsg/graph/graph.py L966-1224 | query_floor/room/object/hierarchy分层检索API | 已有,作为查询式skill的底层 | |
| hovsg/utils/llm_utils.py L169-199 | parse_hier_query:指令→(floor, room, object) | 已有,与序列化互补保留 | |
| MoMa-LLM (HOV-SG同实验室) | moma_llm/env/llm_env.py L165-215 | _create_prompt:房间-物体图→完整文本prompt(当前房间、身边物体、逐房间物体清单、房间级探索边界、动作历史) | 参考重写:prompt骨架范式,与"room级摘要+按需展开"设计同构 |
| moma_llm/env/llm_env.py L25-35 | DIST_MAPPING:<3m very close / <10m near / <20m far / distant | 参考:模糊距离量化的现成阈值 | |
| moma_llm/llm/llm.py L143-168 | create_room_object_dict:房间→物体清单,同类计数("2 chairs") | 参考重写:物体清单压缩表示 | |
| moma_llm/topology/room_graph.py L83-127 | Voronoi节点写room_id归属;门→两个最近房间组件(房间连通) | 参考:9.8房间连通边的推导范式 | |
| SG-Nav / UniGoal | scenegraph.py L177-204 | LLM建边prompt(prompt_edge_proposal / prompt_relation,给VLM图片问两物体空间关系) | 备选:若规则边不够用,用LLM补边;第一版不用 |
| scenegraph.py L153-172 | 子图→文本(以物体为中心的局部子图) | 参考:按需展开的子图文本格式 | |
| 3D-Mem | 见9.9 | 快照选帧算法(独立文件) | 二期升级件,见9.9 |
落地方式:新写hmsg_serializer.py(约200行,独立纯函数模块)
不适配任何外部仓库,直接新写:
- 输入:HOV-SG已落盘的
graph/floors|rooms|objects/*.json+graph/nav_graph/global_nav_graph_graph.json(HOV-SG用nx.node_link_data存的标准JSON,navigation_graph.py L1228-1240); - 处理:丢弃embedding/点云字段→计算规则关系边(物体归属房间已有;物体间near/on由包围盒vertices几何判断)→拼装层级JSON;
- 输出(默认room级折叠,即9.4主接口的具体化):
{
"floors": [
{"floor_id": 0, "rooms": [
{"room_id": "0_3", "name": "kitchen",
"connects_to": [{"room": "0_5", "via": "doorway", "distance": "near"}],
"objects_summary": "fridge, sink, 2 chairs, dining table",
"objects": "<按需展开:[{id, name, relations:[{target, type}]}]>"}
]}
],
"inter_floor": [{"from": 0, "to": 1, "via": "staircase", "position_hint": "room 0_1"}]
}
- 暴露为查询式skill(与find_object_candidates、topdown并列注册),即9.10的
sg_query(scope="summary"|room_id, expand, include_snapshot)。
工作量约1–2天,比读懂并适配任何一个外部仓库都便宜,且不与建图代码产生耦合(单向读json)。
节点的定义:参考工作对比与本方案schema
SG-Nav和SayPlan的"节点"不是同一种东西,也都不等于本方案需要的节点——这是"选哪个repo"不成立的根本原因:
| SG-Nav | SayPlan | 本方案(HMSG序列化) | |
|---|---|---|---|
| 节点是什么 | 在线检测出的物体实例(room/group是DBSCAN聚类的派生物,无持久id) | 预建图中的room / pose / asset / object,带affordance与state(面向操作规划) | HMSG离线建图的floor / room / object实例,持久id+检索embedding |
| 节点的文本形态 | VLM生成的短caption("a wooden chair") | JSON属性字典 | name(开放词汇类别)+计数清单 |
| 边 | 物体间关系(LLM提议+VLM/几何判别) | 层级归属+pose连通链 | 层级归属(已有)+房间连通(9.8派生)+物体关系(规则计算) |
| 生命周期 | 每个episode在线重建、用完即弃 | 离线建好、静态 | 离线建好、持久化,增量更新在后续规划中 |
本方案的节点/边schema(即序列化器的输出契约):
floor 节点 {floor_id, name: "floor 0"}
room 节点 {room_id: "0_3", name: "kitchen"(由物体清单推断,可人工校正),
floor_id, objects_summary: "fridge, sink, 2 chairs",
connects_to: [...], snapshots: [快照索引,见9.9]}
object 节点 {object_id, name(开放词汇类别), room_id,
relations: [{target, type: near|on|above|under}],
best_view: {快照索引,见9.9}, confidence}
不进文本、只留在 meta:CLIP embedding、包围盒 vertices、点云、位姿坐标
边只有三类:①层级归属floor⊃room⊃object(HMSG create_graph已有);②房间连通connects_to(doorway/staircase,9.8派生);③物体空间关系relations(包围盒几何规则:水平距离阈值→near,垂直相接且投影包含→on/above/under)。对应SR-Nav三类关系中优先级最高的拓扑+粗方向(9.1环4的消融依据)。
高度的处理:不需要把二维拓扑扩展为三维拓扑。高度在两处已天然存在:物体包围盒本来就是3D的(vertices 8点),on/above/under直接由高度差规则算出;可通行拓扑保持"每层一张2D Voronoi图+楼梯边"的2.5D结构(HOV-SG已实现,见9.8)。把可通行拓扑升到三维体素只在自由飞行(无人机)场景才必要,室内轮式/足式机器人不需要。
9.8 第二层落地:拓扑连接索引与多楼层
两个关键问题的结论:
- 文本图已有空间关系边,是否还需要拓扑连接作为单独一层?——不需要独立数据层。房间连通本来就是文本图边集的一个子类(connects_to)。9.3称其为"第二层"只是强调用途:同一批边额外导出一张只含房间节点的小networkx图,供nx.shortest_path做跨房间/跨楼层路径。一份派生代码、两个输出出口(文本句子进prompt;小图算路径),没有第二套需要维护的数据结构。
- 现有HMSG是否已有拓扑连接?——米级有、房间级没有。nav graph已含同层可通行连接和跨层楼梯连接(证据见下);但场景图本体(create_graph)只有floor→room→object层级边,没有"厨房↔客厅"这类房间连通边。缺口正好是下面约100行派生代码。
参考工作方面,最贴合的是MoMa-LLM room_graph.py(Voronoi房间图+门→两侧房间连通,L83-127,可参考重写);概念上同Hydra(MIT-SPARK)场景图的places→rooms层,但无需引入其技术栈。
楼层不用加属性,它在HOV-SG中已是一等公民,证据:
- 层级第一层就是floor:Room.floor_id已存在并持久化(room.py L29、L226);
- nav graph节点键本身含楼层:(row, col, floor_id)+height属性(navigation_graph.py get_voronoi_graph L448起);
- 跨楼层连接已完整实现(graph.py create_nav_graph L846-895):每层建Voronoi自由空间图get_floor_graph→楼梯点云建楼梯图get_stairs_graph_with_poses_v2→楼梯图与本层图连接connect_stairs_and_floor_graphs→相邻楼层互连connect_voronoi_graphs→全局图落盘nav_graph/global_nav_graph_graph.json。
真正缺的是房间级连通边——nav graph是米级路点图(数千节点),不能直接进prompt;文本层需要的是"厨房↔客厅连通"这种房间图。派生规则(新写derive_room_edges.py,约100行,全规则零训练):
- 节点归属:把global nav graph每个节点按XZ位置归属到最近房间(点到房间点云2D投影的最近距离;HOV-SG给相机位姿归属房间用的就是这个算法,graph_utils.py compute_room_embeddings L96-112,可直接搬);
- 楼内连通:凡一条nav边的两端属于不同房间→这两个房间连通,边中点即"门口/通道"的位置提示;
- 跨层连通:楼梯子图两端节点的归属→floor i↔floor j via staircase边;
- 模糊距离:房间对之间用nav graph最短路长度,按MoMa-LLM的3/10/20米阈值量化成very close/near/far/distant,不输出数值。
文本形式(进prompt的只有这两类句子):
kitchen (room 0_3) connects to: living room (0_5, doorway), hallway (0_2, doorway)
floor 0 connects to floor 1 via staircase (near room 0_1)
跨房间路径规划在房间图上做nx.shortest_path,返回房间序列文本;米级执行仍由底层nav graph / move_to_world负责,不进prompt。
9.9 第三层落地:视觉快照缓存
房间级快照:HOV-SG建图时已经选好帧
建图时compute_room_embeddings(graph_utils.py L52-112)已经完成:所有帧按相机位姿归属房间→每房间对帧的CLIP embedding做k-means→选5个代表帧,帧号写入room.represent_images(graph.py L551-570)并持久化到房间json(room.py L232)。
缺口只有一个:存的是帧号(数据集索引),没有把图片导出。需要改两处:
- 建图管线末尾加约10行:按represent_images帧号从数据集导出RGB(可带位姿)到
graph/snapshots/room_<id>_<k>.jpg,并写一份snapshots/index.json:
{"0_3": [{"frame_id": 1280, "image": "room_0_3_0.jpg", "pose": [...], "visible_objects": ["fridge", "sink"]}]}
- 查询skill加参数include_snapshot=true:按room_id返回1–3张图给VLM。
物体级快照
系统已有best_view机制(导航目标位姿用的就是物体best_view的RGB pose),把best_view的帧号/位姿/crop路径补进object json即可,供"到达目标附近后做精细确认"时调用。
节点的快照索引属性设计
与9.7的节点schema对应,字段级设计:
- room节点:
snapshots: [{frame_id, image: "snapshots/room_0_3_0.jpg", pose, visible_objects: [...]}]——内容即上文导出的index.json按room_id合并进序列化输出; - object节点:
best_view: {frame_id, image, pose}——建图末尾把帧号/路径补写进object json; - 文本序列化时只输出"有无快照"的标记(如snapshots: 3 available),图片本体绝不进常驻上下文,仅在include_snapshot=true时按需返回(呈现格式见9.10 P3);
- repo选择:第一版不需要任何外部repo——帧是HOV-SG建图时自己选好的;3D-Mem仅作为二期选帧算法升级(见下,独立文件可整体移植)。
升级选项(第一版不做):3D-Mem的物体覆盖导向选帧
HOV-SG的k-means是"外观代表性"选帧;3D-Mem是"物体覆盖"选帧,更适合精细空间判断:数据结构SnapShot{image, obs_point, full_obj_list{obj_id:conf}, cluster[obj_ids]}(src/tsdf_planner.py L59-70);对物体中心做bisecting k-means空间聚类(src/hierarchy_clustering.py L283-462,独立文件);每簇选帧规则select_frame(L296-318,20行)——帧的可见物体集⊇簇物体集,按"看到物体最多、置信度和最高、优先沿用已选帧"排序。
使用规则(防过载):快照是回退通道——仅当文本场景图不足以决策(空间余量、外观、朝向类问题)时按room_id调取,每次≤3张;不做全量常驻输入(HRON/ESCA的信息过载教训,见9.1环4/环5)。
9.10 消费接口落地:常驻摘要+查询skill族+快照回退
五种消费模式的代码证据
对开源系统"文本场景图如何被LLM/VLM实际消费"的逐仓库核查结果:
| 系统 | 进LLM的内容 | LLM输出 | 调用方式/频率 | 对本方案的启示 |
|---|---|---|---|---|
| MoMa-LLM (llm_env.py L165-215 _create_prompt、L64-76动作表、L136-164解析) | system:任务+动作表+强制输出格式;user:当前房间、身边物体、逐房间物体清单(NL行,同类计数"2 chairs")、可探索房间(带模糊距离词)、NL动作历史(每条带success/failure标记)、上一步env feedback | Analysis:/Reasoning:/Command: explore(room)恰好一个函数调用,参数必须是场景图节点名 | 每个高层决策步重发一次完整prompt | 与现有AgentLoop同构度最高。核心思想:场景图文本=动作参数词表,LLM只能引用图里出现过的房间/物体名;解析失败兜底done()(作者自注最好re-prompt) |
| MoMa-LLM JSON变体 (llm_env.py L607-680 JsonLLMEnv) | 同上,但场景图改为SayPlan风格JSON(nodes+links,nx.node_link_data;代码注释明写"roughly following SayPlan's prompt (see page 50)") | 同上 | 同上 | 同一仓库自带NL行 vs JSON两版对照,主方法用NL行、JSON为基线变体——支持"prompt用NL行、结构化数据放ToolResult元数据"的分工 |
| SG-Nav (scenegraph.py L723-748 insert_goal、L812-846 score、L883-892 graph_corr) | 房间名列表→选房间;每个物体簇(DBSCAN)的子图文本"Nodes:... Edges:..."→4轮对话式打分(先估概率→问还需知道什么→用子图文本回答→重估概率) | 房间名;0–1概率值(text2value解析) | 导航策略内部高频调用,本地8B级模型(ollama llama3.2-vision) | LLM作为评分预言机嵌在skill内部,不占主agent上下文——适合二期放进探索/VLN skill,与系统已规划的monitor小模型共用 |
| UniGoal (agent.py L80 prompt_text2object、graph.py L228-232) | 目标文本/子图文本+定点任务prompt | 类别编号、0–1值等强约束格式("只回编号,不要其他文本") | 模块内定点调用 | 佐证"LLM输出必须收敛为编号/是否/数值",便于程序直接消费 |
| 3D-Mem (eval_utils_gpt_aeqa.py L95-145) | 问题+egocentric图+frontier图+快照图,每张快照后紧跟其可见物体类别清单;发送前按任务相关性prefilter快照 | 从选项中选一张快照/frontier(强约束选择) | 每步一次 | 回退接口的呈现范式:图和可见物体清单成对给、先过滤后发送、强约束选择输出 |
| HOV-SG (llm_utils.py L169-199+graph.py L1179-1224) | 仅用户指令文本 | (floor, room, object)三元组 | 每条指令一次 | 检索式底层,系统中的find_object_candidates已是此模式,保留作sg_find的内核 |
四条共性设计定则(上述系统全部遵守):
- 图文本的第一作用是给LLM一个可引用的名字空间——动作/工具参数必须是图里出现过的节点名,杜绝幻觉目标;
- 全量图从不进上下文——要么房间级摘要常驻+按需展开(MoMa-LLM/SayPlan),要么skill内部临时构造局部子图文本(SG-Nav);
- LLM输出强约束(一个函数调用/编号/0–1值),并有解析失败兜底;
- 执行反馈以文本回注下一轮(env feedback+带成败标记的动作历史)——现有ToolResult机制天然满足,无需新做。
P1 常驻摘要(注入runtime context,MoMa-LLM范式)
[Building Map Summary]
You are in: living room (floor 0).
floor 0: living room [sofa, tv, 2 chairs], kitchen [fridge, sink, dining table], hallway [...]
floor 1: bedroom [bed, wardrobe], bathroom [...]
Connectivity: living room<->kitchen (doorway, very close); hallway<->staircase;
floor 0<->floor 1 via staircase.
(These are the only valid room/object names. Use sg_query(room) for details.)
- NL行格式而非JSON(MoMa-LLM主方法 vs JSON基线的选择;MapGPT结论同向);末行显式声明"名字空间"规则(定则1);
- 生成:hmsg_serializer的summary模式,每episode注入一次;HMSG为离线图,episode内不刷新(增量建图上线后改为"房间集合变化才重算");
- token预算:约20房间×约20 token+连通约100 token≈500–800 token一次性成本;
- "You are in"行由位姿→房间归属(9.8的节点归属函数)维护,sg_locate结果可覆写。
P2 查询skill族(与现有skill并列注册,LLM按需调用)
9.4辅助接口的查询函数族在实现层收敛为四个skill:get_objects_in→sg_query、get_relation/get_nearest→sg_find、get_path_between→sg_path,并新增sg_locate承担9.6的重定位:
| skill | 参数 | 返回(ToolResult=文本+meta json) | 底层 |
|---|---|---|---|
sg_query | room_id, include_snapshot=false | 房间物体清单(计数式)+关系三元组("(cup, on, table)",SG-Nav格式)+连通房间;可附≤3张快照 | 读序列化json |
sg_find | query, floor=None, top_k | 候选物体:"fridge, in kitchen (floor 0), next to sink";meta带best_view位姿供move_to_world直接消费 | HOV-SG query_hierarchy(=现find_object_candidates升级版) |
sg_path | room_a, room_b | "kitchen -> hallway -> staircase (floor 0->1) -> bedroom",各段带模糊距离词 | 房间连通图nx.shortest_path(9.8产物) |
sg_locate | 无(取当前观测) | "you are in kitchen (floor 0), near fridge and sink";meta带room_id | 当前检测物体集 vs 图节点匹配+投票(复用9.8归属函数) |
- 硬性规则:数值坐标只进meta json(供skill链路),文本部分绝不含坐标(9.1环3:MapGPT坐标消融);
- sg_find与find_object_candidates过渡期并存A/B,稳定后合并;
- system prompt增补使用优先级:"找目标→sg_find;跨房间/楼层规划→先sg_path;不确定自身位置→sg_locate;仅当需判断空间余量/外观/朝向→include_snapshot"。
P3 快照回退(3D-Mem呈现范式)
sg_query(room, include_snapshot=true)返回≤3张房间代表帧,每张图后紧跟一行可见物体清单;快照多于3张时按指令关键词与可见物体求交做最简prefilter;- 对VLM的问法用强约束选择式("哪张图包含目标?回答图片编号"),不开放自由描述。
访问时机、取回内容与格式:触发规则表
| 情境(触发条件) | 调用 | 取回内容 | 格式 |
|---|---|---|---|
| episode开始 / 需要全局感 | 自动注入(P1,不占LLM调用) | 楼宇摘要:房间清单+连通关系+当前位置 | NL行,500–800 token常驻 |
| 任务分解时判断"目标可能在哪" | sg_find(query) | 候选物体+所在房间/楼层+模糊关系 | 一行一候选;meta带best_view位姿供导航 |
| 要去另一个房间/楼层 | sg_path(a, b) | 房间序列+楼梯提示+模糊距离 | 一句话路径 |
| 进入或怀疑某房间、需要细节(按需展开) | sg_query(room) | 物体计数清单+关系三元组+连通房间 | NL行+三元组 |
| 不确定自己在哪(漂移/被搬动) | sg_locate() | 房间级模糊位置+置信度 | 一句话;meta带room_id |
| 文本不足以判断(空间余量/外观/朝向) | sg_query(room, include_snapshot=true) | ≤3张快照,每张配可见物体清单 | 图+清单成对;强约束选择式问法 |
| 以上任一失败 | 自动降级 | 回到find_object_candidates / topdown / VLN | 现状链路 |
参考工作与repo:消费侧没有可整体采用的repo——上表五家的消费逻辑都与各自的策略或仿真环境耦合。最接近可直接参考的模板是MoMa-LLM的_create_prompt(P1常驻摘要即按它重写);SayPlan无开源代码,其prompt形态经MoMa-LLM JsonLLMEnv复刻,可作对照参考。
降级路径(对应系统脆弱性约束):sg_*任一失败→ToolResult返回明确错误文本,agent自然回退到find_object_candidates/topdown/VLN;摘要生成失败→不注入,系统等价于现状。每个组件独立可开关。
新增验证用例(叠加在现有replan、VLN切换回归用例上):①跨楼层指令("去二楼卧室拿…")→验证P1摘要+sg_path;②相对关系指令("冰箱旁边的桌子上…")→验证sg_query关系三元组;③位置迷失(导航漂移后要求"先确定你在哪")→验证sg_locate。
9.11 实施顺序与工作量
四条工程原则贯穿所有步骤(对应系统模块多、耦合度高的约束):零训练(只用规则与现成VLM);规则先行(关系边由包围盒几何计算,不引入学习模型);单向数据流(建图→序列化→planner,不反向耦合);新增件皆为独立skill/纯函数(可单测、可开关,失败可降级回现有链路)。
| 步骤 | 内容 | 依赖 | 预估 |
|---|---|---|---|
| 1 | hmsg_serializer.py:读graph/*.json→层级JSON/文本,规则关系边 | 已有HMSG落盘 | 1–2天 |
| 2 | derive_room_edges.py:nav节点归属+房间连通边+楼梯跨层边+模糊距离 | global_nav_graph_graph.json | 1天 |
| 3 | 快照导出(建图末尾约10行)+快照索引index.json | represent_images已有 | 0.5天 |
| 4 | P1常驻摘要生成与注入(serializer的summary模式) | 步骤1–2 | 0.5天 |
| 5 | P2 skill族sg_query/sg_find/sg_path/sg_locate+system prompt使用规则 | 步骤1–3 | 2–3天 |
| 6 | P3快照回退呈现(图+可见物体清单+prefilter) | 步骤3 | 0.5天 |
| 7 | 回归验证:现有replan、VLN切换用例+跨楼层/相对关系/重定位三个新用例(9.10) | 步骤1–6 | 1天 |
任务过滤机制(9.1环4与9.12风险2的要求)已内嵌于上述步骤、不单列:P1摘要默认room级折叠(物体细节不进常驻上下文)、P3快照按指令关键词prefilter;若token仍超限,再引入ESCA selective grounding式的任务相关子图提取(后置项)。
明确不做:VLM微调(SpatialVLM式)、GNN/RL(HRON式)、复杂感知校正模块(SR-Nav RAMM式)、图数据库与查询语言(Structured Interfaces式,当前规模不需要)、从零重建建图栈(ConceptGraphs开源实现仅作参考)。
9.12 风险与注意事项
- VLM空间认知能力的天花板(SPACE Benchmark)。 不能过度依赖VLM的空间推理能力。凡涉及"如果我在A处面向B,C在我的什么方向"这类推理,必须由专门的几何计算模块处理,不能委托给VLM。
- 场景图的信息过载风险(HRON)。 HRON的实验表明:朴素引入场景图(无注意力机制)的SR(0.458)甚至低于不使用场景图(0.586)。务必配备任务驱动的注意力或过滤机制。
- 感知质量的级联效应(ESCA)。 69%的失败来自感知错误——一个错误的物体检测会导致场景图中出现错误节点,进而导致错误的空间关系推断,最终导致规划失败。
- 定量空间估计的不可靠性(SpatialVLM)。 VLM的距离估计仅37.2%在GT的半到两倍范围内。不要基于VLM的距离估计做精确运动控制。
- LLM空间先验的局限性(SR-Nav在MP3D上的表现)。 若后续引入"LLM生成空间先验"机制,需注意物体类别增多时先验质量下降;在线观测与先验冲突时应果断采信观测。
- 在线构建的实时性挑战。 真机部署时的计算延迟可能成为瓶颈。序列化器设计须支持局部增量更新,避免依赖全图重建;更新可采用异步策略。
- 论文口径与实测的差距(MapNav第一手教训)。 本报告引用数字均为论文自报,宣称收益可能无法兑现。机制采纳优先级:顶会+真机 > 顶会仿真 > preprint;任何preprint机制进入系统前先做最小复现。
ConceptGraphs: Open-Vocabulary 3D Scene Graphs for Perception and Planning
方向1: 语义地图 方向5: 代表性系统 2024 真机部署一句话定位
ConceptGraphs提出了一种基于2D基础模型(SAM、CLIP、LLaVA、GPT-4)构建开放词汇3D场景图的方法,将场景表示为以物体为节点、空间关系为边的图结构,并通过将场景图序列化为JSON文本供LLM消费,实现了导航、操控、定位等多种下游机器人任务的统一规划。
核心方法
ConceptGraphs要解决的核心问题是:如何为机器人构建一种语义丰富、结构紧凑、支持开放词汇查询的3D场景表示,使其能够同时服务于感知和规划任务。
ConceptGraphs的方法管线分为三个阶段:
阶段一:基于物体的3D建图。 系统接收一系列带有位姿的RGB-D帧。对每一帧RGB图像,使用类无关的分割模型(SAM)获得候选物体掩码。每个掩码区域通过CLIP图像编码器提取语义特征向量,同时利用深度信息将掩码区域反投影到3D空间,经DBSCAN去噪后得到物体点云。关键步骤在于跨视角的物体关联:系统计算新检测物体与地图中已有物体的几何相似度和语义相似度,采用贪心匹配策略,若最高相似度超过阈值则融合,否则初始化新物体节点。
阶段二:节点描述与场景图构建。 所有帧处理完毕后,对每个物体节点选取贡献点数最多的10个最佳视角,将裁剪图像送入LLaVA生成初步描述,再由GPT-4汇总为最终标签和描述。边的生成基于物体间3D包围盒IoU构建连接候选,通过最小生成树剪枝得到精简的边集合,再由LLM根据物体描述和3D位置推断语义空间关系。
阶段三:LLM规划接口。 将场景图序列化为JSON列表,每个条目包含物体ID、包围盒尺寸、包围盒中心坐标、物体标签和描述。用户以自然语言提出任务查询,LLM解析场景图文本后输出结构化JSON响应。
空间表示方式
节点设计: 每个节点对应场景中的一个物体实例,包含3D点云、CLIP语义特征向量、物体标签、物体描述、3D包围盒尺寸和中心。
边设计: 边连接空间上邻近的物体对,表示语义空间关系。关系类型是开放词汇的,包括几何空间关系和功能性关系。
关键图示
关键实验结果
场景图构建质量(Replica数据集,人工评估)
| 变体 | 节点精度(avg) | 有效物体数(range) | 重复检测(range) | 边精度(avg) |
|---|---|---|---|---|
| CG | 0.71 | 23-60 | 0-5 | 0.88 |
| CG-D | 0.61 | 24-60 | 0-4 | 0.91 |
文本查询物体检索(R@1)
| 查询类型 | 数据集 | CLIP检索 | LLM检索 |
|---|---|---|---|
| 描述性 | Replica | 0.59 | 0.61 |
| 功能性 | Replica | 0.43 | 0.57 |
| 否定式 | Replica | 0.26 | 0.80 |
| 描述性 | Lab | 1.00 | 1.00 |
| 功能性 | Lab | 0.40 | 1.00 |
| 否定式 | Lab | 0.00 | 1.00 |
设计启示
可借鉴: 场景图作为空间表示的核心范式;JSON序列化供LLM消费的接口设计;开放词汇的模块化架构。
局限: 扁平图结构缺乏层级;离线建图为主;空间关系表达较粗糙;对小物体鲁棒性不足。
VLMaps: Visual Language Maps for Robot Navigation
方向1: 语义地图 2023一句话定位
VLMaps 将预训练视觉-语言模型(LSeg/CLIP)的 dense pixel embedding 反投影融合到 3D 重建的俯视栅格地图中,使地图每个栅格天然具备开放词汇的语言可查询能力,从而支持 LLM 生成代码直接在地图上定位空间目标并执行零样本导航。
核心方法
地图构建: 对每帧RGB图像使用LSeg提取逐像素embedding,利用深度图反投影到俯视栅格地图,每个栅格存储融合后的C维embedding向量。
开放词汇定位: 将文本标签编码为CLIP向量,与地图embedding做矩阵乘法取argmax即可得到语义分割结果,完全不需要训练。
零样本导航: LLM(Codex)将自然语言指令翻译为Python代码,调用17个预定义导航原语API查询VLMap定位坐标。
关键图示
关键实验结果
Multi-Object Navigation 成功率 (%)
| 方法 | 连续1个 | 连续2个 | 连续3个 | 连续4个 | 独立子目标 |
|---|---|---|---|---|---|
| LM-Nav | 26 | 4 | 1 | 1 | 26 |
| CoW | 42 | 15 | 7 | 3 | 36 |
| VLMaps (ours) | 59 | 34 | 22 | 15 | 59 |
| GT Map (上界) | 91 | 78 | 71 | 67 | 85 |
Top-Down Map 语义分割指标
| 指标 | CoW Map | VLMaps |
|---|---|---|
| Pixel Accuracy | 66.1 | 92.3 |
| Mean Accuracy | 9.6 | 27.7 |
| mIOU | 5.7 | 19.0 |
| Freq. Weighted mIOU | 42.9 | 85.9 |
设计启示
Embedding地图作为空间表示基础设施是可行的;Code as Policies的Planner范式值得借鉴;但2D俯视栅格丢失了高度信息,需考虑3D表示。
CLIP-Fields: Weakly Supervised Semantic Fields for Robotic Memory
方向1: 语义地图 2023 真机部署一句话定位
用隐式神经场(Instant-NGP)将 CLIP 和 Sentence-BERT 的语义 embedding 编码到 3D 空间坐标上,构建无需人工标注、支持开放词汇自然语言查询的 3D 语义空间记忆。
核心方法
模型采用 Instant-NGP 的 Multi-resolution Hash Encoding 将 (x,y,z) 坐标映射为144维中间表示,之上连接语义头(768维,对齐SBERT空间)和视觉头(512维,对齐CLIP空间)。训练使用contrastive loss,仅依赖预训练模型(CLIP + Detic + SBERT)提供弱监督信号。
关键图示
关键实验结果
真实机器人实验(Hello Robot Stretch)
| 查询类型 | 测试场景 | 成功率 |
|---|---|---|
| Literal queries | Kitchen (6 queries) | 5/6 (83%) |
| Visual queries | Kitchen (7 queries) | 6/7 (86%) |
| Semantic queries | Kitchen (7 queries) | 5/7 (71%) |
设计启示
连续embedding空间优于离散标签;隐式表示轻量但不支持增量更新,不适合在线场景;多模态弱监督的成功验证降低了数据收集成本。
SceneGraphLoc: Cross-Modal Coarse Visual Localization on 3D Scene Graphs
方向2: 空间认知 2024一句话定位
以3D scene graph(而非大规模图像数据库)作为环境地图表示,通过跨模态contrastive learning将查询图像patch与场景图节点匹配,实现存储量降低1000倍、速度提升1000倍的粗定位。
核心方法
场景图侧用五种模态(Point Cloud、Image、Structure、Relationship、Attribute)编码节点;查询侧将图像分为patch grid用DINOv2提取特征。训练采用双向N-pair contrastive loss,推理时计算patch-to-node匹配距离的平均值作为相似度分数。
关键图示
关键实验结果
| 方法 | R@1 (10场景) | R@1 (50场景) | 存储 (MB) |
|---|---|---|---|
| SceneGraphLoc (含图像) | 81.5 | 69.3 | 5.4 |
| CVNet | 79.2 | 66.5 | 239.1 |
| AnyLoc | 87.9 | 80.6 | 5720.3 |
设计启示
场景图作为轻量地图表示极具前景(5.4MB vs 5720.3MB);但仅支持room-level粗定位,需后续精定位补充;对场景图构建质量高度依赖。
RoboHop: Segment-based Topological Map Representation for Open-World Visual Navigation
方向2: 空间认知 2024 真机部署一句话定位
纯拓扑的segment-as-node地图表示,以图像segment为节点、以帧内/帧间关联为边构建拓扑图,完全不依赖度量坐标即可支持open-vocabulary查询驱动的导航。
核心方法
帧内边通过Delaunay三角剖分建立空间邻接;帧间边通过DINOv2描述子匹配建立跨帧持续性。导航规划使用Dijkstra算法,边权设计巧妙:帧间边权重=0(鼓励沿segment track前进),帧内边权重=1(跳跃有代价)。
关键图示
设计启示
纯拓扑表示的可行性验证;帧内/帧间双重边设计与类人空间认知高度吻合;零样本、无需训练的轻量部署方案;但segment-level数据关联鲁棒性(DINO实例识别仅56%)可能成为瓶颈。
Does Spatial Cognition Emerge in Frontier Models?
方向2: 空间认知 2025一句话定位
SPACE benchmark系统性评估前沿LLM/VLM的空间认知能力,结论是当前模型在空间认知上远未达到动物水平,在多项经典认知科学测试中接近随机水平。
关键图示
关键实验结果
大尺度空间认知结果
| 模型 | Observation | Direction Est. | Distance Est. | Map Sketch | Route Retrace | Shortcut | Average |
|---|---|---|---|---|---|---|---|
| Human | Ego image | 82.8 | 83.2 | 96.6 | - | - | - |
| GPT-4o | Ego image | 32.0 | 36.5 | 33.3 | 6.6 | 6.4 | 23.0 |
| Claude 3.5 Sonnet | Ego image | 29.0 | 34.4 | 27.5 | 7.4 | 0.0 | 19.6 |
| Chance | Ego image | 25.0 | 25.0 | 25.0 | 0.0 | 0.0 | 15.0 |
小尺度空间认知结果(纯文本呈现)
| 模型 | MRT | PTT | MPFB | JLO | SAtt | MCT | CBTT | SAdd | CSWM | Avg |
|---|---|---|---|---|---|---|---|---|---|---|
| GPT-4o | 41.9 | 55.5 | 50.5 | 66.5 | 98.8 | 21.5 | 82.5 | 93.5 | 76.7 | 65.2 |
| Claude 3.5 | 37.5 | 50.0 | 45.0 | 70.5 | 97.0 | 10.0 | 97.5 | 91.5 | 82.0 | 64.5 |
| Chance | 25.0 | 25.0 | 25.0 | 25.0 | 25.0 | 0.0 | 25.0 | 25.0 | 33.0 | 23.1 |
设计启示
核心警示:当前VLM不具备可靠的空间认知能力。必须构建显式外部空间表示。文本/符号表示效果显著优于视觉表示(Claude 3.5: 文本64.5% vs 多模态43.8%)。VLM在selective attention上表现良好,可用于物体检测/定位类任务。
SayPlan: Grounding Large Language Models using 3D Scene Graphs for Scalable Robot Task Planning
方向3: Planner消费 2023一句话定位
利用3D Scene Graph的层级结构,通过collapse-and-expand语义搜索机制和iterative replanning管线,使LLM能够在大规模环境中进行可扩展的机器人任务规划,token压缩高达86.9%。
核心方法
第一阶段:Semantic Search。 将完整图折叠到最高层级,LLM通过expand/contract API交互式探索图结构,找到任务相关子图。
第二阶段:Iterative Replanning。 LLM生成任务计划,Scene Graph Simulator验证可执行性,反馈错误信息,LLM据此修正。
关键图示
关键实验结果
| 方法 | Simple Correctness | Simple Executability | Long-Horizon Correctness | Long-Horizon Executability |
|---|---|---|---|---|
| LLM-As-Planner | 93.3% | 80.0% | 66.7% | 13.3% |
| LLM+P | 93.3% | 13.3% | 33.3% | 0.0% |
| SayPlan | 93.3% | 100.0% | 73.3% | 86.6% |
设计启示
层级化信息管理思路直接适用于多楼层场景;iterative replanning将可执行率从13.3%提升到86.6%;JSON序列化和Memory列表机制可直接复用。
SG-Nav: Online 3D Scene Graph Prompting for LLM-based Zero-shot Object Navigation
方向3: Planner消费 2024一句话定位
将在线构建的层级3D scene graph(object-group-room三层)通过hierarchical chain-of-thought prompting让LLM逐层推理目标位置,在三个benchmark上以zero-shot方式超越所有此前zero-shot甚至部分supervised方法。
关键图示
关键实验结果
| Method | Setting | MP3D SR | HM3D SR | RoboTHOR SR |
|---|---|---|---|---|
| SemEXP | Supervised | 36.0 | - | - |
| L3MVN | Zero-shot | 34.9 | 48.7 | 41.2 |
| VLFM | Zero-shot | 36.2 | 52.4 | 42.3 |
| SG-Nav-GPT | Zero-shot | 40.2 | 54.0 | 47.5 |
CoT Prompting 消融
| Prompting Method | SR |
|---|---|
| Text prompting(扁平文本) | 36.5 |
| Hierarchical CoT(完整) | 40.2 |
设计启示
层级场景图比扁平物体列表更有效(+3.7 SR);Re-perception机制值得借鉴;在线增量构建的工程可行性已验证;层级CoT是planner消费结构化地图的有效范式。
MapGPT: Map-Guided Prompting with Adaptive Path Planning for Vision-and-Language Navigation
方向3: Planner消费 2024一句话定位
将在线构建的拓扑地图转化为纯自然语言(linguistic-formed map)注入LLM prompt,配合adaptive path planning,使GPT-4V在VLN任务中实现zero-shot的全局路径规划。
关键图示
关键实验结果
消融实验(R2R, GPT-4V)
| Map | Planning | SR | SPL |
|---|---|---|---|
| None | None | 42.6 | 34.7 |
| Coordinate | None | 41.2 (下降) | 32.8 |
| Topological | None | 44.9 | 36.5 |
| Topological | Adaptive | 47.7 | 38.1 |
核心发现:坐标地图让性能下降,拓扑地图带来提升。这直接支持了从绝对坐标向相对空间关系转型的决策。
设计启示
纯文本拓扑地图的可行性已验证;LLM更擅长理解符号化拓扑关系而非数值坐标;Adaptive Planning机制(生成计划-执行-观察-更新计划)值得借鉴。
SpatialVLM: Endowing Vision-Language Models with Spatial Reasoning Capabilities
方向4: 空间关系 2024一句话定位
通过自动化数据生成流水线合成20亿条spatial VQA数据来训练VLM,使其同时具备定性空间判断和定量距离估计能力。
关键图示
关键实验结果
| 实验 | 指标 | 关键发现 |
|---|---|---|
| 定性空间VQA | Accuracy | SpatialVLM 75.2% vs GPT-4V 68.0% vs LLaVA-1.5 71.3% |
| 定量空间VQA | 有效数值比例 | SpatialVLM 99.0% vs GPT-4V 1.0%(GPT-4V几乎拒绝输出距离) |
| 定量精度 | [50%,200%]范围 | SpatialVLM 37.2%(精度有限) |
设计启示
定性空间推理可行(75.2% accuracy),但定量距离估计精度有限(仅37.2%在合理范围)。建议系统以定性空间关系为主,保留深度相机作为定量补充。Chain-of-Thought空间推理可作为Planner的空间查询子模块。
SR-Nav: Spatial Relationships Matter for Zero-shot Object Goal Navigation
方向4: 空间关系 2026一句话定位
以目标物体为中心的动态空间关系图(DSRG),将LLM生成的经验性空间先验与在线感知观测动态融合,同时赋能感知校正(RAMM)和导航规划(DRPM),在HM3D上达到零样本目标导航SOTA。
关键图示
关键实验结果
关系类型消融
| 去除的关系类型 | SR (%) | SPL (%) |
|---|---|---|
| w/o Distance | 56.0 | 31.5 |
| w/o Direction | 57.3 | 32.6 |
| w/o Topology | 52.7 | 30.5 |
| Full (Ours) | 58.3 | 33.0 |
拓扑关系影响最大(SR降5.6%),距离次之(降2.3%),方向最小(降1.0%)。SR-Nav推理速度比SG-Nav快8.7倍。
设计启示
三维空间关系编码(拓扑+方向+距离)可直接复用;LLM先验+在线更新的双源融合策略提供零样本泛化的"冷启动"能力;RAMM的关系匹配纠错机制有直接工程价值。
Task-Driven Graph Attention for Hierarchical Relational Object Navigation
方向4: 空间关系 2023一句话定位
提出HRON任务,利用场景图结合异构图变换器(HGT)和任务驱动注意力机制,使智能体能根据层次化关系约束(object-furniture-room)高效导航。
关键图示
关键实验结果
Exploratory Object Navigation
| 模型 | SR | SPL |
|---|---|---|
| RGB-D only | 0.586 | 0.309 |
| RGB-D + MM (2D语义地图) | 0.554 | 0.273 |
| RGB-D + SG (无注意力) | 0.458 | 0.183 |
| RGB-D + SG + TD ATTN | 0.879 | 0.577 |
关键发现:朴素引入场景图(无注意力)甚至不如纯RGB-D,加入任务驱动注意力后SR从0.458跃升至0.879。场景图+注意力远超2D语义地图(0.879 vs 0.554)。
设计启示
层次化关系定义(onTop/inside/under/inRoom/roomConnected)可直接借鉴;任务驱动注意力是必不可少的信息过滤机制;场景图优于度量地图的定量证据。
3D-Mem: 3D Scene Memory for Embodied Exploration and Reasoning
方向5: 代表性系统 2025一句话定位
用精选的多视角快照图像(Memory Snapshots + Frontier Snapshots)替代3D scene graph作为具身智能体的场景记忆,让VLM直接在视觉图像上推理空间关系。
关键图示
关键实验结果
Active Embodied Question Answering (A-EQA)
| Method | LLM-Match | LLM-Match SPL |
|---|---|---|
| CG Scene-Graph Captions | 34.4 | 6.5 |
| Explore-EQA | 46.9 | 23.4 |
| 3D-Mem (Ours) | 52.6 | 42.0 |
GOAT-Bench (Lifelong Navigation)
| Method | Success Rate | SPL |
|---|---|---|
| CG w/ Frontier Snapshots | 61.5 | 45.3 |
| 3D-Mem (Ours) | 69.1 | 48.9 |
设计启示
视觉快照在精细空间推理上优于文本化场景图(spatial understanding: 43.4 vs 32.9);但场景图在跨区域推理和快速检索上不可替代;"场景图作为骨架索引 + 视觉快照作为感知缓存"是最佳混合架构。
ESCA: Contextualizing Embodied Agents via Scene-Graph Generation
方向5: 代表性系统 2026一句话定位
通过将结构化的spatial-temporal scene graph注入MLLM-based具身智能体的感知pipeline,将感知错误率从69%降至30%,使开源模型超越闭源模型基线。
关键图示
关键实验结果
错误分解分析(核心发现)
| 配置 | Perception Error | Reasoning Error | Planning Error |
|---|---|---|---|
| InternVL (base) | 69% | 11% | 20% |
| InternVL + ESCA | 30% | 26% | 44% |
EB-Navigation 性能(成功率%)
| 模型 | Base | + GD | + ESCA |
|---|---|---|---|
| InternVL-2.5-38B | 47.33 | 47.67 | 51.66 |
| GPT-4o | 51.33 | 53.33 | 54.67 |
InternVL-2.5(开源38B)+ ESCA的成绩(51.66%)超越了GPT-4o base(51.33%),证明结构化感知增强可以弥补模型规模的差距。
设计启示
核心启示:投入改善感知的ROI远高于改善规划(69%失败源于感知);Selective Grounding策略是必要的(完整注入可能降低性能);开源模型+结构化感知可超越闭源模型。