我们周围到处都是铰接式物体。每当我们打开门、关上抽屉、打开水龙头或使用剪刀时,我们都会利用对各种物体部件及其相互作用的复杂、基于物理的理解。因此,从视觉观察中重建新型铰接式物体是机器人和混合现实的一个重要问题。在这项工作中,我们的目标是使构建 3D 重建的过程民主化,该重建可以准确描述铰接式物体,包括部件几何形状、分割及其关节关节,如图 1 所示。
图 1. 我们的方法需要在两种关节状态下对物体进行两次 RGB-D 扫描(左)。输出是 3D 重建,其中部分已分割、关节类型已识别且关节轴已估计(右上)。请注意,允许多个关节。生成的数字孪生可以导入基于物理的模拟器进行交互(右下)。
铰接式物体先验学习。
许多研究利用深度学习离线训练大规模 3D 铰接式资产,以学习铰接先验,包括部件分割、运动结构、姿势估计和铰接形状重建。特别是,Ditto和 CARTO与我们的目标相同,即构建对象的完整数字孪生,包括形状重建、部件分割和铰接推理。Ditto建立在 PointNet++之上,以处理多视图融合点云。CARTO通过将立体图像作为输入,为多个对象类别学习单个几何和铰接解码器。虽然上述方法已经显示出有希望的结果,但由于注释的复杂性,在现实世界中收集大量训练数据并非易事。与单个刚性模型相比,3D 铰接式物体模型的可用性也明显有限,无法产生多样化的合成训练数据。这导致我们在实验中验证了分布不均的测试集会遇到困难。相比之下,我们的方法不需要对铰接式资产进行训练,并且可以应用于各种未知的铰接式物体,而不受任何类别限制。
逐个对象优化。
逐个对象优化方法执行测试时优化,以更好地适应新的未知对象。通过绕过 3D 关节资产的学习先验,这种方法理论上可以推广到任意未知对象。Watch-it-move展示了 3D 关节的自我发现,用于新视图合成和重新摆姿势。然而,它关注的是旋转关节和物体,如人类、四足动物和机械臂,而不是这里考虑的日常生活物体。一些工作提出了一种能量最小化方法来联合优化零件分割、变换和运动学,同时需要一系列完整的点云作为输入。在这些方法中,PARIS与本文考虑的设置最接近,它通过对未知物体的初始和最终状态进行两次扫描并构建完整的数字孪生。它专注于具有单个可移动部件的物体,使用单独的神经场分别对静态和动态部分进行建模。正如我们所展示的,这种设计决策会导致鲁棒性和效率降低,从而阻止推广到更复杂的多关节对象,例如我们的方法处理的对象。
通过交互进行关节推理。
先前的研究利用物理交互来创建新的感官信息,从而根据对象状态变化推理关节模型。一些工作率先将交互式感知引入关节模型的估计中。后续研究进一步探索了分层递归贝叶斯滤波器、概率模型、多视角立体几何模型和特征跟踪。Where2Act提出了一个可学习的框架,用于从单个 RGB 图像或点云估计关节对象上的动作可供性,同时仅限于单步交互。AtP学习交互策略以隔离部件,以实现有效的部件分割和运动推理。然而,大多数方法侧重于学习有效部件分割或运动分析的交互策略,而不是以 3D 重建为目标,而 3D 重建是本研究的目标之一。最近的研究将 Ditto扩展为一个交互式设置,从而实现完整的数字孪生。然而,它对预训练的依赖与清晰度先验学习方法存在类似的问题。对完美深度感知且不存在视点问题的假设也阻碍了其直接应用于嘈杂的现实世界数据。
3 方法
我们解决了从两个不同关节状态下对物体的观察构建未知多部件关节物体的数字孪生的问题。具体来说,我们重建物体的每个部件形状和关节模型,给定多视图 RGB-D 观察和物体蒙版 {(I t v , Deptht v , Maskt v )}v=0,...,V −1,其中物体初始状态 t = 0 和最终状态 t = 1 时相机参数已知。通常图像数量 V ≈ 100。我们还假设关节数量已知。
给定两个不同关节状态 t ∈ {0, 1} 下的对象级重建 (Mt , ˜Ω t , Occt , Φ t ),我们旨在发现将它们相互关联的底层关节模型,即状态之间的部分分割和每个部分的刚性变换。我们的关键思想是从关节模型中推导出状态之间的点对应场,并使用从第一阶段获得的丰富几何和外观信息对其进行监督。
对于具有 M 个部件的铰接物体,我们通过以下方式对其从状态 t 到状态 t ′ = 1 − t 的铰接进行建模:1)部件分割场 f t : x 7→ i,将空间点 x ∈ Ot 从状态 t 的物体映射到部件标签 i ∈ {0, . . . , M −1};2)每部件刚性变换 T t i = (Rt i , t t i ) ∈ SE(3),将部件 i 从状态 t 转换为状态 t ′。
对于可微分优化,我们不是将点 f 硬性地分配给部件,而是将部件分割建模为部件上的概率分布。正式地,我们让 P t (x, i) 表示状态 t 中的点 x 属于部件 i 的概率。
P t 实现为基于密集体素的 3D 特征体,后跟 MLP 分割头。对于刚性变换,我们使用 [42] 中的 6D 表示对旋转进行参数化,并使用 3D 矢量对平移进行参数化。现在,我们可以导出点对应场,该场将状态 t 中的任何对象点 x 映射到状态 t ′ 下的新位置 x t→t ′,此时该对象点会随着其所属部分的运动向前移动。该场可以看作是一种“渲染”关节模型以进行监督的方式。正式来说,
该方案类似于经典的线性混合蒙皮。
共享运动。
我们从两个状态开始优化两个关节模型 (f 0 , T 0 )、(f 1 , T 1 )。由于它们描述相同的关节,我们共享部分运动 T 以减少冗余并共享监督信号。正式来说,
对于在状态 t 下从视图 v 拍摄的图像 I t v,我们从状态 t ′ 中选择 K 张图像
I t ′ u
,其中 Nv 是在状态 t ′ 下最接近视图 v 的视点。我们将每个图像对 (I t v , It ′ u ) 馈送到 LoFTR 以获得 L 对稀疏且可能有噪声的像素匹配 Mv,u,t = {(pj, qj)}j。
对于像素对 (p, q),设 r 为从视图 v 穿过 p 的相机光线,则从视图 u 获得的 t ′ 状态的 p 的二维对应关系可以近似为:
其中πu是视点u的投影,w t (x)如公式(8)所示。
匹配损失是所有图像对中所有匹配像素对的平均值:
图 4. 碰撞损失说明。我们的目标是在应用预测的向前运动(将两根棍子向内移动)后检测并惩罚部件之间的碰撞。对于状态 t ′ 下的点 y,我们通过使用每个部件的反向运动(沿箭头向外移动)变换 y 来回溯可能移动到 y 的一组点 Bwd( ] y) ({a, b, c})。然后,我们通过查找其占用率和部件标签来检查使用部件 i 的运动获得的候选点 xi 是否确实是部件 i 中的一个点。最后,我们获得在关节模型下实际上映射到 y 的点集 ←−− Bwd(y)({b, c}),如果有多个点映射到 y,即 | ←−− Bwd(y)| > 1,则报告碰撞。
碰撞损失。
最小化一致性损失的解决方案可能仍然是错误的。如图 3 所示,错误的分割仍然会导致较低的一致性损失。匹配损失也不能完全解决问题,因为像素匹配可能嘈杂且稀疏,并且它们主要限制近表面点,而不适用于物体内部深处的点。另一方面,如果我们查看每个部分变换后的对象 Ot→t ′ = {x t→t ′ = −−→Fwd(x, ft , T t )}x∈Ot ,如图 3(d) 所示,我们确实观察到由于错误分割而导致的伪影,即三角形和底边之间的碰撞。因此,我们建议查看 Ot→t ′ 的整体并检查伪影。图 4 说明了这个想法。为了检测碰撞,我们从状态 t ′ 下的点 y 开始,并回溯状态 t 下给定 (f t, T t) 可能转发到该点的点集,
为了简化,我们考虑 x ∈ ←−− Bwd(y) 跟随 M 个刚性部件运动之一的情况。我们可以迭代所有可能的部件并获得候选集 Bwd(g y),
在训练期间,我们使用 Bwd(g y) 作为近似值。
仅当 xi 位于部分 i 上时,候选点 xi = (Rt i ) −1 (y − t t i ) 才与 y 相对应,这可以通过检查占用率 Occ(x) 和部分分割 P(x, i) 来验证。正式地,我们将 xi 与 y 对应的概率写为
其中Occ(x)由公式(1)定义。
我们通过对所有 xi 的贡献求和来计算与 y 相对应的点的数量,并在结果大于 1 时报告碰撞。正式地,我们将碰撞损失 Lcoll 定义为
其中 y 在单位空间中均匀采样。
处理部分观察。
在许多情况下,由于视点有限或自我遮挡,我们只能观察到物体的一部分。这可能会导致物体重建中出现幻觉区域,从而干扰对应推理。此外,可移动部件的可见部分在不同状态下会有所不同,例如,抽屉是打开的,抽屉是完全关闭的。仅在一种状态下可见的点(例如抽屉内部的点)可能无法在另一种状态的重建中找到对应的点。为了解决这个问题,我们通过将点 x 投影到所有摄像机视图并检查它是否在深度(在投影像素处)的前方超过某个阈值 ϵ 来计算点 x 的可见性。正式来说,
其中 W 表示逻辑或,dv 表示在视图 v 处观察到的深度;πv(x) 表示二维投影;distv(x) 表示沿光轴从 x 到相机原点的距离。
令 U t =
x
表示状态 t 下未观测点的集合。在第一阶段的网格提取过程中,我们通过将这些点的 TSDF 设置为 1 来强制使这些点的空间为空,这样表面重建仅包含观测区域。如果 x t→t ′ (等式 2) ∈ Ut ′ ,即未观测到另一状态下的预测对应关系,我们还将 x 处的点一致性损失降低 wvis 一个因子。将 wvis 设置为一个较小的非零数以避免学习崩溃,即使所有点都对应于未观测点以减少一致性损失。
第二阶段的总损失定义为:
显式铰接对象提取。
给定重建的形状和铰接模型 (Mt , Pt , T t ),t ∈
0, 1},我们可以提取显式铰接对象模型。为了预测关节 i,我们取共享部件运动 T 0 i = (R0 i , t 0 i ),如果
,例如当抽屉打开而不是关闭时。然后,我们计算硬分割 f t ∗ (x) = arg maxi P t ∗ (x, i),并将每个部件网格提取为 P t ∗ i =
v
。
4 实验
4.1 数据集
PARIS 双部件物体数据集。
PARIS创建了一个日常生活中双部件关节物体的数据集,其中包括来自 PartNet-Mobility的 10 个合成物体实例和使用 MultiScan管道捕获的 2 个真实世界物体。每个物体在两个关节状态下被观察到,其中只有一个部分(“可移动部分”)跨状态移动,而另一部分(“静态部分”)保持静止。每个状态的观察包括从上半球的 100 个随机视图捕获的 RGB 图像和物体蒙版。我们还使用与 PARIS 相同的相机参数为合成物体渲染了深度图像,并从原始 RGB-D 图像中检索了真实物体的深度数据。