1.本发明实施例涉及计算机视觉技术领域,尤其涉及一种三维人脸模型建立方法、装置、电子设备及存储介质。
背景技术:2.近年来,三维人脸广泛应用于各个领域。然而,很多现实场景仅有二维的人脸图像,因此利用二维人脸图像重建三维人脸的技术是现实场景的重要需求。
3.目前,三维人脸重建的方法是基于三维形变模型(3dmm)建立三维人脸数据库的基础上,利用统计的方法,将三维人脸模型用参数来表示,通过改变参数就能改变三维人脸模型,三维人脸重建的问题就转化为预测3dmm参数的问题。现有技术中,可利用卷积神经网络(cnn)提取二维人脸图像的信息来确定3dmm参数;需要预先构建包含大量的真实3d人脸图像的样本数据集,人工对3d人脸图像建立标签,基于样本数据集中的真实3d人脸图像和标签对卷积神经网络中的参数进行训练,进而确定出3dmm参数。
4.但是,采用现有技术需要人工构建出大量三维人脸作为训练标签,将耗费大量的人力资源和时间资源,且构建过程易出错,导致无法准确地确定出3dmm参数,影响建立的三维人脸模型的识别效果,
技术实现要素:5.本发明实施例提供了一种三维人脸模型建立方法、装置、电子设备及存储介质,以实现节省人力资源和时间资源,提高模型参数值的准确性和目标三维人脸模型的识别效果的作用。
6.第一方面,本发明实施例提供了一种三维人脸模型建立方法,包括:
7.获取包含人脸区域的二维样本图像,确定所述二维样本图像的样本图像特征;
8.基于所述样本图像特征,确定预先建立的三维形变模型中的模型参数值和与所述二维样本图像对应的样本姿态参数,基于各所述模型参数值生成三维人脸模型;
9.将所述三维人脸模型和所述姿态参数输入至预先建立的可微分渲染模型中,生成与所述二维样本图像对应的二维渲染图像;
10.将所述二维样本图像与所述二维渲染图像进行对比,基于对比结果调整所述模型参数值,将调整后的所述模型参数值对应的三维形变模型确定为目标三维人脸模型。
11.第二方面,本发明实施例还提供了一种三维人脸模型建立装置,该装置包括:
12.确定样本图像特征模块,用于获取包含人脸区域的二维样本图像,确定所述二维样本图像的样本图像特征;
13.生成三维人脸模型模块,用于基于所述样本图像特征,确定预先建立的三维形变模型中的模型参数值和与所述二维样本图像对应的样本姿态参数,基于各所述模型参数值生成三维人脸模型;
14.生成渲染图像模块,用于将所述三维人脸模型和所述姿态参数输入至预先建立的
可微分渲染模型中,生成与所述二维样本图像对应的二维渲染图像;
15.调整模型参数模块,用于将所述二维样本图像与所述二维渲染图像进行对比,基于对比结果调整所述模型参数值,将调整后的所述模型参数值对应的三维形变模型确定为目标三维人脸模型。
16.第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:
17.一个或多个处理器;
18.存储装置,用于存储一个或多个程序,
19.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的三维人脸模型建立方法。
20.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的三维人脸模型建立方法。
21.本发明实施例所提供的一种三维人脸模型建立方法,获取包含人脸区域的二维样本图像,确定二维样本图像的样本图像特征;基于样本图像特征,确定预先建立的三维形变模型中的模型参数值和与二维样本图像对应的样本姿态参数,基于各模型参数值生成三维人脸模型;将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像;将二维样本图像与二维渲染图像进行对比,基于对比结果调整模型参数值,将调整后的模型参数值对应的三维形变模型确定为目标三维人脸模型。本发明实施例通过二维样本图像确定三维形变模型的模型参数值,无需预先构造出大量三维人脸图像,节省了人力资源和时间资源;且通过将反映真实人脸信息的二维样本图像和通过三维人脸模型得到的二维渲染图像进行对比,调整模型参数值,提高了模型参数值的准确性,有利于提高目标三维人脸模型的识别效果。
22.此外,本发明所提供的一种三维人脸模型建立装置、电子设备及存储介质与上述方法对应,具有同样的有益效果。
附图说明
23.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1为本发明实施例提供的一种三维人脸模型建立方法的流程图;
25.图2为本发明实施例提供的另一种三维人脸模型建立方法的流程图;
26.图3为本发明实施例提供的一种三维人脸模型建立过程的示意图;
27.图4为本发明实施例提供的一种三维人脸模型建立装置的结构图;
28.图5为本发明实施例提供的一种电子设备的结构图。
具体实施方式
29.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
30.另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
31.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
32.实施例一
33.图1为本发明实施例提供的一种三维人脸模型建立方法的流程图。该方法可以由三维人脸模型建立装置来执行,该装置可以通过软件和/或硬件来实现,可配置于终端和/或服务器中来实现本发明实施例中的三维人脸模型建立方法。
34.如图1所示,本实施例的方法具体可包括:
35.s101、获取包含人脸区域的二维样本图像,确定二维样本图像的样本图像特征。
36.在具体实施中,可预先构建二维样本图像集,二维样本图像集中存储有两张以上的分别包含人脸区域的二维样本图像。示例性的,对于同一人脸,可获取不同视角下的二维样本图像。例如,对于同一人脸信息,二维样本图像可包括左视图样本图像、中视图样本图像和右视图样本图像。
37.为了能够更好地提取二维样本图像中的样图像特征,可对二维样本图像进行图像预处理。具体的,可利用第三方支持库face-alignment检测出二维样本图像中的人脸的关键点,基于人脸的各关键点的位置,对二维样本图像进行剪裁。
38.示例性的,可确定出二维样本图像中包含各关键点的最小人脸区域,对二维样图像进行剪裁,保留仅包含最小人脸区域的图像。剪裁后的图像可表示为iv。其中,v表示视角的标号。示例性的,当从三个视角采集获取二维样本图像时,iv=(i1,i2,i3);剪裁后的图像表示成宽高通道数为224*224*3。
39.可选的,确定二维样本图像的样本图像特征,包括:将二维样本图像输入至预先建立的人脸解析网络中,生成与二维样本图像对应的包含人脸关键点的二维掩膜图像;对二维样本图像和二维掩膜图像进行拼接操作,生成拼接图像,将拼接图像输入至编解码网络中,生成样本图像特征。
40.具体的,可将剪裁后得到的二维样本图像输入至预先建立的人脸解析网络中。人脸解析网络包括基于bisenet的语义分割模型,通过人脸解析网络可生成突出二维样本图像中包含的人脸关键点信息的二维掩膜图像,二维掩膜图像表示成宽高通道数为224*224*1。通过人脸解析网络更好的突出面部,去掉头发和脖子等多余元素,保留脸、鼻子、下唇、上唇、左眉、右眉、左眼、右眼和嘴巴等关键部分。保留的部分可用不同的数字进行标记形成二维掩膜图像。二维掩膜图像的公共部分可标记相同的数字,能够为后续的网络学习提供区域引导,让网络更加关注人脸的关键区域。
41.示例性的,人脸关键点的数量可为68个,可在二维掩膜图像中标注出人脸关键点,标注方式可为数字标注,例如,人脸关键点中面部为1、左眉为2,右眉为3,左眼为4,右眼为5,鼻子为10,嘴为11,上唇为12,下唇为13,其余背景为0。
42.进一步的,可对二维样本图像和二维掩膜图像进行拼接操作,生成拼接图像,将拼接图像输入至编解码网络中。编解码网络可用于提取二维样本图像和二维掩膜图像中的人脸图像特征。本发明实施例提供的编解码网络可由三个编码器和一个解码器组成,以实现多视图信息的深度融合。
43.示例性的,拼接图像表示成宽高通道数为224*224*4,输入至编解码网络后,可输出预设通道数量的样本图像特征。例如,当预设通道数量为64时,输出的样本图像特征表示成宽高通道数为224*224*64。
44.s102、基于样本图像特征,确定预先建立的三维形变模型中的模型参数值和与二维样本图像对应的样本姿态参数,基于各模型参数值生成三维人脸模型。
45.具体的,可预先建立三维形变模型,三维形变模型可识别输入图像中目标对象的形态状态。三维形变模型中包含三个模型参数值,通过改变模型参数值,可调整三维形变模型对二维目标对象图像的识别效果。基于确定出的包含人脸关键点的样本图像特征,确定三维形变模型中的模型参数值,则可基于模型参数值生成用于识别二维人脸图像的三维人脸模型。
46.进一步的,可确定出和二维样本图像对应的样本姿态参数,样本姿态参数可反映出二维样本图像中人脸的姿态状态。示例性的,样本姿态参数包括俯仰参数、偏航参数和翻滚参数中的至少一项。
47.s103、将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像。
48.具体的,可微分渲染模型可为第三方支持库pytorch3d,可用于基于输入的三维人脸模型和姿态参数,生成与二维样本图像对应的二维渲染图像。示例性的,输出得二维渲染图像表示成宽高通道数为224*224*3,各通道对应的图像用于展示不同视角的人脸信息。
49.s104、将二维样本图像与二维渲染图像进行对比,基于对比结果调整模型参数值,将调整后的模型参数值对应的三维形变模型确定为目标三维人脸模型。
50.在具体实施中,可将二维样本图像与二维渲染图像进行对比。示例性的,可对各视角下的二维样本图像和二维渲染图像分别进行对比,基于各视角下的对比结果调整模型参数值。
51.可选的,将二维样本图像与二维渲染图像进行对比,基于对比结果调整模型参数值,包括:基于二维样本图像和二维渲染图像计算模型损失函数;确定模型损失函数满足预设状态时对应的三维形变模型的最优模型参数值,基于最优模型参数值更新模型参数值。
52.具体的,模型损失可分为三个方面,分别为图像损失、掩膜图像损失和关键点信息损失。因此,可通过分别计算图像损失函数、掩膜损失函数和关键点损失函数确定模型损失函数。
53.可选的,基于二维样本图像和二维渲染图像计算模型损失函数,包括:基于二维样本图像、二维掩膜图像和二维渲染图像,确定图像损失函数;确定二维渲染图像对应的渲染掩膜图像,基于渲染掩膜图像和二维掩膜图像,确定掩膜损失函数;将二维样本图像和二维掩膜图像分别输入至关键点检测模型中,确定出二维样本图像中的各关键点的样本关键点坐标和二维掩膜图像中的各关键点的掩膜关键点坐标;基于样本关键点坐标和掩膜关键点坐标,确定关键点损失函数;将图像损失函数、掩膜损失函数和关键点损失函数进行加权求
和计算时对应的函数确定为模型损失函数。
54.具体的,可基于二维样本图像、二维掩膜图像和二维渲染图像,确定图像的损失函数,图像损失函数l
p
的公式如下:
[0055][0056]
其中,v表示视角的标号,本发明实施例获取了三个视角的二维样本图像,此处v可取1、2或3,本领域技术人员也可根据实际采集的视角的数量,确定v的取值;pv表示二维渲染图像i
v'
和二维样本图像iv在当前视图中相交的区域,i表示像素索引,||
·
||2表示l2范式;mv表示二维掩膜图像。
[0057]
进一步的,可将二维渲染图像输入至人脸解析网络中,从而获取到与二维渲染图像对应的渲染掩膜图像,基于渲染掩膜图像和二维掩膜图像,确定掩膜损失函数;掩膜损失函数lm的公式如下:
[0058][0059]
其中,v表示视角的标号,表示二维掩膜图像mv和渲染掩膜图像m
v'
在当前视图中相交的区域;i表示像素索引,||
·
||2表示l2范式;mv表示二维掩膜图像。
[0060]
进一步的,将二维样本图像和二维渲染图像分别输入至关键点检测模型中,确定出二维样本图像中的各关键点的样本关键点坐标和二维渲染图像中的各关键点的渲染关键点坐标;基于样本关键点坐标和渲染关键点坐标,确定关键点损失函数。
[0061]
示例性的,关键点检测模型可检测出人脸中的68个关键点,则将二维样本图像输入至关键点检测模型后,可得到样本关键点坐标入至关键点检测模型后,可得到样本关键点坐标将二维渲染图像输入至关键点检测模型后,可得到渲染关键点坐标n表示关键点的序号,v表示视角的标号;关键点损失函数l
l
的公式如下:
[0062][0063]
其中,wn表示各关键点的权重参数,可将关键点为鼻子和嘴角的权重参数设置为20,其余的关键点设置为1,以突出鼻子和嘴角对三维人脸识别的影响。可将图像损失函数、掩膜损失函数和关键点损失函数进行加权求和计算时对应的函数确定为模型损失函数。
[0064]
进一步的,为了抑制扭曲人脸的生成,还可确定模型的正则化损失函数,正则化损失函数l
reg
公式如下:
[0065]
l
reg
=w
α
||α||2+w
β
||β||2+w
γ
||γ||2[0066]
其中,α、β、γ可为三维形变模型中的三个模型参数值,w
α
、w
β
、w
γ
为三维形变模型中的各模型参数值的权重,可设置为w
α
=1,w
β
=0.8,w
γ
=0.017。
[0067]
可基于图像损失函数、掩膜损失函数、关键点损失函数和正则化损失函数,计算模型损失函数,计算公式如下:
[0068]
l
all
=w
p
l
p
+wmlm+w
l
l
l
+w
reg
l
reg
[0069]
其中,l
all
为模型损失函数,w
p
、wm、w
l
、w
reg
分别为图像损失函数、掩膜损失函数、关键点损失函数和正则化损失函数,可设置为:w
p
=24,wm=3,w
l
=1,w
reg
=0.0003。
[0070]
可选的,确定模型损失函数满足预设状态时对应的三维形变模型的最优模型参数值,基于最优模型参数值更新模型参数值,包括:根据模型损失函数确定对应的模型损失值,若模型损失值不满足预设状态,基于模型损失值更新模型参数值;从预先建立的二维样本图像集中重新获取二维样本图像,基于重新获取的二维样本图像和更新后的模型参数值,按照梯度下降的方式重新确定模型损失值并进行迭代计算,直到模型损失值满足预设状态,或者迭代次数达到预设阈值。
[0071]
具体的,可判断确定出的模型损失值是否满足预设状态。示例性的,预设状态可包括模型损失值是否达到阈值范围,如果在阈值范围内,则说明模型损失值满足预设状态。当模型损失值不满足预设状态时,可基于模型损失值更新模型参数值,以提高生成的三维人脸模型的识别准确度,减小模型损失。
[0072]
具体的,可重新在预先建立的二维样本图像集中再次获取二维样本图像,并基于二维样本图像重复上述步骤,再次生成三维人脸模型,并将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像;将二维样本图像与二维渲染图像进行对比,按照梯度下降的方式重新确定模型损失值并进行迭代计算,直到模型损失值满足预设状态,或者迭代次数达到预设阈值,则停止迭代过程,将最后一次生成的三维人脸模型确定为目标三维人脸模型。
[0073]
本发明实施例通过二维样本图像确定三维形变模型的模型参数值,无需预先构造出大量三维人脸图像,节省了人力资源和时间资源;且通过将反映真实人脸信息的二维样本图像和通过三维人脸模型得到的二维渲染图像进行对比,计算模型损失,基于模型损失调整模型参数值,提高了模型参数值的准确性,有利于提高目标三维人脸模型的识别效果。
[0074]
实施例二
[0075]
图2为本发明实施例提供的另一种三维人脸模型建立方法的流程图。本实施例以上述各技术方案为基础进行优化。可选的,基于样本图像特征,确定预先建立的三维形变模型中的模型参数值和与二维样本图像对应的样本姿态参数,包括:将样本图像特征输入至预先建立的参数回归网络中,基于参数回归网络的输出结果,确定出三维形变模型中的模型参数值和样本姿态参数。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
[0076]
如图2所示,本实施例的方法具体可包括:
[0077]
s201、获取包含人脸区域的二维样本图像,确定二维样本图像的样本图像特征。
[0078]
s202、将样本图像特征输入至预先建立的参数回归网络中,基于参数回归网络的输出结果,确定出三维形变模型中的模型参数值和样本姿态参数。
[0079]
具体的,参数回归模型可包括基于残差网络确定出的残差神经网络,通过将由残差网络的卷积算子更改为内卷积算子,生成参数回归模型。示例性的,残差网络的网络深度为50。
[0080]
可选的,样本姿态参数包括俯仰参数、偏航参数和翻滚参数;其中,将样本图像特
征输入至预先建立的参数回归网络中,基于参数回归网络的输出结果,确定出三维形变模型中的模型参数值和样本姿态参数,包括:将样本图像特征输入至基于残差神经网络构建的参数回归网络中,基于输出结果,确定出俯仰参数、偏航参数、翻滚参数和模型参数值。具体的,可对各视图的样本图像特征均输入至参数回归网络中,输出各视图对应的俯仰参数、偏航参数、翻滚参数和模型参数值。
[0081]
s203、基于各模型参数值生成三维人脸模型。
[0082]
s204、将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像。
[0083]
s205、将二维样本图像与二维渲染图像进行对比,基于对比结果调整模型参数值,将调整后的模型参数值对应的三维形变模型确定为目标三维人脸模型。
[0084]
本发明实施例考虑到不同视角条件及不同姿态下,人脸图像反映出的信息不同,对不同视角下的俯仰参数、偏航参数、翻滚参数进行了确定,能够更好地反映二维样本图像中的人脸信息,有利于提高模型参数值的准确性,进一步提高目标三维人脸模型的识别效果。
[0085]
实施例三
[0086]
上文中对于三维人脸模型建立方法对应的实施例进行了详细描述,为了使本领域技术人员进一步清楚本方法的技术方案,下文中给出具体的应用场景。
[0087]
可预先建立二维样本图像集,二维样本图像集中包含两张或两张以上的二维样本图像,不同二维样本图像可展现不同的目标对象的人脸信息,对于同一目标对象的人脸信息,可存储三个视角下的二维样本图像,分别为左视角、右视角和中视角;通过二维样本图像集完成对目标三维人脸模型的训练,图3为本发明实施例提供的一种三维人脸模型建立过程的示意图,如图3所示,训练步骤如下:
[0088]
步骤一、获取二维样本图像集中的同一目标对象的3个视角下的二维样本图像,分别进行图像预处理。具体的,利用第三方支持库face-alignment检测出二维样本图像中人物图像人脸的关键点,并根据人脸关键点把人脸的区域裁剪下来,裁剪后的图像表示成宽高通道数为224*224*3,将剪裁后的图像更新二维样本图像i,v表示视角的标号,本发明实施例的人物视角数量为3,则与二维样本图像iv=(i1,i2,i3)。
[0089]
步骤二、将获得的二维样本图像iv输入到人脸解析网络得到二维掩膜图像mv=(m1,m2,m3),并将iv和mv拼接成新的图像表示imv=(im1,im2,im3)。
[0090]
步骤三、将获得的imv输入到编解码网络从而获得多视图融合的样本图像特征f。
[0091]
具体的,编解码网络为一种新型网络结构,包括三个编码端和一个解码端,分别对不同视角的二维样本图像和二维掩膜图像进行拼接,对三个视角的拼接图像分别进行卷积、最大池化、卷积、最大池化、卷积、最大池化、卷积、最大池化、卷积操作,将得到的三个结果进行拼接,再进行多次反卷积、拼接和卷积操作,得到多视图融合的样本图像特征f。
[0092]
步骤四、将样本图像特征f输入到参数回归网络中预测出三维形变模型的模型参数值和样本姿态参数posev,模型参数可分为α、β、γ三个参数。
[0093]
posev=(pitch1,yaw1,roll1;pitch2,yaw2,roll2;pitch3,yaw3,roll3)
[0094]
其中,pitch为俯仰参数,yaw为偏航参数,roll为翻滚参数。
[0095]
步骤五、将三维形变模型的模型参数值输入三维形变模型中,生成三维人脸模型。
[0096]
步骤六、将三维人脸模型和样本姿态参数posev输入到预先建立的可微分渲染模型中,生成二维渲染图像i
v'
=(i
1'
,i
2'
,i
3'
)。
[0097]
步骤七、将获得的二维渲染图像i
v'
输入到人脸解析网络从而获得渲染掩膜图像m
v'
=(m
1'
,m
2'
,m
3'
)。
[0098]
步骤八、将二维样本图像iv和二维渲染图像i
v'
输入至关键点检测模型,分别得到68个样本关键点坐标和渲染关键点坐标
[0099]
步骤九、将二维样本图像iv、二维掩膜图像mv=(m1,m2,m3)和二维渲染图像i
v'
用于计算图像损失函数l
p
;将二维掩膜图像mv=(m1,m2,m3)和渲染掩膜图像m
v'
用于计算掩膜损失函数lm;将样本关键点坐标渲染关键点坐标和预设的关键点权重用于计算关键点损失函数l
l
;将三维形变模型中的模型参数值用于计算正则化损失函数l
reg
。上述所有损失函数如下:
[0100]
1)图像损失函数:
[0101][0102]
其中,v表示视角的标号,本发明实施例获取了三个视角的二维样本图像,此处v可取1、2或3,本领域技术人员也可根据实际采集的视角的数量,确定v的取值;pv表示二维渲染图像i
v'
和二维样本图像iv在当前视图中相交的区域,i表示像素索引,||
·
||2表示l2范式;mv表示二维掩膜图像。
[0103]
2)掩膜损失函数:
[0104][0105]
其中,v表示视角的标号,表示二维掩膜图像mv和渲染掩膜图像m
v'
在当前视图中相交的区域;i表示像素索引,||
·
||2表示l2范式;mv表示二维掩膜图像。
[0106]
3)关键点损失:
[0107][0108]
其中,wn表示各关键点的权重参数,可将关键点为鼻子和嘴角的权重参数设置为20,其余的关键点设置为1,以突出鼻子和嘴角对三维人脸识别的影响。
[0109]
4)正则化损失函数:
[0110]
l
reg
=w
α
||α||2+w
β
||β||2+w
γ
||γ||2[0111]
其中,α、β、γ可为三维形变模型中的三个模型参数值,w
α
、w
β
、w
γ
为三维形变模型中的各模型参数值的权重,可设置为w
α
=1,w
β
=0.8,w
γ
=0.017。
[0112]
5)模型损失函数:
[0113]
可基于图像损失函数、掩膜损失函数、关键点损失函数和正则化损失函数,计算模型损失函数,计算公式如下:
[0114]
l
all
=w
p
l
p
+wmlm+w
l
l
l
+w
reg
l
reg
[0115]
其中,l
all
为模型损失函数,w
p
、wm、w
l
、w
reg
分别为图像损失函数、掩膜损失函数、关键点损失函数和正则化损失函数,可设置为:w
p
=24,wm=3,w
l
=1,w
reg
=0.0003。
[0116]
步骤十:基于计算得到的模型损失函数,调整编解码网络和参数回归网络的参数;对二维样本图像集中的各图像按照上述步骤进行迭代计算,通过最小化模型损失函数来优化编解码网络和参数回归网络,每个迭代过程都使用adam优化算法对编解码网络和参数回归网络进行参数更新,直到迭代次数达到次数阈值,则停止迭代,基于最后一次确定出的编解码网络和参数回归网络的参数,确定模型参数值,生成目标三维人脸模型。
[0117]
实施例四
[0118]
图4为本发明实施例提供的一种三维人脸模型建立装置的结构图,该装置用于执行上述任意实施例所提供的三维人脸模型建立方法。该装置与上述各实施例的三维人脸模型建立方法属于同一个发明构思,在三维人脸模型建立装置的实施例中未详尽描述的细节内容,可以参考上述三维人脸模型建立方法的实施例。该装置具体可包括:
[0119]
确定样本图像特征模块10,用于获取包含人脸区域的二维样本图像,确定二维样本图像的样本图像特征;
[0120]
生成三维人脸模型模块11,用于基于样本图像特征,确定预先建立的三维形变模型中的模型参数值和与二维样本图像对应的样本姿态参数,基于各模型参数值生成三维人脸模型;
[0121]
生成渲染图像模块12,用于将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像;
[0122]
调整模型参数模块13,用于将二维样本图像与二维渲染图像进行对比,基于对比结果调整模型参数值,将调整后的模型参数值对应的三维形变模型确定为目标三维人脸模型。
[0123]
在本发明实施例中任一可选技术方案的基础上,可选的,确定样本图像特征模块10包括:
[0124]
生成样本图像特征单元,用于将二维样本图像输入至预先建立的人脸解析网络中,生成与二维样本图像对应的包含人脸关键点的二维掩膜图像;对二维样本图像和二维掩膜图像进行拼接操作,生成拼接图像,将拼接图像输入至编解码网络中,生成样本图像特征。
[0125]
在本发明实施例中任一可选技术方案的基础上,可选的,调整模型参数模块13包括:
[0126]
计算损失函数单元,用于基于二维样本图像和二维渲染图像计算模型损失函数;确定模型损失函数满足预设状态时对应的三维形变模型的最优模型参数值,基于最优模型参数值更新模型参数值。
[0127]
在本发明实施例中任一可选技术方案的基础上,可选的,计算损失函数单元包括:
[0128]
加权求和单元,用于基于二维样本图像、二维掩膜图像和二维渲染图像,确定图像损失函数;确定二维渲染图像对应的渲染掩膜图像,基于渲染掩膜图像和二维掩膜图像,确
定掩膜损失函数;将二维样本图像和二维渲染图像分别输入至关键点检测模型中,确定出二维样本图像中的各关键点的样本关键点坐标和二维渲染图像中的各关键点的渲染关键点坐标;基于样本关键点坐标和渲染关键点坐标,确定关键点损失函数;将图像损失函数、掩膜损失函数和关键点损失函数进行加权求和计算时对应的函数确定为模型损失函数。
[0129]
在本发明实施例中任一可选技术方案的基础上,可选的,计算损失函数单元包括:
[0130]
迭代计算单元,用于根据模型损失函数确定对应的模型损失值,若模型损失值不满足预设状态,基于模型损失值更新模型参数值;从预先建立的二维样本图像集中重新获取二维样本图像,基于重新获取的二维样本图像和更新后的模型参数值,按照梯度下降的方式重新确定模型损失值并进行迭代计算,直到模型损失值满足预设状态,或者迭代次数达到预设阈值。
[0131]
在本发明实施例中任一可选技术方案的基础上,可选的,生成三维人脸模型模块11包括:
[0132]
参数回归计算单元,用于将样本图像特征输入至预先建立的参数回归网络中,基于参数回归网络的输出结果,确定出三维形变模型中的模型参数值和样本姿态参数。
[0133]
在本发明实施例中任一可选技术方案的基础上,可选的,样本姿态参数包括俯仰参数、偏航参数和翻滚参数;其中,参数回归计算单元,包括:
[0134]
特征输入单元,用于将样本图像特征输入至基于残差神经网络构建的参数回归网络中,基于输出结果,确定出俯仰参数、偏航参数、翻滚参数和模型参数值。
[0135]
本发明实施例通过二维样本图像确定三维形变模型的模型参数值,无需预先构造出大量三维人脸图像,节省了人力资源和时间资源;且通过将反映真实人脸信息的二维样本图像和通过三维人脸模型得到的二维渲染图像进行对比,调整模型参数值,提高了模型参数值的准确性,有利于提高目标三维人脸模型的识别效果。
[0136]
值得注意的是,上述三维人脸模型建立装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0137]
实施例五
[0138]
图5为本发明实施例提供的一种电子设备的结构图。图5示出了适于用来实现本发明实施例实施方式的示例性电子设备20的框图。显示的电子设备20仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0139]
如图5所示,电子设备20以通用计算设备的形式表现。电子设备20的组件可以包括但不限于:一个或者多个处理器或者处理单元201,系统存储器202,连接不同系统组件(包括系统存储器202和处理单元201)的总线203。
[0140]
总线203表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
[0141]
电子设备20典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备20访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0142]
系统存储器202可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)204和/或高速缓存存储器205。电子设备20可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统206可以用于读写不可移动的、非易失性磁介质。可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线203相连。存储器202可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0143]
具有一组(至少一个)程序模块207的程序/实用工具208,可以存储在例如存储器202中,这样的程序模块207包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块207通常执行本发明所描述的实施例中的功能和/或方法。
[0144]
电子设备20也可以与一个或多个外部设备209(例如键盘、指向设备、显示器210等)通信,还可与一个或者多个使得用户能与该电子设备20交互的设备通信,和/或与使得该电子设备20能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口211进行。并且,电子设备20还可以通过网络适配器212与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器212通过总线203与电子设备20的其它模块通信。应当明白,可以结合电子设备20使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0145]
处理单元201通过运行存储在系统存储器202中的程序,从而执行各种功能应用以及数据处理。
[0146]
本发明所提供的一种电子设备,能够实现如下方法:获取包含人脸区域的二维样本图像,确定二维样本图像的样本图像特征;基于样本图像特征,确定预先建立的三维形变模型中的模型参数值和与二维样本图像对应的样本姿态参数,基于各模型参数值生成三维人脸模型;将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像;将二维样本图像与二维渲染图像进行对比,基于对比结果调整模型参数值,将调整后的模型参数值对应的三维形变模型确定为目标三维人脸模型。
[0147]
本发明实施例通过二维样本图像确定三维形变模型的模型参数值,无需预先构造出大量三维人脸图像,节省了人力资源和时间资源;且通过将反映真实人脸信息的二维样本图像和通过三维人脸模型得到的二维渲染图像进行对比,调整模型参数值,提高了模型参数值的准确性,有利于提高目标三维人脸模型的识别效果。
[0148]
实施例六
[0149]
本发明实施例提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种三维人脸模型建立方法,该方法包括:
[0150]
获取包含人脸区域的二维样本图像,确定二维样本图像的样本图像特征;基于样本图像特征,确定预先建立的三维形变模型中的模型参数值和与二维样本图像对应的样本姿态参数,基于各模型参数值生成三维人脸模型;将三维人脸模型和姿态参数输入至预先建立的可微分渲染模型中,生成与二维样本图像对应的二维渲染图像;将二维样本图像与
二维渲染图像进行对比,基于对比结果调整模型参数值,将调整后的模型参数值对应的三维形变模型确定为目标三维人脸模型。
[0151]
本发明实施例通过二维样本图像确定三维形变模型的模型参数值,无需预先构造出大量三维人脸图像,节省了人力资源和时间资源;且通过将反映真实人脸信息的二维样本图像和通过三维人脸模型得到的二维渲染图像进行对比,调整模型参数值,提高了模型参数值的准确性,有利于提高目标三维人脸模型的识别效果。
[0152]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的三维人脸模型建立方法中的相关操作。
[0153]
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0154]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0155]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0156]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言——诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0157]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。