从单张 2D 图像重建 3D 物体是计算机视觉中经典的“病态问题 (ill-posed problem) ”之一。当你看到一张奔跑的马的照片时,你的大脑会瞬间理解其 3D 形状、肢体的关节运动以及被遮挡的部分。然而,对于计算机来说,从像素网格中推断出这种几何结构极其困难,尤其是当物体是可变形的 (deformable) ——即可以弯曲、伸展和移动 (如动物或人类) 时。
传统上,研究人员通过将复杂的 3D 网格模板拟合到图像或求解严格的几何方程来解决这个问题。但最近,一种新的范式出现了: 要求神经网络直接逐像素地预测几何结构。
在这篇文章中,我们将深入探讨 DualPM , 这是一篇介绍名为 双重点图 (Dual Point Maps) 这种巧妙新表示法的研究论文。通过为单张图像预测不是一个,而是两个几何映射图,该方法成功地恢复了关节动物的 3D 形状和姿态,甚至通过非模态 (amodal) 重建解决了物体“不可见”部分的问题。
转向点图 (Point Maps)
要理解 DualPM,我们需要先了解 点图 (Point Map) 的概念。
历史上,针对 3D 的深度学习方法通常预测 深度图 (depth maps) (即每个像素到相机的距离) 。虽然有用,但深度图有局限性;在不知道相机内参 (如焦距) 的情况下,它们无法本质地告诉你一个点在 3D 空间中的确切位置。
最近的突破,如 DUSt3R,提出了一种不同的方法: 与其预测深度,不如训练网络输出一个 点图 (Point Map) \(P\)?点图将图像中的每个像素 \(u\) 与相机坐标系中的特定 3D 坐标 \((x, y, z)\) 关联起来。
\[ u \rightarrow P(u) \in \mathbb{R}^3 \]这简化了许多几何任务。然而,对于可变形物体,标准的点图有一个主要弱点: 它给了你形状,但没有告诉你任何关于 姿态 (pose) 的信息。如果你重建了一匹正在奔跑的马,你会得到一个奔跑状态的马的 3D 网格,但计算机不知道“这个点”对应的是“左膝盖”,或者这条腿相对于静止状态当前弯曲了 45 度。
核心概念: 双重点图
这就是 DualPM 创新的地方。作者认为,要完全理解一个可变形物体,我们需要同时解决两个问题:
- 这个点在当前场景中的位置在哪里?( 姿态/Posed )
- 这个点在物体上的身份是什么?( 规范/Canonical )
为了实现这一点,网络从单张输入图像中预测 双重点图 。
1. 姿态图 (The Posed Map, \(P\))
这是标准的重建。它将像素 \(u\) 映射到相机坐标系中的 3D 位置。它准确地表现了物体在图像中出现的样子,包括其当前的变形和方向。
2. 规范图 (The Canonical Map, \(Q\))
这是改变游戏规则的部分。这张图将像素 \(u\) 链接到物体 中性、静止姿态版本 上的对应 3D 点。
想象一匹完全静止站立的“模板”马。规范图告诉我们,照片中的特定像素对应于那匹模板马上的特定坐标。这张图是 姿态不变的 (pose-invariant) 。 无论照片中的马是在跳跃、睡觉还是奔跑,“鼻子”的像素总是映射到规范空间中的“鼻子”坐标。

如图 1 所示,这两张图之间的关系非常强大。姿态图 (\(P\)) 和规范图 (\(Q\)) 之间的差异代表了 变形流 (deformation flow) (\(P - Q\)) 。它在数学上描述了物体是如何从中性状态扭曲和移动到观察状态的。
有了这种双重表示,我们可以免费获得对应关系。如果我们想在两张不同图像 (\(I_1\) 和 \(I_2\)) 中找到马身上的同一个点,我们只需寻找映射到相同规范坐标的像素:

架构: 如何预测这些图
研究人员设计了一种神经网络架构,专门利用 \(P\) 和 \(Q\) 之间的关系。它不仅仅是并排预测它们;它使用其中一个来帮助寻找另一个。

这一过程如图 3 所示,遵循以下步骤:
- 特征提取: 输入图像 \(I\) 通过特征提取器 (使用预训练权重,如 DINOv2) 以获得丰富的图像特征 \(F\)。
- 预测规范图 (\(Q\)) : 网络首先预测规范图。这是合理的,因为预测 \(Q\) 本质上是一个分类任务——为每个像素分配一个“身体部位身份”。这对网络来说更容易学习,因为它对相机角度或动物的姿态是不变的。
- 预测姿态图 (\(P\)) : 这里有一个巧妙的架构选择。姿态图 \(P\) 的预测是 以预测的规范图 \(Q\) 为条件 的。

通过将点的“身份” (\(Q\)) 输入到几何结构 (\(P\)) 的预测器中,网络在决定将点放在哪里之前,就已经知道它正在重建什么。这显著提高了泛化能力。
看见不可见之物: 非模态重建 (Amodal Reconstruction)
标准点图的一个主要局限性是它们只代表相机能看到的部分。如果从侧面看一匹马,身体的另一侧就丢失了。这被称为 自遮挡 (self-occlusion) 。
为了重建 完整的 3D 形状,DualPM 引入了 非模态点图 (Amodal Point Maps) 。
网络不是将一个像素映射到单个 3D 点,而是将一个像素映射到 一系列点 。 想象一下从相机通过特定像素发射一条射线。这条射线可能会击中马的可见侧 (入射点) ,穿过身体,并从另一侧穿出 (出射点) 。

如图 2 可视化所示,网络预测点的层级 \((p_1, p_2, \dots)\)。
- 第 1 层: 可见表面。
- 第 2 层: 表面的背面 (隐藏) 。
- 后续层: 射线可能穿过的任何其他褶皱或肢体。
通过预测这些有序的层,该方法重建了物体的整个体积,而不仅仅是可见的外壳。
使用合成数据训练
训练用于 3D 的深度学习模型通常需要海量数据。获取真实动物的 3D 真值 (ground truth) 数据几乎是不可能的 (你无法轻易给野生斑马穿上动作捕捉服) 。
作者通过完全在 合成数据 上进行训练解决了这个问题。他们使用了 “Animodel” 数据集,该数据集由绑定了骨骼的动物 3D 模型组成。

训练流程 (图 4) 包括:
- 获取一个 3D 模型 (例如,一匹马) 。
- 随机对其进行关节活动 (摆姿态) 。
- 从随机视角和随机光照下进行渲染。
- 从渲染器生成真值 \(P\) 和 \(Q\) 图。
值得注意的是,该模型 每个类别仅在仅仅一个或两个 3D 资产上进行训练 。 人们可能预期模型会过拟合到那个特定的 3D 网格。然而,因为网络学习的是预测规范坐标 (结构身份) ,它令人惊讶地能很好地泛化到同一类别中不同动物的真实照片上。
为了强化学习,他们使用了一个损失函数,该函数将预测点与真值进行比较,并按置信度加权:

实验结果
DualPM 方法在应用于真实世界图像时显示出了令人印象深刻的结果,明显优于 3D-Fauna 等先前的最先进方法。
定性比较
在下方的图 5 中,你可以看到重建质量的差异。
- 输入视角 (Input View) : 叠加在原始图像上的重建。
- 新颖视角 (Novel Views) : 旋转以展示 3D 结构的重建。
DualPM (Ours) 恢复了复杂的细节和正确的关节连接,而 3D-Fauna 在动物处于困难姿态 (如第一行中跳跃的马) 时,往往会产生“糊状”或扭曲的形状。

为什么条件化很重要
作者进行了消融实验 (ablation study) ,以证明以规范图 \(Q\) 为条件来预测姿态图 \(P\) 是至关重要的。
在图 7 中,我们看到当 \(P\) 仅以 \(Q\) 为条件 (下排) 时,泛化能力非常稳健。如果网络过多地依赖原始图像特征 \(F\) (上排) ,它可能会被合成训练集中未见过的纹理或光照搞混。\(Q\) 充当了一个稳定的语义桥梁。

对新物种的泛化
也许最令人惊讶的结果是模型的 零样本 (zero-shot) 能力 。 一个 仅 在马上训练的模型被测试用于牛和羊的图像。因为这些四足动物共享相似的拓扑结构 (四条腿、头、尾巴) ,对马的“规范”理解相当好地迁移到了其他动物身上。

应用: 骨骼拟合与动画
因为 DualPM 提供了规范图 (\(Q\)) ,我们确切地知道网格的每个部分在其中性姿态下 应该 在哪里。这使得将 3D 骨骼拟合到重建结果中变得轻而易举。
一旦拟合了骨骼,静态图像就可以变得栩栩如生。研究人员展示了他们可以拍摄一张马的单张照片,对其进行重建,拟合骨骼,然后应用动作捕捉数据来制作马奔跑的动画。

结论
双重点图 (Dual Point Maps) 代表了 3D 计算机视觉向前迈出的重要一步。通过将问题分解为“它在哪里” (\(P\)) 和“它是什么” (\(Q\)) ,研究人员将复杂的几何推断问题转化为可管理的学习任务。
能够利用极少的合成数据进行训练并泛化到真实世界图像,表明这种表示法捕捉到了可变形物体几何结构的某些本质。此外,非模态 (amodal) 层的引入解决了长期存在的自遮挡问题,使计算机能够像人类一样“想象”物体的不可见侧面。
对于该领域的学生和从业者来说,DualPM 凸显了选择正确 表示法 (representation) 的重要性。有时,解决难题的关键不是更大的网络,而是定义输出的更聪明的方式。
](https://deep-paper.org/en/paper/2412.04464/images/cover.png)