3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

栏目: 数据库 · 发布时间: 5年前

内容简介:扭曲、空洞、体素化仍然是很多

扭曲、空洞、体素化仍然是很多 3D重建 模型的通病,导致视觉效果很不友好。Facebook、MIT 等近期提出了新型的基于深度学习的连续场 3D 重建模型 DeepSDF,可以生成具备复杂拓扑的高质量连续表面。特别是,由于可以在 反向传播 过程中顺便求得空间梯度,DeepSDF 能生成非常平滑的表面。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

图 1:DeepSDF 通过潜在编码和前馈解码器网络来表征形状的符号距离函数。以上图像是 DeepSDF 在学习到的形状潜在空间中进行两个形状的插值后的光线投射渲染。

深度卷积网络直接用于三维空间时,其时间和空间复杂度会急剧增长,且更经典和紧凑的表面表征(如三角网格或四边形网格)在训练中会出现问题,因为我们可能需要处理未知数量的顶点和任意拓扑。在尝试用深度学习方法处理输入 3D 数据或输出用于目标分割和重建的 3D 推理时,这些挑战对深度学习方法的质量、灵活性和保真度带来了限制。

Facebook Reality Lab 的最新研究展示了一种高效、连续的新型生成 3D 建模表征和方法。该方法利用符号距离函数(Signed Distance Function,SDF)的概念,常见的表面重建技术将 SDF 离散化为规则网格用于估计和衡量去噪,而该方法学习一种生成模型来生成连续场。

该研究提出的连续表征可以被直观地理解为学得的形状分类器,其 决策边界 是形状本身的表面,如图 2 所示。该研究提出的方法与其他研究一样,试图将潜在空间映射到 3D 复杂形状分布,但最主要的表征方式是不同的。尽管在计算机视觉和图形学社区中隐式表面 SDF 广为人知,但之前尚未有研究直接学习 SDF 的连续、可泛化 3D生成模型。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

图 2:本研究提出的 DeepSDF 表征应用于 Stanford Bunny:(a) 隐式表面 SDF = 0,SDF < 0 表示表面内的采样点,SDF > 0 表示表面外的采样点;(b) SDF 的 2D 交叉区域;(c) 从 SDF=0 恢复的渲染后的 3D 表面。注意 b 和 c 都是通过 DeepSDF 恢复的。

该研究的贡献包括:使用连续隐式表面进行生成式形状 3D 建模;基于概率自解码器的 3D 形状学习方法;展示了该方法在形状建模和补全上的应用。该模型可生成具备复杂拓扑的高质量连续表面,并在形状重建和补全方面的量化对比中获得了当前最优结果。举例来说,该模型仅使用 7.4 MB 的内存来表示形状的完整类别(如数千个 3D 椅子模型),这比单个未压缩 512^3 3D 位图内存占用(16.8 MB)的一半还要少。

论文:DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

论文地址:https://arxiv.org/abs/1901.05103

摘要:计算机图形学、3D计算机视觉和机器人社区已经产生多种方法来表示用于渲染和重建的 3D 几何。这些方法在保真度、有效性和压缩能力方面进行权衡。本研究介绍了 DeepSDF,一种学得的连续符号距离函数(SDF)形状类别表征,能够基于局部和带噪 3D 输入数据实现高质量形状表征、 插值 和补全。DeepSDF 通过连续体积场来表示形状的表面:场中点的大小表示到表面边界的距离,标记(-)和(+)分别表示该区域是在形状内还是在形状外,因此我们的表征隐式地将形状边界编码为习得函数的零水平集(zero-level-set),同时显式地将空间分类表示为形状内部/外部区域。虽然经典的 SDF 能够以解析或离散体素的形式表示单个形状的表面,但 DeepSDF 可以表示形状的完整类别。此外,该方法在学习 3D 形状表征和补全方面展示出了最先进的性能,和之前的研究相比,模型尺寸减小了一个数量级。

用神经网络建模 SDF

本节将展示 DeepSDF,我们的连续形状学习方法。我们将建模形状描述为前馈网络的零等值面决策边界,该网络被训练用来表示 SDF。符号距离函数是一种连续的函数,对于给定的空间点,输出该点至最近表面的距离,该表面的符号则编码该点是在水密表面的内部(负)还是外部(正):

SDF(x) = s : x ∈ R^3 , s ∈ R,(1)

潜在表面隐式地由 SDF(·) = 0 的等值面表示。该隐式表面的视图可以通过特定算法(例如 Marching Cubes)获取网格的光线投射或光栅化来渲染。

我们的关键想法是用深度神经网络直接从点采样中回归连续的 SDF。获得的训练网络能够预测给定查询位置的 SDF 值,据此我们可以通过评估空间样本提取零级集合表面。这类表面表示能够被直观地理解为学到的二元分类器,因为决策边界是形状本身的表面,如图 2 所示。作为通用函数逼近器,理论上来说,深度前馈网络能够以任意精度学习完全连续的形状函数。但是,由于有限的计算能力,近似的精度实际上要受到有限点样本和网络有限容量的限制,其中点采样引导决策边界。

该方法的最直接应用是为给定目标形状训练单个深度网络,如图 3a 所示。给定目标形状,我们准备了一组由 3D 点样本及其 SDF 值构成的 X 对:

X := {(x, s) : SDF(x) = s},(2)

我们在训练集 S 上训练多层全连接神经网络f_θ 的参数θ,使 f_θ成为目标域Ω中给定 SDF 的良好逼近器:

f_θ(x) ≈ SDF(x), ∀x ∈ Ω,(3)

根据以下 L_1损失函数,通过最小化 X 中点的预测和真实 SDF 值之间的损失总和来完成训练:

L(f_θ(x), s) = | clamp(f_θ(x), δ) − clamp(s, δ) |,(4)

其中 clamp(x, δ) := min(δ, max(−δ, x)) 引入了参数δ来控制与表面的距离,我们期望在该距离上保持测量的 SDF。δ值越大,光线追踪速度越快,因为每个样本都会提供安全步长的信息。较小的δ值可用于将网络容量集中在表面附近的细节上。

为了生成图 3a 所示的 3D 模型,我们使用δ = 0.1 和有 8 个全连接层的前馈神经网络,每个层都会应用 dropouts。此外,所有层都有 512 个神经元,并使用 ReLU 作为非线性激活函数。回归 SDF 值的输出层的非线性激活函数是 tanh。我们发现使用 BN 并没有什么效果,于是应用了权重归一化方法。在训练过程中,我们使用了 Adam优化器。一旦训练完成,表面将隐式表示 f_θ(x) 的 0 等值面,可以通过光线投射或移动立方体算法可视化。该方法的另一种优越特性是准确的表面法线可以通过网络的反向传播得到空间梯度即∂f_θ(x)/∂x。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

图 3:在单个形状的 DeepSDF 实例化中,形状信息包含在网络中;而在编码形状的 DeepSDF 中,形状信息包含在编码向量中,并和 3D 样本位置拼接。在两种案例中,DeepSDF 都能生成 3D查询位置的 SDF 值。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

图 4:不同于由编码器生成潜在编码的自编码器,自解码器直接接收潜在向量作为输入。在训练刚开始的时候,每一个数据点都会被分配一个随机初始化的潜在向量。并且潜在向量会通过标准反向传播和解码器权重一起优化。在推断过程中,解码器权重是固定的,此时会估计最优的潜在向量。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

图 5:使用 OGN 记忆的汽车形状对比(右图);因为 DeepSDF 提供定向表面法线,我们的模型(左)保有视觉友好的细节和渲染结果。

结果

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

表 1:benchmark 方法纵览。AtlasNet-Sphere 只能描述拓扑球体,体素/八叉树类方法(也就是 OGN)只能提供 8 个方向法线,AtlasNet 不能提供定向法线。我们的任务评估:k 表示已知形状,U 表示未知形状,C 表示形状完备。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

表 2:在 ShapeNet 上训练的汽车已知形状表征的对比。CD=Chamfer 距离(3 万点)乘以 103,EMD=Earth Mover 的距离(500 点)。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

表 3:在编码未知形状时,DeepSDF 在大量形状类别和指标上显著优于 AtlasNet。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

图 6:DeepSDF 和 AtlasNet [22] 之间的重建结果对比。注意,AtlasNet 无法捕捉椅子的精细细节,从 (f) 中可以看到沙发和飞机上的洞。

3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

表 4:对 ShapeNet 数据集中未知形状的局部范围扫描的形状补全效果对比。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Unix/Linux编程实践教程

Unix/Linux编程实践教程

Bruce Molay、杨宗源、黄海涛 / 杨宗源、黄海涛 / 清华大学出版社 / 2004-10-1 / 56.00元

操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。 本书适合作为高等院校计算机及......一起来看看 《Unix/Linux编程实践教程》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码