单视图三维重建
本文是来自中北大学赵同学的翻译,原论文是
《Learning Shape Priors for Single-View 3D Completion and Reconstruction 》。再此分享给大家。同时也抛砖引玉吸引大家能够积极参与分享中。
摘要
单视图三维补全或者重建是一项具有具有挑战性的任务,因为对应某一个观测数据,往往存在着很多可能的形状,并且其中大多数是难以置信和在现实中不存在的。该领域的最新研究试图利用具有丰富表现力的深度卷积神经网络来解决这一问题。事实上,该问题还存在一个经常被忽略的多义性(ambiguity),在看似合理的形状中,依然存在多个形状都能够很好的适合2D图像;也就是说,单视图的图像无法唯一确定真实的形状。现有的全监督的算法无法解决这一问题,他们经常产生表面光滑但是细节模糊的平均形状。在本篇论文中我们提出了ShapeHD,通过结合深度生成模型和对抗学习的形状先验知识解决了这一问题。学习到的先验知识作为正则项,只会在模型输出是不太自然的时候惩罚模型(ps.现实生活中一般不会存在的形状,在后面的图2中有示例图),而不会在偏离真实标签时。因此我们的设计克服了上述两个问题。实验表明在多个真实数据集,ShapeHD在形状补全和重构上都大大优于当前的先进水平。
介绍
让我们从一个游戏开始,图1中的两个例子分别展现了深度图和彩色图和他们的两种不同的3D形状解释。哪一个看上去更好?
我们对一百个人问了这个问题。59%的人喜欢飞机的A解释,35%的人喜欢汽车的A解释。这个数字说明人们对这两种情况存在分歧,表明了这种重构在质量上是接近的,在感知上的差异相对较小。
实际上对于这个例子,其中一个重构的实例是我们在本篇论文中提出的模型的输出,其中一个是真实标签。飞机中A是真实标签,汽车B是真实标签。
在本篇论文中,我们的目的是推动从单一深度图补全3D形状和从单一彩色图重构3D形状的极限。当前,研究人员利用巨大的3D数据集,在这些任务上取得了令人印象深刻的进展。其中许多方法通过使用深卷积网络回归可能的三维形状来解决问题的不适定性质。利用深度生成模型的力量,他们的系统会学习去避免产生难以置信的形状
然而,由图2c我们可以看到,一个监督学习的网络依然存在建模失败的模糊性。从一个单视图中,有多个自然形状可以很好的解释观测结果。换句话说,对于每一个观测都没有确定的真实标签。由于这种模糊性,仅仅通过单纯的监督学习,网络倾向于生成平均形状去最小化损失。
为了解决这个问题,我们提出了ShapeHD,结合了深度卷积神经网络和具有先验形状的对抗学习网络,用来补全或者重构3D形状。学习形状先验知识只有当生成形状是不自然时才会惩罚模型,而不是在其背离真实标签时。这就克服了上述的困难。我们的模型通过对抗学习描述了这种自然损失,这是在近年来广受关注并且迅速发展的课题。
在多个合成与真实数据集上的表现表明了ShapeHD在单视图3D形状补全和重构上表现良好,取得了比当前先进系统更好的结果。进一步的分析表明网络学习试图去关注有意义的物体部分,并且随着时间的推移自然模型确实帮助描绘物体的细节。
方法
我们的模型包括了三个部分:一个2.5D草图估计器,一个通过2.5D草图从一幅RGB图像中预测3D形状的3D形状估计器,和一个在形状模型预测结果不自然时惩罚模型的深度自然模型。仅用监督重构损失训练的模型通常会产生模糊的平均形状。我们学习的自然模型可以帮助避免这个问题。
2.5D草图估计网络.我们的2.5D草图估计器有着编码-解码器结构,能够从一张RGB图像中预测出物体的深度,表面法线和轮廓。我们使用ResNet-18将256×256的图像编码为尺寸为8×8的512个的特征图。解码器包括四个内核尺寸为5×5的反卷积层,stride和padding都是2.预测出来的深度和表面法线图被之后预测出的轮廓覆盖,并且作为我们形状补全网络的输入。
3D形状补全网络.我们的3D估计器。是一个编码解码网络,他从2.5D草图中预测标准视图中的3D形状。这个编码器是修改的ResNet-18去编码四通道的256×256的图像(一个深度,三个表面法线)到一个200-D的隐向量(latent vector)。这个向量之后通过由5个反卷积和ReLU层的解码器去生成128×128×128的体素化形状。预测体素与目标体素之间的对数损失作为监督损失Lvoxel。
形状自然网络(Shape Naturalness Network)
由于单视图三维形状重构固有的不确定性,只是用监督损失的形状补全网络经常会生成不真实的平均形状。通常来说,在他们存在多种可能的真实标签时他们会最小化损失。相反的,我们提出了一种对抗训练的深度自然正则项,用来在网络产生不自然形状时惩罚网络。
我们预训练了一个3D对抗生成网络去判断形状是否真实。它的生成器从随机采样的向量中合成3D形状,他的鉴别器去将合成形状和真实形状区分开。因此,这个鉴别器有对真实形状分布建模的能力,所以可以作为形状补全网络的自然损失。生成器没有参与我们后面的训练过程。遵循3D-GAN,我们使用五个带批归一化和ReLU的反卷积层作为生成器,和五个带有leaky ReLU的卷积层作为鉴别器。
由于高维度的三维形状(128×128×128).训练GAN是十分不稳定的。为了解决这个问题,我们使用带有梯度惩罚(gradient penalty)的Wasserstein GAN损失去训练我们的对抗生成网络。
ShapeNet上的结果
定性的结果. 在图4中我们展示了由ShapeHD从单张深度图中预测出的3D形状。尽管常用的编码-解码器结构通常生成具有少量细节的平均形状,我们的ShapeHD预测出的形状也具有很大的差异和丰富的细节。此外,哪怕当深度图具有很强的遮挡时,我们的模型也能够预测出从视觉上看上去高质量的,貌似可信的3D形状,并且推断出输入图像中不存在的部分。
3D形状重构
我们现在测试ShapeHD在单张彩色图像中的重构出三维形状的能力。
准备RGB图像. 对于从单张图像重构3D形状的任务,我们需要渲染与深度图对应的RGB图像用于训练。我们使用之前说到的相机设定。此外,为了增强渲染RGB图象的真实性,我们在渲染期间在给物体加了三种不同的背景。三分之一使用干净的白色背景,三分之一使用具有高动态范围的照明通道背景,以产生真实的照明。我们渲染剩下的三分之一的图像是使用从SUN数据集中随机采样的背景。
基准线.我们把我们的ShapeHD与一流的三维形状重构算法相比较,包括3D-R2N2,点集生成网络(PSGN,differentiable ray consistency (DRC),octree generating network (OGN)和AtlasNet。其中3D-R2N2, DRC, OGN, 和我们的 ShapeHD都是使用单张图片作为输入的,然而PSGN和AltasNET需要物体的轮廓信息作为额外的输入。
在合成数据集上的结果.我们首先对ShapeNet上的渲染的对象进行测试。我们在图7中展示了三维重构的结果和定量的结果。这些所有的模型都在具有真实标签的3D形状作为监督的,我们渲染的最大的13个ShapeNet类别(他们至少有着1000个模型)中进行训练。总体来说,我们的ShapeHD能够预测出接近真实标签的3D形状,并且给出很好的细节使得重构的形状更加真实。他在定量的分析中也表现得很好。
此分享来自中北大学的赵同学,在此感谢他为公众号的付出,并号召大家积极分享共同营造良好的交流分享的氛围,并且此文章只是翻译的部分内容。全部内容以及论文原文都已经上传至github组群中,欢迎大家关注并讨论!