一个用于高分辨率三维形状合成的混合表示方法 | NeurIPS 2021
DMTet是Deep Marching Tetrahedra的简称,其中Tentrahedron是四面体的意思。而这个技术的核心在于,使用者仅需提供简略的输入(体素/点云),就能转成高清的3D Mesh。
由左向右看,DMTet利用定义在可变形的四面体网格中的SDF来隐式表示3D物体表面。可变形四面体网格的好处在于,能够较有效率的去表示物体的几何形状。更仔细看可以发现,SDF的值是被定义在四面体的顶点中,剩余空间的SDF则是透过对这些顶点的线性内插取得。
为输入的点云/体素初始化一个粗糙的四面体网格,然后使用神经网络预测每个顶点的SDF值。
首先,使用PVCNN作为输入编码器提取特征向量Fvol(v,x),之后使用多层感知机(MLP)来预测顶点的SDF值:
DMTet在学习的过程中若判断四面体有包含到物体表面,则此时会再将该四面体切成八小块,如下图所示,目的是增加四面体网格的分辨率,特别是在预测表面附近,以更好地捕捉形状的细节。
体积细分结束后,DMTet会对四面体网格进行表面细化,将不包含在边界四面体内的顶点剔除掉,以节省存储资源。
最右边输出的部分,DMTet也有针对进行表面细化,并将这些切割参数(例如切割出来的Vertices位置) 也视为整体Deep Learning的一部分。
由左向右看,Generator的Input若是Point Cloud Data (PCD),则会以PVCNN作为Encoder; 而Input若是Voxel Data,则是对表面进行采样。接着会将前述步骤得出的特征向量带入MLP进行SDF的预测。得出初始SDF值后,会开始反覆地对物体表面预测进行优化,也就是表面细化这个步骤。
生成器(Generator)的作用是接收一个潜在向量(通常是随机噪声)作为输入,并生成与训练数据相似的样本。生成器的目标是生成逼真的样本,以至于判别器无法准确区分生成的样本和真实样本。生成器可以看作是一个生成模型,通过学习训练数据的分布特征,生成与之相似的新样本。
判别器(Discriminator)的作用是接收样本(可以是真实样本或由生成器生成的样本)作为输入,并预测样本的真实性。判别器的目标是对样本进行分类,判断样本是真实的还是生成的。判别器可以看作是一个判别模型,它学习如何区分真实样本和生成样本,并提供对生成样本的反馈信号给生成器。
生成器和判别器通过对抗训练的方式相互竞争和协作。生成器的目标是欺骗判别器,使生成的样本越来越接近真实样本,以至于判别器无法准确区分。判别器的目标是尽可能准确地分类样本,使得真实样本和生成样本之间的差异更加明显。通过迭代的对抗训练过程,生成器和判别器不断调整自己的参数,以达到一个平衡点,最终生成器能够生成逼真的样本,而判别器无法准确区分真实和生成样本。
首先第一步是基于SDF的值去找出物体表面的边界四面体。如上图橘色区所示,DMTet会基于红点SDF (在物体表面内)去建出构建图G =(Vsurf,Esurf),其中Vsurf,Esurf对应于Tsurf中的顶点和边,并通过GCN去预测橘区内剩余顶点的位置的Offset ∆vi以及SDF值的预测误差∆s(vi )。
上式中Nsurf是边界四面体中的顶点数量,f'vi是将vi, s(vi), Fvol(vi, x)以及f(vi)衔接起来的向量。而更新vi的方式如下:
v 'i = vi + ∆vi s(v 'i ) = s(vi) + ∆s(vi)
表面细化有助于改善局部几何结构,通过调整顶点位置和SDF值来优化形状的表面细节。
MT基于s(v)的符号确定四面体内部的表面类型,如上图所示。构型总数为24 = 16,考虑旋转对称性后,分为3种独特的情况。一旦四面体内部的表面类型被识别,等值面的顶点位置在沿着四面体的边缘的线性插值沿着的零交叉处被计算。
而生成器的最后一个步骤,则是将通过MT取出的网格,也通过GCN进行表面细分,预测顶点位置,如下图所示:
DMTet用3D CNN DECOR-GAN作为Discriminator的架构,将基于Ground Truth Meshes所算出的SDF与生成器预测的顶点所算出的SDF作为Input,来学习分辨网格上的顶点是来自生成器所预测的还是来自Ground Truth Meshes。
首先从目标网格中随机选择一个高曲率顶点v,并计算v周围体素化区域的地面真值有符号距离场Sreal 。同样,我们计算同一位置的预测表面网格M的有符号距离场,得到Spred 。将Sreal或Spred与位置v中的特征向量Fvol(v,x)一起沿着判别器中。判别器预测指示输入是来自真实的还是生成的形状的概率。
表面对齐损失Lcd
法线一致性损失 Lnormal
符号距离函数损失 LSDF
VT 是四面体网格中所有顶点的集合。
s(vi) 是顶点 vi处的符号距离函数值,表示该点到最近表面的最短距离。
顶点变形正则化损失 Ldef
生成器的对抗损失 LG
判别器的损失 LD
D(Mgt) 是判别器对真实数据 MgtMgt 的预测。
D(Mpred)D(Mpred) 是判别器对生成数据 MpredMpred 的预测。
判别器的目标是最大化其区分真实数据和生成数据的能力。因此,判别器的损失函数包括两部分:
D(Mgt)−1)^2:这部分鼓励判别器将真实数据的预测值接近1。
在DMTET(Deep Marching Tetrahedra)模型中,更新过程涉及到生成器和判别器的交替训练,这是典型的生成对抗网络(GAN)的训练方式。以下是DMTET模型更新的基本步骤:
初始化网络参数:
训练循环:
生成器的前向传播:
判别器的前向传播:
计算判别器的损失 LD:
更新判别器:
计算生成器的损失 L:
更新生成器:
重复训练循环:
模型评估:
After surface refinement, we perform the volume subdivision step followed by an additional surface refinement step. (第五页)
pipline中MT层前一个图的位置
类别: text-3D