一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面部模型的重建方法、装置、设备及存储介质与流程

2021-11-26 22:12:00 来源:中国专利 TAG:


1.本技术实施例涉及人工智能技术领域,特别涉及一种面部模型的重建方法、装置、设备及存储介质。


背景技术:

2.随着人工智能技术的发展,需要生成面部模型的应用场景越来越多,例如,游戏角色塑造场景中需要生成游戏角色的面部模型、虚拟形象构建场景中需要生成虚拟形象的面部模型等。在生成面部模型之后,需要对面部模型进行重建,以得到更加符合应用场景的面部模型。
3.相关技术在对面部模型进行重建的过程中,将生成的面部模型导入编辑软件,然后人工利用编辑软件对面部模型进行调整,得到重建后的面部模型。此种面部模型的重建过程依赖人工执行,可靠性较差且更新效率较低,不仅需要耗费大量的人力资源和时间成本,还导致重建后的面部模型的质量不佳。


技术实现要素:

4.本技术实施例提供了一种面部模型的重建方法、装置、设备及存储介质,可用于提高面部模型的重建过程的可靠性和效率。所述技术方案如下:
5.一方面,本技术实施例提供了一种面部模型的重建方法,所述方法包括:
6.获取第一面部模型对应的第一面部关键点位置信息,所述第一面部模型基于第一生成参数生成;
7.基于所述第一面部关键点位置信息,获取用于对所述第一生成参数进行更新的第一目标函数,所述第一目标函数为与所述第一面部模型的重建方向匹配的函数;
8.利用所述第一目标函数对所述第一生成参数进行更新,得到第二生成参数;
9.响应于所述第二生成参数满足更新终止条件,基于所述第二生成参数生成第二面部模型。
10.另一方面,提供了一种面部模型的重建装置,所述装置包括:
11.第一获取单元,用于获取第一面部模型对应的第一面部关键点位置信息,所述第一面部模型基于第一生成参数生成;
12.第二获取单元,用于基于所述第一面部关键点位置信息,获取用于对所述第一生成参数进行更新的第一目标函数,所述第一目标函数为与所述第一面部模型的重建方向匹配的函数;
13.更新单元,用于利用所述第一目标函数对所述第一生成参数进行更新,得到第二生成参数;
14.生成单元,用于响应于所述第二生成参数满足更新终止条件,基于所述第二生成参数生成第二面部模型。
15.在一种可能实现方式中,所述第二获取单元,用于基于所述第一面部关键点位置
信息,获取第一损失函数和第二损失函数,所述第一损失函数用于对重建后的面部模型的整体面部特征进行约束,所述第二损失函数用于对所述重建后的面部模型的参考特征进行优化,所述参考特征与所述整体面部特征不同;基于所述第一损失函数和所述第二损失函数,获取用于对所述第一生成参数进行更新的第一目标函数。
16.在一种可能实现方式中,所述第二获取单元,还用于获取参考面部模型对应的参考面部关键点位置信息,所述参考面部模型用于为所述重建后的面部模型的整体面部特征提供约束方向;基于所述第一面部关键点位置信息和所述参考面部关键点位置信息,获取所述第一损失函数。
17.在一种可能实现方式中,所述第二获取单元,还用于基于所述第一面部关键点位置信息,获取第一目标关键点位置信息,所述第一目标关键点位置信息包括所述第一面部模型中的目标关键点对应的位置信息;基于所述参考面部关键点位置信息,获取第二目标关键点位置信息,所述第二目标关键点位置信息包括所述参考面部模型中的目标关键点对应的位置信息,所述参考面部模型中的目标关键点与所述第一面部模型中的目标关键点相互对应;基于所述第一目标关键点位置信息和所述第二目标关键点位置信息,获取所述第一损失函数。
18.在一种可能实现方式中,所述参考面部模型为所述第一面部模型的原始面部模型,所述参考特征包括局部特征,所述第二损失函数包括局部调整损失函数,所述局部调整损失函数直接基于所述第一面部关键点位置信息获取得到。
19.在一种可能实现方式中,所述局部调整损失函数包括脸颊调整损失函数、第一鼻子调整损失函数、第一嘴巴调整损失函数、第二鼻子调整损失函数、下巴调整损失函数、第三鼻子调整损失函数、人中调整损失函数、眼睛调整损失函数、第四鼻子调整损失函数和第二嘴巴调整损失函数中的至少一个。
20.在一种可能实现方式中,所述局部调整损失函数包括脸颊调整损失函数;所述第二获取单元,还用于基于所述第一面部关键点位置信息,获取脸颊左侧关键点位置信息和脸颊右侧关键点位置信息;基于所述脸颊左侧关键点位置信息和所述脸颊右侧关键点位置信息,获取所述脸颊调整损失函数。
21.在一种可能实现方式中,所述局部调整损失函数包括第二鼻子调整损失函数;所述第二获取单元,还用于基于所述第一面部关键点位置信息,获取鼻梁关键点位置信息;获取所述鼻梁关键点位置信息对应的鼻梁引导点位置信息;基于所述鼻梁关键点位置信息和所述鼻梁引导点位置信息,获取所述第二鼻子调整损失函数。
22.在一种可能实现方式中,所述参考面部模型为模板面部模型,所述参考特征包括比例特征,所述第二损失函数包括参考比例损失函数,所述参考比例损失函数基于所述第一面部关键点位置信息和所述模板面部模型对应的模板面部关键点位置信息获取得到。
23.在一种可能实现方式中,所述参考比例损失函数包括水平比例损失函数、垂直比例损失函数、深度比例损失函数和长宽比例损失函数中的至少一个。
24.在一种可能实现方式中,所述参考比例损失函数包括水平比例损失函数;所述第二获取单元,还用于基于所述第一面部关键点位置信息,获取所述第一面部模型对应的第一水平距离和所述第一面部模型对应的至少一个第二水平距离;基于所述模板面部关键点位置信息,获取所述模板面部模型对应的第三水平距离和所述模板面部模型对应的至少一
个第四水平距离;基于所述第一水平距离、所述至少一个第二水平距离、所述第三水平距离和所述至少一个第四水平距离,获取所述水平比例损失函数。
25.在一种可能实现方式中,所述第一获取单元,还用于响应于所述第二生成参数不满足所述更新终止条件,基于所述第二生成参数,获取第二面部关键点位置信息;
26.所述第二获取单元,还用于基于所述第二面部关键点位置信息,获取用于对所述第二生成参数进行更新的第二目标函数;
27.所述更新单元,还用于利用所述第二目标函数对所述第二生成参数进行更新,得到第三生成参数;
28.所述生成单元,还用于响应于所述第三生成参数满足所述更新终止条件,基于所述第三生成参数生成第三面部模型。
29.在一种可能实现方式中,所述生成单元,用于将所述第二生成参数应用于面部模型重建模型;利用具有所述第二生成参数的面部模型重建模型生成所述第二面部模型。
30.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现上述任一所述的面部模型的重建方法。
31.另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现上述任一所述的面部模型的重建方法。
32.另一方面,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述任一所述的面部模型的重建方法。
33.本技术实施例提供的技术方案至少带来如下有益效果:
34.在本技术实施例中,利用与第一面部模型的重建方向匹配的目标函数对生成面部模型的生成参数进行更新,然后基于更新后的生成参数获取重建后的面部模型。此种面部模型的重建过程无需依赖人工,能够自动执行,面部模型的重建过程的可靠性较好且效率较高,能够节省人力资源和时间成本,有利于提高重建后的面部模型的质量。
附图说明
35.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1是本技术实施例提供的一种面部模型的重建方法的实施环境的示意图;
37.图2是本技术实施例提供的一种面部模型的重建方法的流程图;
38.图3是本技术实施例提供的一种面部模型中的86个目标关键点的示意图;
39.图4是本技术实施例提供的一种第一面部模型中的脸颊左侧关键点和脸颊右侧关键点的示意图;
40.图5是本技术实施例提供的一种第一面部模型中的鼻子左侧关键点和鼻子右侧关
键点的示意图;
41.图6是本技术实施例提供的一种第一面部模型中的上嘴唇上侧关键点、上嘴唇下侧关键点、下嘴唇上侧关键点和下嘴唇下侧关键点的示意图;
42.图7是本技术实施例提供的一种第一面部模型中的鼻梁关键点和第一面部模型中的鼻梁关键点对应的鼻梁引导点的示意图;
43.图8是本技术实施例提供的一种第一面部模型中的下巴关键点和第一面部模型中的下巴关键点对应的下巴引导点的示意图;
44.图9是本技术实施例提供的一种第一面部模型中的鼻孔左侧关键点、鼻孔右侧关键点、鼻孔上侧关键点和鼻孔下侧关键点的示意图;
45.图10是本技术实施例提供的一种第一面部模型中的嘴巴关键点和鼻中关键点的示意图;
46.图11是本技术实施例提供的一种第一面部模型中的眼睛下眼睑关键点和第一面部模型中的眼睛下眼睑关键点对应的眼睛下眼睑引导点的示意图;
47.图12是本技术实施例提供的一种第一面部模型中的鼻中关键点和第一面部模型中的鼻中关键点对应的鼻中引导点的示意图;
48.图13是本技术实施例提供的一种第一面部模型中的下嘴唇关键点和第一面部模型中的下嘴唇关键点对应的下嘴唇引导点的示意图;
49.图14是本技术实施例提供的一种第一面部模型对应的第一水平距离以及至少一个第二水平距离的示意图;
50.图15是本技术实施例提供的一种第一面部模型对应的第一垂直距离、至少一个第二直接垂直距离以及至少一个第二平均垂直距离的示意图;
51.图16是本技术实施例提供的一种第一面部模型对应的第一深度距离以及至少一个第二深度距离的示意图;
52.图17是本技术实施例提供的一种第一面部模型对应的参考垂直距离以及至少一个参考水平距离的示意图;
53.图18是本技术实施例提供的一种参考所提供的模板面部模型“三庭五眼”的比例对第一面部模型进行重建,使得重建后的面部模型每个部位比例向模板面部模型靠近的过程的示意图;
54.图19是本技术实施例提供的一种面部模型的重建装置的示意图;
55.图20是本技术实施例提供的一种终端的结构示意图;
56.图21是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
57.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
58.为了便于理解本技术实施例的技术过程,下面对本技术实施例所涉及的一些名词进行解释。
59.3dmm(three dimensional morphable model,三维可变形人脸模型):是一个通用的三维人脸参数化模型,用固定的点数来表示人脸。3dmm的核心思想是人脸可以在三维空
间中进行一一匹配,并且可以由其他许多幅人脸正交基加权线性相加而来。
60.示例性地,三维人脸能够利用形状向量s和纹理向量w这两个特征向量来表示:
61.s=(x1,y1,z1,x2,y2,z2,...,x
n
,y
n
,z
n
)
t
,s∈r
3n
62.w=(r1,g1,b1,r2,g2,b2,...,r
n
,g
n
,b
n
)
t
,w∈r
3n
63.其中,x1,y1,x2,y2,z2,...,x
n
,y
n
,z
n
表示构成形状向量s的各个元素;s∈r
3n
说明s处于三维空间中;r1,g1,b1,r2,g2,b2,...,r
n
,g
n
,b
n
表示构成纹理向量w的各个元素;w∈r
3n
说明w处于三维空间中;t表示向量的转置;n为不小于1的整数。
64.3dmm的核心思想为任意一个新的人脸都可以由基础人脸的特征向量线性组合生成,基于此核心思想,任意一个新的人脸的形状向量s’和纹理向量w’基于下述公式1得到:
[0065][0066]
其中,表示基础人脸的形状向量的平均向量;s
l
表示第l(l为不小于1的整数)个基础人脸的形状向量;a
l
表示第l个基础人脸的形状向量对应的权重系数;m(m为不小于1的整数)表示基础人脸的数量;表示基础人脸的纹理向量的平均向量;w
l
表示第l个基础人脸的纹理向量;b
l
表示第l个基础人脸的纹理向量对应的权重系数。
[0067]
最优化:给定一个函数寻找一个元素x0∈a使得对于a中的所有的x,f(x0)≤f(x)(最小化);或者f(x0)≥f(x)(最大化)。这类定式有时还称为“数学规划”(例如,线性规划)。许多现实和理论问题都可以建模成这样的一般性框架。a中的元素被称为可行解。函数f被称为目标函数,或者代价函数。一个最小化(或者最大化)目标函数的可行解被称为最优解。
[0068]
blend shape(混合形状):一种单个网格变形以实现许多预定义形状和任何数量之间组合的技术,在maya/3ds max(三维建模和动画软件)中称为变形目标。例如,单个网格是默认形状的基本形状(例如,无表情的面部),并且基本形状的其他形状用于混合/变形,是不同的表达(笑、皱眉、闭合眼皮等),这些被统称为混合形状或变形目标。
[0069]
在示例性实施例中,本技术实施例提供的面部模型的重建方法能够应用于人工智能技术领域。接下来对人工智能技术进行介绍。
[0070]
人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0071]
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层
面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
[0072]
其中,计算机视觉(computer vision,cv)技术是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr(optical character recognition,光学字符识别)、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、面部模型的重建、3d(three dimensional,三维)技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
[0073]
机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
[0074]
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如,常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
[0075]
图1示出了本技术实施例提供的面部模型的重建方法的实施环境的示意图。该实施环境可以包括:终端11和服务器12。
[0076]
本技术实施例提供的面部模型的重建方法可以由终端11执行,也可以由服务器12执行,还可以由终端11和服务器12共同执行,本技术实施例对此不加以限定。对于本技术实施例提供的面部模型的重建方法由终端11和服务器12共同执行的情况,服务器12承担主要计算工作,终端11承担次要计算工作;或者,服务器12承担次要计算工作,终端11承担主要计算工作;或者,服务器12和终端11二者之间采用分布式计算架构进行协同计算。
[0077]
在一种可能实现方式中,终端11可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如pc(personal computer,个人计算机)、手机、智能手机、pda(personal digital assistant,个人数字助手)、可穿戴设备、ppc(pocket pc,掌上电脑)、平板电脑、智能车机、智能电视、智能音箱等。服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。终端11与服务器12通过有线或无线网络建立通信连接。
[0078]
本领域技术人员应能理解上述终端11和服务器12仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本技术,也应包含在本技术保护范围以内,并在此以引用方式包含于此。
[0079]
基于上述图1所示的实施环境,本技术实施例提供一种面部模型的重建方法,以该
方法应用于计算机设备为例,该计算机设备可以是指终端,也可以是指服务器。如图2所示,本技术实施例提供的面部模型的重建方法包括如下步骤201至步骤204:
[0080]
在步骤201中,获取第一面部模型对应的第一面部关键点位置信息,第一面部模型基于第一生成参数生成。
[0081]
第一面部模型是指待重建的面部模型,待重建的面部模型可以是指人脸模型,也可以是指动物脸模型等,这与实际的应用场景有关。本技术实施例以待重建的面部模型为人脸模型为例进行说明。示例性地,待重建的面部模型可以是指三维面部模型,也可以是指二维面部模型等,本技术实施例以待重建的面部模型为三维面部模型为例进行说明。
[0082]
在示例性实施例中,对第一面部模型进行重建可以是指直接对第一面部模型进行重建,也可以是指基于模板面部模型对第一面部模型进行重建等,本技术实施例对此不加以限定。
[0083]
在示例性实施例中,对第一面部模型进行重建的重建方向根据实际的应用场景设置,本技术实施例对此不加以限定。示例性地,对第一面部模型进行重建的重建方向是指对第一面部模型进行美化。示例性地,对第一面部模型进行重建的重建方向是指对第一面部模型进行丑化。本技术实施例以对第一面部模型进行重建的重建方向是指对第一面部模型进行美化为例进行说明。此外,对于对第一面部模型进行重建的重建方向是指对第一面部模型进行美化的情况,对第一面部模型进行重建的重建方向还可以细化为对第一面部模型中的脸颊进行美化、对第一面部模型中的鼻子进行美化等。
[0084]
在本技术实施例中,第一面部模型是基于第一生成参数生成的。第一生成参数是生成第一面部模型所依据的参数。本技术实施例对基于第一生成参数生成第一面部模型的方式不加以限定,示例性地,基于第一生成参数生成第一面部模型的方式为:利用第一生成参数编写算法程序;利用编写的算法程序生成第一面部模型。示例性地,基于第一生成参数生成第一面部模型的方式为:将第一生成参数应用于面部模型重建模型;利用具有第一生成参数的面部模型重建模型生成第一面部模型。
[0085]
面部模型重建模型是指用于生成面部模型的模型,根据需要生成的面部模型的类型不同,面部模型重建模型的类型可能不同,本技术实施例对面部模型重建模型的类型不加以限定,只要能够基于生成参数生成面部模型即可。示例性地,面部模型重建模型是指3dmm。对于面部模型重建模型是指3dmm的情况,第一面部模型是指三维人脸。示例性地,对于面部模型重建模型是指3dmm的情况,生成第一面部模型的过程是指基于3dmm的三维人脸重建过程。
[0086]
第一面部模型对应的第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息。第一面部模型中的任一关键点对应的位置信息用于指示第一面部模型中的该任一关键点的位置坐标。在基于第一生成参数生成第一面部模型之后,能够得知第一面部模型的面部模型拓扑,然后通过对生成的第一面部模型的面部模型拓扑进行分析,即可得到第一面部模型对应的第一面部关键点位置信息。示例性地,对生成的第一面部模型的面部模型拓扑进行分析的方式是指对生成的第一面部模型的面部模型拓扑进行数据扫描。
[0087]
本技术实施例对第一面部模型中的任一关键点对应的位置信息的表示形式不加以限定,示例性地,第一面部模型中的任一关键点对应的位置信息直接是指该第一面部模
型中的该任一关键点的位置坐标;或者,第一面部模型中的任一关键点对应的位置信息包括第一面部模型中的该任一关键点的索引以及该任一关键的索引指向的位置坐标。任一关键点的索引指向的位置坐标即为该任一关键点的位置坐标。需要说明的是,当第一面部模型为三维面部模型时,第一面部模型中的关键点的位置坐标为三维坐标(x,y,z);当第一面部模型为二维面部模型时,第一面部模型中的关键点的位置坐标为二维坐标(x,y)。
[0088]
第一面部模型中的关键点的类型及数量根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。在示例性实施例中,基于第一生成参数生成的第一面部模型中可能包括指定数量的基础点,指定数量的基础点用于构成第一面部模型,指定数量为预先设定的数量,可以根据应用场景灵活调整。第一面部模型中的关键点可以是指第一面部模型中的全部的基础点,也可以是指第一面部模型中的部分的基础点,本技术实施例对此不加以限定。
[0089]
在步骤202中,基于第一面部关键点位置信息,获取用于对第一生成参数进行更新的第一目标函数,第一目标函数为与第一面部模型的重建方向匹配的函数。
[0090]
在获取第一面部模型对应的第一面部关键点位置信息后,基于第一面部关键点位置信息,获取用于对第一生成参数进行更新的第一目标函数。在本技术实施例中,通过对生成参数进行更新,实现对面部模型的自动重建,面部模型重建的效率较高。第一目标函数为与第一面部模型的重建方向匹配的函数,第一面部模型的重建方向即为对第一面部模型进行重建的重建方向,第一面部模型的重建方向根据经验设置,或者根据应用需求灵活调整,本技术实施例对此不加以限定。由于第一目标函数为与第一面部模型的重建方向匹配的函数,所以利用第一目标函数对第一面部模型进行重建,有利于提高重建后的面部模型的质量。
[0091]
本技术实施例对第一目标函数的获取方式不加以限定,可以根据实际的应用场景进行灵活调整。在一种可能实现方式中,基于第一面部关键点位置信息,获取用于对第一生成参数进行更新的第一目标函数的过程包括以下步骤2021和步骤2022:
[0092]
步骤2021:基于第一面部关键点位置信息,获取第一损失函数和第二损失函数,第一损失函数用于对重建后的面部模型的整体面部特征进行约束,第二损失函数用于对重建后的面部模型的参考特征进行优化,参考特征与整体面部特征不同。
[0093]
第一目标函数基于用于对重建后的面部模型的整体面部特征进行约束的第一损失函数以及用于对重建后的面部模型的参考特征进行优化的第二损失函数获取。也就是说,基于第一目标函数,能够对重建后的面部模型的整体面部特征起到约束的作用且对重建后的面部模型的参考特征起到优化的作用。其中,参考特征与整体面部特征不同。接下来分别介绍第一损失函数和第二损失函数的获取过程。
[0094]
一、第一损失函数
[0095]
第一损失函数用于对重建后的面部模型的整体面部特征进行约束,从而能够在后续重建过程中避免不必要的整体变化,避免丢失身份特征。在一种可能实现方式中,基于第一面部关键点位置信息,获取第一损失函数的实现方式为:获取参考面部模型对应的参考面部关键点位置信息;基于第一面部关键点位置信息和参考面部关键点位置信息,获取第一损失函数。
[0096]
其中,参考面部模型用于对重建后的面部模型的整体面部特征提供约束方向。本
申请实施例对参考面部模型的类型不加以限定,可以根据实际的应用场景灵活设定。示例性地,实际的应用场景包括但不限于以下两种:
[0097]
应用场景一:直接对第一面部模型进行重建。
[0098]
在此种应用场景一下,能够得到与第一面部模型长相相似的重建后的面部模型。在示例性实施例中,在此种应用场景一下,参考面部模型为第一面部模型的原始面部模型。第一面部模型的原始面部模型是指获取第一面部模型所直接依据的面部模型。在示例性实施例中,第一面部模型本身就是第一面部模型的原始面部模型。在示例性实施例中,第一面部模型是通过对第一面部模型的原始面部模型重建至少一次后得到的模型。
[0099]
应用场景二:基于模板面部模型对第一面部模型进行重建。
[0100]
示例性地,在此种应用场景二下,参考面部模型为模板面部模型。模板面部模型能够对第一面部模型的重建过程提供重建方向,模板面部模型根据经验选定,或者根据实际应用场景灵活调整,本技术实施例对此不加以限定。示例性地,模板面部模型与第一面部模型为相同类型的面部模型,例如,模板面部模型与第一面部模型均为三维人脸。示例性地,模板面部模型为具有某种特定风格的面部模型,如,写实风格、古风风格、卡通风格等。基于具有特定风格的模板面部模型,能够对第一面部模型进行该特定风格的重建。重建后的面部模型与第一面部模型长相相似,且具有该特定风格。在此种应用场景二下,能够得到与第一面部模型长相相似且审美与模板面部模型相似的重建后的面部模型。
[0101]
参考面部关键点位置信息包括参考面部模型中的各个关键点分别对应的位置信息,参考面部模型中的任一关键点对应的位置信息用于指示参考面部模型中的该任一关键点的位置坐标。示例性地,参考面部模型中的任一关键点对应的位置信息直接是指该参考面部模型中的该任一关键点的位置坐标;或者,参考面部模型中的任一关键点对应的位置信息包括参考面部模型中的该任一关键点的索引以及该任一关键点的索引指向的位置坐标。任一关键点的索引指向的位置坐标即为该任一关键点的位置坐标。
[0102]
在示例性实施例中,对于参考面部模型为第一面部模型本身的情况,直接将第一面部关键点位置信息作为参考面部关键点位置信息。在示例性实施例中,对于参考面部模型为除第一面部模型之外的其他面部模型的情况,通过对参考面部模型进行分析,得到参考面部关键点位置信息。
[0103]
在获取参考面部关键点位置信息之后,基于第一面部关键点位置信息和参考面部关键点位置信息,获取用于对重建后的面部模型的整体面部特征进行约束的第一损失函数。在一种可能实现方式中,基于第一面部关键点位置信息和参考面部关键点位置信息,获取第一损失函数的实现过程为:基于第一面部关键点位置信息,获取第一目标关键点位置信息;基于参考面部关键点位置信息,获取第二目标关键点位置信息;基于第一目标关键点位置信息和第二目标关键点位置信息,获取第一损失函数。
[0104]
其中,第一目标关键点位置信息包括第一面部模型中的目标关键点对应的位置信息;第二目标关键点位置信息包括参考面部模型中的目标关键点对应的位置信息;参考面部模型中的目标关键点与第一面部模型中的目标关键点相互对应。在示例性实施例中,参考面部模型中的目标关键点与第一面部模型中的目标关键点相互对应是指参考面部模型中的目标关键点的数量与第一面部模型中的目标关键点的数量相同,且对于参考面部模型中的每个目标关键点,第一面部模型中均存在一个具有相同语义的目标关键点。
[0105]
需要说明的是,面部模型(参考面部模型或第一面部模型)中的目标关键点的数量为一个或多个,本技术实施例对此不加以限定。示例性地,面部模型中的目标关键点的数量为86个,面部模型中的86个目标关键点如图3所示。
[0106]
本技术实施例对确定第一面部模型中的目标关键点和参考面部模型中的目标关键点的方式不加以限定,只要能够保证参考面部模型中的目标关键点与第一面部模型中的目标关键点相互对应即可。示例性地,确定第一面部模型中的目标关键点和参考面部模型中的目标关键点的方式为:确定选取条件;将第一面部模型中的各个关键点中满足选取条件的关键点作为第一面部模型中的目标关键点;将参考面部模型中的各个关键点中满足选取条件的关键点作为参考面部模型中的目标关键点。满足选取条件根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。示例性地,满足选取条件的关键点是指具有指定语义的关键点,指定语义根据经验设置,或者根据应用场景灵活调整。
[0107]
示例性地,参考面部模型中的各个关键点可以与第一面部模型中的各个关键点的数量和具有的语义均相同,也可以与第一面部模型中的各个关键点的数量或具有的语义不同,本技术实施例对此不加以限定。
[0108]
在示例性实施例中,在不同的应用场景下,面部模型(参考面部模型或第一面部模型)中的目标关键点可以相同,也可以不同,本技术实施例对此不加以限定。示例性地,在直接对第一面部模型进行重建的应用场景下,面部模型中的目标关键点为面部模型中的第一指定关键点;在基于模板面部模型对第一面部模型进行重建的应用场景下,面部模型中的目标关键点为面部模型中的第二指定关键点。面部模型中的第一指定关键点与面部模型中的第二指定关键点可以相同,也可以不同。
[0109]
第一面部模型中的任一目标关键点对应的位置信息用于指示第一面部模型中的该任一目标关键点的位置坐标。示例性地,第一面部模型中的任一目标关键点对应的位置信息直接是指该第一面部模型中的该任一目标关键点的位置坐标;或者,第一面部模型中的任一目标关键点对应的位置信息包括第一目标面部模型中的该任一目标关键点的索引以及该任一目标关键的索引指向的位置坐标。任一目标关键点的索引指向的位置坐标即为该任一目标关键点的位置坐标。
[0110]
参考面部模型中的任一目标关键点对应的位置信息用于指示参考面部模型中的该任一目标关键点的位置坐标。示例性地,参考面部模型中的任一目标关键点对应的位置信息直接是指该参考面部模型中的该任一目标关键点的位置坐标;或者,参考面部模型中的任一目标关键点对应的位置信息包括第一目标面部模型中的该任一目标关键点的索引以及该任一目标关键的索引指向的位置坐标。任一目标关键点的索引指向的位置坐标即为该任一目标关键点的位置坐标。
[0111]
在本技术实施例中,由于第一面部模型中的关键点中包括目标关键点,第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,所以在第一面部关键点位置信息中,能够提取出第一面部模型中的各个目标关键点分别对应的位置信息,从而得到第一目标关键点位置信息。类似地,由于参考面部模型中的关键点中包括目标关键点,参考面部关键点位置信息包括参考面部模型中的各个关键点分别对应的位置信息,所以在参考面部关键点位置信息中,能够提取出参考面部模型中的各个目标关键点分别对应的位置信息,从而得到第二目标关键点位置信息。
[0112]
在获取第一目标关键点位置信息和第二目标关键点位置信息之后,基于第一目标关键点位置信息和第二目标关键点位置信息,获取第一损失函数。在一种可能实现方式中,基于第一目标关键点位置信息和第二目标关键点位置信息,获取第一损失函数的方式为:基于第一目标关键点位置信息,确定第一面部模型中的目标关键点的位置坐标;基于第二目标关键点位置信息,确定参考面部模型中的目标关键点的位置坐标;基于第一面部模型中的目标关键点的位置坐标与参考面部模型中的对应目标关键点的位置坐标之间的差异,获取第一损失函数。
[0113]
在示例性实施例中,在直接对第一面部模型进行重建的应用场景下,参考面部模型为第一面部模型的原始面部模型,第二目标关键点位置信息包括第一面部模型的原始面部模型中的目标关键点对应的位置信息。假设第一面部模型中的目标关键点对应的位置信息以及第一面部模型的原始模型中的目标关键点对应的位置信息均包括目标关键点的索引以及该目标关键点的索引指向的位置坐标,且第一面部模型的原始模型中的某一目标关键点的索引与第一面部模型中的对应目标关键点的索引相同。在此种情况下,基于第一目标关键点位置信息和第二目标关键点位置信息,获取第一损失函数的过程基于公式2实现:
[0114][0115]
其中,表示参考面部模型为第一面部模型的原始面部模型的情况下获取的第一损失函数;p

表示第一生成参数;p表示第一面部模型的原始面部模型对应的生成参数;n1(n1为不小于1的整数)表示目标关键点的数量;i1表示任一目标关键点的索引;q表示基于第一目标关键点位置信息或者第二目标关键点位置信息确定的各个目标关键点的索引的集合;表示基于第二目标关键点位置信息确定的第一面部模型的原始面部模型中的索引为i1的目标关键点的位置坐标;表示基于第一目标关键点位置信息确定的第一面部模型中的索引为i1的目标关键点的位置坐标。
[0116]
需要说明的是,对于第一面部模型的原始面部模型为第一面部模型本身的情况,p=p

,基于上述公式2计算得到的第一损失函数为0。需要说明的是,在需要对第一生成参数进行多次更新的情况下,在计算各次更新过程所需的第一损失函数的过程中,第二目标关键点位置信息保持不变。
[0117]
在示例性实施例中,在基于模板面部模型对第一面部模型进行重建的应用场景下,参考面部模型为模板面部模型,第二目标关键点位置信息包括模板面部模型中的目标关键点对应的位置信息。假设第一面部模型中的目标关键点对应的位置信息以及模板面部模型中的目标关键点对应的位置信息均包括目标关键点的索引以及该目标关键点的索引指向的位置坐标,且模板面部模型中的某一目标关键点的索引与第一面部模型中的对应目标关键点的索引不同。在此种情况下,基于第一目标关键点位置信息和第二目标关键点位置信息,获取第一损失函数的过程基于公式3实现:
[0118]
[0119]
其中,表示参考面部模型为模板面部模型的情况下获取的第一损失函数;p

表示第一生成参数;t表示模板面部模型;m1(m1为不小于1的整数)表示目标关键点的数量;表示基于第一目标关键点位置信息确定的第一面部模型中的目标关键点的索引的集合;表示基于第二目标关键点位置信息确定的模板面部模型中的目标关键点的索引的集合;t1表示第一面部模型中的任一目标关键点的索引;r1表示模板面部模型中的任一目标关键点的索引;表示基于第一目标关键点位置信息确定的第一面部模型中的索引为t1的目标关键点的位置坐标;表示基于第二目标关键点位置信息确定的模板面部模型中的索引为r1的目标关键点的位置坐标,第一面部模型中的索引为t1的目标关键点与模板面部模型中的索引为r1的目标关键点相互对应。
[0120]
参考面部模型为模板面部模型的情况下获取的第一损失函数能够使重建后的面部模型的整体面部特征尽量向模板面部模型的整体面部特征靠近,保持面部模型的主要特征,通过预先设定多个目标关键点,给面部模型保留了足够的变化空间。
[0121]
二、第二损失函数
[0122]
第二损失函数用于对重建后的面部模型的参考特征进行优化,其中,参考特征与整体面部特征不同。参考特征根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。在不同的应用场景下,参考特征以及第二损失函数的情况有所不同。本技术实施例以应用场景包括直接对第一面部模型进行重建以及基于模板面部模型对第一面部模型进行重建这两种为例。接下来分别介绍在两种不同的应用场景下,参考特征以及第二损失函数的情况。
[0123]
应用场景一:直接对第一面部模型进行重建。
[0124]
在此种应用场景一下,获取第一损失函数所依据的参考面部模型为第一面部模型的原始面部模型。示例性地,在此种应用场景一下,参考特征包括局部特征,第二损失函数包括局部调整损失函数,局部调整损失函数直接基于第一面部关键点位置信息获取得到。
[0125]
局部特征包括面部模型中的至少一个局部(如,脸颊、鼻子、嘴巴、下巴、人中、眼睛等)的特征。对于参考特征包括局部特征的情况,第二损失函数包括局部调整损失函数,获取第二损失函数的过程即为获取局部调整损失函数的过程。局部调整损失函数用于对重建后的面部模型中的至少一个局部的特征进行优化。第二损失函数包括的局部调整损失函数的数量为一个或多个,本技术实施例对此不加以限定。对于局部调整损失函数的数量为多个的情况,不同的局部调整损失函数可能用于对重建后的面部模型中的相同的局部的特征进行优化,也可能用于对重建后的面部模型中的不同的局部的特征进行优化,本技术实施例对此不加以限定。
[0126]
在直接对第一面部模板进行重建的应用场景下,局部调整损失函数是直接基于第一面部模型对应的第一面部关键点位置信息获取得到的。此种情况下,无需依赖其他面部模型即可获取第二损失函数,获取第二损失函数的效率较高。
[0127]
在示例性实施例中,局部调整损失函数包括脸颊调整损失函数、第一鼻子调整损失函数、第一嘴巴调整损失函数、第二鼻子调整损失函数、下巴调整损失函数、第三鼻子调整损失函数、人中调整损失函数、眼睛调整损失函数、第四鼻子调整损失函数和第二嘴巴调
整损失函数中的至少一个。
[0128]
在上述各个局部调整损失函数中,不同的局部调整损失函数可能用于对不同的局部的特征进行优化(例如,脸颊调整损失函数用于对脸颊的特征进行优化,第一鼻子调整损失函数用于对鼻子的特征进行优化),不同的局部调整损失函数也可能用于对相同的局部的特征进行优化(例如,第一鼻子调整损失函数、第二鼻子调整损失函数、第三鼻子调整损失函数和第四鼻子调整损失函数均用于对鼻子的特征进行优化)。需要说明的是,对于不同的局部调整损失函数用于对相同的局部的特征进行优化的情况,不同的局部调整损失函数从不同的角度对该相同的局部的特征进行优化,例如,第一鼻子调整损失函数、第二鼻子调整损失函数、第三鼻子调整损失函数和第四鼻子调整损失函数从四个不同的角度对鼻子的特征进行优化。
[0129]
局部调整损失函数的具体情况根据实际需求灵活设定,本技术实施例对此不加以限定。根据局部调整损失函数的具体情况的不同,获取局部调整损失函数的过程有所不同。接下来,分别介绍脸颊调整损失函数、第一鼻子调整损失函数、第一嘴巴调整损失函数、第二鼻子调整损失函数、下巴调整损失函数、第三鼻子调整损失函数、人中调整损失函数、眼睛调整损失函数、第四鼻子调整损失函数和第二嘴巴调整损失函数的获取过程。
[0130]
1、脸颊调整损失函数
[0131]
脸颊调整损失函数用于对重建后的面部模型中的脸颊的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取脸颊调整损失函数的过程为:基于第一面部关键点位置信息,获取脸颊左侧关键点位置信息和脸颊右侧关键点位置信息;基于脸颊左侧关键点位置信息和脸颊右侧关键点位置信息,获取脸颊调整损失函数。
[0132]
脸颊左侧关键点位置信息包括第一面部模型中的各个脸颊左侧关键点分别对应的位置信息,脸颊左侧关键点是指第一面部模型中的各个关键点中用于指示脸颊左侧的关键点。脸颊右侧关键点位置信息包括第一面部模型中的各个脸颊右侧关键点分别对应的位置信息,脸颊右侧关键点是指第一面部模型中的各个关键点中用于指示脸颊右侧的关键点。需要说明的是,哪个或哪些关键点用于指示脸颊左侧以及哪个或哪些关键点用于指示脸颊右侧根据经验设置,本技术实施例对此不加以限定。
[0133]
由于第一面部模型中的关键点中包括脸颊左侧关键点和脸颊右侧关键点,且第一面部模型关键点信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个脸颊左侧关键点分别对应的位置信息以及第一面部模型中的各个脸颊右侧关键点分别对应的位置信息,从而得到脸颊左侧关键点位置信息和脸颊右侧关键点位置信息。
[0134]
示例性地,第一面部模型中的任一脸颊左侧关键点对应的位置信息包括该任一脸颊左侧关键点的索引以及该任一脸颊左侧关键点的索引指向的位置坐标,第一面部模型中的任一脸颊右侧关键点对应的位置信息包括该任一脸颊右侧关键点的索引以及该任一脸颊右侧关键点的索引指向的位置坐标,第一面部模型中的脸颊左侧关键点与脸颊右侧关键点一一对应。第一面部模型中的脸颊左侧关键点的数量和脸颊右侧关键点的数量相同,可以均为一个,也可以均为多个。在此种情况下,基于脸颊左侧关键点位置信息和脸颊右侧关键点位置信息,获取脸颊调整损失函数的过程基于公式4实现:
[0135][0136]
其中,表示脸颊调整损失函数;p

表示第一生成参数;n2(n2为不小于1的整数)表示脸颊左侧关键点的数量(或脸颊右侧关键点的数量);表示基于脸颊左侧关键点位置信息确定的各个脸颊左侧关键点的索引的集合;表示基于脸颊右侧关键点位置信息确定的各个脸颊右侧关键点的索引的集合。
[0137]
i2表示任一脸颊左侧关键点的索引;j2表示任一脸颊右侧关键点的索引;表示基于脸颊左侧关键点位置信息确定的第一面部模型中的索引为i2的脸颊左侧关键点的位置坐标;表示基于脸颊右侧关键点位置信息确定的第一面部模型中的索引为j2的脸颊右侧关键点的位置坐标,索引为j2的脸颊右侧关键点为与索引为i2的脸颊左侧关键点对应的脸颊右侧关键点。
[0138]
示例性地,第一面部模型中的脸颊左侧关键点和脸颊右侧关键点如图4所示,脸颊调整损失函数能够拉近脸颊左右两侧的关键点,从而达到瘦脸的效果。
[0139]
2、第一鼻子调整损失函数
[0140]
第一鼻子调整损失函数用于从拉近鼻子左右两侧的距离的角度对重建后的面部模型中的鼻子的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取第一鼻子调整损失函数的过程为:基于第一面部关键点位置信息,获取鼻子左侧关键点位置信息和鼻子右侧关键点位置信息;基于鼻子左侧关键点位置信息和鼻子右侧关键点位置信息,获取第一鼻子调整损失函数。
[0141]
鼻子左侧关键点位置信息包括第一面部模型中的各个鼻子左侧关键点分别对应的位置信息,鼻子左侧关键点是指第一面部模型中的各个关键点中用于指示鼻子左侧的关键点。鼻子右侧关键点位置信息包括第一面部模型中的各个鼻子右侧关键点分别对应的位置信息,鼻子右侧关键点是指第一面部模型中的各个关键点中用于指示鼻子右侧的关键点。需要说明的是,哪个或哪些关键点用于指示鼻子左侧以及哪个或哪些关键点用于指示鼻子右侧根据经验设置,本技术实施例对此不加以限定。
[0142]
由于第一面部模型中的关键点中包括鼻子左侧关键点和鼻子右侧关键点,且第一面部模型关键点信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个鼻子左侧关键点分别对应的位置信息以及第一面部模型中的各个鼻子右侧关键点分别对应的位置信息,从而得到鼻子左侧关键点位置信息和鼻子右侧关键点位置信息。
[0143]
示例性地,第一面部模型中的任一鼻子左侧关键点对应的位置信息包括该任一鼻子左侧关键点的索引以及该任一鼻子左侧关键点的索引指向的位置坐标,第一面部模型中的任一鼻子右侧关键点对应的位置信息包括该任一鼻子右侧关键点的索引以及该任一鼻子右侧关键点的索引指向的位置坐标,第一面部模型中的鼻子左侧关键点与鼻子右侧关键点一一对应。第一面部模型中的鼻子左侧关键点的数量和鼻子右侧关键点的数量相同,可以均为一个,也可以均为多个。在此种情况下,基于鼻子左侧关键点位置信息和鼻子右侧关
键点位置信息,获取鼻子调整损失函数的过程基于公式5实现:
[0144][0145]
其中,表示第一鼻子调整损失函数;p

表示第一生成参数;n3(n3为不小于1的整数)表示鼻子左侧关键点的数量(或鼻子右侧关键点的数量);表示基于鼻子左侧关键点位置信息确定的各个鼻子左侧关键点的索引的集合;表示基于鼻子右侧关键点位置信息确定的各个鼻子右侧关键点的索引的集合。
[0146]
i3表示任一鼻子左侧关键点的索引;j3表示任一鼻子右侧关键点的索引;表示基于鼻子左侧关键点位置信息确定的第一面部模型中的索引为i3的鼻子左侧关键点的位置坐标;表示基于鼻子右侧关键点位置信息确定的第一面部模型中的索引为j3的鼻子右侧关键点的位置坐标,索引为j3的鼻子右侧关键点为与索引为i3的鼻子左侧关键点对应的鼻子右侧关键点。
[0147]
示例性地,第一面部模型中的鼻子左侧关键点和鼻子右侧关键点如图5所示,第一鼻子调整损失函数能够拉近鼻子左右两侧的关键点,从而达到瘦鼻子的效果。
[0148]
3、第一嘴巴调整损失函数
[0149]
第一嘴巴调整损失函数用于从加薄嘴唇的角度对重建后的面部模型中的嘴巴的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取第一嘴巴调整损失函数的过程为:基于第一面部关键点位置信息,获取上嘴唇上侧关键点位置信息、上嘴唇下侧关键点位置信息、下嘴唇上侧关键点位置信息和下嘴唇下侧关键点位置信息;基于上嘴唇上侧关键点位置信息、上嘴唇下侧关键点位置信息、下嘴唇上侧关键点位置信息和下嘴唇下侧关键点位置信息,获取第一嘴巴调整损失函数。
[0150]
上嘴唇上侧关键点位置信息包括第一面部模型中的各个上嘴唇上侧关键点分别对应的位置信息,上嘴唇上侧关键点是指第一面部模型中的各个关键点中用于指示上嘴唇上侧的关键点。上嘴唇下侧关键点位置信息包括第一面部模型中的各个上嘴唇下侧关键点分别对应的位置信息,上嘴唇下侧关键点是指第一面部模型中的各个关键点中用于指示上嘴唇下侧的关键点。需要说明的是,哪个或哪些关键点用于指示上嘴唇上侧以及哪个或哪些关键点用于指示上嘴唇下侧根据经验设置,本技术实施例对此不加以限定。
[0151]
下嘴唇上侧关键点位置信息包括第一面部模型中的各个下嘴唇上侧关键点分别对应的位置信息,下嘴唇上侧关键点是指第一面部模型中的各个关键点中用于指示下嘴唇上侧的关键点。下嘴唇下侧关键点位置信息包括第一面部模型中的各个下嘴唇下侧关键点分别对应的位置信息,下嘴唇下侧关键点是指第一面部模型中的各个关键点中用于指示下嘴唇下侧的关键点。需要说明的是,哪个或哪些关键点用于指示下嘴唇上侧以及哪个或哪些关键点用于指示下嘴唇下侧根据经验设置,本技术实施例对此不加以限定。
[0152]
由于第一面部模型中的关键点中包括上嘴唇上侧关键点、上嘴唇下侧关键点、下嘴唇上侧关键点和下嘴唇下侧关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面
部模型中的各个上嘴唇上侧关键点分别对应的位置信息、第一面部模型中的各个上嘴唇下侧关键点分别对应的位置信息、第一面部模型中的各个下嘴唇上侧关键点分别对应的位置信息以及第一面部模型中的各个下嘴唇下侧关键点分别对应的位置信息,从而得到上嘴唇上侧关键点位置信息、上嘴唇下侧关键点位置信息、下嘴唇上侧关键点位置信息和下嘴唇上侧关键点位置信息。
[0153]
示例性地,第一面部模型中的任一上嘴唇上侧关键点对应的位置信息包括该任一上嘴唇上侧关键点的索引以及该任一上嘴唇上侧关键点的索引指向的位置坐标;第一面部模型中的任一上嘴唇下侧关键点对应的位置信息包括该任一上嘴唇下侧关键点的索引以及该任一上嘴唇下侧关键点的索引指向的位置坐标;第一面部模型中的上嘴唇上侧关键点与上嘴唇下侧关键点一一对应。
[0154]
第一面部模型中的任一下嘴唇上侧关键点对应的位置信息包括该任一下嘴唇上侧关键点的索引以及该任一下嘴唇上侧关键点的索引指向的位置坐标;第一面部模型中的任一下嘴唇下侧关键点对应的位置信息包括该任一下嘴唇下侧关键点的索引以及该任一下嘴唇下侧关键点的索引指向的位置坐标;第一面部模型中的下嘴唇上侧关键点与下嘴唇下侧关键点一一对应。
[0155]
示例性地,第一面部模型中的上嘴唇上侧关键点的数量、上嘴唇下侧关键点的数量、下嘴唇上侧关键点的数量以及下嘴唇下侧关键点的数量均相同,可以均为一个,也可以均为多个。基于上嘴唇上侧关键点位置信息、上嘴唇下侧关键点位置信息、下嘴唇上侧关键点位置信息和下嘴唇上侧关键点位置信息,获取第一嘴巴调整损失函数的过程基于公式6实现:
[0156][0157]
其中,表示第一嘴巴调整损失函数;p

表示第一生成参数;n4(n4为不小于1的整数)表示上嘴唇上侧关键点的数量(或上嘴唇下侧关键点的数量,或下嘴唇上侧关键点的数量,或下嘴唇下侧关键点的数量);表示基于上嘴唇上侧关键点位置信息确定的各个上嘴唇上侧关键点的索引的集合;表示基于上嘴唇下侧关键点位置信息确定的各个上嘴唇下侧关键点的索引的集合;表示基于下嘴唇上侧关键点位置信息确定的各个下嘴唇上侧关键点的索引的集合;表示基于下嘴唇下侧关键点位置信息确定的各个下嘴唇下侧关键点的索引的集合。
[0158]
i4表示任一上嘴唇上侧关键点的索引;j4表示任一上嘴唇下侧关键点的索引;表示基于上嘴唇上侧关键点位置信息确定的第一面部模型中的索引为i4的上嘴唇上侧关键点的位置坐标;表示基于上嘴唇下侧关键点位置信息确定的第一面部模型中的索引为j4的上嘴唇下侧关键点的位置坐标,索引为j4的上嘴唇下侧关键点为与索引为i4的上嘴唇上侧关键点对应的上嘴唇下侧关键点。
[0159]
m4表示任一下嘴唇上侧关键点的索引;n4表示任一下嘴唇下侧关键点的索引;
表示基于下嘴唇上侧关键点位置信息确定的第一面部模型中的索引为m4的下嘴唇上侧关键点的位置坐标;表示基于下嘴唇下侧关键点位置信息确定的第一面部模型中的索引为n4的下嘴唇下侧关键点的位置坐标,索引为n4的下嘴唇下侧关键点为与索引为m4的下嘴唇上侧关键点对应的下嘴唇下侧关键点。
[0160]
示例性地,第一面部模型中的上嘴唇上侧关键点、上嘴唇下侧关键点、下嘴唇上侧关键点和下嘴唇下侧关键点如图6所示,第一嘴巴调整损失函数能够拉近上嘴唇上下两侧的关键点以及拉近下嘴唇上下两侧的关键点,从而达到加薄嘴唇的效果。
[0161]
4、第二鼻子调整损失函数
[0162]
第二鼻子调整损失函数用于从加挺鼻梁的角度对重建后的面部模型中的鼻子的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取第二鼻子调整损失函数的过程为:基于第一面部关键点位置信息,获取鼻梁关键点位置信息;获取鼻梁关键点位置信息对应的鼻梁引导点位置信息;基于鼻梁关键点位置信息和鼻梁引导点位置信息,获取第二鼻子调整损失函数。
[0163]
鼻梁关键点位置信息包括第一面部模型中的各个鼻梁关键点分别对应的位置信息,鼻梁关键点是指第一面部模型中的各个关键点中用于指示鼻梁的关键点。需要说明的是,哪个或哪些关键点用于指示鼻梁根据经验设置,本技术实施例对此不加以限定。由于第一面部模型中的关键点中包括鼻梁关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个鼻梁关键点分别对应的位置信息,从而得到鼻梁关键点位置信息。
[0164]
鼻梁关键点位置信息对应的鼻梁引导点位置信息用于为重建后的面部模型中的鼻梁的特征提供重建方向。鼻梁引导点位置信息包括各个鼻梁引导点分别对应的位置信息。任一鼻梁引导点对应的位置信息用于指示该任一鼻梁引导点的位置坐标。鼻梁关键点与鼻梁引导点一一对应。也就是说,鼻梁关键点的数量与鼻梁引导点的数量相同。示例性地,鼻梁引导点还可称为鼻梁锚点。
[0165]
示例性地,任一鼻梁引导点的位置坐标根据经验设置,此种情况下,通过对根据经验设置的各个鼻梁引导点的位置坐标进行分析,即可得到鼻梁引导点位置信息。示例性地,任一鼻梁引导点的位置坐标根据该任一鼻梁引导点对应的鼻梁关键点的位置坐标确定,在此种情况下,先基于各个鼻梁关键点的位置坐标,确定各个鼻梁引导点的位置坐标,然后通过对确定出的各个鼻梁引导点的位置坐标进行分析,得到鼻梁引导点位置信息。
[0166]
在示例性实施例中,基于任一鼻梁关键点的位置坐标,确定该任一鼻梁关键点对应的鼻梁引导点的位置坐标的方式为:将任一鼻梁关键点的位置坐标指示的位置沿第一指定方向平移第一参考距离,将移动到的位置处的坐标作为该任一鼻梁关键点对应的鼻梁引导点的位置坐标。第一指定方向和第一参考距离根据经验设置,或者根据应用需求灵活调整,本技术实施例对此不加以限定。示例性地,第一指定方向为与第一面部模型中的鼻梁垂直且靠近额头的方向。
[0167]
示例性地,第一面部模型中的任一鼻梁关键点对应的位置信息包括该任一鼻梁关键点的索引以及该任一鼻梁关键点的索引指向的位置坐标,任一鼻梁引导点对应的位置信息为该任一鼻梁引导点的位置坐标。鼻梁关键点的数量和鼻梁引导点的数量相同,可以均
为一个,也可以均为多个。在此种情况下,基于鼻梁关键点位置信息和鼻梁引导点位置信息,获取第二鼻子调整损失函数的过程基于公式7实现:
[0168][0169]
其中,表示第二鼻子调整损失函数;p

表示第一生成参数;n5(n5为不小于1的整数)表示鼻梁关键点的数量(或鼻梁引导点的数量);i5表示基于鼻梁关键点位置信息确定的各个鼻梁关键点的索引的集合;表示各个鼻梁引导点的集合。
[0170]
i5表示任一鼻梁关键点的索引;v5表示任一鼻梁引导点;表示基于鼻梁关键点位置信息确定的第一面部模型中的索引为i5的鼻梁关键点的位置坐标;v5表示鼻梁引导点v5的位置坐标,鼻梁引导点v5为与索引为i5的鼻梁关键点对应的鼻梁引导点。
[0171]
示例性地,第一面部模型中的鼻梁关键点和第一面部模型中的鼻梁关键点对应的鼻梁引导点如图7所示,在图7中,第一面部模型中的鼻梁关键点利用黑色进行填充,第一面部模型中的鼻梁关键点对应的鼻梁引导点利用白色进行填充。第二鼻子调整损失函数能够通过上拉鼻梁关键点靠近鼻梁引导点达到加挺鼻梁的效果。
[0172]
5、下巴调整损失函数
[0173]
下巴调整损失函数用于对重建后的面部模型中的下巴的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取下巴调整损失函数的过程为:基于第一面部关键点位置信息,获取下巴关键点位置信息;获取下巴关键点位置信息对应的下巴引导点位置信息;基于下巴关键点位置信息和下巴引导点位置信息,获取第二鼻子调整损失函数。
[0174]
下巴关键点位置信息包括第一面部模型中的各个下巴关键点分别对应的位置信息,下巴关键点是指第一面部模型中的各个关键点中用于指示下巴的关键点。需要说明的是,哪个或哪些关键点用于指示下巴根据经验设置,本技术实施例对此不加以限定。由于第一面部模型中的关键点中包括下巴关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个下巴关键点分别对应的位置信息,从而得到下巴关键点位置信息。
[0175]
下巴关键点位置信息对应的下巴引导点位置信息用于为重建后的面部模型中的下巴的特征提供重建方向。下巴引导点位置信息包括各个下巴引导点分别对应的位置信息。任一下巴引导点对应的位置信息用于指示该任一下巴引导点的位置坐标。下巴关键点与下巴引导点一一对应。也就是说,下巴关键点的数量与下巴引导点的数量相同。示例性地,下巴引导点还可称为下巴锚点。
[0176]
示例性地,任一下巴引导点的位置坐标根据经验设置,此种情况下,通过对根据经验设置的各个下巴引导点的位置坐标进行分析,即可得到下巴引导点位置信息。示例性地,任一下巴引导点的位置坐标根据该任一下巴引导点对应的下巴关键点的位置坐标确定,在此种情况下,先基于各个下巴关键点的位置坐标,确定各个下巴引导点的位置坐标,然后通过对确定出的各个下巴引导点的位置坐标进行分析,得到下巴引导点位置信息。
[0177]
在示例性实施例中,基于任一下巴关键点的位置坐标,确定该任一下巴关键点对
应的下巴引导点的位置坐标的方式为:将任一下巴关键点的位置坐标指示的位置沿第二指定方向平移第二参考距离,将移动到的位置处的坐标作为该任一下巴关键点对应的下巴引导点的位置坐标。第二指定方向和第二参考距离根据经验设置,或者根据应用需求灵活调整,本技术实施例对此不加以限定。
[0178]
示例性地,第一面部模型中的任一下巴关键点对应的位置信息包括该任一下巴关键点的索引以及该任一下巴关键点的索引指向的位置坐标,任一下巴引导点对应的位置信息为该任一下巴引导点的位置坐标。下巴关键点的数量和下巴引导点的数量相同,可以均为一个,也可以均为多个。在此种情况下,基于下巴关键点位置信息和下巴引导点位置信息,获取下巴调整损失函数的过程基于公式8实现:
[0179][0180]
其中,表示下巴调整损失函数;p

表示第一生成参数;n6(n6为不小于1的整数)表示下巴关键点的数量(或下巴引导点的数量);i6表示基于下巴关键点位置信息确定的各个下巴关键点的索引的集合;表示各个下巴引导点的集合。
[0181]
i6表示任一下巴关键点的索引;v6表示任一下巴引导点;表示基于下巴关键点位置信息确定的第一面部模型中的索引为i6的下巴关键点的位置坐标;v6表示下巴引导点v6的位置坐标,下巴引导点v6为与索引为i6的下巴关键点对应的鼻梁引导点。
[0182]
示例性地,第一面部模型中的下巴关键点和第一面部模型中的下巴关键点对应的下巴引导点如图8所示,在图8中,第一面部模型中的下巴关键点利用黑色进行填充,第一面部模型中的下巴关键点对应的下巴引导点利用白色进行填充。下巴调整损失函数能够通过前拉下巴关键点靠近下巴引导点达到翘下巴的效果。
[0183]
6、第三鼻子调整损失函数
[0184]
第三鼻子调整损失函数用于从瘦鼻孔的角度对重建后的面部模型中的鼻子的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取第三鼻子调整损失函数的过程为:基于第一面部关键点位置信息,获取鼻孔左侧关键点位置信息、鼻孔右侧关键点位置信息、鼻孔上侧关键点位置信息和鼻孔下侧关键点位置信息;基于鼻孔左侧关键点位置信息、鼻孔右侧关键点位置信息、鼻孔上侧关键点位置信息和鼻孔下侧关键点位置信息,获取第三鼻子调整损失函数。
[0185]
鼻孔左侧关键点位置信息包括第一面部模型中的各个鼻孔左侧关键点分别对应的位置信息,鼻孔左侧关键点是指第一面部模型中的各个关键点中用于指示鼻孔左侧的关键点,鼻孔左侧包括左鼻孔左侧和右鼻孔左侧。鼻孔右侧关键点位置信息包括第一面部模型中的各个鼻孔右侧关键点分别对应的位置信息,鼻孔右侧关键点是指第一面部模型中的各个关键点中用于指示鼻孔右侧的关键点,鼻孔右侧包括左鼻孔右侧和右鼻孔右侧。需要说明的是,哪个或哪些关键点用于指示鼻孔左侧以及哪个或哪些关键点用于指示鼻孔右侧根据经验设置,本技术实施例对此不加以限定。第一面部模型中的鼻孔左侧关键点与鼻孔右侧关键点一一对应。
[0186]
鼻孔上侧关键点位置信息包括第一面部模型中的各个鼻孔上侧关键点分别对应
的位置信息,鼻孔上侧关键点是指第一面部模型中的各个关键点中用于指示鼻孔上侧的关键点,鼻孔上侧包括左鼻孔上侧和右鼻孔上侧。鼻孔下侧关键点位置信息包括第一面部模型中的各个鼻孔下侧关键点分别对应的位置信息,鼻孔下侧关键点是指第一面部模型中的各个关键点中用于指示鼻孔下侧的关键点,鼻孔下侧包括左鼻孔下侧和右鼻孔下侧。需要说明的是,哪个或哪些关键点用于指示鼻孔上侧以及哪个或哪些关键点用于指示鼻孔下侧根据经验设置,本技术实施例对此不加以限定。第一面部模型中的鼻孔上侧关键点与鼻孔下侧关键点一一对应。
[0187]
由于第一面部模型中的关键点中包括鼻孔左侧关键点、鼻孔左侧关键点、鼻孔上侧关键点和鼻孔下侧关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个鼻孔左侧关键点分别对应的位置信息、第一面部模型中的各个鼻孔左侧关键点分别对应的位置信息、第一面部模型中的各个鼻孔上侧关键点分别对应的位置信息以及第一面部模型中的各个鼻孔下侧关键点分别对应的位置信息,从而得到鼻孔左侧关键点位置信息、鼻孔右侧关键点位置信息、鼻孔上侧关键点位置信息和鼻孔下侧关键点位置信息。
[0188]
示例性地,第一面部模型中的任一鼻孔左侧关键点对应的位置信息包括该任一鼻孔左侧关键点的索引以及该任一鼻孔左侧关键点的索引指向的位置坐标;第一面部模型中的任一鼻孔右侧关键点对应的位置信息包括该任一鼻孔右侧关键点的索引以及该任一鼻孔右侧关键点的索引指向的位置坐标;第一面部模型中的鼻孔左侧关键点与鼻孔右侧关键点一一对应。
[0189]
第一面部模型中的任一鼻孔上侧关键点对应的位置信息包括该任一鼻孔上侧关键点的索引以及该任一鼻孔上侧关键点的索引指向的位置坐标;第一面部模型中的任一鼻孔下侧关键点对应的位置信息包括该任一鼻孔下侧关键点的索引以及该任一鼻孔下侧关键点的索引指向的位置坐标;第一面部模型中的鼻孔上侧关键点与鼻孔下侧关键点一一对应。
[0190]
示例性地,第一面部模型中的鼻孔左侧关键点的数量、鼻孔右侧关键点的数量、鼻孔上侧关键点的数量以及鼻孔下侧关键点的数量均相同,可以均为一个,也可以均为多个。基于鼻孔左侧关键点位置信息、鼻孔右侧关键点位置信息、鼻孔上侧关键点位置信息和鼻孔下侧关键点位置信息,获取第三鼻子调整损失函数的过程基于公式9实现:
[0191][0192]
其中,表示第三鼻子调整损失函数;p

表示第一生成参数;n7(n7为不小于1的整数)表示鼻孔左侧关键点的数量(或鼻孔右侧关键点的数量,或鼻孔上侧关键点的数量,或鼻孔下侧关键点的数量);表示基于鼻孔左侧关键点位置信息确定的各个鼻孔左侧关键点的索引的集合;表示基于鼻孔右侧关键点位置信息确定的各个鼻孔右侧关键点的索引的集合;表示基于鼻孔上侧关键点位置信息确定的各个鼻孔上侧关键点的索引的集合;表示基于鼻孔下侧关键点位置信息确定的各个鼻孔下侧关键点的索引的集合。
[0193]
i7表示任一鼻孔左侧关键点的索引;j7表示任一鼻孔右侧关键点的索引;表示基于鼻孔左侧关键点位置信息确定的第一面部模型中的索引为i7的鼻孔左侧关键点的位置坐标;表示基于鼻孔右侧关键点位置信息确定的第一面部模型中的索引为j7的鼻孔右侧关键点的位置坐标,索引为j7的鼻孔右侧关键点为与索引为i7的鼻孔左侧关键点对应的鼻孔右侧关键点。
[0194]
m7表示任一鼻孔上侧关键点的索引;n7表示任一鼻孔下侧关键点的索引;表示基于鼻孔上侧关键点位置信息确定的第一面部模型中的索引为m7的鼻孔上侧关键点的位置坐标;表示基于鼻孔下侧关键点位置信息确定的第一面部模型中的索引为n7的鼻孔下侧关键点的位置坐标,索引为n7的鼻孔下侧关键点为与索引为m7的鼻孔上侧关键点对应的鼻孔下侧关键点。
[0195]
示例性地,第一面部模型中的鼻孔左侧关键点、鼻孔右侧关键点、鼻孔上侧关键点和鼻孔下侧关键点如图9所示,第三鼻子调整损失函数能够拉近鼻孔左右两侧的关键点以及拉近鼻孔上下两侧的关键点,从而达到瘦鼻孔的效果。
[0196]
7、人中调整损失函数
[0197]
人中调整损失函数用于对重建后的面部模型中的人中的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取人中调整损失函数的过程为:基于第一面部关键点位置信息,获取嘴巴关键点位置信息和鼻中关键点位置信息;基于嘴巴关键点位置信息和鼻中关键点位置信息,获取人中调整损失函数。
[0198]
嘴巴关键点位置信息包括第一面部模型中的各个嘴巴关键点分别对应的位置信息,嘴巴关键点是指第一面部模型中的各个关键点中用于指示嘴巴的关键点。鼻中关键点位置信息用于指示第一面部模型中的鼻中关键点的位置坐标。鼻中关键点是指第一面部模型中的各个关键点中用于指示鼻中的关键点。示例性地,鼻中关键点的数量为一个。需要说明的是,哪个或哪些关键点用于指示嘴巴以及哪个或哪些关键点用于指示鼻中根据经验设置,本技术实施例对此不加以限定。
[0199]
由于第一面部模型中的关键点中包括嘴巴关键点和鼻中关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个嘴巴关键点分别对应的位置信息以及第一面部模型中的鼻中关键点对应的位置信息,从而得到嘴巴关键点位置信息和鼻中关键点位置信息。
[0200]
示例性地,第一面部模型中的任一嘴巴关键点对应的位置信息包括该任一嘴巴关键点的索引以及该任一嘴巴关键点的索引指向的位置坐标,鼻中关键点位置信息包括该鼻中关键点的索引以及鼻中关键点的索引指向的位置坐标。第一面部模型中的嘴巴关键点的数量为一个或多个,第一面部模型中的鼻中关键点的数量为一个。在此种情况下,基于嘴巴关键点位置信息和鼻中关键点位置信息,获取人中调整损失函数的过程基于公式10实现:
[0201]
[0202]
其中,表示人中调整损失函数;p

表示第一生成参数;n8(n8为不小于1的整数)表示嘴巴关键点的数量;i8表示基于嘴巴关键点位置信息确定的各个嘴巴关键点的索引的集合;i8表示任一嘴巴关键点的索引;k8表示基于鼻中关键点位置信息确定的鼻中关键点的索引;表示基于嘴巴关键点位置信息确定的第一面部模型中的索引为i8的嘴巴关键点的位置坐标;表示基于鼻中关键点位置信息确定的鼻中关键点的位置坐标;表示第一面部模型中的各个嘴巴关键点的位置坐标的平均坐标。
[0203]
示例性地,第一面部模型中的嘴巴关键点和鼻中关键点如图10所示,人中调整损失函数能够拉近嘴巴关键点的平均位置与鼻中关键点的距离,从而达到下拉鼻中、上拉嘴巴的效果。
[0204]
8、眼睛调整损失函数
[0205]
眼睛调整损失函数用于对重建后的面部模型中的眼睛的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取眼睛调整损失函数的过程为:基于第一面部关键点位置信息,获取眼睛下眼睑关键点位置信息;获取眼睛下眼睑关键点位置信息对应的眼睛下眼睑引导点位置信息;基于眼睛下眼睑关键点位置信息和眼睛下眼睑引导点位置信息,获取眼睛调整损失函数。
[0206]
眼睛下眼睑关键点位置信息包括第一面部模型中的各个眼睛下眼睑关键点分别对应的位置信息,眼睛下眼睑关键点是指第一面部模型中的各个关键点中用于指示眼睛下眼睑的关键点,眼睛下眼睑包括左眼睛下眼睑和右眼睛下眼睑。需要说明的是,哪个或哪些关键点用于指示眼睛下眼睑根据经验设置,本技术实施例对此不加以限定。由于第一面部模型中的关键点中包括眼睛下眼睑关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个眼睛下眼睑关键点分别对应的位置信息,从而得到眼睛下眼睑关键点位置信息。
[0207]
眼睛下眼睑关键点位置信息对应的眼睛下眼睑引导点位置信息用于为重建后的面部模型中的眼睛下眼睑的特征提供重建方向。眼睛下眼睑引导点位置信息包括各个眼睛下眼睑引导点分别对应的位置信息。任一眼睛下眼睑引导点对应的位置信息用于指示该任一眼睛下眼睑引导点的位置坐标。眼睛下眼睑关键点与眼睛下眼睑引导点一一对应。也就是说,眼睛下眼睑关键点的数量与眼睛下眼睑引导点的数量相同。示例性地,眼睛下眼睑引导点还可称为眼睛下眼睑锚点。
[0208]
示例性地,任一眼睛下眼睑引导点的位置坐标根据经验设置,此种情况下,通过对根据经验设置的各个眼睛下眼睑引导点的位置坐标进行分析,即可得到眼睛下眼睑引导点位置信息。示例性地,任一眼睛下眼睑引导点的位置坐标根据该任一眼睛下眼睑引导点对应的眼睛下眼睑关键点的位置坐标确定,在此种情况下,先基于各个眼睛下眼睑关键点的位置坐标,确定各个眼睛下眼睑引导点的位置坐标,然后通过对确定出的各个眼睛下眼睑引导点的位置坐标进行分析,得到眼睛下眼睑引导点位置信息。
[0209]
在示例性实施例中,基于任一眼睛下眼睑关键点的位置坐标,确定该任一眼睛下
眼睑关键点对应的眼睛下眼睑引导点的位置坐标的方式为:将任一眼睛下眼睑关键点的位置坐标指示的位置沿第三指定方向平移第三参考距离,将移动到的位置处的坐标作为该任一眼睛下眼睑关键点对应的眼睛下眼睑引导点的位置坐标。第三指定方向和第三参考距离根据经验设置,或者根据应用需求灵活调整,本技术实施例对此不加以限定。
[0210]
示例性地,第一面部模型中的任一眼睛下眼睑关键点对应的位置信息包括该任一眼睛下眼睑关键点的索引以及该任一眼睛下眼睑关键点的索引指向的位置坐标,任一眼睛下眼睑引导点对应的位置信息为该任一眼睛下眼睑引导点的位置坐标。眼睛下眼睑关键点的数量和眼睛下眼睑引导点的数量相同,可以均为一个,也可以均为多个。在此种情况下,基于眼睛下眼睑关键点位置信息和眼睛下眼睑引导点位置信息,获取眼睛调整损失函数的过程基于公式11实现:
[0211][0212]
其中,表示眼睛调整损失函数;p

表示第一生成参数;n9(n9为不小于1的整数)表示眼睛下眼睑关键点的数量(或眼睛下眼睑引导点的数量);i9表示基于眼睛下眼睑关键点位置信息确定的各个眼睛下眼睑关键点的索引的集合;表示各个眼睛下眼睑引导点的集合。
[0213]
i9表示任一眼睛下眼睑关键点的索引;v9表示任一眼睛下眼睑引导点;表示基于眼睛下眼睑关键点位置信息确定的第一面部模型中的索引为i9的眼睛下眼睑关键点的位置坐标;v9表示眼睛下眼睑引导点v9的位置坐标,眼睛下眼睑引导点v9为与索引为i9的眼睛下眼睑关键点对应的眼睛下眼睑引导点。
[0214]
示例性地,第一面部模型中的眼睛下眼睑关键点和第一面部模型中的眼睛下眼睑关键点对应的眼睛下眼睑引导点如图11所示,在图11中,第一面部模型中的眼睛下眼睑关键点利用黑色进行填充,第一面部模型中的眼睛下眼睑关键点对应的眼睛下眼睑引导点利用白色进行填充。眼睛调整损失函数能够通过下拉眼睛下眼睑关键点靠近眼睛下眼睑引导点达到加大眼睛的效果。
[0215]
9、第四鼻子调整损失函数
[0216]
第四鼻子调整损失函数用于从后拉鼻中的角度对重建后的面部模型中的鼻子的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取第四鼻子调整损失函数的过程为:基于第一面部关键点位置信息,获取鼻中关键点位置信息;获取鼻中关键点位置信息对应的鼻中引导点位置信息;基于鼻中关键点位置信息和鼻中引导点位置信息,获取第四鼻子调整损失函数。
[0217]
鼻中关键点位置信息包括第一面部模型中的各个鼻中关键点分别对应的位置信息,鼻中关键点是指第一面部模型中的各个关键点中用于指示鼻中的关键点。需要说明的是,哪个或哪些关键点用于指示鼻中根据经验设置,本技术实施例对此不加以限定。由于第一面部模型中的关键点中包括鼻中关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个鼻中关键点分别对应的位置信息,从而得到鼻中关键点位置信息。
[0218]
鼻中关键点位置信息对应的鼻中引导点位置信息用于为重建后的面部模型中的鼻中的特征提供重建方向。鼻中引导点位置信息包括各个鼻中引导点分别对应的位置信息。任一鼻中引导点对应的位置信息用于指示该任一鼻中引导点的位置坐标。鼻中关键点与鼻中引导点一一对应。也就是说,鼻中关键点的数量与鼻中引导点的数量相同。示例性地,鼻中引导点还可称为鼻中锚点。
[0219]
示例性地,任一鼻中引导点的位置坐标根据经验设置,此种情况下,通过对根据经验设置的各个鼻中引导点的位置坐标进行分析,即可得到鼻中引导点位置信息。示例性地,任一鼻中引导点的位置坐标根据该任一鼻中引导点对应的鼻中关键点的位置坐标确定,在此种情况下,先基于各个鼻中关键点的位置坐标,确定各个鼻中引导点的位置坐标,然后通过对确定出的各个鼻中引导点的位置坐标进行分析,得到鼻中引导点位置信息。
[0220]
在示例性实施例中,基于任一鼻中关键点的位置坐标,确定该任一鼻中关键点对应的鼻中引导点的位置坐标的方式为:将任一鼻中关键点的位置坐标指示的位置沿第饲指定方向平移第四参考距离,将移动到的位置处的坐标作为该任一鼻中关键点对应的鼻中引导点的位置坐标。第四指定方向和第四参考距离根据经验设置,或者根据应用需求灵活调整,本技术实施例对此不加以限定。
[0221]
示例性地,第一面部模型中的任一鼻中关键点对应的位置信息包括该任一鼻中关键点的索引以及该任一鼻中关键点的索引指向的位置坐标,任一鼻中引导点对应的位置信息为该任一鼻中引导点的位置坐标。鼻中关键点的数量和鼻中引导点的数量相同,可以均为一个,也可以均为多个。在此种情况下,基于鼻中关键点位置信息和鼻中引导点位置信息,获取第四鼻子调整损失函数的过程基于公式12实现:
[0222][0223]
其中,表示第四鼻子调整损失函数;p

表示第一生成参数;n
10
(n
10
为不小于1的整数)表示鼻中关键点的数量(或鼻中引导点的数量);i
10
表示基于鼻中关键点位置信息确定的各个鼻中关键点的索引的集合;表示各个鼻中引导点的集合。
[0224]
i
10
表示任一鼻中关键点的索引;v
10
表示任一鼻中引导点;表示基于鼻中关键点位置信息确定的第一面部模型中的索引为i
10
的鼻中关键点的位置坐标;v
10
表示鼻中引导点v
10
的位置坐标,鼻中引导点v
10
为与索引为i
10
的鼻中关键点对应的鼻中引导点。
[0225]
示例性地,第一面部模型中的鼻中关键点和第一面部模型中的鼻中关键点对应的鼻中引导点如图12所示,在图12中,第一面部模型中的鼻中关键点利用黑色进行填充,第一面部模型中的鼻中关键点对应的鼻中引导点利用白色进行填充。第四鼻子调整损失函数能够通过后拉鼻中关键点靠近鼻中引导点达到后拉鼻中的效果。
[0226]
10、第二嘴巴调整损失函数
[0227]
第二嘴巴调整损失函数用于从后拉下嘴唇的角度对重建后的面部模型中的嘴巴的特征进行优化。在一种可能实现方式中,基于第一面部关键点位置信息,获取第二嘴巴调整损失函数的过程为:基于第一面部关键点位置信息,获取下嘴唇关键点位置信息;获取下嘴唇关键点位置信息对应的下嘴唇引导点位置信息;基于下嘴唇关键点位置信息和下嘴唇
引导点位置信息,获取眼睛调整损失函数。
[0228]
下嘴唇关键点位置信息包括第一面部模型中的各个下嘴唇关键点分别对应的位置信息,下嘴唇关键点是指第一面部模型中的各个关键点中用于指示下嘴唇的关键点。需要说明的是,哪个或哪些关键点用于指示下嘴唇根据经验设置,本技术实施例对此不加以限定。由于第一面部模型中的关键点中包括下嘴唇关键点,且第一面部关键点位置信息包括第一面部模型中的各个关键点分别对应的位置信息,因此,在第一面部关键点位置信息中,能够提取出第一面部模型中的各个下嘴唇关键点分别对应的位置信息,从而得到下嘴唇关键点位置信息。
[0229]
下嘴唇关键点位置信息对应的下嘴唇引导点位置信息用于为重建后的面部模型中的下嘴唇的特征提供重建方向。下嘴唇引导点位置信息包括各个下嘴唇引导点分别对应的位置信息。任一下嘴唇引导点对应的位置信息用于指示该任一下嘴唇引导点的位置坐标。下嘴唇关键点与下嘴唇引导点一一对应。也就是说,下嘴唇关键点的数量与下嘴唇引导点的数量相同。示例性地,下嘴唇引导点还可称为下嘴唇锚点。
[0230]
示例性地,任一下嘴唇引导点的位置坐标根据经验设置,此种情况下,通过对根据经验设置的各个下嘴唇引导点的位置坐标进行分析,即可得到下嘴唇引导点位置信息。示例性地,任一下嘴唇引导点的位置坐标根据该任一下嘴唇引导点对应的下嘴唇关键点的位置坐标确定,在此种情况下,先基于各个下嘴唇关键点的位置坐标,确定各个下嘴唇引导点的位置坐标,然后通过对确定出的各个下嘴唇引导点的位置坐标进行分析,得到下嘴唇引导点位置信息。
[0231]
在示例性实施例中,基于任一下嘴唇关键点的位置坐标,确定该任一下嘴唇关键点对应的下嘴唇引导点的位置坐标的方式为:将任一下嘴唇关键点的位置坐标指示的位置沿第五指定方向平移第五参考距离,将移动到的位置处的坐标作为该任一下嘴唇关键点对应的下嘴唇引导点的位置坐标。第五指定方向和第五参考距离根据经验设置,或者根据应用需求灵活调整,本技术实施例对此不加以限定。
[0232]
示例性地,第一面部模型中的任一下嘴唇关键点对应的位置信息包括该任一下嘴唇关键点的索引以及该任一下嘴唇关键点的索引指向的位置坐标,任一下嘴唇引导点对应的位置信息为该任一下嘴唇引导点的位置坐标。下嘴唇关键点的数量和下嘴唇引导点的数量相同,可以均为一个,也可以均为多个。在此种情况下,基于下嘴唇关键点位置信息和下嘴唇引导点位置信息,获取第二嘴巴调整损失函数的过程基于公式13实现:
[0233][0234]
其中,表示第二嘴巴调整损失函数;p

表示第一生成参数;n
11
(n
11
为不小于1的整数)表示下嘴唇关键点的数量(或下嘴唇引导点的数量);i
11
表示基于下嘴唇关键点位置信息确定的各个下嘴唇关键点的索引的集合;表示各个下嘴唇引导点的集合。
[0235]
i
11
表示任一下嘴唇关键点的索引;v
11
表示任一下嘴唇引导点;表示基于下嘴唇关键点位置信息确定的第一面部模型中的索引为i
11
的下嘴唇关键点的位置坐标;v
11
表示下嘴唇引导点v
11
的位置坐标,下嘴唇引导点v
11
为与索引为i
11
的下嘴唇关键点对应
的下嘴唇引导点。
[0236]
示例性地,第一面部模型中的下嘴唇关键点和第一面部模型中的下嘴唇关键点对应的下嘴唇引导点如图13所示,在图13中,第一面部模型中的下嘴唇关键点利用黑色进行填充,第一面部模型中的下嘴唇关键点对应的下嘴唇引导点利用白色进行填充。第二嘴巴调整损失函数能够通过后拉下嘴唇关键点靠近下嘴唇引导点达到后拉下嘴唇的效果。
[0237]
对于局部调整损失函数包括上述脸颊调整损失函数、第一鼻子调整损失函数、第一嘴巴调整损失函数、第二鼻子调整损失函数、下巴调整损失函数、第三鼻子调整损失函数、人中调整损失函数、眼睛调整损失函数、第四鼻子调整损失函数和第二嘴巴调整损失函数中的至少一个的情况,参考上述获取各个局部调整损失函数的方式以及局部调整损失函数的具体情况,即可得到局部调整损失函数。
[0238]
应用场景二:基于模板面部模型对第一面部模型进行重建。
[0239]
在此种应用场景二下,获取第一损失函数所依据的参考面部模型为模板面部模型。示例性地,在此种应用场景二下,参考特征包括比例特征,第二损失函数包括参考比例损失函数,参考比例损失函数基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息获取得到。
[0240]
比例特征包括面部模型中的至少一个参考比例(如,水平比例、垂直比例、深度比例等)。对于参考特征包括比例特征的情况,第二损失函数包括参考比例损失函数,获取第二损失函数的过程即为获取参考比例损失函数的过程。参考比例损失函数用于对重建后的面部模型中的至少一个参考比例进行优化。第二损失函数包括的参考比例损失函数的数量为一个或多个,本技术实施例对此不加以限定。
[0241]
参考比例损失函数基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息获取得到。在此种情况下,模板面部模型除了能够起到为重建后的面部模型的整体面部特征提供约束方向的作用外,还能够起到为重建后的面部模型的比例特征提供优化方向的作用。
[0242]
模板面部模型对应的模板面部关键点位置信息通过对模板面部模型进行分析得到,模板面部模型对应的模板面部关键点位置信息包括模板面部模型中的各个关键点分别对应的位置信息,模板面部模型中的任一关键点对应的位置信息用于指示模板面部模型中该任一关键点的位置坐标。示例性地,示例性地,模板面部模型中的任一关键点对应的位置信息直接是指该模板面部模型中的该任一关键点的位置坐标;或者,模板面部模型中的任一关键点对应的位置信息包括模板面部模型中的该任一关键点的索引以及该任一关键的索引指向的位置坐标。任一关键点的索引指向的位置坐标即为该任一关键点的位置坐标。
[0243]
参考比例损失函数用于基于模板面部模型中的参考比例对重建后的面部模型中的相应的参考比例进行优化,本技术实施例对参考比例损失函数的类型以及数量不加以限定,可以根据经验设置,或者根据应用需求灵活调整。
[0244]
在一种可能实现方式中,基于第一面部关键点位置信息和模板面部关键点位置信息,获取参考比例损失函数的过程为:基于第一面部关键点位置信息和模板面部关键点位置信息,获取第一面部模型中的参考比例与模板面部模型中的相应的参考比例之间的比例差异,基于比例差异,获取参考比例损失函数。参考比例损失函数与需要考虑的参考比例的类型有关。示例性地,需要考虑的参考比例包括水平比例、垂直比例、深度比例和长宽比例
中的至少一个,此种情况下,参考比例损失函数包括水平比例损失函数、垂直比例损失函数、深度比例损失函数和长宽比例损失函数中的至少一个。
[0245]
参考比例损失函数的具体情况根据实际需求灵活设定,本技术实施例对此不加以限定。根据参考比例损失函数的具体情况的不同,获取参考比例损失函数的过程有所不同。接下来,分别介绍水平比例损失函数、垂直比例损失函数、深度比例损失函数和长宽比例损失函数的获取过程。
[0246]
a:水平比例损失函数
[0247]
水平比例损失函数用于基于模板面部模型中的水平比例对重建后的面部模型中的相应的水平比例进行优化。在一种可能实现方式中,基于第一面部关键点位置信息和模板面部关键点位置信息,获取水平比例损失函数的过程为:基于第一面部关键点位置信息,获取第一面部模型对应的第一水平距离和第一面部模型对应的至少一个第二水平距离;基于模板面部关键点位置信息,获取模板面部模型对应的第三水平距离和模板面部模型对应的至少一个第四水平距离;基于第一水平距离、至少一个第二水平距离、第三水平距离和至少一个第四水平距离,获取水平比例损失函数。
[0248]
第一面部模型对应的第一水平距离是指第一面部模型的基准水平距离,示例性地,第一面部模型对应的第一水平距离是指第一面部模型中的左侧太阳穴中心点和右侧太阳穴中心点之间的水平距离。示例性地,基于第一面部关键点位置信息,能够确定第一面部模型中的左侧太阳穴中心点和右侧太阳穴中心点的位置坐标,进而确定第一面部模型中的左侧太阳穴中心点和右侧太阳穴中心点之间的水平距离,即确定第一面部模型对应的第一水平距离。
[0249]
第一面部模型对应的至少一个第二水平距离根据经验设置,或者根据应用场景灵活调整。示例性地,至少一个第二水平距离包括第一面部模型中的左侧太阳穴中心点和左眼左眼角之间的水平距离、第一面部模型中的左眼左眼角和左眼右眼角之间的水平距离、第一面部模型中的左眼右眼角和右眼左眼角之间的水平距离、第一面部模型中的右眼左眼角和右眼右眼角之间的水平距离、第一面部模型中的右眼右眼角和右侧太阳穴中心点之间的水平距离、第一面部模型中的鼻子左侧端点和鼻子右侧端点之间的水平距离以及第一面部模型中的左嘴角和右嘴角之间的水平距离中的至少一个。由于第一面部关键点位置信息包括第一面部模型中的各个关键点的位置信息,所以基于第一面部关键点位置信息能够获取至少一个第二水平距离。
[0250]
根据对水平距离的介绍内容可知,任一水平距离均基于两个关键点确定,两个关键点的索引构成一个索引对,也就是说,任一水平距离的计算均需要一个关键点索引对。
[0251]
示例性地,假设至少一个第二水平距离包括第一面部模型中的左侧太阳穴中心点和左眼左眼角之间的水平距离、第一面部模型中的左眼左眼角和左眼右眼角之间的水平距离、第一面部模型中的左眼右眼角和右眼左眼角之间的水平距离、第一面部模型中的右眼左眼角和右眼右眼角之间的水平距离、第一面部模型中的右眼右眼角和右侧太阳穴中心点之间的水平距离、第一面部模型中的鼻子左侧端点和鼻子右侧端点之间的水平距离以及第一面部模型中的左嘴角和右嘴角之间的水平距离。此种情况下,第一面部模型对应有7个第二水平距离。
[0252]
将第一面部模型对应的第一水平距离记为将第一面部模型中的左侧太阳穴
中心点和左眼左眼角之间的水平距离记为将第一面部模型中的左眼左眼角和左眼右眼角之间的水平距离记为将第一面部模型中的左眼右眼角和右眼左眼角之间的水平距离记为将第一面部模型中的右眼左眼角和右眼右眼角之间的水平距离记为将第一面部模型中的右眼右眼角和第一面部模型中的右侧太阳穴中心点之间的水平距离记为将第一面部模型中的鼻子左侧端点和鼻子右侧端点之间的水平距离记为将第一面部模型中的左嘴角和右嘴角之间的水平距离记为则第一面部模型对应的第一水平距离以及至少一个第二水平距离如图14所示。
[0253]
模板面部模型对应的第三水平距离是指模板面部模型的基准水平距离,模板面部模型对应的第三水平距离与第一面部模型对应的第一水平距离对应;模板面部模型对应的至少一个第四水平距离与第一面部模型对应的至少一个第二水平距离一一对应。模板面部模型对应的第四水平距离的数量与第一面部模型对应的第二水平距离的数量相同。基于模板面部关键点位置信息,获取模板面部模型对应的第三水平距离和模板面部模型对应的至少一个第四水平距离的实现方式参见上述介绍的基于第一面部关键点位置信息,获取第一面部模型对应的第一水平距离和第一面部模型对应的至少一个第二水平距离的实现方式,此处不再赘述。
[0254]
在示例性实施例中,水平比例损失函数的设计构思为:希望第一面部模型对应的任一第二水平距离在第一面部模型对应的第一水平距离上的占比,与模板面部模型对应的与该任一第二水平距离对应的第四水平距离在模板面部模型对应第三水平距离上的占比,是大致一致的,以实现基于模板面部模型中的水平比例对重建后的面部模型中的相应的水平比例进行优化。
[0255]
示例性地,基于第一水平距离、至少一个第二水平距离、第三水平距离和至少一个第四水平距离,获取水平比例损失函数的过程基于公式14实现:
[0256][0257]
其中,表示水平比例损失函数;m2表示模板面部模型对应的第四水平距离的数量(或第一面部模型对应的第二水平距离的数量);表示计算第一面部模型对应的各个第二水平距离分别需要的关键点索引对的集合;{t2,r2}表示计算第一面部模型对应的任一第二水平距离需要的关键点索引对;表示计算模板面部模型对应的各个第四水平距离分别需要的关键点索引对的集合;{c2,d2}表示计算模板面部模型对应的任一第四水平距离需要的关键点索引对。
[0258]
{f2,k2}表示计算模板面部模型对应的第三水平距离需要的关键点索引对;{e2,g2}表示计算第一面部模型对应的第一水平距离需要的关键点索引对;表示基于关键点索引对{c2,d2}计算得到的模板面部模型对应的一个第四水平距离;
表示模板面部模型对应的第三水平距离;表示第一面部模型对应的第一水平距离;表示基于关键点索引对{t2,r2}计算得到的第一面部模型对应的一个第二水平距离。
[0259]
在上述公式14中,用于求解关键点索引对{c2,d2}指示的两个关键点和之间的水平距离,基于公式15计算得到:
[0260][0261]
其中,表示关键点的位置坐标的水平分量;表示关键点的位置坐标的水平分量。需要说明的是,公式14中的置坐标的水平分量。需要说明的是,公式14中的和的计算方式参见的计算方式,此处不再赘述。
[0262]
b:垂直比例损失函数
[0263]
垂直比例损失函数用于基于模板面部模型中的垂直比例对重建后的面部模型中的相应的垂直比例进行优化。在一种可能实现方式中,基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息,获取垂直比例损失函数的过程包括以下步骤1至步骤5:
[0264]
步骤1:基于第一面部关键点位置信息,获取第一面部模型对应的第一垂直距离、第一面部模型对应的至少一个第二直接垂直距离以及第一面部模型对应的至少一个第二平均垂直距离。
[0265]
第一面部模型对应的第一垂直距离是指第一面部模型的基准垂直距离,示例性地,第一面部模型对应的第一垂直距离是指第一面部模型中的左眼右眼角与右眼左眼角连线的中心点和下巴最低点之间的垂直距离。示例性地,基于第一面部关键点位置信息,能够确定第一面部模型中的左眼右眼角与右眼左眼角连线的中心点和下巴最低点的位置坐标,进而确定第一面部模型中的左眼右眼角与右眼左眼角连线的中心点和下巴最低点之间的垂直距离,即确定第一面部模型对应的第一垂直距离。
[0266]
第一面部模型对应的至少一个第二直接垂直距离是指直接基于第一面部模型中的两个关键点的位置坐标计算得到的垂直距离。示例性地,第一面部模型对应的至少一个第二直接垂直距离包括第一面部模型中的左眼最高点和左眼最低点之间的垂直距离、第一面部模型中的右眼最高点和右眼最低点之间的垂直距离中的至少一个。由于第一面部关键点位置信息包括第一面部模型中的各个关键点的位置信息,所以基于第一面部关键点位置信息能够获取至少一个第二直接垂直距离。
[0267]
根据对至少一个第二直接垂直距离的介绍内容可知,任一第二直接垂直距离均基于两个关键点确定,两个关键点的索引构成一个索引对,也就是说,任一第二直接垂直距离的计算均需要一个关键点索引对。
[0268]
第一面部模型对应的至少一个第二平均垂直距离是指基于第一面部模型中的两个局部的关键点的平均位置计算得到的垂直距离。示例性地,第一面部模型对应的至少一个第二平均垂直距离包括第一面部模型中的眼睛关键点的平均位置和鼻子关键点的平均
位置之间的垂直距离、第一面部模型中的鼻子关键点的平均位置和嘴巴关键点的平均位置之间的垂直距离以及第一面部模型中的嘴巴关键点的平均位置和下巴关键点的平均位置之间的垂直距离中的至少一个。由于第一面部关键点位置信息包括第一面部模型中的各个关键点的位置信息,所以基于第一面部关键点位置信息能够获取各个局部的关键点的平均位置,进而获取至少一个第二平均垂直距离。
[0269]
根据对至少一个第二平均垂直距离的介绍内容可知,任一第二平均垂直距离均基于两个平均位置确定,两个平均位置构成一个平均位置对,也就是说,任一第二平均垂直距离的计算均需要一个平均位置对。
[0270]
示例性地,假设第一面部模型对应的至少一个第二直接垂直距离包括第一面部模型中的左眼最高点和左眼最低点之间的垂直距离、第一面部模型中的右眼最高点和右眼最低点之间的垂直距离;第一面部模型对应的至少一个第二平均垂直距离包括第一面部模型中的眼睛关键点的平均位置和鼻子关键点的平均位置之间的垂直距离、第一面部模型中的鼻子关键点的平均位置和嘴巴关键点的平均位置之间的垂直距离以及第一面部模型中的嘴巴关键点的平均位置和下巴关键点的平均位置之间的垂直距离。
[0271]
将第一面部模型对应的第一垂直距离记为将第一面部模型中的左眼最高点和左眼最低点之间的垂直距离记为将第一面部模型中的右眼最高点和右眼最低点之间的垂直距离记为将第一面部模型中的眼睛关键点的平均位置和鼻子关键点的平均位置之间的垂直距离记为将第一面部模型中的鼻子关键点的平均位置和嘴巴关键点的平均位置之间的垂直距离记为将第一面部模型中的嘴巴关键点的平均位置和下巴关键点的平均位置之间的垂直距离记为则第一面部模型对应的第一垂直距离、至少一个第二直接垂直距离以及至少一个第二平均垂直距离如图15所示。
[0272]
步骤2:基于模板面部关键点位置信息,获取模板面部模型对应的第三垂直距离、模板面部模型对应的至少一个第四直接垂直距离以及模板面部模型对应的至少一个第四平均垂直距离。
[0273]
模板面部模型对应的第三垂直距离是指模板面部模型的基准垂直距离,模板面部模型对应的第三垂直距离与第一面部模型对应的第一垂直距离对应;模板面部模型对应的至少一个第四直接垂直水平距离与第一面部模型对应的至少一个第二直接垂直距离一一对应,模板面部模型对应的第四直接垂直距离的数量与第一面部模型对应的第二直接垂直距离的数量相同。模板面部模型对应的至少一个第四平均垂直水平距离与第一面部模型对应的至少一个第二平均垂直距离一一对应,模板面部模型对应的第四平均垂直距离的数量与第一面部模型对应的第二平均垂直距离的数量相同。基于模板面部关键点位置信息,获取模板面部模型对应的第三垂直距离、模板面部模型对应的至少一个第四直接垂直距离以及模板面部模型对应的至少一个第四平均垂直距离的实现方式参见上述步骤1中介绍的基于第一面部关键点位置信息,获取第一面部模型对应的第一垂直距离、第一面部模型对应的至少一个第二直接垂直距离以及第一面部模型对应的至少一个第二平均垂直距离的实现方式,此处不再赘述。
[0274]
步骤3:基于第一垂直距离、至少一个第二直接垂直距离、第三垂直距离和至少一
个第四直接垂直距离,获取第一垂直比例子损失函数。
[0275]
第一垂直比例子损失函数是组成垂直比例损失函数的一部分。示例性地,该步骤3基于公式16实现:
[0276][0277]
其中,表示第一垂直比例子损失函数;m3‑1表示模板面部模型对应的第四直接垂直距离的数量(或第一面部模型对应的第二直接垂直距离的数量);表示计算第一面部模型对应的各个第二直接垂直距离分别需要的关键点索引对的集合;{t3,r3}表示计算第一面部模型对应的任一第二直接垂直距离需要的关键点索引对;表示计算模板面部模型对应的各个第四直接垂直距离分别需要的关键点索引对的集合;{c3,d3}表示计算模板面部模型对应的任一第四直接垂直距离需要的关键点索引对。
[0278]
{f3,k3}表示计算模板面部模型对应的第三垂直距离需要的关键点索引对;{e3,g3}表示计算第一面部模型对应的第一垂直距离需要的关键点索引对;表示基于关键点索引对{c3,d3}计算得到的模板面部模型对应的一个第四直接垂直距离;表示模板面部模型对应的第三垂直距离;表示第一面部模型对应的第一垂直距离;表示基于关键点索引对{t3,r3}计算得到的第一面部模型对应的一个第二直接垂直距离。
[0279]
在上述公式16中,用于求解关键点索引对{c3,d3}指示的两个关键点和之间的垂直距离,基于公式17计算得到:
[0280][0281]
其中,表示关键点的位置坐标的垂直分量;表示关键点的位置坐标的垂直分量。需要说明的是,公式16中的坐标的垂直分量。需要说明的是,公式16中的和的计算方式参见的计算方式,此处不再赘述。
[0282]
步骤4:基于第一垂直距离、至少一个第二平均垂直距离、第三垂直距离和至少一个第四平均垂直距离,获取第二垂直比例子损失函数。
[0283]
第二垂直比例子损失函数是组成垂直比例损失函数的另外一部分。在一种可能实现方式中,该步骤4基于公式18实现:
[0284][0285]
其中,表示第二垂直比例子损失函数;m3‑2表示模板面部模型对应的
第四平均垂直距离的数量(或第一面部模型对应的第二平均垂直距离的数量);表示计算第一面部模型对应的各个第二平均垂直距离分别需要的平均位置对的集合;{q1,q2}表示计算第一面部模型对应的任一第二平均垂直距离需要的平均位置对;表示计算模板面部模型对应的各个第四平均垂直距离分别需要的平均位置对的集合;{q3,q4}表示计算模板面部模型对应的任一第四平均垂直距离需要的平均位置对。
[0286]
{f3,k3}表示计算模板面部模型对应的第三垂直距离需要的关键点索引对;{e3,g3}表示计算第一面部模型对应的第一垂直距离需要的关键点索引对;d
y
(q3,q4)表示基于平均位置对{q3,q4}计算得到的模板面部模型对应的一个第四平均垂直距离;表示模板面部模型对应的第三垂直距离;表示第一面部模型对应的第一垂直距离;d
y
(q1,q2)表示基于平均位置对{q1,q2}计算得到的第一面部模型对应的一个第二平均垂直距离。
[0287]
上述公式18中的d
y
(q3,q4)、和d
y
(q1,q2)的计算方式参见公式17所示的的计算方式,此处不再赘述。
[0288]
示例性地,第二垂直比例子损失函数能够在重建过程中约束局部(如,眼睛、鼻子、嘴巴、下巴等)整体平滑移动,保持局部整体形式不变,例如,保持眼型以及嘴型不变等。
[0289]
步骤5:基于第一垂直比例子损失函数和第二垂直比例子损失函数,获取垂直比例损失函数。
[0290]
垂直比例损失函数由第一垂直比例子损失函数和第二垂直比例子损失函数组成,在示例性实施例中,基于第一垂直比例子损失函数和第二垂直比例子损失函数,获取垂直比例损失函数的方式为:计算第一垂直比例子损失函数和第一权值的第一乘积;计算第二垂直比例子损失函数和第二权值的第二乘积;将第一乘积和第二乘积的和作为垂直比例损失函数。示例性地,垂直比例损失函数的获取过程基于公式19实现:
[0291][0292]
其中,表示垂直比例损失函数;λ1表示第一权值;表示第一垂直比例子损失函数;λ2表示第一权值;表示第人垂直比例子损失函数。第一权值λ1和第二权值λ2均可以根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。示例性地,第一权值λ1和第二权值λ2均设置为1,此种情况下,垂直比例损失函数是指第一垂直比例子损失函数和第二垂直比例子损失函数的和。
[0293]
在示例性实施例中,垂直比例损失函数的设计构思为:希望第一面部模型对应的任一第二垂直距离(任一第二直接垂直距离或者任一第二平均垂直距离)在第一面部模型对应的第一垂直距离上的占比,与模板面部模型对应的与该任一第二垂直距离对应的第四垂直距离在模板面部模型对应第三垂直距离上的占比,是大致一致的,以实现基于模板面部模型中的垂直比例对重建后的面部模型中的相应的垂直比例进行优化。
[0294]
c:深度比例损失函数
[0295]
深度比例损失函数用于基于模板面部模型中的深度比例对重建后的面部模型中的相应的深度比例进行优化。在一种可能实现方式中,基于第一面部关键点位置信息和模
板面部模型对应的模板面部关键点位置信息,获取深度比例损失函数的过程为:基于第一面部关键点位置信息,获取第一面部模型对应的第一深度距离和第一面部模型对应的至少一个第二深度距离;基于模板面部关键点位置信息,获取模板面部模型对应的第三深度距离和模板面部模型对应的至少一个第四深度距离;基于第一深度距离、至少一个第二深度距离、第三深度距离和至少一个第四深度距离,获取深度比例损失函数。
[0296]
第一面部模型对应的第一深度距离是指第一面部模型的基准深度距离,示例性地,第一面部模型对应的第一深度距离是指第一面部模型中的鼻子上的第一鼻子关键点和脸颊上的第一脸颊关键点之间的深度距离。示例性地,基于第一面部关键点位置信息,能够确定第一面部模型中的鼻子上的第一鼻子关键点和脸颊上的第一脸颊关键点的位置坐标,进而确定第一面部模型中的鼻子上的第一鼻子关键点和脸颊上的第一脸颊关键点之间的深度距离,即确定第一面部模型对应的第一深度距离。
[0297]
第一鼻子关键点和第一脸颊关键点根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定。示例性地,两个关键点之间的深度距离的计算方式可以是指计算两个关键点的位置坐标在深度方向上的距离,例如,对于第一面部模型为三维面部模型的情况,深度方向为z轴方向。
[0298]
第一面部模型对应的至少一个第二深度距离根据经验设置,或者根据应用场景灵活调整。此外,第一面部模型对应的第二深度距离的数量为一个或多个,本技术实施例对此不加以限定。
[0299]
根据对深度距离的介绍内容可知,任一深度距离均基于两个关键点确定,两个关键点的索引构成一个索引对,也就是说,任一深度距离的计算均需要一个关键点索引对。
[0300]
示例性地,假设第一面部模型对应的第二深度距离的数量为一个,将该一个第二深度距离记为将第一面部模型对应的第一深度距离记为则第一面部模型对应的第一深度距离以及至少一个第二深度距离如图16所示。
[0301]
模板面部模型对应的第三深度距离是指模板面部模型的基准深度距离,模板面部模型对应的第三深度距离与第一面部模型对应的第一深度距离对应;模板面部模型对应的至少一个第四深度距离与第一面部模型对应的至少一个第二深度距离一一对应。模板面部模型对应的第四深度距离的数量与第一面部模型对应的第二深度距离的数量相同。基于模板面部关键点位置信息,获取模板面部模型对应的第三深度距离和模板面部模型对应的至少一个第四深度距离的实现方式参见上述介绍的基于第一面部关键点位置信息,获取第一面部模型对应的第一深度距离和第一面部模型对应的至少一个第二深度距离的实现方式,此处不再赘述。
[0302]
示例性地,基于第一深度距离、至少一个第二深度距离、第三深度距离和至少一个第四深度距离,获取深度比例损失函数的过程基于公式20实现:
[0303][0304]
其中,表示深度比例损失函数;m4表示模板面部模型对应的第四深度距离的数量(或第一面部模型对应的第二深度距离的数量);表示计算第一面部模型对应
的各个第二深度距离分别需要的关键点索引对的集合;{t4,r4}表示计算第一面部模型对应的任一第二深度距离需要的关键点索引对;表示计算模板面部模型对应的各个第四深度距离分别需要的关键点索引对的集合;{c4,d4}表示计算模板面部模型对应的任一第四深度距离需要的关键点索引对。
[0305]
{f4,k4}表示计算模板面部模型对应的第三深度距离需要的关键点索引对;{e4,g4}表示计算第一面部模型对应的第一深度距离需要的关键点索引对;表示基于关键点索引对{c4,d4}计算得到的模板面部模型对应的一个第四深度距离;表示模板面部模型对应的第三深度距离;表示第一面部模型对应的第一深度距离;表示基于关键点索引对{t4,r4}计算得到的第一面部模型对应的一个第二深度距离。
[0306]
在上述公式20中,用于求解关键点索引对{c4,d4}指示的两个关键点和之间的水平距离,基于公式21计算得到:
[0307][0308]
其中,表示关键点的位置坐标的深度分量;表示关键点的位置坐标的深度分量。需要说明的是,公式20中的置坐标的深度分量。需要说明的是,公式20中的和的计算方式参见的计算方式,此处不再赘述。
[0309]
在示例性实施例中,深度比例损失函数的设计构思为:希望第一面部模型对应的任一第二深度距离在第一面部模型对应的第一深度距离上的占比,与模板面部模型对应的与该任一第二深度距离对应的第四深度距离在模板面部模型对应第三深度距离上的占比,是大致一致的,以实现基于模板面部模型中的深度比例对重建后的面部模型中的相应的深度比例进行优化。
[0310]
d:长宽比例损失函数
[0311]
长宽比例损失函数用于基于模板面部模型中的长宽比例对重建后的面部模型中的相应的长宽比例进行优化。在一种可能实现方式中,基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息,获取长宽比例损失函数的过程为:基于第一面部关键点位置信息,获取第一面部模型对应的参考垂直距离和第一面部模型对应的至少一个参考水平距离;基于模板面部关键点位置信息,获取模板面部模型对应的参考垂直距离和模板面部模型对应的至少一个参考水平距离;基于第一面部模型对应的参考垂直距离、第一面部模型对应的至少一个参考水平距离、模板面部模型对应的参考垂直距离和模板面部模型对应的至少一个参考水平距离,获取长宽比例损失函数。
[0312]
第一面部模型对应的参考垂直距离和第一面部模型对应的至少一个参考水平距离根据经验设置,或者根据应用场景灵活调整。示例性地,第一面部模型对应的参考垂直距离是指第一面部模型中的左眼右眼角与右眼左眼角连线的中心点和下巴最低点之间的垂直距离。第一面部模型对应的至少一个参考水平距离包括第一面部模型中的左侧太阳穴中心点和右侧太阳穴中心点之间的水平距离和其他自定义水平距离中的至少一个。由于第一
面部关键点位置信息包括第一面部模型中的各个关键点的位置信息,所以基于第一面部关键点位置信息能够获取第一面部模型对应的参考垂直距离和第一面部模型对应的至少一个参考水平距离。
[0313]
示例性地,假设第一面部模型对应的至少一个参考水平距离包括第一面部模型中的左侧太阳穴中心点和右侧太阳穴中心点之间的水平距离以及其他三个自定义水平距离。将第一面部模型对应的参考垂直距离记为将第一面部模型中的左侧太阳穴中心点和右侧太阳穴中心点之间的水平距离记为将其他三个自定义水平距离分别记为和则第一面部模型对应的参考垂直距离以及至少一个参考水平距离如图17所示。
[0314]
模板面部模型对应的参考垂直距离与第一面部模型对应的参考垂直距离对应;模板面部模型对应的至少一个参考水平距离与第一面部模型对应的至少一个参考水平距离一一对应。模板面部模型对应的参考水平距离的数量与第一面部模型对应的参考水平距离的数量相同。基于模板面部关键点位置信息,获取模板面部模型对应的参考垂直距离和模板面部模型对应的至少一个参考水平距离的实现方式参见上述介绍的基于第一面部关键点位置信息,获取第一面部模型对应的参考垂直距离和第一面部模型对应的至少一个参考水平距离的实现方式,此处不再赘述。
[0315]
示例性地,基于第一面部模型对应的参考垂直距离、第一面部模型对应的至少一个参考水平距离、模板面部模型对应的参考垂直距离和模板面部模型对应的至少一个参考水平距离,获取长宽比例损失函数的过程基于公式22实现:
[0316][0317]
其中,表示长宽比例损失函数;m5表示模板面部模型对应的参考水平距离的数量(或第一面部模型对应的参考水平距离的数量);表示计算第一面部模型对应的各个参考水平距离分别需要的关键点索引对的集合;{t5,r5}表示计算第一面部模型对应的任一参考水平距离需要的关键点索引对;表示计算模板面部模型对应的各个参考水平距离分别需要的关键点索引对的集合;{c5,d5}表示计算模板面部模型对应的任一参考水平距离需要的关键点索引对。
[0318]
{f5,k5}表示计算模板面部模型对应的参考垂直距离需要的关键点索引对;{e5,g5}表示计算第一面部模型对应的参考垂直距离需要的关键点索引对;表示基于关键点索引对{c5,d5}计算得到的模板面部模型对应的一个参考水平距离;表示模板面部模型对应的参考垂直距离;表示第一面部模型对应的参考垂直距离;表示基于关键点索引对{t5,r5}计算得到的第一面部模型对应的一个参考水平距离。
[0319]
在示例性实施例中,长宽比例损失函数的设计构思为:希望第一面部模型对应的
任一参考水平距离在第一面部模型对应的参考垂直距离上的占比,与模板面部模型对应的与第一面部模型对应的任一参考水平距离对应的参考水平距离在模板面部模型对应参考垂直距离上的占比,是大致一致的,以实现基于模板面部模型中的长宽比例对重建后的面部模型中的相应的长宽比例进行优化。
[0320]
参考比例损失函数包括水平比例损失函数、垂直比例损失函数、深度比例损失函数和长宽比例损失函数中的至少一个。参考上述获取各个参考比例损失函数的方式以及至少一个参考比例损失函数的具体情况,即可得到参考比例损失函数。
[0321]
在示例性实施例中,在基于模板面部模型对第一面部模型进行重建的应用场景下,参考特征还可能包括局部特征,此种情况下,第二损失函数包括局部调整损失函数。与直接对第一面部模型进行重建的应用场景下的局部调整损失函数的获取方式不同的是,在基于模板面部模型对第一面部模型进行重建的应用场景下,局部调整损失函数是基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息获取得到的。
[0322]
本技术实施例对基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息获取局部调整损失函数的方式不加以限定。示例性地,基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息,获取第一面部模型中的脸颊和模板面部模型中的脸颊之间的脸颊差异,基于脸颊差异获取脸颊调整损失函数;基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息,获取第一面部模型中的眼睛与模板面部模型中的眼睛之间的眼睛差异,基于眼睛差异获取眼睛调整损失函数。
[0323]
需要说明的是,本技术实施例仅以参考特征包括局部特征或比例特征为例进行说明,本技术实施例并不局限于此,在实际的应用过程中,还可以根据需求灵活设定其他方面的特征作为参考特征,如,风格特征等。
[0324]
步骤2022:基于第一损失函数和第二损失函数,获取用于对第一生成参数进行更新的第一目标函数。
[0325]
在获取第一损失函数和第二损失函数后,基于第一损失函数和第二损失函数,获取用于对第一生成参数进行更新的第一目标函数。第一目标函数基于多个不同的损失函数组成,不同的损失函数代表不同的功能,在示例性实施例中,每个损失函数调整的程度由该损失函数对应的权值决定,损失函数对应的权值可以为正值,也可以为负值,本技术实施例对此不加以限定。若损失函数对应的权值为负值,则说明向反方向进行调整。
[0326]
在示例性实施例中,基于第一损失函数和第二损失函数,获取用于对第一生成参数进行更新的第一目标函数的过程为:计算第一损失函数与第一损失函数对应的权值的乘积;计算第二损失函数与第二损失函数对应的权值的乘积;将上述计算得到的乘积的和作为第一目标函数。示例性地,第二损失函数中可能包括多个子损失函数,一个子损失函数可能是指一个局部调整损失函数,也可能是指一个参考比例损失函数。在此种情况下,第二损失函数对应的权值包括各个子损失函数分别对应的权值,计算第二损失函数与第二损失函数对应的权值的乘积的过程是指计算第二损失函数中的各个子损失函数分别与对应的权值的乘积的过程。
[0327]
在示例性实施例中,在直接对第一面部模型进行重建的应用场景下,假设第一损失函数为基于公式2计算得到的第二损失函数包括脸颊调整损失函数
第一鼻子调整损失函数第一嘴巴调整损失函数第二鼻子调整损失函数下巴调整损失函数第三鼻子调整损失函数人中调整损失函数眼睛调整损失函数第四鼻子调整损失函数和第二嘴巴调整损失函数这10个局部调整损失函数。此种情况下,基于第一损失函数和第二损失函数,获取用于对第一生成参数进行更新的第一目标函数的过程基于公式23实现:
[0328][0329]
其中,l(p

,ω1)表示在直接对第一面部模型进行重建的应用场景下获取的第一目标函数;p

表示第一生成参数;ω1表示在直接对第一面部模型进行重建的应用场景下各个损失函数的权值的集合;ω
u
表示这11个损失函数中的第u(u为不小于1且不大于11的整数)个损失函数对应的权值;表示这11个损失函数中的第u个损失函数。
[0330]
在示例性实施例中,在基于模板面部模型对第一面部模型进行重建的应用场景下,假设第一损失函数为基于公式3计算得到的第二损失函数包括(g

1)个参考比例损失函数,其中,g为不小于1的整数。此种情况下,基于第一损失函数和第二损失函数,获取用于对第一生成参数进行更新的第一目标函数的过程基于公式24实现:
[0331][0332]
其中,l(p

,ω2,t)表示在基于模板面部模型对第一面部模型进行重建的应用场景下获取的第一目标函数;p

表示第一生成参数;ω2表示在基于模板面部模型对第一面部模型进行重建的应用场景下各个损失函数的权值的集合;t表示模板面部模型;g表示第一损失函数和参考比例损失函数的总数量;ω0表示第一损失函数和(g

1)个参考比例损失函数这g个损失函数中的第o(o为不小于1的整数)个损失函数对应的权值;表示第一损失函数和(g

1)个参考比例损失函数这g个损失函数中的第o个损失函数。
[0333]
示例性地,在基于模板面部模型对第一面部模型进行重建的过程中,设计第一目标函数的思想是,参考所提供的模板面部模型“三庭五眼”的比例对第一面部模型进行重建,使得重建后的面部模型每个部位比例向模板面部模型靠近,同时保持原始面部模型的整体特征。示例性地,参考所提供的模板面部模型“三庭五眼”的比例对第一面部模型进行重建,使得重建后的面部模型每个部位比例向模板面部模型靠近的过程如图18所示。
[0334]
无论是直接对第一面部模型进行重建的情况,还是基于模板面部模型对第一面部模型进行重建的情况,均能够基于第一面部关键点位置信息,获取用于对第一生成参数进行更新的第一目标函数,然后执行步骤203。
[0335]
在步骤203中,利用第一目标函数对第一生成参数进行更新,得到第二生成参数。
[0336]
在得到用于对第一生成参数进行更新的第一目标函数后,利用第一目标函数对第一生成参数进行更新,得到第二生成参数。第二生成参数是指利用第一目标函数对第一生
成参数更新一次之后得到的生成参数。
[0337]
在一种可能实现方式中,利用第一目标函数对第一生成参数进行更新,得到第二生成参数的实现过程为:基于第一目标函数,计算对第一生成参数进行更新的更新梯度;利用更新梯度对第一生成参数进行更新,得到第二生成参数。
[0338]
示例性地,利用更新梯度对第一生成参数进行更新,得到第二生成参数的过程基于公式25实现:
[0339][0340]
其中,p

表示第二生成参数;p

表示第一生成参数;表示基于第一目标函数l计算得到的对第一生成参数进行更新的更新梯度;f表示优化器,示例性地,f为adam(adaptive moment estimation,自适应矩估计)优化器。
[0341]
在一种可能实现方式中,在得到第二生成参数后,判断第二生成参数是否满足更新终止条件,若第二生成参数满足更新终止条件,则执行步骤204。满足更新终止条件根据经验设置,或者根据应用场景灵活调整,本技术实施例对此不加以限定,示例性地,满足更新终止条件包括以下任一种:获取第二生成参数时已进行的参数更新的次数达到次数阈值;获取第二生成参数依据的第一目标函数收敛。
[0342]
在步骤204中,响应于第二生成参数满足更新终止条件,基于第二生成参数生成第二面部模型。
[0343]
当第二生成参数满足更新终止条件时,说明无需继续对第二生成参数继续进行更新,此种情况下,基于第二生成参数生成第二面部模型,第二面部模型即为对第一面部模型进行重建后得到的面部模型。至此,完成对第一面部模型进行重建的过程。
[0344]
在一种可能实现方式中,基于第二生成参数生成第二面部模型的方式为:将第二生成参数应用于面部模型重建模型;利用具有第二生成参数的面部模型重建模型生成第二面部模型。面部模型重建模型是指用于生成面部模型的模型,根据需要生成的面部模型的类型不同,面部模型重建模型的类型可能不同,本技术实施例对面部模型重建模型的类型不加以限定,只要能够基于生成参数生成面部模型即可。示例性地,面部模型重建模型是指3dmm。对于面部模型重建模型是指3dmm的情况,第二面部模型是指三维人脸。
[0345]
示例性地,第二生成参数还可能不满足更新终止条件。若第二生成参数不满足更新终止条件,则需要继续对第二生成参数进行更新。示例性地,继续对第二生成参数进行更新的过程为:响应于第二生成参数不满足更新终止条件,基于第二生成参数,获取第二面部关键点位置信息;基于第二面部关键点位置信息,获取用于对第二生成参数进行更新的第二目标函数;利用第二目标函数对第二生成参数进行更新,得到第三生成参数;响应于第三生成参数满足更新终止条件,基于第三生成参数生成第三面部模型。该过程的实现过程参见步骤201至步骤204,此处不再赘述。
[0346]
示例性地,在直接对第一面部模型进行重建的应用场景下,获取满足终止条件的生成参数的过程基于下述算法流程实现:
[0347]
输入:待重建的第一面部模型对应的第一生成参数p’;损失函数对应的权值的集合ω1[0348]
输出:满足终止条件的生成参数p*(p*可直接应用于面部模型重建模型得到第一
面部模型对应的重建后的面部模型)
[0349]
流程:
[0350]
1、初始化生成参数p*:p*=p’。
[0351]
2、循环n(n为不小于1的整数)步:
[0352]
a)计算当前的目标函数l(p*,ω1)
[0353]
b)利用优化器f对p*进行更新,更新公式为
[0354]
其中,表示基于目标函数l(p*,ω1)计算得到的对生成参数p*进行更新的更新梯度。
[0355]
示例性地,在基于模板面部模型对第一面部模型进行重建的应用场景下,获取满足终止条件的生成参数的过程基于下述算法流程实现:
[0356]
输入:待重建的第一面部模型对应的第一生成参数p’;损失函数对应的权值的集合ω2;模板面部模型t
[0357]
输出:满足终止条件的生成参数p*(p*可直接应用于面部模型重建模型得到第一面部模型对应的重建后的面部模型)
[0358]
流程:
[0359]
1、初始化生成参数p*:p*=p’。
[0360]
2、循环n(n为不小于1的整数)步:
[0361]
a)计算当前的目标函数l(p*,ω2,t)
[0362]
b)利用优化器f对p*进行更新,更新公式为:
[0363]
其中,表示基于目标函数l(p*,ω2,t)计算得到的对生成参数p*进行更新的更新梯度。
[0364]
根据上述内容可知,获取满足终止条件的生成参数的过程为迭代过程。本技术实施例通过设计出目标函数,将面部模型重建问题转化为最优化数学问题,从而通过获取满足更新终止条件的生成参数,实现对面部模型的重建。
[0365]
示例性地,本技术实施例提供的方法能够应用于3d游戏中的人物的人脸重建场景中。利用3dmm的3d人脸重建技术,能够根据3d游戏提供的人脸照片角色塑造3d人脸,在塑造3d人脸之后,能够根据本技术实施例提供的方法对塑造的3d人脸进行重建,方便用户在游戏中塑造出长相相似的更适合实际游戏场景的人脸。例如,更加美化的人脸等。示例性地,对于基于模板人脸对塑造的人脸进行重建的情况,还能够重建出与模板人脸的审美相近的美型角色。
[0366]
本技术实施例提供了一种自动化进行面部模型的重建的方案,能够对基于3dmm模型重建的面部模型进行美化,能够通过修改生成参数实现有针对性的局部面部模型美化。相比于相关技术中基于人工进行重建,或者依赖面部模型对应的blend shape资源进行重建的方案,本技术实施例提供的方案无需人工执行,也无需获取面部模型对应的blend shape资源,能够有效减少人力资源以及获取blend shape资源的成本。此外,本技术实施例提供的面部模型的重建方案能够简单接入基于3dmm的3d人脸重建技术中,能够服务于不同游戏或应用,具有广泛的应用前景。
[0367]
在本技术实施例中,利用与第一面部模型的重建方向匹配的目标函数对生成面部模型的生成参数进行更新,然后基于更新后的生成参数获取重建后的面部模型。此种面部模型的重建过程无需依赖人工,能够自动执行,面部模型的重建过程的可靠性较好且效率较高,能够节省人力资源和时间成本,有利于提高重建后的面部模型的质量。
[0368]
参见图19,本技术实施例提供了一种面部模型的重建装置,该装置包括:
[0369]
第一获取单元1901,用于获取第一面部模型对应的第一面部关键点位置信息,第一面部模型基于第一生成参数生成;
[0370]
第二获取单元1902,用于基于第一面部关键点位置信息,获取用于对第一生成参数进行更新的第一目标函数,第一目标函数为与第一面部模型的重建方向匹配的函数;
[0371]
更新单元1903,用于利用第一目标函数对第一生成参数进行更新,得到第二生成参数;
[0372]
生成单元1904,用于响应于第二生成参数满足更新终止条件,基于第二生成参数生成第二面部模型。
[0373]
在一种可能实现方式中,第二获取单元1902,用于基于第一面部关键点位置信息,获取第一损失函数和第二损失函数,第一损失函数用于对重建后的面部模型的整体面部特征进行约束,第二损失函数用于对重建后的面部模型的参考特征进行优化,参考特征与整体面部特征不同;基于第一损失函数和第二损失函数,获取用于对第一生成参数进行更新的第一目标函数。
[0374]
在一种可能实现方式中,第二获取单元1902,还用于获取参考面部模型对应的参考面部关键点位置信息,参考面部模型用于为重建后的面部模型的整体面部特征提供约束方向;基于第一面部关键点位置信息和参考面部关键点位置信息,获取第一损失函数。
[0375]
在一种可能实现方式中,第二获取单元1902,还用于基于第一面部关键点位置信息,获取第一目标关键点位置信息,第一目标关键点位置信息包括第一面部模型中的目标关键点对应的位置信息;基于参考面部关键点位置信息,获取第二目标关键点位置信息,第二目标关键点位置信息包括参考面部模型中的目标关键点对应的位置信息,参考面部模型中的目标关键点与第一面部模型中的目标关键点相互对应;基于第一目标关键点位置信息和第二目标关键点位置信息,获取第一损失函数。
[0376]
在一种可能实现方式中,参考面部模型为第一面部模型的原始面部模型,参考特征包括局部特征,第二损失函数包括局部调整损失函数,局部调整损失函数直接基于第一面部关键点位置信息获取得到。
[0377]
在一种可能实现方式中,局部调整损失函数包括脸颊调整损失函数、第一鼻子调整损失函数、第一嘴巴调整损失函数、第二鼻子调整损失函数、下巴调整损失函数、第三鼻子调整损失函数、人中调整损失函数、眼睛调整损失函数、第四鼻子调整损失函数和第二嘴巴调整损失函数中的至少一个。
[0378]
在一种可能实现方式中,局部调整损失函数包括脸颊调整损失函数;第二获取单元1902,还用于基于第一面部关键点位置信息,获取脸颊左侧关键点位置信息和脸颊右侧关键点位置信息;基于脸颊左侧关键点位置信息和脸颊右侧关键点位置信息,获取脸颊调整损失函数。
[0379]
在一种可能实现方式中,局部调整损失函数包括第二鼻子调整损失函数;第二获
取单元1902,还用于基于第一面部关键点位置信息,获取鼻梁关键点位置信息;获取鼻梁关键点位置信息对应的鼻梁引导点位置信息;基于鼻梁关键点位置信息和鼻梁引导点位置信息,获取第二鼻子调整损失函数。
[0380]
在一种可能实现方式中,参考面部模型为模板面部模型,参考特征包括比例特征,第二损失函数包括参考比例损失函数,参考比例损失函数基于第一面部关键点位置信息和模板面部模型对应的模板面部关键点位置信息获取得到。
[0381]
在一种可能实现方式中,参考比例损失函数包括水平比例损失函数、垂直比例损失函数、深度比例损失函数和长宽比例损失函数中的至少一个。
[0382]
在一种可能实现方式中,参考比例损失函数包括水平比例损失函数;第二获取单元1902,还用于基于第一面部关键点位置信息,获取第一面部模型对应的第一水平距离和第一面部模型对应的至少一个第二水平距离;基于模板面部关键点位置信息,获取模板面部模型对应的第三水平距离和模板面部模型对应的至少一个第四水平距离;基于第一水平距离、至少一个第二水平距离、第三水平距离和至少一个第四水平距离,获取水平比例损失函数。
[0383]
在一种可能实现方式中,第一获取单元1901,还用于响应于第二生成参数不满足更新终止条件,基于第二生成参数,获取第二面部关键点位置信息;
[0384]
第二获取单元1902,还用于基于第二面部关键点位置信息,获取用于对第二生成参数进行更新的第二目标函数;
[0385]
更新单元1903,还用于利用第二目标函数对第二生成参数进行更新,得到第三生成参数;
[0386]
生成单元1904,还用于响应于第三生成参数满足更新终止条件,基于第三生成参数生成第三面部模型。
[0387]
在一种可能实现方式中,生成单元1904,用于将第二生成参数应用于面部模型重建模型;利用具有第二生成参数的面部模型重建模型生成第二面部模型。
[0388]
在本技术实施例中,利用与第一面部模型的重建方向匹配的目标函数对生成面部模型的生成参数进行更新,然后基于更新后的生成参数获取重建后的面部模型。此种面部模型的重建过程无需依赖人工,能够自动执行,面部模型的重建过程的可靠性较好且效率较高,能够节省人力资源和时间成本,有利于提高重建后的面部模型的质量。
[0389]
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0390]
在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条计算机程序。该至少一条计算机程序由一个或者一个以上处理器加载并执行,以实现上述任一种面部模型的重建方法。该计算机设备可以为终端,也可以为服务器。接下来对终端和服务器的结构分别进行介绍。
[0391]
图20是本技术实施例提供的一种终端的结构示意图。该终端可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端还可能被称为用户设备、便携式终端、膝上型终端、台
式终端等其他名称。
[0392]
通常,终端包括有:处理器2001和存储器2002。
[0393]
处理器2001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2001可以采用dsp(digital signal processing,数字信号处理)、fpga(field

programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2001可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2001还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0394]
存储器2002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2001所执行以实现本技术中方法实施例提供的面部模型的重建方法。
[0395]
在一些实施例中,终端还可选包括有:外围设备接口2003和至少一个外围设备。处理器2001、存储器2002和外围设备接口2003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2003相连。具体地,外围设备包括:射频电路2004、显示屏2005、摄像头组件2006、音频电路2007、定位组件2008和电源2009中的至少一种。
[0396]
外围设备接口2003可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器2001和存储器2002。射频电路2004用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。显示屏2005用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。摄像头组件2006用于采集图像或视频。音频电路2007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2001进行处理,或者输入至射频电路2004以实现语音通信。扬声器则用于将来自处理器2001或射频电路2004的电信号转换为声波。
[0397]
定位组件2008用于定位终端的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。电源2009用于为终端中的各个组件进行供电。电源2009可以是交流电、直流电、一次性电池或可充电电池。
[0398]
在一些实施例中,终端还包括有一个或多个传感器2010。该一个或多个传感器2010包括但不限于:加速度传感器2011、陀螺仪传感器2012、压力传感器2013、指纹传感器2014、光学传感器2015以及接近传感器2016。
[0399]
加速度传感器2011可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。陀螺仪传感器2012可以检测终端的机体方向及转动角度,陀螺仪传感器2012可以与加速度传感器2011协同采集用户对终端的3d动作。压力传感器2013可以设置在终端的侧边框和/或显示屏2005的下层。当压力传感器2013设置在终端的侧边框时,可以检测用户对终端的
握持信号,由处理器2001根据压力传感器2013采集的握持信号进行左右手识别或快捷操作。当压力传感器2013设置在显示屏2005的下层时,由处理器2001根据用户对显示屏2005的压力操作,实现对ui界面上的可操作性控件进行控制。
[0400]
指纹传感器2014用于采集用户的指纹,由处理器2001根据指纹传感器2014采集到的指纹识别用户的身份,或者,由指纹传感器2014根据采集到的指纹识别用户的身份。光学传感器2015用于采集环境光强度。接近传感器2016,也称距离传感器,通常设置在终端的前面板。接近传感器2016用于采集用户与终端的正面之间的距离。
[0401]
本领域技术人员可以理解,图20中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0402]
图21是本技术实施例提供的一种服务器的结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,cpu)2101和一个或多个存储器2102,其中,该一个或多个存储器2102中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器2101加载并执行,以实现上述各个方法实施例提供的面部模型的重建方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0403]
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由计算机设备的处理器加载并执行,以实现上述任一种面部模型的重建方法。
[0404]
在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read

only memory,cd

rom)、磁带、软盘和光数据存储设备等。
[0405]
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种面部模型的重建方法。
[0406]
需要说明的是,本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
[0407]
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0408]
以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献