← 返回 2026-11-10

空间挽具:用物理引擎把空间推理锚定在可执行世界状态上 Spatial Harness: Grounding Spatial Reasoning in Executable World States with Physics Engines

Chentao Cao, Zhanke Zhou, Sangni Duan, Bo Han, Hang Li 📅 2026-11-08 👍 2 2026-11-11 18:00
多模态推理 智能体工具使用 物理引擎 空间推理 视觉语言模型

将场景显式化为可执行世界状态,用物理引擎的测量与渲染反馈取代VLM的内部想象

前置知识

视觉语言模型(VLM)

VLM是以视觉与文本为联合输入的大语言模型,能对图像做描述、问答与推理。本文用到的开源模型包括Qwen2.5-VL-7B/32B/72B-Instruct与Qwen3.5-27B,闭源模型包括GPT-5.4-mini、Kimi K2.5和GLM-5V-Turbo。VLM直接回答空间题时,感知与推理在同一个生成过程中隐式完成,中间的“场景是什么样”和“变换会怎样”都没有独立表示。

本文的全部方法与基线都构建在同一VLM之上,理解其“一步生成”的默认工作方式,才能看出论文要修正什么。

可执行世界状态

论文的核心数据结构 $s=(\mathcal{L},\Omega,\mathcal{C})$:布局层 $\mathcal{L}$ 记录每个实体和相机在共享坐标系中的位置与朝向,即实体 $(p_j,\theta_j)$、相机 $(c_i,\phi_i)$;观察层 $\Omega$ 保留每张图像各自看到的实体方位、距离与朝向;约束层 $\mathcal{C}$ 收集问题文字中陈述的场景事实。“可执行”指 $\mathcal{L}$ 的几何具体到足以被引擎计算:任意两实体距离、任意视角下的方位、任意相机位置处的视图都能算出来。

它是全文的中心对象:感知产出的就是它,推理操作的对象也是它,实验分离场景信息与推理靠的也是它。

MuJoCo 物理引擎

MuJoCo是一个刚体物理仿真器,通常用于机器人学。本文只用它做静态场景的确定性几何计算:把布局实例化为带名字标签的圆柱代理体(半径0.3米、高1.5米)和相机,然后执行视角控制、距离/位姿测量和渲染三类操作。因为场景是静态的,不需要接触动力学或物体运动预测,返回的测量与视图是确定的、与状态一致的。

引擎是把“想象”变成“计算”的关键基础设施,文中所有空间判断的反馈都来自它,理解它能做什么、不能做什么才能理解方法边界。

相机位姿与多视角对齐

每张图像由一台相机拍摄,相机位姿包含位置 $c_i$ 与朝向角 $\phi_i$。不同图像中的观察是相对各自相机坐标系的,只有知道相机位姿才能把它们投影到同一坐标系:论文用 $p_{ij}=c_i+R(\phi_i)r_{ij}$、$\theta_{ij}=(\phi_i+\alpha_{ij})\bmod 2\pi$ 把实体在相机 $i$ 中的平面位移 $r_{ij}$ 与朝向偏移 $\alpha_{ij}$ 换算进共享坐标系。多视角空间题的本质难点就是这些位姿往往未知。

多视角对齐是Perceiver编译阶段的核心,也是消融中贡献最大的模块(相对位姿估计),不懂它就看不懂世界状态怎么建出来的。

Agentic 工具调用推理

指模型不一次性生成答案,而是在循环中先推理再调用外部工具、读取工具返回的反馈、更新上下文后继续推理,直至给出答案(如ReAct范式)。本文Reasoner的形式化为 $a_t=R(h_t)$,$f_t=E[\hat{s}](a_t)$,$h_{t+1}=h_t\oplus(a_t,f_t)$,最多 $T_{\max}=5$ 轮,且必须至少调用一次引擎才被接受答案。

Reasoner就是一个工具调用循环,但本文的贡献不在“如何选工具”而在“工具共享什么几何状态”,理解这个范式才能看清与ViperGPT等框架的区别。

研究动机

空间推理要求模型在输入视角之外推断空间关系,例如判断“转身180°后身后是什么”,需要先恢复场景布局,再在变换后的参考系中推理物体关系。当前VLM把这两步全部放在模型内部隐式完成:先从局部视角拼出一个隐式场景解释,再“想象”空间变换的后果。由此出现两条失效路径——场景读错时推理可以自洽但整体错误;场景读对时变换也可能做错——而最终答案无法区分这两种错误,流畅的解释也不能为任何一步提供独立校验。问题的严重程度有数据支撑:GPT-5在MindCube上仅取得47.59%的准确率,而随机猜测是32.35%。更微妙的是,Figure 3显示直接把标注好的认知地图(GT map)以文本形式喂给Base模型并不总是有用甚至有害:Qwen2.5-VL-7B拿到地图后准确率从35.59%跌到30.35%。即使像MindJourney那样用视频世界模型生成新视角,也只是增加了视觉证据,生成视图不受显式场景约束,无法强制场景估计与后续空间变换之间的一致性。

本文的目标是本文的目标是把空间推理中“感知”与“推理”两个环节解耦并使其分别可检验:感知环节显式产出场景事实(物体与相机的位置、朝向),推理环节的每个空间判断不再由VLM想象,而是由物理引擎从显式状态计算得出。具体而言,作者要构建一个可执行的世界状态——几何信息具体到足以计算任意两实体的距离、任意视角下实体的方位、任意相机位置处的视图——并让Reasoner通过视角控制、几何测量和视图渲染三类操作在引擎中交互作答。量化目标是在MindCube、SAT、MMSI-Bench、SpatialRGPT-Bench四个基准上超越Base、MindJourney、pySpatial等强基线;同时设计受控实验证明:给定完全相同的GT布局时,引擎执行反馈带来的提升应远大于“更好的场景估计”——最终在Qwen3.5-27B上把同地图推理从71.81%推到98.25%。

与已有工作不同的是,已有工作从三个方向接近这个问题,但都留有缺口。Agentic多模态推理(ReAct、ViperGPT、VisProg、DeepEyes)关心工具如何被选择与调用,却不规定空间工具共享怎样的几何状态;工具型空间推理方法pySpatial在像素重建的3D几何上执行程序,无法吸收仅由文字给出的事实(如两视图间的相机运动),GCA只是把查询形式化为几何约束、不改变被计算的场景本身;仿真驱动方法中,MindJourney用视频世界模型“想象”新视角,Mind's Eye与LLMPhy关注物理参数估计和动力学预测。本文的独特切入点是:用问题中陈述的物体关系和相机运动去约束被估计的世界状态本身,让引擎成为所有空间判断的计算基底——被估计的布局与变换的后果分别可查、共同决定答案,而不是只重建像素能看出的几何,或生成不受显式场景约束的新视图。

核心方法

直觉上,论文把VLM答空间题的“读题+心算”改造成“读题+画沙盘+用尺子量”。第一步,Perceiver把题目和图片变成一张显式沙盘:文本通道从问题中解析实体、关系、视角约束和所需信息类型;视觉通道用专用模型估计每个视图的观察——LocateAnything-3B检测、MoGe-2度量深度与内参、Orient Anything V2朝向、Reloc3r相机间相对位姿;编译阶段把所有观察投影到以第一台相机为原点的共享坐标系,得到由布局 $\mathcal{L}$、逐视图观察 $\Omega$、陈述约束 $\mathcal{C}$ 组成的世界状态 $s=(\mathcal{L},\Omega,\mathcal{C})$。第二步,Reasoner把 $\mathcal{L}$ 实例化为MuJoCo场景——每个实体是一个带名字标签的圆柱代理——通过mujoco_sim接口写Python代码执行视角控制(set_camera/turn/move)、测量(get_distances/get_current_view/describe_camera_motion)与渲染(capture_image),引擎返回的打印值和渲染图追加进上下文,最多5轮内收敛到答案。整个过程里任何空间判断(例如转身后看到什么)都由引擎从状态确定性计算,而非模型生成,因此假设的布局与操作的后果可以被分开检查。

核心创新是颠倒了“场景表示”与“空间操作后果”的关系:场景表示应当决定空间操作的后果。已有方法即使显式给出场景事实(如把GT地图作为文本放进提示),后果仍留给模型内部推理——这正好解释Figure 3中Base拿到GT地图反而在小模型上掉分(Qwen2.5-VL-7B从35.59%到30.35%)的现象。Spatial Harness让状态可执行:布局被实例化为MuJoCo中带标签的代理,每次操作的结果是引擎从同一状态确定性地算出的测量值与渲染视图,所有空间判断因此天然共享一个场景、可逐条检查。第二个关键设计是三元组世界状态:$\mathcal{L}$ 是可计算的部分,$\Omega$ 保留每张图的原始观察以防对齐投影造成失真,$\mathcal{C}$ 把问题文字中的关系作为硬约束参与布局求解。这使得仅由文字给出的事实(如“两视图间相机转了90°”)能直接决定被计算的场景,而不只是查询的参考系——这是与pySpatial、GCA的本质区别。执行并不消除感知不确定性,但把“假设的布局”和“操作的后果”分离暴露出来供检验与修正。

方法步骤详情

方法分四步。(1) 文本通道:VLM把问题 $q$ 解析为实体集 $O$、实体间关系、视角间约束(如相邻视图相机转90°)和查询所需的信息类型;陈述的关系与视角构成约束 $\mathcal{C}$(置信度0.95)。(2) 视觉通道:LocateAnything-3B按名检测实体框(Qwen3-Reranker-0.6B做标签绑定),结合MoGe-2的度量深度与内参得到方位与距离;Orient Anything V2估计朝向(前向置信度≥0.5才保留);多图时Reloc3r估计相机间相对旋转与平移方向;VLM同时输出定性描述以覆盖专用模型测不到的实体。(3) 编译:以第一台相机为原点,各相机位姿分量按优先级从文本陈述、地标对应、Reloc3r、VLM估计中取置信度最高者;实体按 $p_{ij}=c_i+R(\phi_i)r_{ij}$、$\theta_{ij}=(\phi_i+\alpha_{ij})\bmod 2\pi$ 投影进共享坐标系,其中 $r_{ij}=\frac{d_{ij}}{\cos\beta_{ij}}u(\beta_{ij})$;再在10×10网格上求解 $\mathcal{L}^*=\arg\max_{\mathcal{L}}\sum_k w_k\mathbf{1}[\mathcal{L}\models r_k]-\lambda\sum_j\|p_j-\hat{p}_j\|$,用确定性局部搜索逐实体移动逼近最优。(4) Reasoner循环:把 $\mathcal{L}$ 实例化为MuJoCo场景,初始上下文含图片、问题、状态与API说明,每轮 $a_t=R(h_t)$,$f_t=E[\hat{s}](a_t)$,$h_{t+1}=h_t\oplus(a_t,f_t)$,$T_{\max}=5$;入口处有路由检查,问题不可由状态回答时退回VLM直接作答。

技术新颖性

与最接近的三类工作相比,新颖性体现在三点。其一,与工具编排框架(ReAct、ViperGPT、VisProg、DeepEyes)不同,本文贡献不在“如何选工具、编排调用”,而在规定空间工具共享的几何状态——连续调用返回的测量与视图都来自同一个显式、可检查的场景假设,工具之间的一致性由引擎强制保证。其二,与pySpatial/GCA的“像素重建+程序执行”路线不同,本文把问题文本中的陈述约束(实体关系、相机运动)作为硬约束写进布局求解(式3),让语言直接决定被计算的场景,而非仅约束查询参考系;这也是pySpatial在部分类别低于Base、GCA整体落后约13至29个百分点的根因。其三,与MindJourney/Mind's Eye/LLMPhy等生成式仿真不同,本文不预测动力学、不生成新视角,只用物理引擎对静态估计场景做确定性测量与渲染,反馈与状态严格一致,避免了世界模型的幻觉。用圆柱代理替代真实网格也是务实取舍:空间问题只依赖布局信息,代理恰好携带且只携带所需信息。

Spatial reasoning through iterative execution and feedback.
Figure 2: Spatial reasoning through iterative execution and feedback.
Overview of Spatial Harness.
Figure 4: Overview of Spatial Harness.
World state and its engine instantiation.
Figure 5: World state and its engine instantiation.
Engine interface exposed to the Reasoner.
Figure 6: Engine interface exposed to the Reasoner.

实验结果

论文的核心实验设计是控制变量。GT-map设置(Table 1)固定场景信息、只考察推理方式:同一张GT地图,Base文本推理在Qwen2.5-VL-7B上反而掉分(35.59%→30.35%),而Spatial Harness把地图实例化进引擎后在全部7个VLM上大涨——Qwen3.5-27B达98.25%(较Base+26.44)、Qwen2.5-VL-72B达84.22%(+42.76)、GPT-5.4-mini达82.86%(+38.07)、Kimi K2.5达94.10%,证明收益来自执行而非更好的场景估计。端到端设置(Table 2)由Perceiver自估状态:MindCube上Qwen3.5-27B达71.14%,超Base 18.44、超最强基线pySpatial(63.62%)7.52个百分点,四个模型平均超pySpatial 5.40;Kimi K2.5达72.67%。Table 3的跨基准结果:SAT上83.20%(Qwen3.5-27B)最佳,而pySpatial因单图重建困难反而低于Base 13-14分;SpatialRGPT-Bench量化题上达84.11%/83.31%,领先最强基线约43/35分(方向题98.13%、距离题89.86%);MMSI-Bench上Qwen3.5-27B从33.40%升至39.50%,但Qwen2.5-VL-72B为29.00%未超Base的29.60%——该模型常读错状态坐标、不采纳引擎反馈。消融方面(Table 4):VLM直接生成地图仅41.33%,去掉视觉通道降到52.95%,去掉文本通道降到68.38%;Figure 7显示替换相对位姿估计器损失最大(54.10%),替换朝向估计器损失最小(70.57%,1050题中仅36题依赖朝向),去掉相机/视角约束使Rotation类从81.50%暴跌至48.00%。Table 5隔离反馈来源:多轮自我反思只从71.81%到77.81%,数值反馈或渲染反馈单独使用都超过90%,两者结合达98.25%,说明两类反馈互补且增益确实来自引擎。Figure 8量化状态质量:有效性99.52%、覆盖率0.7237、方向相似度0.7310、朝向相似度0.8980。Table 10的扰动实验显示单个相机朝向误差超过90°时准确率跌至76.67%,是最脆弱字段。

MindCube accuracy (%) in the GT-map setting.
Table 1: MindCube accuracy (%) in the GT-map setting.
End-to-end accuracy (%) on MindCube.
Table 2: End-to-end accuracy (%) on MindCube.
End-to-end results (%) on SAT, MMSI-Bench, and SpatialRGPT-Bench.
Table 3: End-to-end results (%) on SAT, MMSI-Bench, and SpatialRGPT-Bench.
Ablation on world state construction on MindCube with Qwen3.5-27B.
Table 4: Ablation on world state construction on MindCube with Qwen3.5-27B.
Ablation on grounded feedback on MindCube with Qwen3.5-27B.
Table 5: Ablation on grounded feedback on MindCube with Qwen3.5-27B.
End-to-end accuracy (%) on MindCube compared with GCA.
Table 9: End-to-end accuracy (%) on MindCube compared with GCA.
MindCube accuracy (%) under single-dimension corruption of the GT map.
Table 10: MindCube accuracy (%) under single-dimension corruption of the GT map.
Separating scene information from its use in reasoning.
Figure 3: Separating scene information from its use in reasoning.
Channel ablations on MindCube with Qwen3.5-27B.
Figure 7: Channel ablations on MindCube with Qwen3.5-27B.
Quality of the world states estimated by the Perceiver with Qwen3.5-27B on MindCube.
Figure 8: Quality of the world states estimated by the Perceiver with Qwen3.5-27B on MindCube.
查看结构化数据
任务指标本文基线提升
MindCube(GT-map 设置,Qwen3.5-27B) 选择题准确率 98.25% Base(同GT地图文本推理)71.81% +26.44 个百分点
MindCube(端到端,Qwen3.5-27B) 选择题准确率 71.14% Base 52.70%;pySpatial 63.62%;MindJourney 55.24% 较Base +18.44,较最强基线pySpatial +7.52 个百分点
SAT 合成集500题(Qwen3.5-27B) 选择题准确率 83.20% Base 81.80%;pySpatial 68.00% +1.40 个百分点(Qwen2.5-VL-72B 上为 71.60% 对 68.60%,+3.00)
MMSI-Bench(Qwen3.5-27B) 选择题准确率 39.50% Base 33.40%;pySpatial 36.70% +6.10 个百分点(但 Qwen2.5-VL-72B 上 29.00% 低于 Base 29.60%)
SpatialRGPT-Bench 量化题(Qwen2.5-VL-72B) 误差容限内成功率 84.11% Base 40.72%;最强基线 MindJourney 39.12% +43.39 个百分点(Qwen3.5-27B 为 83.31% 对 48.20%,+35.11)
MindCube(GT-map 设置,GPT-5.4-mini) 选择题准确率 82.86% Base(w map)44.79% +38.07 个百分点

局限与改进

作者承认的局限是世界状态只描述单一时刻的静态场景:足以覆盖基准中的空间问题,却无法表示随时间的变化(如视频中物体的运动),需要时间维度的扩展。我自己的观察有五点。其一,端到端提升显著小于GT-map提升(MindCube上71.14%对98.25%),瓶颈已转移到状态估计——Figure 8显示估计地图只恢复了约72%的标注实体,约四分之一相关实体从未进入布局。其二,方法对底座模型敏感:MMSI-Bench上Qwen2.5-VL-72B反而略低于Base(29.00%对29.60%),说明读不懂结构化状态、不采纳引擎反馈的模型无法受益。其三,失败案例(Figure 21/22)暴露更深的问题:Kimi K2.5在引擎渲染已显示正确答案(转向后捕获到window)的情况下,仍坚持对“玩具火车自身坐标系”的错误解读并推翻反馈——执行保证反馈正确,却不保证模型服从证据。其四,流水线依赖四个专用感知模型与多级置信度融合规则(如文本0.95、Reloc3r 0.5-0.7、VLM估计0.4等手工设定),工程复杂度和单题延迟都显著高于直接推理。其五,渲染只是带标签圆柱的俯视抽象,对依赖外观细节的遮挡、外观类问题无能为力,路由步骤只能把此类问题排除在引擎路径外静默退回Base行为。

独立分析的弱点

独立分析四个弱点。(1) 状态估计成为新的性能天花板:GT-map与端到端之间约27分的差距几乎全部来自Perceiver误差,而覆盖率仅0.7237。改进方向是把作者提到的“渲染-图像一致性校验”做实——引擎从估计位姿渲染每个输入视图,与原图比对定位错误,再让Perceiver迭代修正,形成闭环校准。(2) 布局求解是10×10网格上的确定性贪心局部搜索,物体多、关系密时易陷局部最优,且 $\mathcal{C}$ 中各来源权重(文本0.95、描述性左右序1.6等)纯手工设定。可改为连续坐标上的约束优化或概率图模型,并从数据中学习各来源权重。(3) 相机朝向是最脆弱字段(Table 10中(90°,180°]误差使准确率跌至76.67%),而Reloc3r只给相对旋转,绝对朝向主要依赖低置信度的VLM估计与地标对应。可增加朝向一致性检验,或用语义地标(墙、门窗)约束绝对朝向。(4) Reasoner可能无视引擎反馈(失败案例中Kimi K2.5推翻正确的渲染结果)。改进方向包括解码时强制最终答案引用最近一次tool response的具体字段,或引入独立Verifier代理核对答案与反馈的一致性、不一致时强制重答,把“必须依据证据”从提示约束升级为机制约束。

未来方向

作者明确提出的方向是为世界状态加入时间维度:记录每帧中实体与相机的位姿,让引擎实例化任意时刻的场景并测量帧间变化,从而支持运动与事件顺序类问题,并配套需要视频的基准。基于成果还可延伸:(1) 用引擎反馈反向校准感知——把“从估计位姿渲染的视图与输入图像的一致性”作为Perceiver的自我修正信号,甚至作为感知模型训练的损失;(2) 把静态布局扩展为可交互环境,接入具身智能体的动作规划与验证,论文在Broader Impacts中也提到这一应用前景;(3) 将Figure 8的认知地图评测协议(有效性/覆盖率/方向相似度/朝向相似度)推广为通用的场景状态评测标准,用于诊断任意空间推理系统的感知瓶颈;(4) 通过强化学习训练VLM更好地读写世界状态、采纳引擎反馈,缓解MMSI-Bench上部分模型不采纳反馈的失败模式;(5) 呼应结论的更大主张——把物理引擎作为多模态推理的通用基底,迁移到因果推理、物理量估计等同样需要“可执行中间状态”的任务族。

复现评估

复现条件较好。代码已在GitHub公开(tmlr-group/Spatial-Harness),附录给出完整算法伪代码(Algorithm 1)、六套提示模板(Base/Base+地图/Reasoner/API规格/认知地图生成/LLM裁判)、MuJoCo接口完整签名(Listing 1)以及感知融合的全部置信度参数,四个基准均为公开数据集。算力方面:Qwen2.5-VL-72B需2张A100 80GB(vLLM FP8),其余Qwen模型单卡A100即可;四个感知模型(LocateAnything-3B、MoGe-2、Orient Anything V2、Reloc3r)同样部署在A100;GPT-5.4-mini走OpenAI API,Kimi K2.5与GLM-5V-Turbo走OpenRouter。无训练环节,只有推理与引擎仿真,单题成本主要来自VLM多轮调用(Reasoner最多5轮加若干Perceiver查询)。难点在工程粘合:位姿来源优先级、置信度数值、布局搜索权重等大量手工细节虽在附录C.2有描述,完全对齐仍需仔细核对;论文报告了3次运行的标准差(Table 11)便于校验。总体属于中等偏上难度,主要成本是API调用费与A100租用。

相似论文推荐