第6章 隐式 3D 时空结构的引入

开篇段落

在前面的章节中,我们分别探讨了视觉、语言和行动三个核心模态的表征与处理。然而,一个仅在 2D 像素空间进行推理的智能体,如同柏拉图洞穴寓言中的囚徒,其整个“世界观”被束缚在墙壁上扁平的投影之上。它能学会识别影子(模式识别),却从根本上缺乏对产生这些影子的三维实体及其背后因果结构的理解,例如物体恒常性、遮挡关系和物理动力学。本章将引入一个至关重要的架构性“支架”(Scaffold):隐式的 3D 时空结构。我们的目标并非复现传统计算机图形学或 SLAM 中追求极致几何精度的显式三维重建,而是在通常缺乏大规模 3D 监督的情况下,利用几何与物理先验,自监督地学习一个与下游任务(尤其是行动)紧密耦合、完全可微且连续的 3D 场景表征。学完本章,你将深刻理解如何利用神经场(Neural Fields)等技术,为 VLA 模型植入强大的几何与物理归纳偏置,从而革命性地提升其对未来的预测能力、在遮挡和重访场景下的长期记忆能力,以及最关键的——其生成行动的物理可实现性 (feasibility)安全性 (safety)


6.1 动机:为何需要超越 2D 表征的物理与几何先验

一个 2D 优先的 VLA 模型在与物理世界交互时,会遭遇一系列源于信息损失的根本性瓶颈。从 3D 世界到 2D 图像的透视投影是一个不可逆的过程,它丢弃了深度这一关键维度。

  1. 几何歧义性 (Geometric Ambiguity):这是最直接的问题。对于一个需要进行毫米级操作的机械臂,图像中一个 50x50 像素的杯子轮廓,究竟是“距离 0.5 米的 8 厘米高标准杯”,还是“距离 1.0 米的 16 厘米高大号杯”?错误的判断将直接导致抓取姿态计算错误和任务失败。
  2. 缺乏物体恒常性 (Object Permanence):这是亚杰认知发展理论中的核心概念,也是智能体心智模型的基石。当一个工具被箱子暂时遮挡时,在 2D 视频流中它就“消失”了。一个没有 3D 心智模型的智能体无法形成“工具仍然存在于箱子后面”的信念,因此也就不可能规划出“先移开箱子,再拿起工具”这样的多步、有逻辑的行动序列。
  3. 视角依赖性与数据饥渴 (Viewpoint Dependency & Data Hunger):同一个物体在不同视角、光照下的 2D 投影千差万别。一个纯 2D 模型必须通过“死记硬背”海量数据来学习这种外观上的不变性。而一个内蕴的 3D 模型,通过将物体的几何形状(不变的)与其所处的观察视角(可变的)进行解耦,天然地获得了对视角的泛化能力,极大地提升了数据效率。
  4. 物理不可行预测 (Physically Implausible Predictions):直接在像素空间进行自回归预测的模型,本质上是在学习高维像素流形的统计规律,而非物理世界的生成过程。这使得它们很容易生成看似合理但物理上荒谬的“幻觉”,例如物体不符合刚体变换地“融化”、两个物体无视物理约束地互相“穿透”、或是不符合动力学地瞬间加速。依赖这种预测进行规划的行动系统,其结果必然是不可靠和危险的。

根本原因:2D 表征缺乏对世界正确的因果结构的建模。在物理世界中,是 3D 物体的几何、材质和运动,导致了我们在 2D 图像上观察到的像素模式。一个只学习像素模式间相关性的模型,是“知其然,而不知其所以然”。引入 3D 结构,就是为了让模型学习这个正确的因果箭头,从而获得真正的理解和预测能力。

6.2 核心方法:从多视几何到神经场表示

为了克服上述问题,我们需要一种能与深度学习框架无缝集成的 3D 表示。神经辐射场 (Neural Radiance Fields, NeRF) 及其变体,为此提供了优且强大的解决方案。

其核心思想是,用一个(通常是简单的)MLP 来参数化一个连续的体积函数。这个函数可以被看作是一个“可微的场景描述文件”。

$$ F_{\Theta}: (\gamma(\mathbf{x}), \gamma(\mathbf{d})) \rightarrow (\mathbf{c}, \sigma) $$

让我们深入解析这个公式的每个部分:

  • 输入:
    • $\mathbf{x} = (x, y, z)$:一个三维空间点的坐标。
    • $\mathbf{d}$:一个单位球面坐标表示的观测方向。
    • $\gamma(\cdot)$:位置编码 (Positional Encoding)。这是 NeRF 成功的关键秘诀之一。直接将 (x, y, z) 坐标输入 MLP 会使其难以学习高频细节,导致渲染结果过于平滑。位置编码通过傅里叶特征映射,将低维坐标提升到高维空间,极大地增强了 MLP 表达高频函数的能力。可以将其类比为给 MLP 提供了一张精细的“对数坐标纸”,而不是一张普通的白纸,使其能轻松画出复杂的曲线。
  • 网络 $F_{\Theta}$: 通常是一个包含8-12层的 MLP,带有 ReLU 激活函数和一个特殊的结构:体密度 $\sigma$ 仅依赖于位置 $\mathbf{x}$,而颜色 $\mathbf{c}$ 同时依赖于位置 $\mathbf{x}$ 和方向 $\mathbf{d}$。这符合物理直觉:一个物体在空间中的“存在性”是固定的,但从不同角度看它,由于高光等材质效果,其表面颜色可能会变化。
  • 输出:
    • $\mathbf{c} = (r, g, b)$:该点向特定方向发出的辐射颜色。
    • $\sigma \ge 0$:体密度。这是一个物理量,表示光线穿过该点时发生衰减的微分概率。$\sigma$ 值越大的地方,越可能存在一个不透明的表面。

可微体渲染:连接 3D 表示与 2D 图像的桥梁

有了这个 MLP,我们就可以通过可微的体渲染 (Differentiable Volume Rendering) 过程,从任意给定的相机位姿合成一张全新的图像。这个过程在数值上通过对光线进行离散步进采样来近似:

  1. 光线步: 对于图像中的一个像素,从相机中心出发,沿着对应方向的光线 $\mathbf{r}(t) = \mathbf{o} + t\mathbf{d}$,在一系列离散点 $\{t_i\}_{i=1}^N$ 处进行采样。
  2. 查询 MLP: 将每个采样点的位置 $\mathbf{x}_i = \mathbf{r}(t_i)$ 和光线方向 $\mathbf{d}$ 输入 MLP,得到一系列的 $(\mathbf{c}_i, \sigma_i)$ 对。
  3. Alpha 合成: 将颜色和密度通过类似数字图像处理中 Alpha Compositing 的方式进行累积。最终的像素颜色 $\hat{C}(\mathbf{r})$ 计算如下: $$ \hat{C}(\mathbf{r}) = \sum_{i=1}^{N} T_i \alpha_i \mathbf{c}_i, \quad \text{where} \quad \alpha_i = 1 - \exp(-\sigma_i \delta_i), \quad T_i = \exp\left(-\sum_{j=1}^{i-1} \sigma_j \delta_j\right) $$

    • $\delta_i = t_{i+1} - t_i$ 是采样间隔。
    • $\alpha_i$ 可以被理解为第 $i$ 个采样区间对光线的“不透明度”。
    • $T_i$ 是累积透射率,即光线成功“穿透”前面所有 $i-1$ 个区间的概率。

这个求和过程中的每一步都是可微的,因此我们可以将最终渲染像素 $\hat{C}(\mathbf{r})$ 与真实像素 $C(\mathbf{r})$ 之间的误差,通过反向传播一直传递回 MLP 的权重 $\Theta$。

Rule-of-Thumb: 将 NeRF 想象成一个“可微分的全息图”或“可学习的 CT 扫描”。它用神经网络的权重,以一种高度压缩和连续的方式,编码了整个场景对光线的响应。体渲染则是从这个全息图中“解码”出任意二维视角的“照片”的过程。

6.3 学习信号:自监督的时空与几何一致性约束

训练 NeRF 的巨大魅力在于其自监督特性,它从多张 2D 图像中“蒸馏”出 3D 结构。

  • 核心监督信号 - 光度一致性 (Photometric Consistency): $$ \mathcal{L}_{\text{photo}} = \sum_{\mathbf{r} \in \mathcal{R}} || \hat{C}(\mathbf{r}) - C(\mathbf{r}) ||_2^2 $$ 这是训练的基石。一个至关重要的前提是,我们需要精确的相机位姿。在实中,这通常通过 Structure-from-Motion 工具(如 COLMAP)离线计算,或通过实时的 SLAM/VIO 系统在线提供。位姿的精度直接决定了 NeRF 建模的几何准确性。

  • 处理动态场景 - 规范空间与形变场 (Canonical Space & Deformation Field): 为了将 NeRF 扩展到动态场景,一个主流范式是学习一个从静态规范空间随时间变化的观察空间的映射。模型包含两部分:

    1. 一个静态的 NeRF,表示物体的“标准”形状和外观(例如,一个人的 T-pose 模型)。
    2. 一个形变网络(通常也是一个 MLP),输入一个规范空间点 $\mathbf{x}_{canon}$ 和一个时间戳 $t$,输出其在观察空间中的位移 $\Delta\mathbf{x}$。 通过对形变场施加平滑性、周期性或刚性约束,可以保证场景随时间的演化是物理上合理的。
  • 引入多模态先验 - 语义一致性 (Semantic Consistency): 我们可以利用预训练的强大视语言模型(如 CLIP)或自监督视觉模型(如 DINO)来为 3D 空间注入语义。具体做法是:

    1. 在 3D 空间中采样一个点 $\mathbf{x}$。
    2. 将其投影到两个(或多个)不同的训练视图中,得到 2D 坐标 $p_1, p_2$。
    3. 在两个视图中,以 $p_1, p_2$ 为中心提取图像块 (patch)。
    4. 将这两个图像块输入一个冻结的预训练模型(如 DINO ViT),得到特征向量 $f_1, f_2$。
    5. 添加一个损失项,要求 $f_1$ 和 $f_2$ 的余弦相似度最大化。 通过这种方式,模型学会了:在 3D 空间中属于同一语义部分的不同点,即使从不同角度看外观差异很大,其高级语义特征也应该是一致的。

6.4 应用一:基于 3D 结构的视频预测与遮挡推理

这代表了从“模式匹配”到“基于模型的推理”的范式转变。

| 传统 2D 视频预测 ("Pixel Pushing") | 基于 3D 结构的预测 ("Physics Forward") |

传统 2D 视频预测 ("Pixel Pushing") 基于 3D 结构的预测 ("Physics Forward")
工作方式: 在 2D 特征空间或像素空间进行自回归,预测下一帧的像素值。 工作方式: 1. 在 3D 空间中预测物理状态的演化(如位姿、形变)。2. 将预测的未来 3D 状态渲染回 2D 视图。
优点: 概念简单,可以端到端学习。 优点: 物理上更合理,天然处理遮挡和视角变化,可解释性强。
缺点: 长期预测会迅速模糊,易产生物理谬误(穿模),对遮挡无能为力。 缺点: 需要对场景动态进行建模,计算量可能更大。
对遮挡的处理: 物体被遮挡即信息丢失,无法合理推断其后续状态。 对遮挡的处理: 即使物体被完全遮挡,其 3D 表征依然存在。模型可基于其 3D 轨迹,正确渲染出解除遮挡后的样子。

6.5 应用二:3D 作为长期记忆的场景持久化 (Persistent World Model)

对于需要在家庭、仓库或城市等大范围环境中长期运行的智能体,3D 隐式模型可以作为一个统一、持续更新的世界模型。这类似于认知科学中的“认知地图”。

  • 增量式场景构建: 当智能体探索新区域时,新的观测被用来增量式地优化和扩展其内部的 NeRF 模型,而不是简单地存储关键帧。
  • 应对重访 (Loop Closure):当 SLAM 系统检测到回环(即智能体回到了一个曾经访问过的地方)时,不仅可以优化轨迹,还可以利用这个机会,将同一地点在不同时间点的观测进行融合,以优化 NeRF 的几何和外观表示,使其更精确、更一致。
  • 跨片段推理 (Cross-episode Reasoning):一个家庭服务机器人被告知“我的眼镜在书房的桌子上”。这个信息可以被用来更新其内部世界模型的语义部分。几天后,当被要求“帮我找眼镜”时,即使没有当前视觉线索,它也可以查询这个持久化的世界模型,直接规划出前往书房的路径。

6.6 鲁棒性机制一:几何观测的矛盾检测

一个训练良好的 3D 隐式模型可以充当一个强大的在线系统健康监视器。在每个时间步 t,系统执行以下循环:

  1. 输入: 当前传感器图像 $I_t$,以及从 SLAM/VIO 系统估计出的当前相机位姿 $P_t$。
  2. 渲染预测: 使用位姿 $P_t$ 从长期 3D 模型(NeRF)中渲染出一张预测图像 $\hat{I}_t$。
  3. 比较: 计算 $I_t$ 和 $\hat{I}_t$ 之间的不一致性度量 $D(I_t, \hat{I}_t)$(例如,LPIPS 距离)。
  4. 决策:
    • if $D < \tau_{low}$: 系统状态良好,观测与记忆一致。
    • if $D > \tau_{high}$: 检测到显著矛盾,触发异常处理。根据矛盾的模式,可以推断原因:
      • 全局性、结构性失配: 很可能是定位失败。触发重定位模块。
      • 局部、突发性失配: 很可能是场景发生变化。标记该 3D 区域为“过时”,并用新观测进行更新。
      • 固定的图像伪影 (如噪点、遮挡块): 很可能是传感器异常。发出警报。

6.7 鲁棒性机制二:预测 3D 状态的动力学可实现性检查 (Feasibility Check)

这是连接第6章 (3D感知)第4章 (行动模态) 的核心安全接口,也是 VLA 系统从“能看”到“会做”的关键。它将 VLA 的生成过程从开环的“猜测”变为闭环的“生成-验证”。

交互循环:

  1. 生成 (Propose): VLA 的策略网络(可能是个 Transformer)生成一个候选行动序列 $A = \{a_t, a_{t+1}, ...\}$,并同时预测出由此导致的未来 3D 状态序列 $S = \{S_{t+1}, S_{t+2}, ...\}$。
  2. 验证 (Verify): 可行性检查模块对 $(A, S)$ 进行多维度审查:
    • 运动学/动力学约束 (Kinodynamic Check): 预测的机器人或物体位姿变化,是否在其速度/加速度/力矩限制之内?这本质上是在进行前向动力学仿真或可达性分析。
    • 碰撞检测 (Collision Check): 将预测的机器人/物体轨迹在 3D 空间中进行“扫掠”,并查询 NeRF。如果扫掠体积内的任何一点的体密度 $\sigma$ 超过安全阈值,则认为发生碰撞,该轨迹被拒绝。
    • 接触稳定性 (Contact Stability Check): 如果规划的动作涉及放置物体,需要进行简单的静力学检查(例如,支撑多边形和重心位置),确保放置是稳定的。
  3. 决策:
    • if Feasible: 接受该行动序列,并发送给底层控制器执行。
    • if Infeasible: 拒绝该行动序列。将检测到的不可行原因(如“与桌子碰撞”、“加速度超限”)作为新的约束,反馈给规划器,让其在更小的、更安全的空间内重新规划。

这个模块充当了一个物理“防火墙”,确保了高层语言和视觉模型产生的抽象计划,最终能被转化为符合物理规律、安全可执行的底层控制指令。

6.8 工程权衡:显式网格/点云 vs. 隐式神经场

在构建实世界的 VLA 系统时,选择 3D 表示方案是一个核心的架构决策。

| 特性 | 显式表示 (Mesh/PointCloud) | 隐式表示 (NeRF/SDF) |

特性 显式表示 (Mesh/PointCloud) 隐式表示 (NeRF/SDF)
内存占用 随分辨率/复杂度增长,对大规模场景可能达到 GB 级。 恒定(MLP 参数量),通常为 MB 级,对复杂场景压缩率极高。
拓扑灵活性 拓扑固定,难以表示流体、烟雾或进行拓扑变化。 可以表示任意复杂的拓扑,无需显式定义。
渲染质量 依赖于建模精度和纹理贴图,近看可能暴露低分辨率。 可通过体渲染生成照片级真实感的新视角图像。
查询速度 几何查询(碰撞、最近点)速度极快(需构建 BVH 等加速结构)。 渲染和查询通常较慢(需要多次网络前传),但有加速技术。
可微性 通常不可微,难以直接用于端到端梯度优化。 天然可微,与深度学习框架无缝集成。
可编辑性/合性 编辑直观(移动顶点、删除面),易于组合和分解场景。 编辑困难,修改场景的一部分可能需要重新训练或复杂技术。
增量更新 易于添加/删除物体。 增量式更新(添加新物体而不影响旧场景)是前沿研究课题。

Rule-of-Thumb: 分层与混合表示是当前工程的最佳实践。例如,一个自动驾驶系统可以:

  • 使用高效的隐式表示(如 3D Gaussian Splatting)来建模大规模的静态背景(城市、道路)。
  • 动态障碍物(车辆、行人),则使用显式的、带运动学模型的包围盒或简单网格进行跟踪和预测。
  • 机器人自身,使用其精确的 URDF (CAD) 模型。 这样可以在保证全局感知真实感的同时,满足高频、实时的规划与控制需求。

6.9 系统集成:与视觉、语言、行动模态的接口设计

3D 隐式结构是 VLA 系统的中心枢纽,它提供了统一的、物理上致的世界表征,作为各个模态交互的“共同语言”和“事实来源”。

  • 视觉接口:3D 作为特征预处理器和增强器 视觉编码器不仅处理原始图像 $I_t$,还可以将从 3D 模型中渲染出的多种“干净”视图作为额外输入,这可以看作是一种基于 3D 模型的自注意力机制:

    • 特征解耦: 渲染出无光照变化的“反照率”图、纯几何的“法线”图,帮助下游网络解耦形状、材质和光照。
    • 虚拟视图合成: 在规划路径时,可以合成“拐角后”的虚拟视图,辅助决策。
  • 语言接口:实现真正的物理世界“接地”(Grounding) 这是连接抽象符号与具体感知的关键桥梁。通过将 CLIP 特征蒸馏到 NeRF 中(如 LERF),我们可以实现开放词汇的 3D 语义查询,API 接口可能如下: regions = scene_model.query_semantic(text_prompt="the handle of the microwave") regions 会返回一个或个 3D 包围盒或点云,这些区域在语义上与文本提示高度相关。这使得语言指令可以直接转化为规划模块可以理解的 3D 空间目标。

  • 行动接口:在物理一致的空间中进行规划与验证 行动规划器(如 RRT, TrajOpt)不再是在离散的障碍物列表上工作,而是在一个连续的、可微的成本场上进行优化。NeRF 的体密度场 $\sigma(\mathbf{x})$ 可以直接被用作规划中的碰撞成本项*。整个交互循环可以形式化为: Planner -> Propose_Trajectory(start, goal, cost_field=NeRF.density) Verifier -> Check_Feasibility(trajectory, robot_dynamics_model) Controller -> (if ok) -> Execute(trajectory)


本章小结

本章的核心论点是,为 VLA 模型引入 3D 时空结构作为“物理支架”,是其从“模式识别”迈向“物理交互”的质的飞跃。

  • 核心动机: 克服 2D 表征的根本性缺陷(几何歧义、视角依赖等),为模型植入正确的物理世界因果结构。
  • 关键技术: 使用 MLP 逼近 5D 辐射场函数,并通过可微的体渲染,以端到端的方式从 2D 图像集合中学习 3D 结构和外观。
  • 学习范式: 核心监督信号是多视角图像间的光度一致性,并可通过语义、几何等先验进行增强,具备强大的自监督学习能力。
  • 核心应用与功能:
    1. 基于模型的未来预测: 在 3D 物理空间预测状态,再渲染回 2D 视图,天然处理遮挡。
    2. 持久化世界模型: 作为长期记忆,支持增量式场景构建和跨任务推理。
  • 安全与鲁棒性的基石:
    1. 矛盾检测器: 在线比较观测与渲染视图,成为系统健康的“看门狗”。
    2. 可行性检查 (Feasibility Check): 充当物理“防火墙”,确保高层规划安全可执行。
  • 系统集成: 3D 结构是 VLA 的中心枢纽,为视觉提供增强特征,为语言提供物理世界的“代物”,为行动提供规划和验证的物理空间。

常见陷阱与错误 (Gotchas)

  1. 混淆“表示”与“推理”: NeRF 本身只是一个(通常是静态的)场景的几何与外观表示。它不具备固有的物理推理或规划能力。必须在其上构建额外的推理模块(动力学预测器、任务规划器等)才能发挥其价值。
  2. 忽视相机位姿的精度: “Garbage In, Garbage Out.” NeRF 的训练效果对输入的相机位姿极为敏感。在真实机器人应用中,一个高质量的实时 SLAM/VIO 系统是必需的前置条件。位姿的微小漂移都可能导致重建的几何结构严重失真。
  3. 静态世界假设的滥用: 基础 NeRF 及其许多变体都假设场景是刚性且静态的。在有大量非刚性运动或动态物体的场景中直接使用,会导致严重的动态模糊和鬼影。必须谨慎选择支持动态场景的模型(如 Nerfies, D-NeRF),并理解它们对动态的建模方式局限性。
  4. 计算成本与实时性: 尽管 Instant-NGP, 3D Gaussian Splatting 等技术已极大提升了速度,但在计算资源受限的嵌入式机器人平台上,实现 NeRF 的实时训练和高分辨率渲染仍然是一个巨大的工程挑战。这通常需要模型蒸馏、硬件加速(如利用 Tensor Cores)和混合表示等优化手段。
  5. 尺度模糊问题 (Scale Ambiguity):仅从单目视频训练的 NeRF 是尺度模糊的——它无法确定场景的绝对物理尺寸。这对需要米制单位操作的机器人是致命的。解决方法包括:使用立体相机、RGB-D 传感器提供深度先验,或通过传感器融合(如融合 IMU 测量的重力向量和运动积分)来恢复绝对尺度。
  6. “空旷空间”的表示难题 (The "Empty Space" Problem): NeRF 通过低体密度 $\sigma$ 来表示空旷空间。但在训练数据稀疏的区域,网络可能无法准确地区分“未被观测到的空间”和“真正空旷的空间,这可能导致路径规划器过于保守,不敢穿越它认为“不确定”的区域。需要额外的正则化或先验来鼓励模型将未观测区域预测为空。