通过渲染许多3D视图来学习重构3D形状制造技术

技术编号:22978641 阅读:16 留言:0更新日期:2020-01-01 00:52
公开了用于获得从对象的图像导出的第一图像特征、将第一图像特征提供给三维估计器神经网络、以及基于第一图像特征从神经网络获得说明估计的三维形状和纹理的数据的方法、系统和装置。将估计的三维形状和纹理提供给渲染引擎,并且渲染引擎基于估计的三维形状和纹理生成对象的多个三维视图。三维视图被提供给对象识别引擎,并且从三维视图导出的第二图像特征从对象识别引擎获得。至少基于第一和第二图像特征来计算损失,并且至少基于计算出的损失来训练神经网络。

Learn to reconstruct 3D shapes by rendering many 3D views

【技术实现步骤摘要】
【国外来华专利技术】通过渲染许多3D视图来学习重构3D形状
技术介绍
三维(Three-dimensional,3D)渲染是从3D对象的数据表示中生成具有景深(depthoffield)的图像(在此被称为视图)的过程。例如,3D对象可以由描述3D对象的外表面的形式的3D形状数据和描述3D对象的外表面的特性的纹理数据来表示。3D渲染使用3D形状和纹理来生成3D对象的视图。该视图可以表示3D对象的特定视点(viewpoint),诸如3D对象的平面图或等距视图,以及3D对象的特定光照,诸如从特定视点的3D对象的背光、侧光或环境光视图。3D渲染可以由多种系统完成。一个这样的系统是神经网络。神经网络是采用一层或多层来为所接收的输入创建输出(例如分类)机器学习模型。一些神经网络除了输出层之外还包括一个或多个隐藏层。每个隐藏层的输出作为输入被提供给神经网络中的下一层,即神经网络的下一隐藏层或输出层。神经网络的每个层根据相应参数集的当前值从所接收的输入生成输出。神经网络可以经受训练以提高神经网络输出的准确性。
技术实现思路
本说明书中描述的主题的创新方面可以具体体现在方法、系统和存储指令的计算机可读设备中,所述指令被配置为执行以下动作:从对象识别引擎获得说明(specify)从对象的图像导出的第一图像特征的数据;将第一图像特征提供给三维估计器神经网络;从三维估计器神经网络获得数据,该数据说明(i)估计的三维形状和(ii)估计的纹理,它们每个都基于第一图像特征;将说明(i)估计的三维形状和(ii)估计的纹理的数据提供给三维渲染引擎;从三维渲染引擎获得说明对象的多个三维视图的数据,每个三维视图基于说明(i)估计的三维形状和(ii)估计的纹理的数据生成;将说明多个三维视图中的每个三维视图的数据提供给对象识别引擎;从对象识别引擎并且针对由该数据说明的多个三维视图中的每个三维视图,获得说明从说明该三维视图的数据导出的第二图像特征的数据;至少基于说明第一图像特征的数据和说明第二图像特征的数据,基于第一损失函数计算第一损失;以及至少基于计算出的第一损失来训练三维估计器神经网络。这些和其它实施例中的每一个可以可选地包括以下特征中的一个或多个。在各种示例中,对象是人的面部;人的面部图像是基于说明(i)合成的三维形状和(ii)合成的纹理的数据生成的合成图像;特征可以包括至少基于(i)说明合成的三维形状和合成的纹理的数据和(ii)说明估计的三维形状和估计的纹理的数据,基于第二损失函数计算第二损失;以及至少基于计算出的第一损失和计算出的第二损失来训练三维估计器神经网络;基于说明(i)合成的三维形状和(ii)合成的纹理的数据生成人的面部的合成图像包括生成基于(i)合成的三维形状的特定姿势和特定光照以及(ii)合成的纹理的渲染;计算出的第二损失指示(i)基于合成的三维形状和合成的纹理确定的顶点和(ii)基于估计的三维形状和估计的纹理确定的顶点之间的差异实质(substantialityofdifferences)。这些和其它实施例中的每一个也可以可选地包括以下特征中的一个或多个。在各种示例中,计算出的第一损失指示第一图像特征和第二图像特征之间的差异实质;对象识别引擎是面部识别神经网络;三维渲染引擎是三维渲染神经网络或三维光栅化引擎中的一个;多个三维视图中的每一个是基于不同于其它三维视图中的每一个的姿势和光照的各自的姿势和各自的光照来生成的。本说明书涉及训练神经网络,并且一个特定的实施方式涉及训练估计对象的三维(3D)形状和纹理的神经网络。更具体地,本说明书描述了一种能够提高被配置为从3D对象的图像生成3D对象的数据表示的3D估计器神经网络的准确性的系统。3D估计器神经网络接收从图像导出的图像特征,并且基于所述图像特征,生成图像中表示的3D对象的3D形状和纹理。3D形状和纹理可以被提供给3D渲染器,以生成图像中描绘的3D对象的视图。由3D渲染器生成的3D对象的视图是计算机生成的图像,其可以表示多个不同的视点以及多个不同的光照角度和强度。为了提高3D对象的视图的准确性,即,以使得视图更准确地相似于原始图像中的对象,执行对3D估计器神经网络的训练。训练3D估计器神经网络能够改进由3D估计器神经网络生成的、图像中表示的3D对象的3D形状和纹理的准确性,这反过来又能够改进3D渲染,使得它们更相似于原始3D对象。然而,训练3D估计器神经网络通常有两个困难。第一,由3D对象的图像和那些3D对象的3D形状和纹理组成的训练对(trainingpair)通常是有限的并且难以获得。第二,训练3D估计器神经网络可能经常导致3D估计器神经网络的网络欺骗。当3D估计器神经网络被训练为生成对象的3D形状和纹理,使得该3D形状和纹理的渲染在被对象识别引擎处理时具有与原始图像特征实质上匹配的图像特征,但是在视觉上看起来与原始图像非常不同时,网络欺骗发生。因此,网络欺骗导致这样的经训练的网络:对于一组数据,该经训练的网络输出可接受结果,从人类的视角来看,该可接受结果被认为是异常结果。本文描述的系统在训练3D估计器神经网络来估计图像中描绘的对象的3D形状和纹理时避免了这些困难。为此,系统能够利用无监督训练回路(unsupervisedtrainingloop),该无监督训练回路使用单个图像(诸如单个照片)来训练3D估计器神经网络,而不是使用3D对象的图像和该3D对象的已知3D形状和纹理的配对(pairing)。为了缓解网络欺骗,无监督训练回路还使用3D渲染器,该3D渲染器被配置为生成由3D估计器神经网络生成的3D形状和纹理的多个视图。估计的3D形状和纹理的多个视图的图像特征和原始图像中描绘的对象的图像特征之间的损失可以用于以无监督方式训练3D估计器神经网络。使用估计的3D形状和纹理的多个视图缓解了网络欺骗,因为基于估计的3D形状和纹理的多个视图训练3D估计器神经网络减少了3D形状和纹理的不良估计仍然能够导致具有与原始图像中的对象的图像特征实质上匹配的图像特征的视图的可能性。除了无监督训练回路之外,系统还可以使用监督训练回路(supervisedtrainingloop)来避免上述困难。一种类型的监督训练回路可以利用3D渲染器来基于对象的合成的3D形状和纹理来生成对象的合成图像。这个合成图像的图像特征可以由3D估计器神经网络处理,以生成对象的估计的3D形状和纹理。合成的3D形状和纹理与估计的3D形状和纹理之间的损失可以用于以监督方式训练3D估计器神经网络。在另一种类型的监督训练回路中,系统可以计算对象的中性(neutral)图像(例如,正面图像)的像素和通过从中性图像渲染对象的估计的3D形状和纹理而生成的对象的视图的像素之间的损失。在一个示例中,3D估计器神经网络可以用于估计照片中描绘的面部的3D形状和纹理。照片中描绘的面部的估计的3D形状和纹理可以由3D渲染器渲染,以生成计算机生成的图像,称为替身(avatar),其相似于照片中描绘的面部。为了提高3D估计器神经网络在估计照片中的面部的3D形状和纹理时的准确性,系统可以使用无监督和/或监督训练回路来训练3D估计器神经网络。本说明书本文档来自技高网...

【技术保护点】
1.一种计算机实施的方法,包括:/n从对象识别引擎获得说明从对象的图像导出的第一图像特征的数据;/n将第一图像特征提供给三维估计器神经网络;/n从所述三维估计器神经网络获得数据,所述数据说明(i)估计的三维形状和(ii)估计的纹理,所述(i)估计的三维形状和(ii)估计的纹理中的每一个基于第一图像特征;/n将说明(i)估计的三维形状和(ii)估计的纹理的数据提供给三维渲染引擎;/n从所述三维渲染引擎获得说明所述对象的多个三维视图的数据,每一个三维视图基于说明(i)估计的三维形状和(ii)估计的纹理的数据生成;/n将说明所述多个三维视图中的每一个的数据提供给所述对象识别引擎;/n从所述对象识别引擎并且针对由所述数据说明的多个三维视图中的每一个,获得说明从说明所述三维视图的数据导出的第二图像特征的数据;/n至少基于说明第一图像特征的数据和说明第二图像特征的数据,基于第一损失函数计算第一损失;和/n至少基于计算出的第一损失来训练所述三维估计器神经网络。/n

【技术特征摘要】
【国外来华专利技术】20171115 US 15/813,3381.一种计算机实施的方法,包括:
从对象识别引擎获得说明从对象的图像导出的第一图像特征的数据;
将第一图像特征提供给三维估计器神经网络;
从所述三维估计器神经网络获得数据,所述数据说明(i)估计的三维形状和(ii)估计的纹理,所述(i)估计的三维形状和(ii)估计的纹理中的每一个基于第一图像特征;
将说明(i)估计的三维形状和(ii)估计的纹理的数据提供给三维渲染引擎;
从所述三维渲染引擎获得说明所述对象的多个三维视图的数据,每一个三维视图基于说明(i)估计的三维形状和(ii)估计的纹理的数据生成;
将说明所述多个三维视图中的每一个的数据提供给所述对象识别引擎;
从所述对象识别引擎并且针对由所述数据说明的多个三维视图中的每一个,获得说明从说明所述三维视图的数据导出的第二图像特征的数据;
至少基于说明第一图像特征的数据和说明第二图像特征的数据,基于第一损失函数计算第一损失;和
至少基于计算出的第一损失来训练所述三维估计器神经网络。


2.根据权利要求1所述的计算机实施的方法,其中,所述对象是人的面部。


3.根据权利要求1或权利要求2所述的计算机实施的方法,其中,所述对象的图像是基于说明(i)合成的三维形状和(ii)合成的纹理的数据生成的合成图像。


4.根据权利要求3所述的计算机实施的方法,包括:
至少基于(i)说明合成的三维形状和合成的纹理的数据和(ii)说明估计的三维形状和估计的纹理的数据,基于第二损失函数计算第二损失;和
至少基于计算出的第一损失和计算出的第二损失来训练所述三维估计器神经网络。


5.根据权利要求3或权利要求4所述的计算机实施的方法,其中,基于说明(i)合成的三维形状和(ii)合成的纹理的数据生成所述对象的合成图像包括:
生成基于(i)合成的三维形状的特定姿势和特定光照以及(ii)合成的纹理的渲染。


6.根据权利要求3至5中任一项所述的计算机实施的方法,其中,计算出的第二损失指示(i)基于合成的三维形状和合成的纹理确定的顶点和(ii)基于估计的三维形状和估计的纹理确定的顶点之间的差异实质。


7.根据前述权利要求中任一项所述的计算机实施的方法,其中,计算出的第一损失指示第一图像特征和第二图像特征之间的差异实质。


8.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述对象识别引擎是面部识别神经网络。


9.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述三维渲染引擎是三维渲染神经网络或三维光栅化引擎中的一个。


10.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述多个三维视图中的每一个是基于不同于其它三维视图中的每一个的姿势和光照的各自的姿势和各自的光照来生成的。


11.一种系统,包括:
处理器,被配置为执行计算机程序指令;和
编码有计算机程序的计算机存储介质,当由处理器执行时,所述计算机程序使得系统执行包括以下各项的操作:
从对象识别引擎获得说明从对象的图像导出的第一图像特征的数据;
将第一图像特征提供给三维估计器神经网络;
从所述三维估计器神经网络获得数据,所述数据说明(i)估计的三维形状和(ii)估计的纹理,所述(i)估计的三维形状和(ii)估计的纹理中的每一个基于第一图像特征;
将说明(i)估计的三维形状和(ii)估计的纹理的数据提供给三维渲染引擎;
从所述三维渲染引擎获得说明所述对象的多个三维视图的数据,每一个三维视图基于说明(i)估计的三维形状和(ii)估计的纹理的数据生成;
将说明所述多个三维视图中的每一个的数据提供给所述对...

【专利技术属性】
技术研发人员:FH科尔K吉诺瓦
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1