论文精读(六)GIFS: Neural Implicit Function for General Shape Representation

项目页:GIFS: Neural Implicit Function for General Shape Representation (jianglongye.com)

摘要

近年来,神经隐式函数在高质量三维形状重建方面取得了巨大的成功。然而,大多数作品将空间划分为形状的内部和外部,这将其表现力限制在单层和不透水的形状上。此限制会导致冗长的数据处理(将不严密的原始数据转换为严密的)以及无法表示真实的世界中的一般对象形状。

本文提出了一种新的形状表示方法,用于表示非防水形状和多层曲面形状。我们引入了通用的三维形状隐函数GIFS(GeneralImplicitFunctionfor 3DShape),它以点与面之间的关系代替点与面之间的关系。GIFS不是将3D空间划分为预定义的内部-外部区域,而是对两个点是否被任何表面分隔进行编码。在ShapeNet上的实验结果表明,GIFS在重建质量、绘制效率和视觉逼真度等方面均优于其他方法.

1. 引言

3D形状重建是计算机视觉等领域的一个基本问题。形状表示的选择严重地影响重建质量。近年来,神经隐式函数(NIF)已经实现了具有紧凑表示的高质量和高分辨率重建[9,11,31,47,48]。大多数NIF方法采用神经网络来分类3D点是在表面内部还是外部[47],如图1(a)所示,或者计算从3D点到一个表面的带符号距离[48]。但是,真实的世界中的大多数形状不能简单地由一个无缝曲面表示。

图1.不同方法的比较。以前的作品把空间分成内外像(a)。用于多层形状的一种可能的方法是执行如(b)的多类分类。我们的方法不再为点分配预定义的标签,而是对两个点是否被任何表面分隔进行分类,如(c)所示。在(d)和(e)中,我们分别展示了一个演示形状和一个从 ShapeNet 重构的巴士。

考虑到多层形状(例如,内部有座椅的汽车),3D空间的二分类是不够的。为了解决这个问题,一种可能的方法是将原来的二分类定义扩展到多类分类。我们以双层圆为例,在图1(b)中说明了这一想法。该扩展的局限性在于不同层的形状需要不同的模型。因此,它不能以统一的方法表示一般形状。该方法也将不能表示非封闭形状(例如,服装),因为它们不能被划分成任何数量的区域。

该文在介绍了一种通用的三维形状隐式函数(GIFS)的基础上,提出了一种新的基于GIFS的三维形状隐式函数。沿着此基础上,我们进一步设计了一种从GIFS中提取显式曲面的算法。与图1(a)和(b)所示的将3D空间划分为预定义的类别不同,我们的表示法关注的是每两个3D点之间的关系。具体地说,我们定义了一个二进制标志来指示两个点是否在物体表面的同一侧(参见第3.1用于正式定义)。如图1(c)所示,三个点被不同的物体表面分隔开,我们的方法不再为点分配预定义的标签,而是在它们之间进行比较。我们将三维点嵌入到潜在空间中,并基于它们的嵌入使用神经网络来近似二进制标记。通过这种方式,我们的方法仍然能够分离不同的区域,并且形状由二进制标志的判定边界隐式表示。

与所有以前的NIF模型点和表面之间的关系(占用[47],有符号距离[48]和无符号距离[13])相比,使用GIFS模型不同点之间的关系允许表示一般形状,包括多层和非防水形状。为了从GIFS恢复形状,我们修改了Marching Cubes算法,以从采样的二进制标志构建三角形面。我们在图1(d)中展示了我们的方法表示的演示形状,它是一个非水密平面顶部的双层球。切割较大的球(外表面),以便更好地观察。

ShapeNet [10]上的实验表明,GIFS达到了最先进的性能,并且可以直接在原始数据上进行训练。直接在原始数据上训练不仅避免了繁琐的数据处理,还防止了预处理过程中的准确性损失。与NDF [13]相比,另一种广义形状表示输出点云,由于简单的网格生成,我们的GIFS更有效,视觉上更吸引人。我们在图1(e)中展示了ShapeNet上的重建结果示例,这是一辆内部有多个座位的公共汽车。

我们强调我们的主要贡献如下:

  • 我们引入了一种基于点之间空间关系的新型广义形状表示。
  • 我们设计了一个基于学习的实现GIFS和表面提取算法。
  • 我们的方法在封闭和更一般的形状的3D重建中实现了最先进的性能,并在渲染效率和视觉保真度方面显示出优于现有方法的优势。

2. 相关工作

2.1 学习明确的形状表示

用于3D形状学习的显式形状表示可以大致分为三类:基于点的方法、基于网格的方法和基于体素的方法。

基于点的方法。由于许多传感器(例如,LiDAR、深度相机),点云是用于3D学习的流行表示。基于PointNet的体系结构[50,51]利用maxpool算子来保持置换不变性,并广泛用于从点云中提取几何特征。此外,最近关于点云学习的研究还包括核点卷积[20,58,64]、基于图的体系结构[42,61]、Transformer [27,29]等,点云也被用作3D重建中的输出表示[13,19]。然而,与其他表示不同,点云不描述拓扑,并且需要非平凡的后处理步骤[5,8,36,37]来生成可渲染表面。

基于网格的方法。网格由一组顶点和边组成,可以定义为一个图。因此,图卷积可直接应用于网格上以进行几何学习[7,26]。在形状重建中,网格也可以被看作是一种输出表示。大多数方法[34,44,52,60]使模板变形,从而限制于固定的拓扑。最近的方法直接预测顶点和面[16,23,25],但不能保证曲面的连续性,而且容易产生自相交面。网格在人类表示中也很流行,并被用于估计人类形状、姿势[33,39,40]和服装[1,6]。基础网格模型[45,49]仍然限制拓扑和细节。

基于体素的方法。体素是2D图像中像素的直观3D扩展。常见的学习范例(即,卷积)可以自然地扩展到体素。因此,体素被广泛用于形状学习[30,32,35]。占位网格是体素表示的最简单用例。然而,由于存储器占用空间的立方增长,网格的分辨率实际上被限制在某一水平[14,43,65]。因此,基于体素的方法难以重建具有精细细节的高保真形状。以有限的训练批次和缓慢的训练[62,63]或复杂的多分辨率实现[28,57]为代价,可以实现更高的分辨率。用用于学习[17,41]的截断符号距离函数[15]代替占用允许子体素精度,尽管分辨率仍然受到固定网格的限制。

2.2 学习内隐形状表征

在过去的几年里,在神经内隐功能的3D形状学习方面取得了很多进展[11,21,24,47,48,53,54,66]。尽管输出有差异(占用率[47,53],有符号距离[22,48]或无符号距离[13]),但它们都学习了一个连续函数来预测查询点(x-y-z)和表面之间的关系。开创性的方法[11,47,48]用全局潜在代码表示形状。采用编码器[11,47]或优化方法[48]来嵌入形状。然后使用解码器从潜在代码重建形状。为了构建一个平滑的潜在空间,利用了一些技术,如课程学习[18]和对抗训练[38]。以下工作[55,56]也使用周期性激活函数将输入位置映射到高维空间以保留高频细节。与全局方法不同,局部方法将3D空间划分为均匀网格[9,12,31]或局部部分[21,22],并且潜在代码随局部网格/部分而变化。由于每个潜码只需要表示局部区域的形状,因此可以保留更好的细节,并且提高了泛化能力。

上述方法依赖于内部和外部分区,因此总是需要繁琐的数据处理来人为地封闭形状,这导致细节和内部结构的非平凡损失。最近的作品[3,4,68]引入了符号不可知学习来从原始数据中学习。然而,输出再次是带符号的距离,因此不能重建一般形状。为了对一般形状进行建模,NDF [13]提出预测无符号距离场(UDF)来表示一般形状。然而,NDF的输出是点云,这不仅依赖于昂贵的后处理步骤,而且难以获得高质量的最终网格。以下工作[59,67]结合法线和梯度来提高重建精度和效率。

相比之下,我们提出预测两个不同的点是否被任何表面分开,并且它允许一般的形状表示。据我们所知,我们的方法是第一个利用神经网络来建模形状表示中不同点之间的关系。由于不同的区域在我们的表示中是分离的,可以使用Marching Cubes-like算法将我们的表示直接转换为网格而不是点云。因此,我们在效率和视觉效果方面优于NDF。

3. 方法

3.1 广义形状表示

我们提出了一种新的形状表示,而不是像[13,22,47,48,53]那样对点和表面之间的关系进行建模,而是专注于不同点之间的关系。我们利用一个二进制标志来指示两个点是否被任何表面分开。具体地说,如果这对点的线段与任何表面相交,则这对点被认为是分离的。

设物体的曲面是一个子集$S \subset R^3 $.给定两个点$p_1 \in R^3$ 和$p_2 \in R_3$.我们可以得到由这两点组成的线段e:$e(p_1,p_2)={p_1 + k*(p_2-p_1)|k\in[0,1] }$

如果线段与曲面相交,则至少有一个点同时属于线段和曲面。用于指示线段是否与表面相交的二进制标志b定义为:

图2(a)示出了二进制标志的示例:被任何表面分开的点1和点2的标志是正的(1),并且点1和点3的标志是负的(0)。

图2.广义形状表示。在(a)中,我们展示了二进制标志的示例。由曲面分隔的点的标志为正,否则为负。在(B)和(c)中,我们展示了如何表示双层圆和非无缝曲线。正面标志以红色粗体显示。

该定义不同于计算机视觉中的连通组件。我们的二进制标志在3D空间中是不可传递的,即,B(p1,p2,S)= B(p2,p3,S)并不意味着B(p1,p2,S)= B(p2,p3,S)= B(p1,p3,S)。这就是我们的定义允许表示非防水形状的原因。

与前面的隐式函数类似,形状仍然由决策边界表示。不同的区域被分开,并且当穿过表面时二进制标志改变。图2(B)和(c)显示了如何表示双层圆和非水密曲线。与圆和曲线相交的点的标志为正(图中红色加粗),其他标志为负(图中灰色)。注意,二进制标志的输入点不限于水平或垂直点,并且在提取表面时分辨率会高得多。

3.2 三维形状的广义隐函数学习

我们建议学习用于3D形状的通用隐式函数(GIFS)来估计二进制标志B。它采用两个3D点p1和p2加上观测X作为输入。本文研究了稀疏点云X ∈ Rn×3的形状重构问题。为了完整起见,我们首先解释编码模块,它在IF-Net [12]之后。然后描述了我们的解码模块和学习过程。我们的方法概述如图3所示。

图3.GIFS概述。我们学习了一个神经隐函数来分类两个点是否被任何曲面分开。首先,将输入点云编码为特征网格。给定两个3D点,从网格中提取对应的特征。然后利用极大池算子保持置换不变性。解码器将融合的特征作为输入,并近似点之间的二进制标志。可使用额外的UDF分支来增强特征的空间感知。

点的嵌入。首先将输入点云转换为离散体素网格。然后应用3D CNN得到多尺度网格特征$F_1,…,F_n,F_k \in F_k^{KKK}$。其中,K是随尺度变化的网格大小,Fk ∈ RC是通道C的深度特征。更多详细信息,请参见IF-Net [12]。给定查询点p,从多尺度编码中采样一组深度特征,并将其连接为嵌入z ∈ F1 ×…×Fn。我们将点嵌入网络表示为:

$\boldsymbol{z}=g_{\boldsymbol{\theta}_1}(\boldsymbol{X}, \boldsymbol{p}): \mathbb{R}^n \times \mathbb{R}^3 \mapsto \mathcal{F}_1 \times \ldots \times \mathcal{F}_n$

其中θ1是嵌入网络的可学习参数。图3中的紫色立方体表示嵌入网络。

二进制标志预测。实现解码器以预测点的二进制标志。为了保持置换不变性,将maxpool算子应用于点嵌入z1和z2:zf = MAX(z1,z2),其中zf是两个点的融合特征。然后将融合特征zf传递到解码器以预测二进制标志B。解码器f是由θ2参数化的多层感知器:

$f{\boldsymbol {\theta }_2}(\boldsymbol {z}_f)\approx \boldsymbol {B} \colon \mathcal {F}{1} \times \ldots \times \mathcal {F}_{n} \mapsto [0,1]$

图3中的粉色块表示解码器。

自定义项的分支。虽然上述解码器足以进行形状重建,但我们还加入了UDF分支,以增强点特征的空间感知并加速表面提取(参见第3.3段)。无符号距离函数(UDF)定义为查询点与其在物体表面上最近的点之间的距离。因此,它没有引入传统的内/外分区。NDF [13]是第一个使用神经隐函数来逼近UDF的方法。给定点p的嵌入z,UDF网络h被表示为:

$h{\boldsymbol {\theta }_3}(\boldsymbol {z}) \approx \texttt {UDF}(\boldsymbol {p}) \colon \mathcal {F}{1} \times \ldots \times \mathcal {F}_{n} \mapsto \mathbb {R}_0^{+}, (4)$

其中θ3是UDF网络的可学习参数,UDF(p)是点p的真实UDF。图3中的黄色块表示UDF网络。UDF分支的消融研究见第4.4.

学习的程序。为了训练点嵌入网络gθ1(·)、解码器fθ2(·)和UDF网络hθ3(·),对{Xi,Si| i ∈ 1,…,N}以及相应的地面真实形状Si,其中i是观测的索引,N是训练示例的数目。对于每个训练示例,我们对两个点的对{p1,p2}进行采样,并计算它们的地面真实UDF(p,S)以及二进制标志B(p1,p2,S)。在训练期间,利用了两个损失项:用于二进制标志预测的Lb和用于UDF回归的Lu。Lb定义为:

其中SX是观测X的对应地面真实形状。而Lu被定义为:

其中δ > 0是集中模型容量以表示表面的近空间的阈值。通过最小化以下小批量损失来优化参数:

其中,B是输入点云观测的小批量,P是用于训练的采样对的子集,λ是Lu的权重。

3.3 从GIFS中提取曲面

由于所提出的方法是从以前的NIF不同,它是不平凡的设计一个算法的表面提取。我们采用Marching Cubes [46]算法从隐式表示中提取显式表面(网格)。“移动立方体”将空间划分为3D网格并定位与对象曲面相交的立方体。对于三角形立方体,三角形是基于8个顶点的占用来创建的。使用由2的八次方= 256个不同分配组成的查找表来提高速度。虽然在我们的方法中没有占用,但我们假设在微观尺度上,表面附近的空间总是可以分为两类。在此基础上,我们将空间划分为三维网格,并根据它们之间的二进制标志(由我们的方法生成)对每个单元中的8个顶点进行二进制分类。然后我们利用Marching Cubes中的查找表来创建三角形。设ci ∈ {0,1}为顶点i ∈ {0,1}的赋值。..7}并且bij ∈ [0,1]是顶点i和顶点j之间的标志。用于计算分配ci的成本函数是:

$\mathcal {L} = \sum {i}\sum {j \neq i} \left|\boldsymbol {c}i - \boldsymbol {c}_j \right|\left| 1 - \boldsymbol {B}{ij} \right|.(8)$

通过最小化代价函数,可以找到最优分配。由于速度仍然是可以接受的,因此我们在实现中简单地应用了蛮力算法。

从粗到精的表面提取。与OccNet [47]类似,采用粗到细的范式来加速提取过程。我们从一个低分辨率的网格开始,在每个立方体的中心计算UDF。如果UDF值小于立方体尺寸乘以某个阈值τ,我们认为立方体与曲面相交并将其细分为8个子立方体。在新的立方体上重复评估,直到达到所需的最终分辨率。我们在最后的立方体上表演我们改编的行进立方体。

网面细分。通过自适应Marching Cubes提取的初始网格只是决策边界的近似,并且可以使用UDF值进一步细化。我们从输出网格的每个面随机采样N个点pi,并通过最小化损失来细化它:

$\mathcal {L} = \sum {i}^{N} \left| h{\boldsymbol {\theta }3}(g{\boldsymbol {\theta }_1}(\boldsymbol {X},\boldsymbol {p}_i))\right|.(9)$

我们进一步推动网格表面的决策边界,通过最小化的UDF值的表面。我们报告了一个消融研究的网格细化。在4.4节中。

4. Experiments实验

我们专注于从稀疏点云的三维形状重建的任务,以验证GIFS。我们首先表明,GIFS可以重建水密形状与国家的最先进的方法。在第4.2节显示GIFS可以重建一般形状,包括多层,非防水形状。4.3.关于结构、网格尺寸和采样策略的消融研究见第4.4.节

4.1 实验设置

Datasets. In our experiments, we follow the setting of NDF and choose the “Car” category of the ShapeNet [10] dataset, which consists of 7498 synthetic objects. The “Car” category has the largest amount of multi-layer shapes as well as non-watertight shapes. For watertight shapes, we use the common training/test split from 3D-R2N2 [14] and the processed watertight meshes from DISN [66]. For general shapes, we use the training/test split from NDF [13]. During training and evaluation, all meshes are normalized and centered to a unit cube. Besides, we employ the MGN [6] dataset, which consists of 307 garments, to show the representation power of our method.

Evaluation Metrics. To measure the reconstruction quality, we adopt established metrics defined in LDIF [21]: the Chamfer distance and F-Score. The Chamfer distance measures the average errors of all points and is sensitive to outliers. F-Score measures the percentage of good predictions. For evaluation, we randomly sample 100k points from the surface to calculate all metrics. The thresholds for F-Score are 0.01 (same as LDIF) and 0.005 (for better comparison). Lower is better for Chamfer distance; higher is better for F-Score.

Baselines. For the experiment of watertight shapes, we compare our method to Point Set Generation Networks [19] (PSGN), Deep Marching Cubes [43] (DMC), Occupancy Network [47] (OccNet), and IF-Net [12], the state-of-theart in shape reconstruction. For the experiment of general shapes, we compare our method to NDF [13]. For methods that the authors do not provide a pretrained model, we retrain it until the minimum validation error is reached.

NDF 通常指 Neural Distance Fields,即神经距离场。这是一种利用神经网络来表示和处理三维形状的技术。NDF 将三维空间中的每个点映射到一个标量值,该值表示该点到最近表面的距离。这种方法结合了神经网络的表示能力与传统的距离场技术,用于生成、分析和重建复杂的三维几何形状。

Implementation details. The resolution of the voxel grid in the point embedding network is 1283 for 3000 points input and 2563 for 10000 points input. The decoder for binary flag prediction is a 5-layer multilayer perceptron. All internal layers are 256-dimensional and have ReLU nonlinearities. The UDF network is exactly the same as the decoder in NDF. The δ in Eq. 6 is set to 0.1, the λ in Eq. 7 is set to 10. During training, we employ the Adam optimizer with a learning rate of 1 × 10−4. During inference, the initial resolution of the grid is 203 and is subdivided 3 times. The final resolution is 1603. The τ in Sec. 3.3 is set to 2.

During data generation, we mainly follow the same strategy as NDF [13]. Specifically, we first sample points pS i ∈ R3 on the ground truth surfaces and add two random displacements {n0 i , n1 i } ∼ N(0,Σ) to produce pairs of points {p0 i , p1 i }, i.e., p0 i = pS i + n0 i , p1 i = pS i + n1 i , where Σ ∈ R3×3 is a diagonal covariance matrix with entries Σi,i = σ. We adopt 3 different σ of 0.005, 0.01, 0.03. We also randomly sample 10% of the data in the 3D grid. We report performances with different combinations of σ in Sec. 4.4. We employ the intersection algorithm from CGAL [2] to calculate the ground truth binary flags.

5 结论

结论。引进了一种广义形状表示及其相应的神经网络GIFS.GIFS允许重构高质量的常规对象形状,包括无缝、非无缝和多层形状。本文还设计了一种直接从GIFS中提取网格的算法。实验结果表明,该算法不仅具有良好的防水性和通用性,而且在效率和视觉效果上都有明显的优势。我们认为GIFS向一般形状表示迈出了一步。

局限性和今后的工作我们描述两个限制:(i)在我们的表面提取算法中,存在这样的假设,即在足够小的尺度下,表面可以被分为两类。然而,对于一般形状,当网格的分辨率较低时,该假设并不保证成立。(ii)目前的算法运行速度还远远不能满足实时性的要求,主要是基于蛮力策略的曲面提取和简单循环的限制。本文还指出了两个可能的研究方向:(i)利用隐式场的一阶和二阶梯度来提高生成曲面的光滑度。(ii)使用并行计算加速网络推理和表面提取。