CN110163953B - 三维人脸重建方法、装置、存储介质和电子装置 - Google Patents
三维人脸重建方法、装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN110163953B CN110163953B CN201910181932.3A CN201910181932A CN110163953B CN 110163953 B CN110163953 B CN 110163953B CN 201910181932 A CN201910181932 A CN 201910181932A CN 110163953 B CN110163953 B CN 110163953B
- Authority
- CN
- China
- Prior art keywords
- face
- image
- target
- neural network
- face image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种三维人脸重建方法、装置、存储介质和电子装置。其中,该方法包括:获取输入的多张目标人脸图像;通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张人脸图像;将目标外观参数输入至预先确定的三维人脸模型中,并输出由三维人脸模型对目标外观参数进行处理,得到的目标人脸对象的目标三维人脸图像。本发明解决了相关技术中对三维人脸进行重建的准确性低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种三维人脸重建方法、装置、存储介质和电子装置。
背景技术
目前,在三维人脸重建中,可以基于卷积神经网络对输入的人脸图像进行处理,得到重建的人脸图像。但是,该方法通常基于单张人脸图像进行处理,无法利用多视角图像之间对三维人脸重建的约束信息。另外,只用像素损失对卷积神经网络训练,使得卷积神经网络模型的鲁棒性低,存在对三维人脸进行重建的准确性低的问题。
针对上述的对三维人脸进行重建的准确性低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种三维人脸重建方法、装置、存储介质和电子装置,以至少解决相关技术中对三维人脸进行重建的准确性低的技术问题。
根据本发明实施例的一个方面,提供了一种三维人脸重建方法。该方法包括:获取输入的多张目标人脸图像,其中,多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到;通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,其中,第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张人脸图像,渲染图像根据每张人脸图像的视角参数和人脸对象的三维人脸图像得到,视角参数用于指示对每张人脸图像进行拍摄的视角,目标外观参数用于指示目标人脸对象的外观;将目标外观参数输入至预先确定的三维人脸模型中,并输出由三维人脸模型对目标外观参数进行处理,得到的目标人脸对象的目标三维人脸图像。
根据本发明实施例的另一方面,还提供了一种存储介质。该存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行本发明实施例的三维人脸重建方法。
根据本发明实施例的另一方面,还提供了一种电子装置。该电子装置包括:存储器和处理器,其特征在于,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行本发明实施例的三维人脸重建方法。
在本发明实施例中,通过预先训练的第一神经网络模型对多个目标视角的目标人脸图像进行处理,得到目标外观参数(三维人脸的形状、表情),并且该第一神经网络模型是结合多个不同视角对应的人脸图像和对应的渲染图像之间的光流损失和图像特征损失(对齐损失,Align Loss)对模型的参数进行更新得到的,从而从局部和全局上更好地实现多视角图像之间的对齐,进一步输出通过目标外观参数生成目标三维人脸图像,达到了对目标人脸对进行三维人脸重建的目的,从而实现了提高对三维人脸进行重建的准确性的技术效果,解决了相关技术对三维人脸进行重建的准确性低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种三维人脸重建方法的硬件环境的示意图;
图2是根据本发明实施例的一种三维人脸重建方法的流程图;
图3是根据本发明实施例的一种三维人脸重建的示意图;
图4是根据本发明实施例的一种可见遮罩的示意图;
图5是根据本发明实施例的另一种可见遮罩的示意图;
图6是根据本发明实施例的另一种可见遮罩的示意图;
图7是根据本发明实施例的另一种可见遮罩的示意图;
图8A为根据本发明实施例的一种通过遮罩对渲染图进行处理的示意图;
图8B为根据本发明实施例的一种渲染图像的示意图;
图8C是根据本发明实施例的一种前向光流和后向光流的示意图;
图9是根据本发明实施例的一种三维人脸重建装置的示意图;以及
图10是根据本发明实施例的一种电子装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种三维人脸重建方法的实施例。
可选地,在本实施例中,上述三维人脸重建方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的三维人脸重建方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的三维人脸重建方法也可以是由安装在其上的客户端来执行。
图2是根据本发明实施例的一种三维人脸重建方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤S202,获取输入的多张目标人脸图像,其中,多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到。
在本申请步骤S202提供的技术方案中,目标人脸对象可以为需要进行三维人脸重建的人脸,多张目标人脸图像可以为对同一目标人脸对象在不同目标视角下拍摄得到的图像,比如,多个不同目标视角分别为左视角、正面视角、右视角,分别从左视角、正面视角、右视角对目标人脸对象进行拍摄,得到三张人脸图片。多张不同视角下的目标人脸图像形成了对创建三维人脸的约束信息,也即,这些目标图像中的人脸对象的外观是一样的,包括三维人脸形状、表情都是一样的,只是视角不同。因此,对于这些多目标视角下的多张目标图像,需要求解一个特定的外观和多个视角参数,其中,视角参数用于指示对每张人脸图像进行拍摄的视角,可以为每张人脸图像对应的相机参数、姿势参数、投影参数。
需要说明的是,上述三张目标人脸图片仅为本发明实施例的一种举例,并不仅限于多张目标人脸图像仅为上述三个视角的人脸图片,任何从多个不同目标视角对目标人脸进行拍摄得到的多张目标人脸图像都在本发明实施例的范围之内,此处不再一一举例说明。
步骤S204,通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,其中,第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到。
在本申请步骤S204提供的技术方案中,人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张人脸图像,渲染图像根据每张人脸图像的视角参数和人脸对象的三维人脸图像得到,视角参数用于指示对每张人脸图像进行拍摄的视角,目标外观参数用于指示目标人脸对象的外观,三维人脸图像用于指示三维人脸的几何形状。
在获取输入的多张目标人脸图像之后,通过预先训练好的第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,该目标外观参数可以包括人脸形状参数和人脸表情参数,其中,人脸形状参数用于指示目标人脸对象的三维人脸形状,也即,三维人脸的几何信息,人脸表情参数用于指示目标人脸对象的表情,也即,对于确定的目标人脸对象而言,由于三维人脸形状和表情是不变的,因而人脸形状参数和人脸表情参数也是确定的。
在该实施例中,在通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,需要对第一神经网络模型进行训练,该第一神经网络模型可以为深度卷积神经网络模型。
在对第一神经网络模型进行训练时,获取人脸图像样本,该人脸图像样本包括大量的从多个不同视角对同一人脸对象进行拍摄得到的多张人脸图像。对于图像样本中的每张人脸图像,获取与每张人脸图像相关联的渲染图像,该渲染图像可以通过每张人脸图像的视角参数对该每张人脸图像对应的三维人脸图像和来自其它视角下的人脸图像的纹理进行渲染得到,为一张无背景的人脸图像,并且与对应的每张人脸图像之间的相似度高于目标阈值,其中,三维人脸图像用于指示三维人脸的形状。
可选地,在获取每张人脸图像对应的三维人脸图像时,可以获取每张人脸图像的特征向量,将多张人脸图像的多个特征向量串联起来得到目标特征向量,再通过子神经网络模型的全连接层对该目标特征向量进行处理,得到人脸对象的外观参数,该外观参数可以包括人脸形状参数和人脸表情参数,通过三维人脸模型将该外观参数转化为上述三维人脸图像,其中,子神经网络模型可以为第一神经网络模型在训练过程中所用到的卷积神经网络模型,三维人脸模型可以为三维形变模型(3DMM),该三维形变模型为一种参数化的人脸模型,可以根据不同的外观参数生成不同的三维人脸图像,以确定对应的三维人脸形状和表情。
可选地,在获取人脸图像的纹理时,可以根据人脸对象的三维人脸图像和每张人脸图像的视角参数来获取每张人脸图像的纹理,比如,根据三维人脸图像的三维人脸点云和人脸图像的视角参数计算得到三维人脸点云在人脸图像上的投影位置,通过人脸图像上与该投影位置对应的像素点获取该像素点的纹理信息,即得到每张人脸图像的纹理。
在该实施例中,与每个视角对应的人脸图像都可以通过上述方法提取出纹理。对于输入的人脸图像,可以按照其视角参数对已经创建好的三维人脸图像和其它视角下的人脸图像的纹理进行渲染,得到与其对应的渲染图像,比如,有n(≥2)个视角下的人脸图像,则正常情况下可以得到n(n-1)组输入的人脸图像和与其对应的渲染图像。而对于视角相差较大的两个人脸图像,可以不用按照其中一个人脸图像的视角参数对已经创建好的三维人脸图像和另一视角下的人脸图像的纹理进行渲染。比如,左视角的人脸图像和右视角的人脸图像,则不按照左视角下的人脸图像的视角参数对已经创建好的三维人脸图像和右视角下的人脸图像的纹理进行渲染,也不按照右视角下的人脸图像的视角参数对已经创建好的三维人脸图像和左视角下的人脸图像的纹理进行渲染。
举例而言,对人脸对象从左视角进行拍摄,得到A人脸图像,对人脸对象从正面视角进行拍摄,得到B人脸图像,对人脸对象从右视角进行拍摄,得到C人脸图像。
根据A人脸图像的视角参数对人脸对象的三维人脸图像和B人脸图像的纹理进行渲染,得到与A人脸图像相关联的B->A渲染图像,该B->A渲染图像与A人脸图像之间的相似度高于目标阈值。
根据C人脸图像的视角参数对人脸对象的三维人脸图像和B人脸图像的纹理进行渲染,得到与C人脸图像相关联的B->C渲染图像,该B->C渲染图像与A人脸图像之间的相似度高于目标阈值。
根据B人脸图像的视角参数对人脸对象的三维人脸图像和A人脸图像的纹理进行渲染,得到与B人脸图像相关联的A->B渲染图像,该A->B渲染图像与B人脸图像之间的相似度高于目标阈值。
根据B人脸图像的视角参数对人脸对象的三维人脸图像和C人脸图像的纹理进行渲染,得到与B人脸图像相关联的C->B渲染图像,该C->B渲染图像与B人脸图像之间的相似度高于目标阈值。
以上述方法类推,对于多个视角的人脸图像,可以得到多组输入的人脸图像和与其对应的渲染图像。
在获取与每张人脸图像相关联的渲染图像之后,获取每张人脸图像与对应的渲染图像之间的光流损失和图像特征损失,也即,该实施例将光流损失和图像特征损失作为模型训练过程中的网络损失(Loss)。可选地,在获取每张人脸图像与对应的渲染图像之间的光流损失时,该实施例可以获取每张人脸图像与对应的渲染图像之间的光流信息。该实施例的光流信息可以包括通过光流估计网络对渲染图像与每张人脸图像进行计算得到的前向光流信息,还可以包括通过光流估计网络对每张人脸图像与渲染图像进行计算得到的后向光流信息,将其作为每张人脸图像与对应的渲染图像之间的光流损失。其中,当子神经网络模型的参数足够准确时,前向光流信息和反向光流信息应该为0,也即,与每张人脸图像相关联的渲染图像应该和输入的人脸图像保持一致,因而该实施例在整个模型训练过程中,目的是最小化前向光流信息和反向光流信息,进而更新子神经网络模型的参数,从而修正由于对不同视角的视角参数和人脸对象的外观估计不准而导致的误差。
在该实施例中,子神经网络模型的每一层的输入和输出之间都有可以反向传导的链路,在获取每张人脸图像与对应的渲染图像之间的光流损失之后,可以根据反向传导的链路来更新子神经网络模型的参数。
该实施例在获取每张人脸图像与对应的渲染图像之间的图像特征损失时,可以获取每张人脸图像与对应的渲染图像之间的像素损失(Photo Loss)和梯度损失,其中,像素损失可以为每张人脸图像与对应的渲染图像之间的像素值的差,梯度损失可以为每张人脸图像与对应的渲染图像之间的梯度的差。该实施例在整个模型训练过程中,最小化图像特征损失,进而更新子神经网络模型的参数,从而修正由于对不同视角的视角参数和人脸对象的外观估计不准而导致的误差。
在获取每张人脸图像与对应的渲染图像之间的图像特征损失之后,可以根据反向传导的链路来更新子神经网络模型的参数。
可选地,该实施例可以根据人脸对象的外观参数重建出三维人脸的点云,根据每张人脸图像的视角参数来计算三维人脸点云在人脸图像上的投影位置,其中,与三维人脸点云中的关键点索引相对应的投影位置即为在人脸图像中检测到关键点的位置。计算三维点云上关键点投影的位置与实际检测到的关键点位置之间的欧氏距离,将其作为损失函数,进而对子神经网络模型的参数进行更新。其中,人脸的关键点检测可以包括68个点,每个关键点在三维人脸点云中具有对应的索引,比如,人脸的关键点检测会包含右眼眼角,则在三维点云中也会标出与右眼眼角相对应的索引。
由于三维人脸模型(3DMM)可以是基于主成分分析的模型,为了防止回归出来的人脸对象的外观参数超出人脸形状的限制,该实施例加入了正则项来限制外观参数中的元素过大。其中,正则项是归一化后的外观参数与全零项之间的距离,通过该正则项来限制网络输出的外观参数不会偏离平均脸太远。其中,平均脸为外观参数均为零时重建出来的三维人脸。
在该实施例中,在对第一神经网络模型进行训练的过程中,没有依赖任何的人工标注数据,而只是通过提取图像自身的信息以反馈的方式来实现模型的自监督训练。由于将每张人脸图像与对应的渲染图像之间的像素损失和光流损失结合起来对子神经网络模型进行训练,从局部和全局上更好地实现多视角图像之间的对齐,可以处理不同视角的人脸图像之间的光照变化,同时可以更准确地反映出不同视角之间的对应关系,使得训练好的第一神经网络模型更加鲁棒。
步骤S206,将目标外观参数输入至预先确定的三维人脸模型中,并输出由三维人脸模型对目标外观参数进行处理,得到的目标人脸对象的目标三维人脸图像。
在本申请步骤S206提供的技术方案中,在通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之后,将目标外观参数输入至预先确定的三维人脸模型中,该三维人脸模型可以为上述三维形变模型,通过该参数化的人脸模型将目标外观参数所对应的三维人脸形状和表情转化为目标人脸对象的目标三维人脸图像,以确定对应的三维人脸形状和表情。在得到目标三维人脸图之后,可以将目标三维人脸图像输出至前端界面上进行显示。
通过上述步骤S202至步骤S206,通过预先训练的第一神经网络模型对多个目标视角的目标人脸图像进行处理,得到目标外观参数(三维人脸的形状、表情),并且该第一神经网络模型是结合多个不同视角对应的人脸图像和对应的渲染图像之间的光流损失和图像特征损失对模型的参数进行更新得到的,从而从局部和全局上更好地实现多视角图像之间的对齐,进一步输出通过目标外观参数生成目标三维人脸图像,达到了对目标人脸对进行三维人脸重建的目的,从而实现了提高对人脸进行重建的准确性的技术效果,解决了相关技术对人脸进行重建的准确性低的技术问题。
作为一种可选的实施方式,在通过目标神经网络模型第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,该方法还包括:获取每张人脸图像和渲染图像之间的光流信息;将光流信息确定为光流损失。
光流信息为图像序列中的图像亮度模式的表观运动,即空间物体表面上的点的运动速度在视觉传感器的成像平面上的表达,其中,图像序列包括至少两个图像。在该实施例中,在确定光流损失时,可以获取每张人脸图像和渲染图像之间的光流信息,将其确定为每张人脸图像和渲染图像之间的光流损失,进而作为模型训练过程中的一种损失,其针对人脸图像的全局信息,用于对子神经网络模型的参数进行更新。
需要说明的是,在该实施例中,在训练过程中使用光流损失来计算多视角下的人脸图像之间的对应关系,输入的人脸图像之间可以不需要有相同的光照条件。
作为一种可选的实施方式,获取每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流信息包括:将每张人脸图像和渲染图像依次输入至第二神经网络模型中,得到第一光流信息,其中,第二神经网络模型用于提取按照目标顺序进行排列的多张图像之间的光流信息,光流信息包括第一光流信息,和/或,将渲染图像和每张人脸图像依次输入至第二神经网络模型中,得到第二光流信息,光流信息包括第二光流信息。
在该实施例中,第二神经网络模型可以为光流估计网络(PWCNet),可以计算每张人脸图像与对应的渲染图像之间的光流信息,其中,光流估计网络为基于深度卷积网络的提取光流算法,通过引入PWCNet可以保证整个算法的可导性,在对子神经网络模型进行训练的过程中,PWCNet的参数并不会被更新,多张图像按照不同顺序输入至第二神经网络模型所得到的光流信息是不同的。在该实施例中,将每张人脸图像和与每张人脸图像对应的渲染图像依次输入至第二神经网络模型中进行处理,可选地,该第二神经网络模型为第一神经网络模型的光流层,通过该光流层对每张人脸图像和与每张人脸图像对应的渲染图像进行处理,得到第一光流信息,该第一光流信息也即后向光流、反向光流。由于当网络输出的参数足够准确的时候,该反向光流应该为0,因而在模型训练的过程中,最小化后向光流。
可选地,该实施例调换每张人脸图像和与每张人脸图像对应的渲染图像,将渲染图像和每张人脸图像依次输入至第二神经网络模型中,也即,将渲染图像和每张人脸图像依次输入至第一神经网络模型的光流层,通过该光流层对渲染图像和每张人脸图像进行处理,得到第二光流信息,该第二光流信息也即前向光流信息。由于当网络输出的参数足够准确的时候,该前向光流应该为0,因而在模型训练的过程中,最小化前向光流。
在该实施例中,对于同一组的输入的人脸图像和与该人脸图像对应的渲染图像,该实施例获取前向光流和反向光流,并同时最小化两者,从而增强了最终训练得到的第一神经网络模型的鲁棒性,减少光流信息计算误差的影响。另外,由于光流信息本身是对人脸图像进行多尺度提取特征,因而光流损失能够更好地避免模型在训练过程中陷入局部最小值。
可选地,在该实施例中,为了避免渲染图像的纯色背景对第一光流信息和第二光流信息造成的影响,该实施例还采用人脸遮罩对渲染图像进行进一步处理,将人脸遮罩之外的部分替换为自然图像。可选地,该实施例对与每张人脸图像对应的渲染图像进行二值化处理,得到人脸遮罩。该实施例还可以采用人脸分割算法来替代人脸遮罩在该实施例中的作用。
作为一种可选的实施方式,在通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,该方法还包括:将光流损失反向传播至子神经网络模型中,并按照预先设定的目标映射关系将子神经网络模型的当前参数更新为第一目标参数;将具有第一目标参数的子神经网络模型确定为第一神经网络模型。
在该实施例中,在对子神经网络模型进行训练的过程中,所有的操作都是可导的,且每一层的输入和输出之间都有可以反向传导的链路。在获取每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失之后,可以按照反向传导的链路将光流损失反向传播至子神经网络模型中,并按照预先设定的目标映射关系对子神经网络模型的当前参数进行更新,得到第一目标参数。可选地,该实施例通过光流损失对子神经网络模型的卷积核的权重、偏移,以及线性层的权重、偏移进行更新。该实施例可以按照反向传播算法通过光流损失来更新子神经网络模型的当前参数。
可选地,在按照预先设定的目标映射关系对子神经网络模型的当前参数进行更新时,可以将输入的每张人脸图像和光流损失相乘,从而获得权重的梯度,将这个梯度乘上第一目标比例并取反后加到子神经网络模型的当前参数上,从而实现对子神经网络模型的当前参数进行更新的目的,比如,加在卷积核的权重上。其中,第一目标比例将会影响到训练过程的速度和效果,为训练因子,梯度的方向指明了光流损失扩大的方向,因此在更新权重的时候需要对其取反,从而减小权重所引起的光流损失。
在神经网络模型训练到一定阶段时,在按照预先设定的目标映射关系将子神经网络模型的当前参数更新为第一目标参数之后,可以将具有第一目标参数的子神经网络模型确定为第一神经网络模型。该实施例对子神经网络模型进行训练的过程中,没有依赖任何的人工标注数据,而是通过提取人脸图像自身的光流信息进行反馈的方式对子神经网络模型进行训练,从而实现了模型的自监督训练,增强了训练好的第一神经网络模型的鲁棒性,进而通过该第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,通过三维人脸模型对目标外观参数进行处理,得到目标人脸对象,提高了对三维人脸进行重建的准确性。
作为一种可选的实施方式,在通过目标神经网络模型第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,该方法还包括:获取每张人脸图像的第一图像特征和渲染图像的第二图像特征;将第一图像特征和第二图像特征之间的差确定为图像特征损失。
在该实施例中,图像特征可以包括图像的像素值和梯度,在获取每张人脸图像和与该人脸图像对应的渲染图像之间的图像特征损失时,可以获取每张人脸图像的第一图像特征和渲染图像的第二图像特征。可选地,第一图像特征包括第一像素值,第二图像特征包括第二像素值,获取每张人脸图像的第一像素值和渲染图像的第二像素值。可选地,第一图像特征包括第一梯度,第二图像特征包括第二梯度,获取每张人脸图像的第一梯度和渲染图像的第二梯度。
在获取每张人脸图像的第一图像特征和渲染图像的第二图像特征之后,将每张人脸图像的第一像素值和渲染图像的第二像素值之间的差,确定为像素损失,将该像素损失确定为每张人脸图像和与该人脸图像对应的渲染图像之间的图像特征损失。该实施例还可以每张人脸图像的第一梯度和渲染图像的第二梯度之间的差,确定为梯度损失,将该梯度损失确定为每张人脸图像和与该人脸图像对应的渲染图像之间的图像特征损失。该实施例将图像特征损失作为模型训练过程中的一种损失,针对人脸图像的局部信息,用于对子神经网络模型的参数进行更新。
该实施例通过比较不同视角下的人脸图像之间的图像特征损失,可以有效地限制三维人脸图像所指示的三维人脸的形状和表情,其中,三维人脸的形状也即三维人脸的几何信息。
作为一种可选的实施方式,在通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,该方法还包括:将图像特征损失反向传播子神经网络模型中,并按照预先设定的目标映射关系将子神经网络模型的当前参数更新为第二目标参数;将具有第二目标参数的子神经网络模型确定为第一神经网络模型。
在该实施例中,在对子神经网络模型进行训练的过程中,所有的操作都是可导的,且每一层的输入和输出之间都有可以反向传导的链路。在获取每张人脸图像和与每张人脸图像相关联的渲染图像之间的图像特征损失之后,可以按照反向传导的链路将图像特征损失反向传播至子神经网络模型中,比如,按照反向传导的链路将像素损失反向传播至子神经网络模型中,按照预先设定的目标映射关系对子神经网络模型的当前参数进行更新,得到第二目标参数,可选地,对子神经网络模型的卷积核的权重、偏移,以及线性层的权重、偏移进行更新。可选地,该实施例按照反向传播算法通过图像特征损失来更新子神经网络模型的当前参数。
可选地,在按照预先设定的目标映射关系对子神经网络模型的当前参数进行更新时,可以将输入的每张人脸图像和图像特征损失相乘,从而获得权重的梯度,将这个梯度乘上第二目标比例并取反后加到子神经网络模型的当前参数上,从而实现对子神经网络模型的当前参数进行更新的目的,比如,加在卷积核的权重上。其中,第二目标比例将会影响到训练过程的速度和效果,为训练因子,梯度的方向指明了图像特征损失扩大的方向,因此在更新权重的时候需要对其取反,从而减小权重所引起的图像特征损失。
在神经网络模型训练到一定阶段时,在按照预先设定的目标映射关系将子神经网络模型的当前参数更新为第一目标参数之后,可以将具有第二目标参数的子神经网络模型确定为第一神经网络模型。该实施例对子神经网络模型进行训练的过程中,没有依赖任何的人工标注数据,而是通过提取人脸图像自身的图像特征进行反馈的方式对子神经网络模型进行训练,实现了通过不同视角之间的人脸图像的像素损失实现自监督训练,增强了训练好的第一神经网络模型的鲁棒性,进而通过该第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,通过三维人脸模型对目标外观参数进行处理,得到目标人脸对象,提高了对三维人脸进行重建的准确性。
作为一种可选的实施方式,在通过目标神经网络模型第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,该方法还包括:通过子神经网络模型的第一神经网络层对每张人脸图像进行处理,得到每张人脸图像的图像特征向量;通过子神经网络模型的第二神经网络层对每张人脸图像进行处理,得到每张人脸图像的视角参数。
该实施例在有标注的三维人脸数据集上进行预训练,比如,在包括三维人脸的形状参数、表情参数和每张人脸图像的视角参数的三维人脸数据集上进行训练。对于一组训练数据,可以先通过子神经网络模型的第一神经网络层对每张人脸图像进行处理,得到每张人脸图像的图像特征向量。可选地,该第一神经网络层可以为VGG-Face网络,通过VGG-Face网络从输入的每张人脸图像中提取出图像特征,该图像特征再经过平均池化后可以得到一个维度为512的图像特征向量,其中,VGG-Face网络为采用VGG结构的人脸识别模型。
在得到每张人脸图像的图像特征向量之后,通过子神经网络模型的第二神经网络层对每张人脸图像进行处理,得到每张人脸图像的视角参数,其中,第二神经网络层可以为子神经网络模型的一个全连接层FC2(512,7),通过该全连接层FC2对每张人脸图像进行处理,得到的向量即为视角参数,也即,姿势参数,维度为7。多张人脸图像的多个特征向量分别经过同一个FC2,从而得到多个视角参数。
作为一种可选的实施方式,在通过子神经网络模型的第二神经网络层对每张人脸图像进行处理,得到每张人脸图像的视角参数时,该方法还包括:对多张人脸图像的多个图像特征向量进行融合,得到目标图像特征向量;通过子神经网络模型的第三神经网络层对目标图像特征向量进行处理,得到人脸对象的外观参数;将外观参数输入至三维人脸模型中,得到人脸对象的三维人脸图像,其中,外观参数用于指示人脸对象的外观。
在通过子神经网络模型的第二神经网络层对每张人脸图像进行处理,得到每张人脸图像的视角参数时,还可以对已经得张到的多人脸图像的多个图像特征向量进行融合,比如,将多人脸图像的多个图像特征向量进行串联,也即,将多人脸图像的多个图像特征向量进行拼接,得到目标图像特征向量。可选地,每个图像特征向量的维度为512,将N个图像特征向量串联在一起,得到一个维度为512*N的目标图像特征向量。
在对多张人脸图像的多个图像特征向量进行融合,得到目标图像特征向量之后,该实施例通过子神经网络模型的第三神经网络层对目标图像特征向量进行处理,得到的向量即为人脸对象的外观参数,该外观参数可以为3DMM系数,包括人脸对象的表情参数和形状参数。可选地,第三神经网络层可以为子神经网络模型的一个全连接层FC1(512*N,228),将目标图像特征向量输入至全连接个FC1进行处理,可以得到一个228维的向量,该向量前199维可以是外观参数中的形状参数,后29维可以为外观参数中的表情参数。
在通过子神经网络模型的第三神经网络层对目标图像特征向量进行处理,得到人脸对象的外观参数之后,可以根据外观参数重建出三维人脸的形状和表情。可选地,该实施例将外观参数输入至预先确定好的三维人脸模型中,比如,将外观参数输入至三维形变模型3DMM中进行处理,从而得到人脸对象的三维人脸图像。
作为一种可选的实施方式,在将外观参数输入至三维人脸模型中,得到人脸对象的三维人脸图像之后,该方法还包括:对每张人脸图像的纹理进行采样,得到每张人脸图像的目标纹理;根据每张人脸图像的视角参数对三维人脸图像和第一人脸图像的目标纹理进行渲染,得到与每张人脸图像相关联的渲染图像,其中,第一人脸图像为多张人脸图像中除每张人脸图像之外的人脸图像。
在该实施例中,在对子神经网络模型进行训练以得到第一神经网络模型的过程中,并不会生成纹理,而是进行纹理采样,该实施例通过每张人脸图像和与每张人脸图像对应的渲染图像之间的像素损失和光流损失更新子神经网络模型的参数,从而更新人脸对象的外观参数和视角参数,而不是更新纹理本身,也即,该实施例通过更新在人脸图像中提取纹理的位置来得到更好的纹理,而不是直接更改纹理本身,从而可以根据渲染图像和输入的人脸图像的每张人脸图像之间的误差来更新子神经网络模型的参数,避免引入纹理变量而带来歧义性。
该实施例可以根据每张人脸图像的视角参数和三维人脸图像对每张人脸图像的纹理进行采样,比如,根据每张人脸图像的姿势参数和三维人脸的形状对每张人脸图像的纹理进行采样,得到目标纹理。
该实施例采用可导的渲染层(Differentiable Rendering),可以实现可导的渲染操作,可以根据目标纹理、三维人脸图像(三维人脸的形状)、视角参数渲染人脸图像。在得到每张人脸图像的目标纹理之后,可以根据每张人脸图像的视角参数对三维人脸图像和第一人脸图像的目标纹理进行渲染,得到与每张人脸图像相关联的渲染图像,该第一人脸图像为多张人脸图像中除每张人脸图像之外的人脸图像。
举例而言,该实施例对B人脸图像进行纹理采样,将得到的目标纹理和三维人脸的形状根据A人脸图像的姿势参数进行渲染,可以得到一个和A人脸图像相关联的渲染图像,该渲染图像和A人脸图像之间的相似度高于目标阈值。
再举例而言,输入左视角下的A人脸图像、正面视角下的B人脸图像、C视角下的C人脸图像,将B人脸图像的目标纹理和三维人脸的形状,分别根据A人脸图像的姿势参数和C人脸图像的姿势参数渲染成图像B->A和图像B->C。由于A人脸图像和C人脸图像仅包含侧脸的信息,将A人脸图像的目标纹理和三维人脸的形状根据B人脸图像的姿势参数渲染成图像A->B。将C人脸图像的目标纹理和三维人脸的形状根据B人脸图像的姿势参数渲染成图像C->B。
作为一种可选的实施方式,对每张人脸图像的纹理进行采样,得到每张人脸图像的目标纹理包括:按照每张人脸图像的视角参数,确定三维人脸图像的三维人脸点云在每张人脸图像上的投影位置;确定投影位置在每张人脸图像上对应的目标像素点;通过目标像素点的颜色信息确定每张人脸图像的目标纹理。
在该实施例中,在对每张人脸图像的纹理进行采样,得到每张人脸图像的目标纹理时,可以按照每张人脸图像的视角参数,确定三维人脸图像的三维人脸点云在每张人脸图像上的投影位置,其中,三维人脸点云为人脸对象上的大量采样点的坐标,可以根据三维人脸点云和每张人脸图像的视角参数计算得到三维人脸点云在每张人脸图像上的投影位置。在确定三维人脸图像的三维人脸点云在每张人脸图像上的投影位置之后,确定投影位置在每张人脸图像上对应的目标像素点,进而通过目标像素点的颜色信息确定每张人脸图像的目标纹理,其中,颜色信息可以为RGB值,从而实现了通过投影位置的像素点获取每张人脸图像的目标纹理的目的。该实施例通过向上网格采样(up_grid_sampling)可以把这个操作变成可导,集成到神经网络中。
该实施例提出了一个自监督的用于三维人脸重建的第一神经网络模型,可以为基于端到端的卷积神经网络,从多视角下的人脸图像中估计人脸对象的外观参数及视角参数,并将三维人脸重投影到多视角,通过最小化输入的每张人脸图像与输出的渲染图像之间的光流损失和像素损失来更新网络参数来得到第一神经网络模型,从而可以处理不同视角下的人脸图像之间的光照变化,同时可以更准确地反映出不同视角下的人脸图像之间的对应关系,相对于单张人脸图像的处理,多视角下的人脸图像的重建方法可以利用更多人脸几何信息,重建更精确的三维人脸图像,相对于非线性优化的多视角重建而言,该实施例训练的第一神经网络模型在处理输入的多个目标视角的目标人脸图像时更加快速且稳定,对于不同视角下的人脸图像之间的光照的变化更加鲁棒。通过训练好的第一神经网络模型对多个目标视角的目标人脸图像进行处理,得到目标外观参数,进一步输出通过目标外观参数生成目标三维人脸图像,达到了对目标人脸对进行三维人脸重建的目的,从而实现了提高对三维人脸进行重建的准确性的技术效果,解决了相关技术对三维人脸进行重建的准确性低的技术问题。
下面结合优选的实施例对本发明的技术方案进行说明。
该实施例基于多视角对齐损失的三维人脸重建方法通过多视角图像之间的像素损失和光流损失对神经网络模型的参数不断更新,从而训练用于三维人脸重建的模型,其中,像素损失和光流损失是为了修正多视角图像之间由于三维人脸模型的形状参数、表情参数和相机参数估计不准,而导致结果出现误差,这样弥补了只用像素损失无法处理多视角之间的光照变化问题,使得训练好的模型更加鲁棒,提高对三维人脸进行重建的准确性。
可选地,获取多张不同视角的输入的人脸图像以及与输入的人脸图像相关联的渲染图;获取输入的人脸图像和渲染图之间的光流损失和像素损失;通过光流损失和像素损失更新初始建立的模型的参数,得到用于对三维人脸进行重建的模型,该模型的输入为多张不同视角的图像,输出为三维人脸模型的形状系数、表情系数和相机参数,即得到与输入的人脸图像对应的三维人脸图像。
其中,通过从输入的人脸图像和渲染图中提取出的光流信息来确定光流损失以更新初始建立的模型的参数,而光流信息可以通过基于深度卷积网络的PWCNet来提取,从而更好地利用图像之间的全局对应关系。在具体实现时,可以采用人脸遮罩对渲染图进行处理,以避免渲染图的纯色背景对光流造成影响,其中,在确定人脸遮罩时,可以确定人脸的投影区域;根据投影区域确定出图像中的人脸区域;将人脸区域经过域变换滤波处理,得到输入的人脸图像的人脸遮罩;对于同一组输入的人脸图像和渲染图像,该实施例采用前向光流和反向光流方法进行处理,以增强方法的鲁棒性,减少光流计算误差的影响。进一步地,获取输入的人脸图像和渲染图像之间的最小化光流图,该最小化光流图可以通过前向光流,反向光流和全零数组的距离来确定。
另外,在对输入的人脸图像进行渲染,以得到渲染图时,该实施例根据三维人脸模型的形状系数、表情系数重建出三维人脸的形状;再根据一个输入的人脸图像的相机参数和三维人类的形状对该一个输入的人脸图像进行纹理采样;将得到的纹理和三维人脸的形状,根据另一个输入的人脸图像的相机参数进行渲染,可得到一个和另一个输入的人脸图像相像的生成图;将该生成图作为另一个输入的人脸图像的渲染图。
在获取三维人脸模型的形状系数和表情系数时,获取多个视角的输入的人脸图像的特征向量,得到多个特征向量;将多个特征向量进行拼接,得到目标特征向量;将目标特征向量通过全连接层进行处理,得到三维人脸模型的形状系数和表情系数。
在获取相机参数时,获取多个视角的输入的人脸图像的特征向量,得到多个特征向量;将每个特征向量通过全连接层进行处理,得到每张输入的人脸图像的相机参数。
在获取多个视角的输入的人脸图像的特征向量时,通过VGG-Face的人脸识别网络进行处理,得到每张输入的人脸图像的特征向量。
在该实施例中,从原输入的人脸图像中提取纹理,并渲染到另一视角,将渲染的图像和另一视角的原输入的人脸图像进行比较。在此提出了对齐损失,其中包括渲染图和原输入的人脸图像的像素损失和光流损失。由于该实施例在模型训练过程中并不会生成纹理,而是通过纹理采样(即根据当前估计的三维人脸和相机参数计算投影位置)的方式在输入的人脸图像中提取纹理,得到的像素损失和光流损失会直接更新模型的参数,而不是更新纹理本身。也即,通过更新在原输入的人脸图像中提取的纹理的位置来得到更好的纹理,而不是直接更改纹理本身。这样做的好处是,可以根据渲染图和输入的人脸图像之间的误差来更新模型的参数,进而更新三维人脸和相机参数,而避免引入纹理变量而带来的歧义性。同时由于光流信息本身是对图像多尺度提取特征,相对于使用像素损失,光流损失能够更好地避免陷入局部最小值,因此该实施例的对齐损失结合了像素损失和光流损失,既包含了全局又包含了局部的信息,从而可以更好地解决多视角图像中的对齐问题。
可选地,该实施例采取了三个视角,即左侧,正面和右侧,在实际应用中,这三个视角可以拓展到多个视角,而不仅仅局限于三个视角。将每个视角都提取出纹理,然后渲染到所有其它视角,即假设有n个视角,则会得到n(n-1)组输入的人脸图像和渲染图像。在提取光流信息时,渲染图像和对应视角的输入的人脸图像会同时输入进光流层,提取前向光流信息,同时也会调换渲染图像和输入的人脸图像的顺序再输入光流层,得到反向光流。当网络输出的参数足够准确的时候,前向光流和反向光流应该为0。因此,在模型训练过程中最小化前向光流和反向光流,由于所有的操作都是可导的,得到的损失函数会通过反向传导链路来更新模型的参数。该实施例在训练过程中,没有依赖任何人工标注数据,而是通过提取图像自身信息进行反馈的方式来实现自监督训练。
像素损失的过程和光流损失计算类似,是比较渲染图和输入的人脸图像之间的像素值的差。在卷积神经网络中,该实施例分别计算像素损失和光流损失,然后把根据计算得到的反向传导链路来同时更新参数。而像素损失与光流损失的结合,可以从局部和全局上更好地实现多视角图像中间的对齐,从而更新网络输出的参数。
可选地,该实施例可以根据三维人脸模型的参数重建出三维人脸的点云,根据每张输入的人脸图像的相机参数来计算三维点云中在图像上的投影位置,其中,与关键点索引对应的位置为关键点的位置,可以根据网络输出参数来确定关键点的位置;计算上述关键点的位置与在数据库中预先标注的关键点位置之间的欧氏距离;通过欧式距离确定关键点之间的距离,将其作为损失函数来更新网络参数。
在训练模型的过程中,还添加了正则项,以防止回归出来的三维人脸模型的形状系数和表情系数超出人脸形状的限制。
下面通过具体的实例对上述方法进行举例说明。
图3是根据本发明实施例的一种三维人脸重建的示意图。如图3所示,共享参数(Shared Weights),用于表示卷积神经网络中的参数是一样的,串联(Concatenate)用于表示将三个512维的特征向量串联在一起,得到一个512*3维的向量;Xid用于表示三维模型的形状参数;Xep用于表示三维模型的表情参数;可训练的(Trainable)用于表示该卷积神经网络中的参数是可以更新的;不可训练的(Non-Trainable)用于表示该卷积神经网络中没有参数或者参数不可以被更新;可导的渲染操作(Differentiable Rendering)用于表示执行的渲染操作是可导的。
根据多个相机捕捉到多视角图片,比如,捕捉到左视角下的人脸图片A图、捕捉到正面视角下的人脸图片B图、捕捉到右视角下的人脸图片C图。分别将这三张图片输入到同一个VGG-Face网络中,得到三个人脸图片的特征向量,每个特征向量的维度可以为512。将这三个特征向量分别通过一个全连接层FC2(512,7)后得到的向量即为每张图片的姿势参数,得到三个姿势参数,每个姿势参数的维度可以为7。同时将这三个特征向量串联起来,得到一个维度为512*3的向量,将其通过一个全连接层FC1(512*3,228),得到一个228维的向量,该228维的向量即为三维人脸模型的系数,包括形状系数和表情系数,其中,该向量前199维可以是形状参数,后29维可以是表情参数。根据三维人脸模型的系数可以重建出三维人脸的形状,再根据姿势参数进行纹理采样,比如,对B图进行纹理采样,将得到的纹理和三维人脸的形状,根据A图的姿势参数进行渲染,可得到一个和A图相像的渲染图,从渲染图和A图中通过现有神经网络来提取光流,该实施例的目标即为通过最小化光流图以及像素损失来优化网络参数。
下面对该实施例的预训练过程进行介绍。
该实施例在有标注的三维人脸数据集上进行预训练,这里的有标注指三维模型的形状参数、表情参数和每张图片的相机参数。对于一组训练数据,每张图片都分别经过VGG-Face网络提取特征,再经过平均池化后得到一个维度为512的特征向量。这三个特征向量分别经过一个全连接层,得到每张图对应的姿势参数。再将这三个特征向量串联起来,经过一个全连接层,得到一个3DMM系数,对应形状和表情。在预训练的过程中,由于在卷积神经网络中,每一层的输入和输出之间都有可以反向传导的链路,计算网络输出和标注之间的损失后,可以根据反向传到的链路来更新卷积神经网络的参数,这里的参数可以包括卷积核的权重,偏移,以及线性层的权重,偏移等。
在该实施例中,预训练模型也可以对数据进行预处理,也即,对训练数据做一次前向,根据网络输出计算人脸的投影区域,根据这个区域可以估计出图片中的人脸区域。再把计算出来的人脸区域经过域变换滤波进行处理,可以得到输入的人脸图像片的人脸遮罩。利用人脸遮罩可以有效地减少图片中背景对整个方法的影响。可选地,在得到人脸遮罩时,根据当前训练好的卷积神经网络,估计当前的三维模型参数和每个输入的人脸图像的相机参数,根据一个视角下的人脸图像的相机参数对通过三维模型参数生成的三维人脸和另一个视角下的人脸图像的纹理进行渲染,得到一张无背景的人脸图,再对这张图做二值化后可以得到一个人脸遮罩。
下面对该实施例的纹理采样进行介绍。
在自监督的训练过程中,为了将三维人脸渲染成二维图片,需要获取三维人脸对应的纹理。将网络输出的3DMM系数(三维人脸模型的系数)转换为三维人脸,并且对每张输入的人脸图像片都估计一个姿势参数。对B图而言,根据三维人脸点云和B图的姿势参数可以计算得到三维人脸点云在人脸图像上的投影位置,通过该点的投影位置的像素点可以获取该点的纹理信息,即像素点对应的RGB值。通过向上网格采样可以将这个操作变成可导,集成到神经网络中。从每张图片中都可以提取一个纹理,即纹理A、纹理B和纹理C。由于该实施例在训练过程中使用光流信息来计算多视角之间的对应关系,因而输入的人脸图像片之间不需要有相同的光照条件。其中,对于两个不同的视角,如果根据其中一个视角的相机参数和三维人脸形状进行纹理采样,将得到的三维纹理、三维人脸形状和另一视角的相机参数进行渲染,得到渲染图像。我们计算渲染图和另一视角的输入的人脸图像之间的光流信息,并将其作为网络的一种损失,通过最小化这个光流损失就可以修正这两个视角的相机参数和三维人脸形状上的误差。
下面对该实施例的渲染层进行介绍。
该实施例采用了可导的渲染层,可以根据一个视角下的纹理和三维人脸形状对输入的人脸图像的纹理进行渲染。可选地,输入的人脸图像为A图、B图、C图分别对应左视角、正面视角和右视角。可以将B图的纹理B和三维人脸的形状,分别根据A图和C图的相机参数渲染成图像B->A和图像B->C。由于A图和C图仅包含侧脸的信息,可以将A图的纹理A和C图的纹理C根据B图的相机参数渲染成图像A->B和图像C->B。
下面对该实施例的光流层进行介绍。
为了更好地利用图像之间的全局对应关系,以及弥补像素损失只专注局部信息的缺点,该实施例利用PWCNet来提取渲染图与输入的人脸图像之间的光流。需要说明的时,在训练过程中,PWCNet只用来提取光流,其参数不会被更新。
下面对该实施例的损失函数进行介绍。
该实施例通过损失函数来更新模型训练过程中的网络参数,除了通过不同视角之间图像的光流损失和像素损失实现了自监督训练,同时还加入关键点的距离损失和正则项。
通过比较不同视角下的图像之间的像素损失,可以有效地限制三维人脸的形状。也即,将从左视角提取到的纹理和三维人脸的形状投影到B图上,应该和B图的输入保持一致,这样对三维人脸的三个坐标轴都有限制(对于单张图片只对两个坐标轴有限制)。由于侧面图片存在自遮挡的问题,也即,由于人脸本身的形状会遮挡部分的像素,比如,侧面的照片,部分脸颊会被鼻子挡住,对于从侧面提取到的纹理,该实施例只对可见的部分计算像素损失。对于三张图来说,像素损失项包括(A,B->A),(C,B->C),(B,A->B),(B,C->B)四组图片之间的像素损失。
图4是根据本发明实施例的一种可见遮罩的示意图。如图4所示,对C图进行纹理采样,将得到的纹理和三维人脸的形状,根据B图的姿势参数进行渲染,可得到一个和B图相像的生成图,其中的像素损失项为(B,C->B),得到的可见遮罩为a。
图5是根据本发明实施例的另一种可见遮罩的示意图。如图5所示,对B图进行纹理采样,将得到的纹理和三维人脸的形状,根据A图的姿势参数进行渲染,可得到一个和A图相像的生成图,其中的像素损失项为(A,B->A),得到的可见遮罩为b。
图6是根据本发明实施例的另一种可见遮罩的示意图。如图6所示,对B图进行纹理采样,将得到的纹理和三维人脸的形状,根据C图的姿势参数进行渲染,可得到一个和C图相像的生成图,其中的像素损失项为(C,B->C),得到的可见遮罩为c。
图7是根据本发明实施例的另一种可见遮罩的示意图。如图7所示,对A图进行纹理采样,将得到的纹理和三维人脸的形状,根据B图的姿势参数进行渲染,可得到一个和B图相像的生成图,其中的像素损失项为(B,A->B),得到的可见遮罩为d。
为了避免渲染图的纯色背景对光流造成影响,该实施例采用图4至图7中的遮罩对渲染图进行处理。
图8A为根据本发明实施例的一种通过遮罩对渲染图进行处理的示意图。如图8A所示。将遮罩之外的部分替换为自然图像,从而避免渲染图的纯色背景对光流造成影响。
图8B为根据本发明实施例的一种渲染图像的示意图。如图8B所示。在将遮罩之外的部分替换为自然图像之后,对替换后的人脸图像进行渲染,并且避免了渲染图的纯色背景对光流造成影响。
图8C是根据本发明实施例的一种前向光流和后向光流的示意图。如图8C所示,为了增强方法的鲁棒性,减少光流计算误差的影响,对于同一组图像,如(A,B->A),本方法计算量前向光流和反向光流,并同时最小化两者,即分别计算前向光流,反向光流和全零数组的距离。训练过程中光流损失可以包括四组图像,比如,包括光流损失项包括(A,B->A),(C,B->C),(B,A->B),(B,C->B)四组图片之间的光流损失。
在该实施例中,用于对模型进行训练的损失函数还可以包括关键点之间的距离,根据3DMM参数重建出三维人脸的点云,根据每张图片的相机参数来计算三维点云中在图片上的投影位置,其中,关键点索引对应的位置即为关键点的位置。其中,人脸的关键点检测包括68个点,比如,人脸的关键点检测会包含右眼眼角,则在三维点云中也会标出右眼眼角对应的索引。该实施例可以计算三维点云上关键点投影位置与实际检测到关键点之间的欧式距离,作为损失函数。
在该实施例中,由于3DMM是基于主成分分析的模型,为了防止回归出来的3DMM参数超出人脸形状的限制,该实施例加入了正则项来限制3DMM参数的某一元素过大。正则项是计算归一化后的3DMM参数与全零项之间的距离,来限制网络输出的3DMM参数不会偏离平均脸太远。其中,平均脸即3DMM参数全部为零时重建出来的三维人脸。
该实施例基于自监督深度卷积网络的多视角人脸重建方法相对于非线性优化的多视角重建方法而言,更加快速且稳定,对于不同视角之间光照的变化更加鲁棒,应用范围更广。
需要说明的是,该实施例以三个角度举例,在应用中可以拓展到其它数量的输入的人脸图像片。此外,在关键点损失函数的部分先方法采用的是通用的68个关键点,也可以拓展为更多的关键点。在像素损失部分,还可以考虑用其它特征替代,比如,图像的梯度损失等。最后,也可以考虑更多方法来替代现有的遮罩,比如,一些人脸分割算法,此处不做任何限制。
该实施例提出了一种自监督的基于多视角对齐损失的三维人脸重建方法。相对于单张图像,多视角图像的重建方法可以利用更多人脸几何信息,重建更精确的三维人脸。多视角图像之间的对齐损失结合了光流信息和像素亮度,弥补了只用像素损失无法处理多视角之间的光照变化问题,并且修正了多张图片之间由于姿势和形状估计不准而导致的误差,使得训练好的深度卷积神经网络更加鲁棒,提高了三维人脸重建的准确性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一方面,还提供了一种用于实施上述三维人脸重建方法的三维人脸重建装置。图9是根据本发明实施例的一种三维人脸重建装置的示意图。如图9所示,该三维人脸重建装置900可以包括:获取单元10、第一处理单元20和第二处理单元30。
获取单元10,用于获取输入的多张目标人脸图像,其中,多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到。
第一处理单元20,用于通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,其中,第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张人脸图像,渲染图像根据每张人脸图像的视角参数和人脸对象的三维人脸图像得到,视角参数用于指示对每张人脸图像进行拍摄的视角,目标外观参数用于指示目标人脸对象的外观。
第二处理单元30,用于将目标外观参数输入至预先确定的三维人脸模型中,并输出由三维人脸模型对目标外观参数进行处理,得到的目标人脸对象的目标三维人脸图像。
需要说明的是,该实施例中的获取单元10可以用于执行本申请实施例中的步骤S202,该实施例中的第一处理单元20可以用于执行本申请实施例中的步骤S204,该实施例中的第二处理单元30可以用于执行本申请实施例中的步骤S206。
在该实施例中,通过预先训练的第一神经网络模型对多个目标视角的目标人脸图像进行处理,得到目标外观参数(三维人脸的形状、表情),并且该第一神经网络模型是结合多个不同视角对应的人脸图像和对应的渲染图像之间的光流损失和图像特征损失对模型的参数进行更新得到的,从而从局部和全局上更好地实现多视角图像之间的对齐,进一步输出通过目标外观参数生成目标三维人脸图像,达到了对目标人脸对进行三维人脸重建的目的,从而实现了提高对人脸进行重建的准确性的技术效果,解决了相关技术对人脸进行重建的准确性低的技术问题。
此处需要说明的是,上述单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本发明实施例的又一方面,还提供了一种用于实施上述三维人脸重建方法的电子装置。
图10是根据本发明实施例的一种电子装置的结构框图。如图10所示,该电子装置包括存储器102和处理器104,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器104可以被设置为通过计算机程序执行以下步骤:
S1,获取输入的多张目标人脸图像,其中,多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到;
S2,通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,其中,第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张人脸图像,渲染图像根据每张人脸图像的视角参数和人脸对象的三维人脸图像得到,视角参数用于指示对每张人脸图像进行拍摄的视角,目标外观参数用于指示目标人脸对象的外观;
S3,将目标外观参数输入至预先确定的三维人脸模型中,并输出由三维人脸模型对目标外观参数进行处理,得到的目标人脸对象的目标三维人脸图像。
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
其中,存储器102可用于存储软件程序以及模块,如本发明实施例中的人脸特征的处理方法和装置对应的程序指令/模块,处理器104通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的视频的弹幕生成方法。存储器102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其它非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器102具体可以但不限于用于存储多张目标人脸图像等信息。作为一种示例,如图10所示,上述存储器102中可以但不限于包括上述三维人脸重建装置900中的获取单元10、第一处理单元20和第二处理单元30。此外,还可以包括但不限于上述图像的场景识别装置中的其它模块单元,本示例中不再赘述。
上述的传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置606包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其它网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置606为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器108,用于显示上述目标三维人脸图像;连接总线110,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取输入的多张目标人脸图像,其中,多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到;
S2,通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数,其中,第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张人脸图像,渲染图像根据每张人脸图像的视角参数得到,视角参数用于指示对每张人脸图像进行拍摄的视角,目标外观参数用于指示目标人脸对象的外观;
S3,将目标外观参数输入至预先确定的三维人脸模型中,并输出由三维人脸模型对目标外观参数进行处理,得到的目标人脸对象的目标三维人脸图像。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在通过目标神经网络模型第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,获取每张人脸图像和渲染图像之间的光流信息;
将光流信息确定为光流损失。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
将每张人脸图像和渲染图像依次输入至第二神经网络模型中,得到第一光流信息,其中,第二神经网络模型用于提取按照目标顺序进行排列的多张图像之间的光流信息,光流信息包括第一光流信息;和/或
将渲染图像和每张人脸图像依次输入至第二神经网络模型中,得到第二光流信息,光流信息包括第二光流信息。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,将光流损失反向传播至子神经网络模型中,并按照预先设定的目标映射关系将子神经网络模型的当前参数更新为第一目标参数;
将具有第一目标参数的子神经网络模型确定为第一神经网络模型。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在通过目标神经网络模型第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,获取每张人脸图像的第一图像特征和渲染图像的第二图像特征;
将第一图像特征和第二图像特征之间的差确定为图像特征损失。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
获取每张人脸图像的第一像素值和渲染图像的第二像素值,其中,第一图像特征包括第一像素值,第二图像特征包括第二像素值;
将第一像素值和第二像素值之间的差,确定为像素损失,其中,图像特征损失包括像素损失。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
获取每张人脸图像的第一梯度和渲染图像的第二梯度,其中,第一图像特征包括第一梯度,第二图像特征包括第二梯度;
将第一梯度和第二梯度之间的差,确定为梯度损失,其中,图像特征损失包括梯度损失。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在通过第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,将图像特征损失反向传播子神经网络模型中,并按照预先设定的目标映射关系将子神经网络模型的当前参数更新为第二目标参数;
将具有第二目标参数的子神经网络模型确定为第一神经网络模型。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在通过目标神经网络模型第一神经网络模型对多张目标人脸图像进行处理,得到目标人脸对象的目标外观参数之前,通过子神经网络模型的第一神经网络层对每张人脸图像进行处理,得到每张人脸图像的图像特征向量;
通过子神经网络模型的第二神经网络层对每张人脸图像进行处理,得到每张人脸图像的视角参数。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在通过子神经网络模型的第二神经网络层对每张人脸图像进行处理,得到每张人脸图像的视角参数时,对多张人脸图像的多个图像特征向量进行融合,得到目标图像特征向量;
通过子神经网络模型的第三神经网络层对目标图像特征向量进行处理,得到人脸对象的外观参数;
将外观参数输入至三维人脸模型中,得到人脸对象的三维人脸图像,其中,外观参数用于指示人脸对象的外观。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
在将外观参数输入至三维人脸模型中,得到人脸对象的三维人脸图像之后,对每张人脸图像的纹理进行采样,得到每张人脸图像的目标纹理;
根据每张人脸图像的视角参数对三维人脸图像和第一人脸图像的目标纹理进行渲染,得到与每张人脸图像相关联的渲染图像,其中,第一人脸图像为多张人脸图像中除每张人脸图像之外的人脸图像。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
按照每张人脸图像的视角参数,确定三维人脸图像的三维人脸点云在每张人脸图像上的投影位置;
确定投影位置在每张人脸图像上对应的目标像素点;
通过目标像素点的颜色信息确定每张人脸图像的目标纹理。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种三维人脸重建方法,其特征在于,包括:
获取输入的多张目标人脸图像,其中,所述多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到;
通过第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数,其中,所述第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张所述人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,所述人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张所述人脸图像,所述渲染图像根据每张所述人脸图像的视角参数和所述人脸对象的三维人脸图像得到,所述视角参数用于指示对每张所述人脸图像进行拍摄的视角,所述目标外观参数用于指示所述目标人脸对象的外观,所述子神经网络模型的每一层的输入和输出之间都有可以反向传导的链路,在获取每张所述人脸图像与对应的所述渲染图像之间的光流损失或图像特征损失之后,根据所述反向传导的链路来更新所述子神经网络模型的参数,所述渲染图像通过所述视角参数对每张所述人脸图像对应的三维人脸图像和来自其它视角下的所述人脸图像的纹理进行渲染得到的、一张无背景的人脸图像,并且所述渲染图像与对应的每张所述人脸图像之间的相似度高于目标阈值,所述三维人脸图像用于指示三维人脸的形状;
将所述目标外观参数输入至预先确定的三维人脸模型中,并输出由所述三维人脸模型对所述目标外观参数进行处理,得到的所述目标人脸对象的目标三维人脸图像。
2.根据权利要求1所述的方法,其特征在于,在通过目标神经网络模型第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数之前,所述方法还包括:
获取每张所述人脸图像和所述渲染图像之间的光流信息;
将所述光流信息确定为所述光流损失。
3.根据权利要求2所述的方法,其特征在于,获取每张所述人脸图像和与每张所述人脸图像相关联的所述渲染图像之间的光流信息包括:
将每张所述人脸图像和所述渲染图像依次输入至第二神经网络模型中,得到第一光流信息,其中,所述第二神经网络模型用于提取按照目标顺序进行排列的多张图像之间的光流信息,所述光流信息包括所述第一光流信息;和/或
将所述渲染图像和每张所述人脸图像依次输入至所述第二神经网络模型中,得到第二光流信息,所述光流信息包括所述第二光流信息。
4.根据权利要求1所述的方法,其特征在于,在通过第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数之前,所述方法还包括:
将所述光流损失反向传播至所述子神经网络模型中,并按照预先设定的目标映射关系将所述子神经网络模型的当前参数更新为第一目标参数;
将具有所述第一目标参数的所述子神经网络模型确定为所述第一神经网络模型。
5.根据权利要求1所述的方法,其特征在于,在通过目标神经网络模型第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数之前,所述方法还包括:
获取每张所述人脸图像的第一图像特征和所述渲染图像的第二图像特征;
将所述第一图像特征和所述第二图像特征之间的差确定为所述图像特征损失。
6.根据权利要求5所述的方法,其特征在于,
获取每张所述人脸图像的第一图像特征和所述渲染图像的第二图像特征包括:获取每张所述人脸图像的第一像素值和所述渲染图像的第二像素值,其中,所述第一图像特征包括所述第一像素值,所述第二图像特征包括所述第二像素值;
将所述第一图像特征和所述第二图像特征之间的差确定为所述图像特征损失包括:将所述第一像素值和所述第二像素值之间的差,确定为像素损失,其中,所述图像特征损失包括所述像素损失。
7.根据权利要求5所述的方法,其特征在于,
获取每张所述人脸图像的第一图像特征和所述渲染图像的第二图像特征包括:获取每张所述人脸图像的第一梯度和所述渲染图像的第二梯度,其中,所述第一图像特征包括所述第一梯度,所述第二图像特征包括所述第二梯度;
将所述第一图像特征和所述第二图像特征之间的差确定为所述图像特征损失包括:将所述第一梯度和所述第二梯度之间的差,确定为梯度损失,其中,所述图像特征损失包括所述梯度损失。
8.根据权利要求1所述的方法,其特征在于,在通过第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数之前,所述方法还包括:
将所述图像特征损失反向传播所述子神经网络模型中,并按照预先设定的目标映射关系将所述子神经网络模型的当前参数更新为第二目标参数;
将具有所述第二目标参数的所述子神经网络模型确定为所述第一神经网络模型。
9.根据权利要求1所述的方法,其特征在于,在通过目标神经网络模型第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数之前,所述方法还包括:
通过所述子神经网络模型的第一神经网络层对每张所述人脸图像进行处理,得到每张所述人脸图像的图像特征向量;
通过所述子神经网络模型的第二神经网络层对每张所述人脸图像进行处理,得到每张所述人脸图像的所述视角参数。
10.根据权利要求9所述的方法,其特征在于,在通过所述子神经网络模型的第二神经网络层对每张所述人脸图像进行处理,得到每张所述人脸图像的所述视角参数时,所述方法还包括:
对多张所述人脸图像的多个图像特征向量进行融合,得到目标图像特征向量;
通过所述子神经网络模型的第三神经网络层对目标图像特征向量进行处理,得到所述人脸对象的外观参数;
将所述外观参数输入至所述三维人脸模型中,得到所述人脸对象的所述三维人脸图像,其中,所述外观参数用于指示所述人脸对象的外观。
11.根据权利要求9所述的方法,其特征在于,在将所述外观参数输入至所述三维人脸模型中,得到所述人脸对象的所述三维人脸图像之后,所述方法还包括:
对每张所述人脸图像的纹理进行采样,得到每张所述人脸图像的目标纹理;
根据每张所述人脸图像的所述视角参数对所述三维人脸图像和第一人脸图像的所述目标纹理进行渲染,得到与每张所述人脸图像相关联的所述渲染图像,其中,所述第一人脸图像为多张所述人脸图像中除每张所述人脸图像之外的人脸图像。
12.根据权利要求9所述的方法,其特征在于,对每张所述人脸图像的纹理进行采样,得到每张所述人脸图像的目标纹理包括:
按照每张所述人脸图像的视角参数,确定所述三维人脸图像的三维人脸点云在每张所述人脸图像上的投影位置;
确定所述投影位置在每张所述人脸图像上对应的目标像素点;
通过所述目标像素点的颜色信息确定每张所述人脸图像的所述目标纹理。
13.一种三维人脸重建装置,其特征在于,包括:
获取单元,用于获取输入的多张目标人脸图像,其中,所述多张目标人脸图像通过从多个不同目标视角对目标人脸对象进行拍摄得到;
第一处理单元,用于通过第一神经网络模型对所述多张目标人脸图像进行处理,得到所述目标人脸对象的目标外观参数,其中,所述第一神经网络模型通过人脸图像样本中的每张人脸图像和与每张所述人脸图像相关联的渲染图像之间的光流损失和图像特征损失,对子神经网络模型的参数进行更新得到,所述人脸图像样本包括从多个不同视角对人脸对象进行拍摄得到的多张所述人脸图像,所述渲染图像根据每张所述人脸图像的视角参数得到,所述视角参数用于指示对每张所述人脸图像进行拍摄的视角,所述目标外观参数用于指示所述目标人脸对象的外观,所述子神经网络模型的每一层的输入和输出之间都有可以反向传导的链路,在获取每张所述人脸图像与对应的所述渲染图像之间的光流损失或图像特征损失之后,根据所述反向传导的链路来更新所述子神经网络模型的参数,所述渲染图像通过所述视角参数对每张所述人脸图像对应的三维人脸图像和来自其它视角下的所述人脸图像的纹理进行渲染得到的、一张无背景的人脸图像,并且所述渲染图像与对应的每张所述人脸图像之间的相似度高于目标阈值,所述三维人脸图像用于指示三维人脸的形状;
第二处理单元,用于将所述目标外观参数输入至预先确定的三维人脸模型中,并输出由所述三维人脸模型对所述目标外观参数进行处理,得到的所述目标人脸对象的目标三维人脸图像。
14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至12任一项中所述的方法。
15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至12任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910181932.3A CN110163953B (zh) | 2019-03-11 | 2019-03-11 | 三维人脸重建方法、装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910181932.3A CN110163953B (zh) | 2019-03-11 | 2019-03-11 | 三维人脸重建方法、装置、存储介质和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110163953A CN110163953A (zh) | 2019-08-23 |
CN110163953B true CN110163953B (zh) | 2023-08-25 |
Family
ID=67638909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910181932.3A Active CN110163953B (zh) | 2019-03-11 | 2019-03-11 | 三维人脸重建方法、装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110163953B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110956691B (zh) * | 2019-11-21 | 2023-06-06 | Oppo广东移动通信有限公司 | 一种三维人脸重建方法、装置、设备及存储介质 |
CN113128253B (zh) * | 2019-12-30 | 2024-05-03 | Tcl科技集团股份有限公司 | 一种三维人脸模型的重建方法及装置 |
CN111210510B (zh) * | 2020-01-16 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 三维人脸模型生成方法、装置、计算机设备及存储介质 |
CN111354079B (zh) * | 2020-03-11 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 三维人脸重建网络训练及虚拟人脸形象生成方法和装置 |
US11748943B2 (en) * | 2020-03-31 | 2023-09-05 | Sony Group Corporation | Cleaning dataset for neural network training |
CN111754622B (zh) * | 2020-07-13 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 脸部三维图像生成方法及相关设备 |
CN111918049B (zh) * | 2020-08-14 | 2022-09-06 | 广东申义实业投资有限公司 | 三维成像的方法、装置、电子设备及存储介质 |
CN111950477B (zh) * | 2020-08-17 | 2024-02-02 | 南京大学 | 一种基于视频监督的单图像三维人脸重建方法 |
CN112037320B (zh) * | 2020-09-01 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 一种图像处理方法、装置、设备以及计算机可读存储介质 |
CN111815768B (zh) * | 2020-09-14 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 三维人脸重建方法和装置 |
CN112669441B (zh) * | 2020-12-09 | 2023-10-17 | 北京达佳互联信息技术有限公司 | 一种对象重建方法、装置、电子设备和存储介质 |
WO2022133944A1 (zh) * | 2020-12-24 | 2022-06-30 | 华为技术有限公司 | 图像处理方法和图像处理装置 |
CN112614229B (zh) * | 2020-12-29 | 2022-09-09 | 清华大学 | 基于深度学习的人脸重建方法和装置 |
CN114758090A (zh) * | 2020-12-29 | 2022-07-15 | 华为技术有限公司 | 三维模型生成方法及装置 |
CN112669431B (zh) * | 2020-12-30 | 2023-10-20 | 北京百度网讯科技有限公司 | 图像处理方法、装置、设备、存储介质以及程序产品 |
CN112950775A (zh) * | 2021-04-27 | 2021-06-11 | 南京大学 | 一种基于自监督学习的三维人脸模型重建方法及系统 |
CN113255511A (zh) * | 2021-05-21 | 2021-08-13 | 北京百度网讯科技有限公司 | 用于活体识别的方法、装置、设备以及存储介质 |
CN113674373B (zh) * | 2021-07-02 | 2024-04-26 | 清华大学 | 基于深度学习的真实感人脸渲染方法 |
CN116012513A (zh) * | 2021-10-20 | 2023-04-25 | 腾讯科技(深圳)有限公司 | 脸部模型生成方法、装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005025703A (ja) * | 2003-07-04 | 2005-01-27 | Sony Corp | 画像処理方法および装置、並びに画像処理プログラム |
CN104966316A (zh) * | 2015-05-22 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种3d人脸重建方法、装置及服务器 |
CN106469465A (zh) * | 2016-08-31 | 2017-03-01 | 深圳市唯特视科技有限公司 | 一种基于灰度和深度信息的三维人脸重建方法 |
WO2018018981A1 (zh) * | 2016-07-25 | 2018-02-01 | 同方威视技术股份有限公司 | 用于对三维表面的图像进行重建的方法、装置和系统 |
CN107679451A (zh) * | 2017-08-25 | 2018-02-09 | 百度在线网络技术(北京)有限公司 | 建立人脸识别模型的方法、装置、设备和计算机存储介质 |
CN108062544A (zh) * | 2018-01-19 | 2018-05-22 | 百度在线网络技术(北京)有限公司 | 用于人脸活体检测的方法和装置 |
CN108510573A (zh) * | 2018-04-03 | 2018-09-07 | 南京大学 | 一种基于深度学习的多视点人脸三维模型重建的方法 |
CN108898665A (zh) * | 2018-06-15 | 2018-11-27 | 上饶市中科院云计算中心大数据研究院 | 三维人脸重建方法、装置、设备及计算机可读存储介质 |
CN109377544A (zh) * | 2018-11-30 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 一种人脸三维图像生成方法、装置和可读介质 |
CN109409335A (zh) * | 2018-11-30 | 2019-03-01 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机可读介质及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016027895A1 (ja) * | 2014-08-22 | 2016-02-25 | 国立大学法人名古屋大学 | 3次元像構築方法、画像処理装置、および電子顕微鏡 |
US10319141B2 (en) * | 2016-06-21 | 2019-06-11 | Apple Inc. | Method and system for vision based 3D reconstruction and object tracking |
-
2019
- 2019-03-11 CN CN201910181932.3A patent/CN110163953B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005025703A (ja) * | 2003-07-04 | 2005-01-27 | Sony Corp | 画像処理方法および装置、並びに画像処理プログラム |
CN104966316A (zh) * | 2015-05-22 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种3d人脸重建方法、装置及服务器 |
WO2018018981A1 (zh) * | 2016-07-25 | 2018-02-01 | 同方威视技术股份有限公司 | 用于对三维表面的图像进行重建的方法、装置和系统 |
CN107657653A (zh) * | 2016-07-25 | 2018-02-02 | 同方威视技术股份有限公司 | 用于对三维表面的图像进行重建的方法、装置和系统 |
CN106469465A (zh) * | 2016-08-31 | 2017-03-01 | 深圳市唯特视科技有限公司 | 一种基于灰度和深度信息的三维人脸重建方法 |
CN107679451A (zh) * | 2017-08-25 | 2018-02-09 | 百度在线网络技术(北京)有限公司 | 建立人脸识别模型的方法、装置、设备和计算机存储介质 |
CN108062544A (zh) * | 2018-01-19 | 2018-05-22 | 百度在线网络技术(北京)有限公司 | 用于人脸活体检测的方法和装置 |
CN108510573A (zh) * | 2018-04-03 | 2018-09-07 | 南京大学 | 一种基于深度学习的多视点人脸三维模型重建的方法 |
CN108898665A (zh) * | 2018-06-15 | 2018-11-27 | 上饶市中科院云计算中心大数据研究院 | 三维人脸重建方法、装置、设备及计算机可读存储介质 |
CN109377544A (zh) * | 2018-11-30 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 一种人脸三维图像生成方法、装置和可读介质 |
CN109409335A (zh) * | 2018-11-30 | 2019-03-01 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机可读介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110163953A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163953B (zh) | 三维人脸重建方法、装置、存储介质和电子装置 | |
US20240046571A1 (en) | Systems and Methods for 3D Facial Modeling | |
CA3121440C (en) | Assembly body change detection method, device and medium based on attention mechanism | |
CN106940704B (zh) | 一种基于栅格地图的定位方法及装置 | |
US20170330375A1 (en) | Data Processing Method and Apparatus | |
JP6902122B2 (ja) | ダブル視野角画像較正および画像処理方法、装置、記憶媒体ならびに電子機器 | |
CN111899282B (zh) | 基于双目摄像机标定的行人轨迹跟踪方法及装置 | |
CN113706699B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
WO2019035155A1 (ja) | 画像処理システム、画像処理方法、及びプログラム | |
US10706584B1 (en) | Hand tracking using a passive camera system | |
KR20120048370A (ko) | 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법 | |
CN109640066B (zh) | 高精度稠密深度图像的生成方法和装置 | |
CN113838191A (zh) | 一种基于注意力机制和单目多视角的三维重建方法 | |
CN112184757A (zh) | 运动轨迹的确定方法及装置、存储介质、电子装置 | |
CN114663686A (zh) | 物体特征点匹配方法及装置、训练方法及装置 | |
CN114170290A (zh) | 图像的处理方法及相关设备 | |
CN110514140B (zh) | 一种三维成像方法、装置、设备以及存储介质 | |
CN111160233B (zh) | 基于三维成像辅助的人脸活体检测方法、介质及系统 | |
EP4254354A1 (en) | System and method using pyramidal and uniqueness matching priors for identifying correspondences between images | |
CN112288817B (zh) | 基于图像的三维重建处理方法及装置 | |
JP2023065296A (ja) | 平面検出装置及び方法 | |
Amamra et al. | Crime scene reconstruction with RGB-D sensors | |
CN113723432A (zh) | 一种基于深度学习的智能识别、定位追踪的方法及系统 | |
CN113537359A (zh) | 训练数据的生成方法及装置、计算机可读介质和电子设备 | |
Venkatesh et al. | On the application of a modified self-organizing neural network to estimate stereo disparity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |