DefTet

简介

  • 论文主页
  • paper地址
  • 代码

DMTet论文借鉴了DefTet(Deformable Tetrahedral Meshes)的思路,使用可变性的四面体网格来编码SDF。DefTet可以从点云噪声重建3D mesh物体表面,也是第一个能从单张图片恢复物体mesh的工作。

使用神经网络的3D重建工作通常是以下几种:点云、体素、mesh、隐式表达(比如SDF) ,它们各有优劣:

  1. 体素可以表达各种拓扑结构,并且能使用CNN来完成。但是在高清晰度的重建工作中,体素需要高分辨率的网格,这会消耗更多内存。它还需要多层结构,比如八叉树,想要在此之上实现基于深度学习的方法是很麻烦的,因为这种结构不连续的,其结构会随着树的占有情况变化而变化。
  2. 基于隐式函数和点云的做法虽然不需要事先施加预定的分辨率,但是:
    • 它们生成的结果需要进一步加工为mesh,才可被下游使用。
    • 基于表面的正则化1相对容易添加到基于mesh表达的方法,但并不容易被添加到这些方法中,因为物体表面是被隐式定义的。
  3. 基于mesh表达的方法可以直接生成mesh物体,已经能生成高质量的结果。但是,这种方法通常需要预定义mesh所属的类型(比如曲面)。这限制了这种方法能处理的物体类型2

四面体网格是图形学中表示三维物体的主要方法之一,特别是广泛用于物理学模拟。与体素类似,四面体网格不仅模拟表面,而且使用由四个三角形组成的三维单纯形3四面体作为基本单位,来模拟形状的整个内部。在这项工作中,我们提出利用四面体网格进行重建问题,使其适合深度学习。我们的表示是一个完全细分成四面体的立方体,其中三维形状是容积性的,嵌入四面体网格中。网格中顶点的数量和它们的相邻性是固定的,与网络的输出大小成比例。然而,顶点的位置和每个四面体的二进制占用情况是动态的。这使得网格可以变形,以更准确地适应对象几何体,而不是相应的体素表示。我们将这种数据结构命名为可变形四面体网格(DEFTET)。给定典型的重建损失函数,我们展示如何向顶点位置以及四面体占用情况传播梯度。

DEFTET 有许多优点:

  1. 可以输出任意拓扑结构的形状,通过四面体的占据情况区分物体内部和外部。
  2. DEFTET 还可以通过变形四面体里的三角形面来表示局部几何细节,从而在更低的内存开销下实现高保真的重建。
  3. 此外,我们的表示还具有计算效率,因为它在推理时可以直接生成四面体网格,不需要后处理。
  4. 我们的方法支持各种下游任务,例如基于 2D/3D 监督下的单视图/多视图 3D 重建。
  5. 我们的结果是首次从嘈杂点云和图像直接生成四面体网格,这在图形学中是一个非常困难的问题,即对表面网格进行四面体化。
  6. 我们还展示了DEFTET在真实环境中作四面体网格化的应用,即对给定的密闭表面进行四面体划分,突出了我们方法的优势。。

正文公式

多面体的参数定义 Tetrahedron Parameterization

在本文中,假设每个三维形状都在一个可以归一化到单位立方体的有限空间内。DEFTET定义了一个在这个空间中做操作的空间graph,我们完全将空间四面体化:

  1. 每个四面体是一个由四个三角面、六条直边和四个顶点组成的多面体。
  2. 两个相邻的四面体共享一个面、三条边和三个顶点。
  3. 每个顶点都有一个定义在有限空间坐标系中的三维位置。
  4. 每个三角面代表物体的一段表面,而每个四面体代表物体的一块部分,应当是不会再分解的。

我们使用QuarTet作初始四面体化过程,即空间的细分化。这个初始化过程是固定的。

当变形固定时,DEFTET概念上等同于体素网格4,因此可以表示任意物体拓扑结构。然而,通过将顶点位置移动,我们可以绕过将物体分解时遇到的锯齿问题(即“楼梯效应”)5,用更少的内存和更快的计算效率,容纳更精细的几何形状。

多面体的表示 Tetrahedron Representation

省略大部分公式,建议看原文。定义四面体为 T k T_k Tk,四面体的一面为 f s f_s fs,四面体顶点为 v i v_i vi
某四面体 T k T_k Tk是否占据对应位置的概率为 O k O_k Ok。该概率取决于四面体的4个顶点,通常我们取4个顶点的中心,并判断它在物体内侧还是外侧。

已知顶点中心,具体如何判断其在物体内/外侧呢?3.2.1提到: “we first obtain its geometric centroid by averaging its four vertices,
and calculate its winding number with respect to the ground truth boundary mesh. If the winding
number of the centroid of an tetrahedron is positive, we consider the tetrahedron to be occupied,
otherwise non-occupied. Note that the occupancy of a tetrahedron is a piece-wise linear function of
its four vertices, and thus, is dynamically changing when the tetrahedron is deforming.”
本文会取四个顶点的平均中心,计算其相对于边界mesh的winding编号。如果编号为正数,则对应四面体应当占据,否则应当空置。由于四面体的顶点不断位移,四面体是不断变形,所以四面体的占据情况也是动态变化的(相对于其分段线性函数)。

四面体 f s f_s fs是否是物体表面的概率,取决于共享该面的两个四面体 T s 1 T_{s_1} Ts1 T s 2 T_{s_2} Ts2,该公式的意思是相邻的两个四面体中,其中一个占据其空间,而另一个不占据的概率。

笔者理解,该概率的加号左侧代表四面体 s 1 s_1 s1占据,而 s 2 s_2 s2不占据的概率,右侧代表四面体 s 2 s_2 s2占据,而 s 1 s_1 s1不占据的概率。两者相加,就是两个四面体中,只有一个占据空间的概率。

DefTet

给定输入 I I I,可以是图片或者点云,则本文要利用神经网络 h h h预测:

  1. 每个顶点的相对位移 Δ x \Delta x Δx Δ y \Delta y Δy Δ z \Delta z Δz
  2. 每个四面体占据其空间的概率 O k O_k Ok

其中 θ \theta θ是神经网络的参数。

因此位移后的顶点如下所示:
在这里插入图片描述
本文会在Section 4提出h的具体网络架构。本文会先通过infer过程推到模型,也就是说,如何从神经网络的预测获取四面体mesh。

推导:本模型的推导是通过向已训练完成的神经网络输入 I I I,以便取得变形四面体的占据情况。本文会限制一个四面体能占据的空间。在获取mesh前,需要舍弃掉物体内部的fac。为此我们可以检查四面体的face是否被两个已占据空间的四面体共享,如果是,则该face处于物体内部,应当被舍弃。

损失函数:该损失函数分为多个项。其具体公式在原文,篇幅太长(有6项),这里就不展开了。

应用场景(内含网络结构)

本章会讨论DEFTET应用在各种场景的情况,对于每个应用,本文都会为其任务采用SOTA的神经网络结构。由于本方法会生成mesh,本文发现,在训练时与其使用Laplacian regularization loss term,不如使用Laplace smoothing作为神经架构的可微层,这能让网络输出可观的结果。尤其要将该层放置到网络输出。本文会将梯度通过该层回传给网络 h h h,因此 h h h会被训练与该层同步,得到准确率相同但质量更好的结果。更多关于该结构的细节在附录阐述。

点云3D重构

单图片3D重构

四面体mesh

新视图合成与多视图3D重建

DefTet可以从多视图重建3D模型,并合成新视图。本文可以使用multi-view consistency loss优化DefTet,并将梯度通过可微渲染器(Sec. 3.2.2)回传给每个顶点的位置和颜色。为了更好展示所生成模型的复杂性,本文使用适应性分解。
To better represent
the complexity of a given scene, similar to [29], we do adaptive subdivision. To be fair with existing
work, we do not use a mask (Eq (12)) in this application. Note that DEFTET’s benefit is that it
outputs an explicit (tet mesh) representation which can directly be used in downstream tasks such as
physics-based simulation, or be edited by artists. More details are in Appendix.


  1. “基于表面的正则化” 指的是对三维形状的表面进行修改,以确保其具有某些理想的特性。这些特性可能包括光滑度、公平度或其他有助于使表面更具视觉吸引力或更容易处理的特性。例如,可以使用基于表面的正则化来消除表面上的尖角或脊,或使表面更均匀地弯曲。在三维形状表示的上下文中,基于表面的正则化用于使三维形状更具视觉吸引力,或帮助进一步处理形状,例如渲染或操作。与前面描述的基于网格的表示中结合基于表面的正则化的挑战在于,表面没有被明确定义,这使得应用这些修改更加困难。 ↩︎

  2. 也就是说,基于网格的表示方法只能处理一些特定类型的三维形状,例如具有球体形状的物体。如果试图处理具有其他形状(例如椭圆或多面体)的对象,可能会遇到一些技术上的困难。因此,这种方法的适用范围受到限制。 ↩︎

  3. “3D-simplex” 指的是三维单纯形,是一种数学概念。单纯形是一种n维几何体,由n+1个点组成,这些点构成n维空间的一个封闭的凸包。在三维空间中,三维单纯形是由四个点组成的,构成一个四面体。因此,3D-simplex 在这里指的是四面体四边形。 ↩︎

  4. voxel grid. https://zhuanlan.zhihu.com/p/348563616 ↩︎

  5. 锯齿问题和楼梯效应的原文是the aliasing problem (i.e., “staircase pattern”)。根据之前的理解,anti-aliasing的意思是抗锯齿,所以本人认为the aliasing problem是锯齿问题。staircase pattern可能又称staircase effect,表示图像中有类似锯齿的效果,像楼梯一样。 ↩︎

你可能感兴趣的:(AI与ML,人工智能)