刘洋作者

来自研究员的读书笔记:基于数据驱动的三维几何解码器

编者按:近年来随着关于三维数据的研究与深度学习的紧密结合,三维内容(如物体与场景)的生成也成为这股三维深度学习浪潮中的热点与亮点。针对这方面的核心部分——三维几何解码器的工作,我们邀请了微软亚洲研究院主管研究员刘洋为大家做了全面的梳理和分析。

基于数据驱动的三维生成

基于数据驱动的三维解码器,简而言之就是从大量数据中学习一个映射,该映射将编码空间里的向量转换为三维数据,如三维形状和场景。这里的编码空间可以是大量的图像、文字、声音或三维信息通过某种编码构成一个隐表达空间;这里的转换指的是用三维解码器将隐表达空间的点翻译成三维内容。目前常用的三维解码器多用神经网络来完成,如卷积神经网络。下图展示三维编解码的一个概念架构。

对于不熟悉编解码架构的读者,可用如下一个例子来理解。对于一个球形曲面, 编码器提取球体的中心位置与半径大小构成一个隐表达空间中的四维向量;给定一个四维向量,解码器用前三维向量当成球体的中心,第四维数值当成球半径以构造球体。对于大量纷杂的三维数据,往往很难直接构造编解码器,这就需要从大量数据上来学习并构建功能强大的编解码器。

如何构造编码空间、解码向量、设定合适的三维表达,都是三维编解码里需要研究的问题,而解码出来的数据质量是衡量三维解码器优劣的一个重要指标。

除此之外,一个好的三维解码器还应该有以下三个性质:

  1. 形神兼备——形似指的是三维生成的形状符合期望、几何细节逼真、纹理符合现实。神似指的是三维生成内容的功能及结构符合设计、可控并便于调节。 传统的几何建模工作在这两点上可以做的很好,但耗时费力;相较而言,目前基于数据驱动的工作虽然在效率上有极大提升,但在形似这个方面上还差强人意,神似方面的工作也是刚刚起步。

  2. 形状空间——好的编解码器可以很好地用学习出来的低秩空间来刻画形状空间,通过在空间中合理采样以增加形体的多样性并建立形体类间及跨类之间的各种联系。

  3. 效率——对于一个算法而言,它的时间复杂度和空间复杂度大小决定了其效率优劣。对于以神经网络为结构的三维解码器,还有它对训练集的需求、训练难易、可扩展性等方面的各种考量。

三维几何表达

在三维几何的处理与分析中,三维数据的表达起着非常重要的作用。不同的表达在不同的任务以及与神经网络技术的结合上各有优劣。在三维内容的生成与合成任务上,由于输出的内容就是三维数据,因此选择不同的表达也直接关系到网络的构建、损失函数的设计及输出内容的质量。在此我们以三维的几何表达来分析目前已有的基于神经网络的三维解码器。关于三维数据的其它属性如纹理、表观、物体弹性相关等属性的生成,本文不做讨论。

表达方式与表达层次

在图形学及其相关领域,三维几何表达可以大体分为连续表达离散表达。其中连续表达包括参数曲面、隐式曲面等;离散表达有诸如点云、多边形网格、多面体网格、体素等。这类分类方式相对比较底层,对物体缺乏语义层次的理解,我们统称为低层次表达。如果将三维内容看做结构体或体元的集合,可以对物体有更好的认识,这种归类方法可以称之为为中低层次的表达。在此基础上,如果三维内容的功能也有体现,如一把椅子的组成结构明确,组件功能清晰(如手臂支撑、腰部支撑等),那么这个表达可以称之为具有中高层次。同样对于三维场景而言,如果有着布局、物件之间关系等表示,其表达也是属于中高层次。 低层次表达和中低层次的表达方式在基于数据驱动的三维生成中研究较多,我们接下来对基于它们的三维编码器逐一介绍。

低层次表达

规则体素

将二维规则网格直接推广到三维,即体素表达,可以方便地将图像域的各种方法推广到三维空间——比如在分辨率N^3 的规则网格上每个单元(即体素)上定义一个布尔值0表示该体素位于三维形体之外,1表示其在三维形体内部。常见的基于体素的三维解码器通过学习三维卷积网络来预测空间中N^3个布尔值,以构建三维内容。这方面几个代表性的工作包括:(1)利用循环神经网络来重建三维物体的3D-R2N2 [Choy2016]; (2)基于体素表达上的3D-GAN和3D-VAE-GAN [WU2016]。然而由于规则体素的内存与计算开销呈立方级增长,基于体素的神经网络对于高分辨率的支持受限于GPU内存大小与训练时间,使得体素表达的三维生成常局限于32^3、64^3这类低分辨率上,不易生成较高质量的结果。

稀疏体素

注意到三维内容大都与物体表面相关,空间中绝大部分区域实则为空的事实,不少研究者开始用稀疏体素的方式来表达三维内容,从而极大地减少内存与计算开销,使得高分辨率体素输出(如256^3、512^3)成为可能。这类方法中以八叉树结构为代表的三维解码器,空间及时间复杂度降为O(N^2)。这方面的主要工作有OctGen [Tatarchenko2017]、OctNetFusion [Riegler2017]、HSP [Hane2017]。它们的解码器动态生成给定深度的八叉树,在八叉树的节点上预测该体素是否属于哪种状态:1. 在物体外部;2. 在物体内部;3. 含物体表面。对于第三种状态八叉树继续剖分。

点云

将三维物体离散成无结构的点云也是一种直接的方式。由于没有体素方法里剖分空间的束缚,点云表示有着更好的灵活性。 最近关于点云生成工作主要包括[Su2017]、[Achlioptas2018]。这些工作中解码器直接预测给定数目的点云三维坐标,在从单幅图像生成三维物体的任务上取得比3D-R2N2更好的效果。但将点云转化为体素或其它表达以用于造型等任务还需进一步的处理。

网格表示

多边形网格是三维图形学里常见的表达,相较之前介绍的各种表示,它既有较高的表示精度也有足够的灵活度。最近很多工作都将网格直接作为三维解码器的输出。这类工作假定网格有个初始形态,解码器实质上是预测初始网格顶点的变形。其中很多工作假定初始网格和球形或矩形网格同胚,如SurfNet [Sinha2017]、Pixel2Mesh [Wang2018]、Neural 3D Mesh Renderer [Kato2018]、FoldingNet [Yang2018]。然而受到网格拓扑的限制,这些解码器不能生成多亏格的曲面。最近一个名为AtlasNet [Groueix2018]的工作假定有指定数目的矩形网格作为初始,解码器预测每个网格的顶点的三维位置。这些网格的并集近似出一个三维形体,这样也解决了拓扑限制的问题。基于网格表示的三维生成结果的视觉效果目前来说是最好的,当然网格的扭曲和多片合成完整网格的问题还是亟待解决。

多视图表示

通过多个方向观察物体可以极大程度地恢复物体的整体结构和细节,这就是多视图表示的原理。基于多视图表示的三维解码器预测若干给定视点下的物体的深度图像来构造三维形体。最近这方面的工作有[Lun2017]和[Lin2018]。前者用训练数据已知视点的深度图来训练解码器,后者用预测出的深度图合成的三维点云在多视点下投影和真实值的差异来指导训练,从而进一步提高解码器的预测水准。

中低层次表达

型元表示

一个三维形体可以看做若干个简单元素的集合。我们把这简单元素分成两类:面元、体元,统称为型元。 广义上讲点云、三角面也是型元表示。 这里我们把简单元素定义为具有固定类型的几何元素:如平面、球面、长方体、球体等。

将物体抽象为若干个简单实体——即体元的集合是种简单且有效的三维表达方式。通过在大量数据上的学习,体元在类似数据上还具有一定的共同性,并呈现对应关系,在形状理解和编辑上带来不少好处。长方体作为简单体元已经在最近的两个工作中使用——[Tulsiani2017]、[Zou2017]。这些工作用无监督或有监督的学习来预测若干数目长方体的大小、朝向、位置。通过学习可以把同类物体的共性、相似结构提取出来。目前的工作还局限于单一体元,拓展到多类型体元和建立体元之间的关系可能是未来研究的一个重点。

用尽量少的简单面元可以逼近三维形体,可简化三维表示并方便处理。我们最近在这方向做了一些探索[Wang2018a]——利用平面片表示构造了自适应八叉树结构以表达三维物体,极大地减少网络训练的内存与实践开销,并训练解码器生成自适应八叉树结构以产生三维形体:解码器预测当前八叉树结点状态:1. 不含三维形体表面的任一部分;2. 含三维形体表面的某一部分且能用平面片很好近似;3. 含三维形体表面的某一部分且不能用平面片很好近似。对于第三种状态八叉树继续剖分。最后所有层的八叉树里估计的平面片集合构成了三维形体。下图中展示了一个三维兔子模型在平面片表示下的自适应八叉树表达:(a)-(d) 是八叉树不同层上叶子节点的平面片元集合,(e)是所有平面片元的集合,它重构了输入的兔子模型。

下图中展示了用自适应八叉树解码器将单幅图片变成三维形状的部分结果。相较其它生成算法,我们的方法在同等分辨率下可以恢复更多的细节。

树形生成结构

树形生成结构是将三维内容看做一个树状层次性结构,叶节点是内容的一部分,如物体的一个组件/场景中的一个物体等。这种结构比较适合由组件构成的物体或场景,并且组件之间有层级关系。Siggraph2017上一个名为GRASS的工作展示了此种结构在三维生成中的优越能力[Li2017]。其中的三维解码器递归地生成树形结构并预测节点上的定义的关系和叶节点中的内容。论文作者最近也在GRASS基础上开展了图像到三维,场景生成等有意义的工作。

过程式建模

过程式建模是通过一系列既定规则来生成三维模型,其中包括L-system、分型、GML、CSG等造型方式。广义地讲,用户通过组合软件里给定的命令操作生成期望的模型,都可以称之为过程式建模。过程式建模的好处是建模成为一个白盒,每一步都可以有相应的语义。目前这方面最近的工作包括[Huang2017]和CSGNet [Sharma2018]。前者工作预测指定规则集的参数(包括离散和连续变量),后者生成一棵CSG树——哪些基本体元参与其中、体元的参数、体元之间的布尔操作(交并补)与操作序列顺序。

基于数据驱动来学习过程式建模才刚刚起步,笔者认为它的发展会是未来三维建模的一个新趋势,其可以更大程度地降低建模门槛,便于添加创意以及编辑,并能够保证建模质量,将依赖机器学习的建模做到"知其然知其所以然"的层次。

典型应用

三维生成不是凭空而生,大量的工作是依据用户给定输入来构建,如常见的基于单幅或多幅图像进行三维生成、三维补全等方面的工作。下面介绍其它几种有潜力的典型应用。

基于草图的三维生成

不少设计者习惯用草图来快速粗略地描绘目标形状或场景,这在概念设计里比较常见。如果能把草图直接转换成三维内容,那么对于设计者和一般用户而言,三维生成将变得容易。基于草图的三维生成在图形学领域已经有很多工作,但大多基于几何规则来构造。 2007年有一个工作[Lun2017]从数据驱动出发在卡通形象数据集上做了一个尝试。给定卡通形象的正面和侧面的二维草图,网络通过学习可以预测出卡通形象的三维形状。 今年我们也在这方面做了进一步研究[Li2018](链接:http://t.cn/EPkkHf0),我们借助草图中的线条和曲面的曲率方向的相关性,利用卷积网络预测出高质量的曲面形状,而且对于曲面数据集类型无强的假设。下图中展示了我们方法从一个或多个视角的草图生成曲面的结果。相较传统方法而言,基于数据驱动的草图建模有着更鲁棒、更迅捷的优势。

基于文字的三维生成

对于普通用户而言,绘制草图也显得太过专业,能否利用文字描述来生成三维内容呢?Text2Shape [Chen2018]将三维生成和自然语言处理结合起来。网络把文字编码解码为符合描述的三维实体。比如输入"Dark brown wooden dinning chair with red padded seat and round red pad back",解码器不仅生成三维几何也生成相应的颜色去尽量符合文字描述。随着这方面的进一步研究,相信人们利用语言文字来快速构建虚拟世界、调整家装布局等个性化的场景会变为可能。

展望

目前基于数据驱动的三维生成工作还有很多不足。首先生成模型的完整度、精细度还与传统三维建模有着相当的差距。生成结果离实用领域,尤其是加工制造方面,还有很长的路要走。对于三维结构和功能的理解与生成也是刚刚起步,还需要更多的研究。另外现有的工作还主要是从数据中归纳经验指导生成,如何利用数据进行推理生成还需要更多的关注。

笔者对未来基于数据驱动的三维生成做一些展望。

  • 形(shape)神(functional)兼备。目前基于数据驱动的三维生成在形状和功能方面还差强人意,离实用的地步还相去甚远,未来这方面还需更多更深入的研究。最近胡等人的工作[Hu2018] 在功能分析与三维生成方向做了一个很好的结合与尝试。

  • 三维表达。合适的三维表达对于不同的应用非常重要,如骨架之于动画、图之于场景分析。 选择合适的三维表达还将是未来三维生成的重点研究课题。

  • 形状空间的构建及生成的多样性。利用各种对抗生成网络及类似的思想寻找最优的形状空间一直是众多研究人员感兴趣的课题。 构建好的形状空间可以生成更多样的三维内容、建立形状之间的联系、挖掘三维内容的各种关系。

  • 不同媒体空间的联合嵌入。图像、文字、声音等媒介是人们常用的交互沟通手段,每种媒介都已有大量样本和学习出来的空间。建立这些空间之间的联系,将为三维生成打开方便之门,使得其早日步入实用阶段。这里有大量的机器学习成果可以借鉴。

  • 表观属性和物理属性。三维内容除了几何,它的观感、物理属性(如弹性、密度)等也非常重要, 这些属性的生成,对渲染、物理仿真和制造等方面都有着重要意义。

  • 数据集的体量与质量。目前三维数据在体量和质量上处于初级阶段,无法与图像领域的ImageNet相比。拥有大量和高质量的数据,对于未来研究尤为重要。如何采集、清洗、分享、协同使用数据也是三维生成工作必不可少和极为重要的环节。

  • 专注特定类别的应用,如人脸动画、人体动画、室内布局、服装设计等与人的生活相关的三维生成工作将进一步走向产业化。

小结

本文简介了目前基于数据驱动的三维几何生成的部分工作,希望起到抛砖引玉的作用。更多内容可参考笔者在第二十一届中国计算机辅助设计与图形学(CAD&CG 2018)、第十一届全国几何设计与计算(GDC 2018) 联合学术会议上所作的前沿进展报告《基于数据驱动的三维几何生成》,点击“阅读原文”即可下载该报告的PDF版内容。

所有文献资料,请访问以下链接:

https://www.msra.cn/zh-cn/news/features/3d-decoder

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

理论三维几何解码器
3
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面,智能多媒体,大数据与知识挖掘,人工智能,云和边缘计算,计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的研究,助力微软实现长远发展战略。通过与微软产品部门紧密合作,微软亚洲研究院将众多创新技术转移到了微软的核心产品中,如Office、Windows、Azure、Bing、Visual Studio、Xbox Kinect以及小冰、Cortana和Microsoft Translator等人工智能产品。

https://www.msra.cn/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

时间复杂度技术

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

暂无评论
暂无评论~