引言

想象一下,一个机器人第一次走进厨房。它看到柜台上有一个马克杯。为了拿其这个杯子,机器人需要确切地知道它在 3D 空间中的位置以及它的朝向——这就是所谓的6D 姿态估计 (6D pose estimation) 问题。

历史上,这是一个僵化的过程。机器人依赖于它们可能遇到的每个物体的精确 CAD 模型 (数字蓝图) 。如果你没有那个特定的“大厨”马克杯的 CAD 文件,机器人就如同盲人摸象。近年来,深度学习的进步试图通过“类别级”训练 (教机器人通用的马克杯长什么样) 或实时重建的“无模型”方法来解决这个问题。

然而,这些较新的方法面临一个致命的缺陷: 幻觉 (Hallucination)

当机器人从单张 2D 图片重建 3D 物体时,它必须猜测物体背面是什么样子。生成式 AI (特别是扩散模型) 非常擅长猜测,但它们经常“产生幻觉”,生成错误的几何形状。如果机器人相信了一个实际上并不存在的幻觉手柄,抓取就会失败。

这就是 UnPose 的用武之地,这是由华为诺亚方舟实验室和多伦多大学的研究人员提出的一个开创性框架。UnPose 引入了一种原则性的方法来处理零样本姿态估计中的“未知数”。UnPose 不会盲目信任生成模型,而是计算不确定性 。 它知道自己何时是在猜测,何时是确定的,从而能够建立随时间自我完善的 3D 表示。

图 1: UnPose 方法概览。(a) 输入 RGB-D 场景。(b) 物体分割。(c) UnPose 生成带有不确定性的 3D 先验。(d) 最终的 3D 高斯泼溅重建和全局一致的姿态估计。

在这篇文章中,我们将拆解 UnPose。我们将探讨它如何在不成为幻觉受害者的情况下利用扩散模型,如何利用 3D 高斯泼溅 (3D Gaussian Splatting) 进行实时建图,以及它如何让机器人在没有任何先验知识的情况下操作新颖物体。

核心问题: 认知不确定性

要理解 UnPose,我们必须首先了解当前“无模型”姿态估计的局限性。

在无模型设置中,系统拍摄物体的单张图像并试图建立 3D 模型。现代方法通常使用扩散模型 (Diffusion Models) ——即 DALL-E 或 Midjourney 背后的技术——经过训练将 2D 图像转换为 3D 形状。

然而,单一视角不足以定义 3D 形状。当扩散模型填充物体看不见的背面时,它是基于训练数据进行预测的。这导致了认知不确定性 (Epistemic Uncertainty) ——源于知识匮乏的不确定性。

现有的方法通常将生成的 3D 模型视为真值 (Ground Truth) 。它们没有量化模型对自己预测的置信度。如果模型产生了一个不存在的特征幻觉,机器人会将其视为实体几何结构,从而导致跟踪失败或抓取失败。UnPose 通过询问扩散模型不仅看到什么,还询问它有多自信来解决这个问题。

UnPose 框架

UnPose 是一个将单张 RGB-D 图像转换为具有精确 6D 姿态的精细化、带纹理 3D 模型的管道。它以增量方式执行此操作,随着机器人移动并观察到物体的更多部分而改进模型。

图 2: UnPose 管道。从通过扩散和不确定性估计进行初始化开始,转移到 3D 高斯泼溅映射,再通过后端优化和姿态估计进行细化。

如图 2 所示,该架构由四个主要支柱组成:

  1. 初始化 (Initialization) : 生成带有不确定性的初始猜测。
  2. 3D 高斯泼溅 (3DGS) 映射 (3D Gaussian Splatting Mapping) : 构建物体表示。
  3. 姿态估计 (Pose Estimation) : 确定位置和方向。
  4. 后端优化 (Backend Optimization) : 随着新帧的到来优化图。

让我们一步步分解这些步骤。

1. 初始化: 驯服扩散模型

该过程从单帧 RGB-D 图像开始。系统对物体进行分割 (使用标准分割工具) ,并将图像传递给预训练的多视图扩散模型 (具体为 Wonder3D) 。

通常,Wonder3D 只会输出物体不同角度的图像。然而,UnPose 需要知道这些像素的不确定性 。 为了在不从头开始训练新模型的情况下实现这一目标,作者使用了一种称为最后一层拉普拉斯近似 (Last-Layer Laplace Approximation, LLLA) 的技术。

通过贝叶斯推断估计不确定性

目标是在给定的扩散时间步 \(t\) 下,近似噪声状态 \(\mathbf{x}_t\) 的噪声预测 \(\epsilon_t\) 的分布。作者将其近似为高斯分布:

公式 1: 噪声预测分布的高斯近似。

这里,\(\epsilon_{\theta}\) 是来自扩散模型的标准预测,而 \(\Sigma_{\epsilon_t}\) 是从 LLLA 推导出的协方差。

然而,扩散模型是分步工作的。步骤 \(t\) 的不确定性会影响步骤 \(t-1\)。作者必须通过反向扩散过程 (特别是 DDIM 采样步骤) 传播这种不确定性。图像状态的更新规则为:

公式 2: 用于确定性采样的 DDIM 更新步骤。

为了跟踪不确定性如何流经此方程,研究人员推导出了方差更新规则。该方程根据当前方差和噪声预测的不确定性计算下一步的方差 (\(\text{Var}(\mathbf{x}_{t-1})\)) :

公式 3: 通过扩散步骤传播不确定性的方差更新规则。

这里的一个关键挑战是项 \(\text{Cov}(\mathbf{x}_t, \epsilon_t)\),它表示噪声图像状态与模型预测之间的协方差 (相关性) 。由于这在数学上难以直接求解,UnPose 使用蒙特卡洛采样 (Monte Carlo sampling) 来估计它:

公式 4: 协方差项的蒙特卡洛估计。

通过运行此过程,UnPose 不仅获得了 3D 视图,还获得了像素级不确定性图

可视化不确定性

这个过程的结果非常直观。在下图中,请看“Variance” (方差) 一列。扩散模型对于类似于输入视图的“Master Chef”罐头部分非常有信心 (紫色/蓝色) 。然而,对于背面或看不见的角度,方差激增 (红色/白色) 。

图 3: 真值 (Ground Truth) 、扩散视图和不确定性 (方差) 的对比。注意在模型“猜测”的未知视角中,方差是如何增加 (变得更亮/更红) 的。

这张方差图是 UnPose 的“秘密武器”。它告诉后续步骤: “相信罐头的正面,但对背面要非常怀疑。”

2. 3D 高斯泼溅 (3DGS) 映射

有了初始的多视图图像及其不确定性图,UnPose 开始构建 3D 表示。作者没有使用沉重的网格或缓慢的 NeRF (神经辐射场) ,而是利用了3D 高斯泼溅 (3D Gaussian Splatting, 3DGS)

3DGS 将场景表示为 3D 高斯 (斑点) 云,每个高斯都有位置、颜色、不透明度和大小。它的渲染速度极快且易于更新。

这里的关键创新在于不确定性图如何指导这些高斯的创建。映射损失函数直接包含了不确定性 \(C(p)\):

公式 5: 不确定性引导的映射损失函数。

在这个方程中:

  • \(D(p)\) 和 \(C(p)\) 是深度和颜色残差。
  • 项 \(C(p)\) 充当权重。

如果扩散模型对某个像素不确定 (\(C(p)\) 很高/不可靠) ,权重就会降低。这可以防止 3D 模型被幻觉破坏。当机器人从相机观察到真实数据时,这些观察结果 (具有低不确定性) 自然会压倒来自扩散模型的微弱、不确定的先验。这确保了 3D 模型保持“开放心态”以接受修正。

3. 姿态估计与后端优化

一旦建立了初始 3DGS 场,系统就需要估计相对于相机的 6D 姿态。

UnPose 使用一种“姿态图”方法。它将每个观测 (关键帧) 视为图中的一个节点,并通过表示相对变换的边连接起来。

  1. 姿态估计: 系统渲染当前的 3DGS 模型,并使用基于 Transformer 的网络 (改编自 FoundationPose) 将其与实时相机观测进行比较。
  2. 几何优化: 为了确保全局一致性,UnPose 优化该图。它最小化跨帧匹配的 3D 点之间的几何误差。

至关重要的是,该优化也通过不确定性进行加权:

公式 6: 通过不确定性加权的几何姿态图优化方程。

这种优化确保了“真实”帧 (来自相机) 将“虚拟”帧 (来自扩散) 拉入对齐状态,缩放并修正幻觉几何以匹配现实。

处理回环检测和重定位

如果机器人丢失了物体跟踪 (由于遮挡或快速移动) ,UnPose 使用 3DGS 模型进行重定位。因为扩散模型提供了物体背面的一些猜测 (即使是不确定的) ,如果物体从新角度被看到,系统就有一个弱先验可以依附,从而使其能够在其他方法可能失败的地方恢复跟踪。

实验结果

增加不确定性真的有帮助吗?作者在标准基准测试 (YCB-Video 和 LM-O) 上测试了 UnPose,并与 GigaPoseSAM-6DFoundationPose 等最先进的方法进行了对比。

定量精度

下图显示了平均 ADD (模型点平均距离) 分数。越高越好。X 轴表示输入帧的数量。

图 5: 在 YCB-V 和 LM-O 数据集上的定量比较。UnPose (红线) 始终优于基线,特别是随着帧数从 1 增加到 16,显示出快速的改进。

  • 单视图性能: 即使只有一帧,UnPose (红色) 的起点也比大多数竞争对手高,因为它的初始扩散猜测具有不确定性感知。
  • 增量改进: 注意陡峭的上升趋势。随着 UnPose 获得更多视图 (从 1 移动到 16) ,它有效地融合新数据以修正初始模型。其他方法通常会停滞不前,因为它们被困在最初的幻觉几何中。

重建质量

重建物体形状的能力与知道其位置一样重要。

图 6: 定性重建结果。与 BundleSDF 和 GOM 相比,UnPose (Ours) 产生的几何形状更清晰,特别是在视图从 1 增加到 16 时减少了噪声并提高了保真度。

在图 6 中,比较 Ours (UnPose) 与 BundleSDFGOM

  • BundleSDF 经常产生“融化状”或不完整的形状。
  • GOM 可能会受到噪声的影响。
  • UnPose 产生清晰、干净的网格,与真值 (GT) 非常相似,尤其是在有 16 个视图可用时。

下表对此进行了量化。UnPose 实现了显著更低的倒角距离 (Chamfer Distance, CD)——衡量 3D 模型与真实物体之间误差的指标——同时比 Wonder3D 等重度依赖扩散的方法快得多。

图 7: 重建保真度和效率。与 Wonder3D 相比,UnPose 实现了低误差 (CD) 和显著更快的运行时间 (b)。

现实世界机器人应用

终极测试是物理机器人。作者在机械臂上部署了 UnPose 以抓取马克杯。这个场景完美地说明了“把手问题”。

  1. 初始视图: 机器人看到马克杯,但把手被遮挡 (藏在后面) 。
  2. 初始猜测: 扩散模型猜测可能有一个把手,但给它分配了高不确定性
  3. 动作: 机器人移动。随着相机露出马克杯的侧面,高不确定性区域被真实数据更新。
  4. 细化: 3DGS 模型更新,把手的几何形状变得坚实且确定。
  5. 抓取: 机器人成功规划了对新确认把手的抓取。

图 4: 现实世界的机器人操作。从单一观测到成功抓取。系统随着新观测揭示把手而更新 3DGS 模型,从而细化抓取姿态。

图 11: 机器人抓取的分步可视化。观测、细化几何形状并执行抓取。

结论

UnPose 代表了我们处理“无模型”机器人技术方式的重大转变。UnPose 不再试图构建一个永远不会犯错的完美重建算法,而是接受 AI 模型会产生幻觉的事实。通过利用贝叶斯推断量化这种不确定性,并将其纳入灵活的 3D 高斯泼溅框架,它构建了一个诚实面对自己未知领域的系统。

这种方法实现了:

  1. 零样本能力: 无需 CAD 模型。
  2. 全局一致性: 将多视图扩散先验与现实世界物理相结合。
  3. 鲁棒性: 防止幻觉导致抓取失败。

随着机器人进入非结构化环境——家庭、仓库和户外——在飞行中自适应学习和细化 3D 几何形状的能力将至关重要。UnPose 证明,有时,更好感知的关键不仅仅是看得更清楚;而是知道自己有多不确定。