前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3D重建总是扭曲、空洞、体素化?来看看这个连续场模型吧

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

作者头像
机器之心
发布2019-04-30 11:18:17
1.3K0
发布2019-04-30 11:18:17
举报
文章被收录于专栏:机器之心机器之心

选自arXiv

作者:Jeong Joon Park等

机器之心编译

机器之心编辑部

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

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

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

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

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

论文地址: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。

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

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

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

结果

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档