Implicit_Functions_in_Feature_Space_for_3D_Shape_Reconstruction_and_Completion.Supplementary_Material

ZhuYuanxiang 2023-09-08 15:32:14
Categories: Tags:

特征空间中的隐式函数应用在3D形状的重建和完成–补充材料

Implicit Functions in Feature Space for 3D Shape Reconstruction and Completion.Supplementary Material.pdf

原始的项目代码

翻译与注释后的项目代码

在下文中,我们将详细介绍我们的论文主体中[^1]关于实验中使用的超参数,并且说明了在形状解决期间使用的连续特征提取(Sec01)。此外,我们解释了我们用于创建人体数据集的水密方法(Sec02)。最终,我们展示了单视图人体重建实验的结果(Sec03)。在这里,我们还基于逐帧的基础上演示了我们的方法用于动态序列重建时的性能。

Sec01 实现的细节

超参数

接下来,给出了论文主体中实验的超参数。关于符号的详细描述,请参考主文档的Sec03。

在所有的实验中,所有点样本的基准占位数为$S=100,000$。在训练期间,子样本的大小$R=50,000$被和。在所有实验中对于等式(5)中损失$\mathcal{L_B}(\mathbf{w})$的优化,我们使用 Adam 优化器,参数为$lr=1e-4$,$betas=(0.9,0.999)$,$eps=1e-8$,$weight_decay=0$。

第一个特征栅格$\mathbf{F}_1$的分辨率为$N=32$用于$32^3$体素的超分辨率,$N=128$用于$128^3$体素的超分辨率,$N=128$还用于ShapeNet的点云重建,$N=256$用于单视角重建。

解码器$f()$由3个用于人体体素实验的全连接层和4个用于其他实验的全连接层组成。为了在表面的附近采样基准点,我们使用$\sigma_1=0.01,\sigma_2=0.15$用于 ShapeNet 从 3000 点中重建,$\sigma_1=0.01,\sigma_2=0.1$用于其他 ShapeNet 实验,$\sigma_1=0.015,\sigma_2=0.15$用于人体超分辨率,$\sigma_1=0.015,\sigma_2=0.2$用于单视图重建。

为了沿着 XYZ 轴实现特征提取,我们使用距离 $d=0.035$ 用于 ShapeNet $32^3$的体素化,$d=0.072$用于其他实验。

我们使用 $n=4$ 类特征栅格用于 $32^3$ 的人体和 ShapeNet 体素化,$n=5$ 用于 $128^3$ 的人体体素化,$n=6$ 用于 ShapeNet 的 $128^3$ 和 3000 个点,$n=7$ 用于单视图重建。代码参考:https://virtualhumans.mpi-inf.mpg.de/ifnets/

连续特征抽取

接下来,我们进一步描述主体论文中的等式(3)。为此,我们简要地回顾一下 IF-Nets 的形状解码(详见论文主体的Sec0302):给定输入形状 $\mathbf{X}$ 的编码器 $g$ 生成形状编码 $g(\mathbf{X})=\mathbf{F}_1,\cdots,\mathbf{F}_n$。解码是以逐点的方式完成的,即给定一个查询点 $\mathbf{p}\in\mathbb{R}^3$ 及其编码,解码器的任务是分类这个点在形状的内部还是外部。为了这个目的,解码器 $f$送入局部和全局特征,这些特征是在点 $\mathbf{p}$ 中从编码器 $\mathbf{F}_1,\cdots,\mathbf{F}_n$ 中抽取的。为了编码局部近邻信息到点的编码中,哪怕在早期的栅格中(如:小感受野的$\mathbf{F}_1$),我们在查询点的位置 $\mathbf{p}$ 本身以及沿着笛卡尔坐标轴距离为 $d$ 的周围点提取特征:
$$
{\mathbf{p}+a\cdot\mathbf{e}_i\cdot d\in\mathbb{R}^3|a\in{1,0,-1},i\in{1,2,3}}
$$
其中,$d\in\mathbb{R}$是中心点$\mathbf{p}$的距离,$\mathbf{e}_i\in\mathbb{R}^3$是第$i$个笛卡尔坐标单位向量。图1描述了这个采样策略。从局部近邻中采样的附加点描述为绿色点。

image-20220217102408881

图1:用于特征抽取的定位描述。为了在局部近邻中增加信息到点编码中,我们不仅在查询点$\mathbf{p}$本身,还在沿着笛卡尔坐标在距离$d$内的环绕点(绿色点)上抽取特征。

Sec02 人体数据集的水密性

对于我们的人体数据集,为了计算基准占用,我们首先需要全局的水密扫描。因此,不丢失需要的细节则至关重要。为此,我们开发了一种新的水密算法。我们确定隐式空间中3D点的占用值,而不是显式地操作网格。我们称这种方法为隐式水密法。

我们假设,每个物体都像在现实世界中一样拥有一定的厚度。请注意,这种假设对于人体数据集的所有扫描都是成立的,但是有的时候对于仅由人工生成的网格的一个表面表示的薄物体则不能成立。为了计算点 $p\in\mathbb{R}^3$ 在网格的内部还是外部,我们计算穿过$p$ 平行于其中一个笛卡尔坐标(如图2左中的X坐标)的光线。对于网格内部的点(如:$p_1$),光线在穿过该点之前必须与表面相交奇数次,并且总共相交偶数次,过程如:光线进入网格,经过该点,然后离开网格。对于网格外的点(如:$p_2$),光线在穿过该点之前必须与曲面相交偶数次,过程如:光线在通过点之前进入和离开网格。因此,对于没有孔的网格,这种碰撞检测足够计算占用率。现在,考虑一条光线在穿过对应点(如:$p_3$)之前或者之后遇到表面上的一个孔,于是穿过孔的光线与表面相交的次数为奇数次。现在,我们可以将每个点分为网格内部(绿色)、网格外部(红色)和未知(白色)。参见图2(中)。为了对剩余的未知点进行分类,我们将对象旋转一定的角度,并且对未分类的区域重复分类(图2:右)。这个过程重复多次,直到收敛,剩余的未知点被认定为外部。在人体数据集上 ,围绕XYZ轴的三次90度旋转足以获得良好的结果。

image-20220217114255976

图2:隐式水密算法的可视化。

Sec03 更多结果

单视角人体重建

在图3中,我们展示了从部分点云中重建全身穿衣人体问题的更多定性结果。所有的点云只包含来自于一个视点的数据,并且没有对象背面的信息——典型的深度相机的输出。

image-20220217114339761

图3:单视角人体重建的更多结果

单视角视频重建

在这个单视角视频重建的附加实验中,我们从BUFF[^2]数据集中重建了一个对象的移动序列。给定的输入是运动人体的单视角点云,其背部被完全遮挡,即:点云仅描述了人的正面。

准确地说,输入是以每秒60帧采集的297帧序列,即大约5秒长。为了众BUFF数据集的4D扫描中生成单视角点云,我们仅使用$250\times 250\text{px}$分辨率,在对象的可视面上生成每帧大约5000个点。将深度像素反向投影到3D空间生成单视角点云。为了这个任务,我们没有在IF-Nets中增加额外的时间约束。相反,我们在逐帧的基础上直接应用来自先前实验的用于单视图重建的训练好的网络。

为了成功地完成这个任务,IF-Nets必须满足静态单视图重建的要求,即:重建未知关节,保留良好的细节,并且同时补全极其不完整的数据。对于这个动态单视图重建任务,IF-Nets增加了测试以展示它们的泛化能力:a)对动态数据(运动)的泛化和b)对训练期间未见的新数据源的泛化。动态数据尤其具有挑战性,因为其重建必须在时间和空间上平滑。

图4、5、6展示了运行序列的9个帧。输入点云在第一列中展示了前视图,在第二列中展示了侧视图。第三列与第四列类似地展示了IF-Nets的重建。详情请参考补充的视频以了解完整的序列重建。

同样,IF-Nets确实保留了输入中存在的细节,如:衣服褶皱、发型或者面部细节。此外,IF-Nets合理地补全了对象的后面。这两个属性都展示了对未见过的数据源的良好的泛化能力。尽管没有对序列数据进行训练,但是将结果序列作为视频观看会展示出令人惊讶的时间平滑重建性能。这个表明,IF-Nets允许连贯地重建单视图视频,同时在服装细节和各种姿势方面具有高度的多样性。

image-20220217114437485

图4:单视角点云和子序列帧的重建(从上到下)。给定的输入从BUFF数据集中(左)提取的一系列运行中的背面完全遮挡的人体单视角点云的序列。重建(右)是逐帧计算的。IF-Nets仅在来自于人体数据集的静态单视图上训练。结果表明,IF-Nets泛化到新的数据源和泛化到训练期间的未知姿势,其生成可以保证时间的一致性。

image-20220217135222743

图5:图4的延续,单视角点云和子序列帧的重建。

image-20220217135319517

图6:图4、5的延续,单视角点云和子序列帧的重建。