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.一种可选的实施方式中,所述目标点包括面部关键点和模型顶点;
37.所述第一确定模块,具体用于基于所述多个候选人脸模型与所述目标人脸模型分别对应的多个面部关键点的位置信息和多个模型顶点的位置信息,分别计算每个所述候选人脸模型与所述目标人脸模型之间的第一累计位置误差,将所述第一累计位置误差作为所述候选人脸模型与所述目标人脸模型之间的误差信息。
38.一种可选的实施方式中,所述第一确定模块,具体用于基于各个所述基础人脸模型的骨骼参数分别对应的第一权重信息,对各个所述基础人脸模型的骨骼参数进行加权求和,得到所述初始人脸模型的初始骨骼参数;以及,基于各个所述基础人脸模型的蒙皮矩阵分别对应的第二权重信息,对各个所述基础人脸模型的蒙皮矩阵进行加权求和,得到所述初始人脸模型的初始蒙皮矩阵;
39.基于所述初始骨骼参数和所述初始蒙皮矩阵,确定所述初始人脸模型。
40.一种可选的实施方式中,所述第二确定模块,具体用于基于所述初始人脸模型和所述目标人脸模型分别对应的多个模型顶点的位置信息,确定所述初始人脸模型与所述目标人脸模型之间的第二累计位置误差;
41.若所述第二累计位置误差不满足迭代截止条件,则更新所述初始人脸模型的骨骼参数,基于更新后的骨骼参数更新所述初始人脸模型,并针对更新后的所述初始人脸模型重复上述确定所述第二累计位置误差的步骤,直到确定的第二累计位置误差满足迭代截止条件为止,将最终更新后的骨骼参数作为所述基准骨骼参数。
42.一种可选的实施方式中,所述装置还包括存储模块,用于将满足迭代截止条件时,最新更新的所述初始人脸模型存入所述基准人脸库。
43.一种可选的实施方式中,所述装置还包括生成模块,用于基于所述基准骨骼参数,和目标画面帧对应的所述目标人脸模型达到预设姿态时的目标骨骼参数,生成从所述基准骨骼参数对应的初始画面帧到所述目标画面帧之间的多个中间画面帧分别对应的多组过渡骨骼参数;
44.基于所述基准骨骼参数和所述多组过渡骨骼参数,生成所述目标人脸模型达到所述预设姿态时对应的各帧画面。
45.第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的运动画面生成方法的步骤。
46.第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的运动画面生成方法的步骤。
47.关于上述运动画面生成装置、计算机设备和存储介质的效果描述参见上述运动画面生成方法的说明,这里不再赘述。
48.本公开实施例提供的运动画面生成方法、装置、计算机设备和存储介质,通过获取
预先绘制的目标人脸模型;从基础人脸库中选择与目标人脸模型匹配的至少一个基础人脸模型,并基于至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型;基于初始人脸模型和目标人脸模型,迭代调整初始人脸模型的骨骼参数,得到使得初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;基准骨骼参数用于制作生成目标人脸模型运动时的各帧画面。
49.也即,本公开实施例基于基础人脸库,能够初步获取到与目标人脸模型较为相似的至少一个基础人脸模型;之后,根据至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,可以确定一个初始人脸模型;利用该初始人脸模型的蒙皮矩阵,迭代调整初始人脸模型的骨骼参数,能够得到初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;在之后制作目标人脸模型运动时的各帧画面的过程中,可以使用该组基准骨骼参数来生成目标人脸模型运动时对应的各帧画面,也即实现人脸模型的表情动作,从而提高各帧画面的制作效率。
50.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
51.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
52.图1示出了本公开实施例所提供的一种运动画面生成方法的流程图;
53.图2示出了本公开实施例所提供的候选人脸模型与目标人脸模型对应的面部关键点的对比示意图;
54.图3示出了本公开实施例所提供的候选人脸模型与目标人脸模型对应的模型顶点的对比示意图;
55.图4示出了本公开实施例所提供的骨骼参数反解算的流程示意图;
56.图5示出了本公开实施例所提供的候选人脸模型、预先绘制的目标人脸模型、以及基于基准骨骼参数生成的目标人脸模型的对比展示示意图;
57.图6示出了本公开实施例所提供的目标人脸模型达到预设姿态时对应的各帧画面的展示示意图;
58.图7示出了本公开实施例所提供的一种运动画面生成装置的示意图;
59.图8示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
60.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的
实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
61.另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
62.在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
63.经研究发现,动画角色中人脸模型的制作通常是具有美学和图形学的工作人员利用三维软件绘制的,若需要改变动画角色的表情,生成平滑运动的各帧表情画面,也即表情自然转化的情况,则需要若干组骨骼参数。目前,可以通过手动调整人脸模型的顶点(如骨骼之间关联的点的位置),改变利用三维软件绘制的人脸模型,但是,由于人脸模型存在较多顶点,手动调整人脸模型的顶点得到平滑运动的各帧表情画面所需要的工作量较大,成本较高。
64.基于上述研究,本公开提供了一种运动画面生成方法,基于基础人脸库,能够初步获取到与目标人脸模型较为相似的至少一个基础人脸模型;之后,根据至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,可以确定一个初始人脸模型;利用该初始人脸模型的蒙皮矩阵,迭代调整初始人脸模型的骨骼参数,能够得到初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;在之后制作目标人脸模型运动时的各帧画面的过程中,可以使用该组基准骨骼参数来生成目标人脸模型运动时对应的各帧画面,也即实现人脸模型的表情动作,从而提高各帧画面的制作效率。
65.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
66.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
67.为便于对本实施例进行理解,首先对本公开实施例所公开的一种运动画面生成方法进行详细介绍,本公开实施例所提供的运动画面生成方法的执行主体一般为具有一定计算能力的计算机设备。在一些可能的实现方式中,该运动画面生成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
68.下面以执行主体为计算机设备为例对本公开实施例提供的运动画面生成方法加以说明。
69.参见图1所示,为本公开实施例提供的一种运动画面生成方法的流程图,所述方法包括步骤s101~s103,其中:
70.s101:获取预先绘制的目标人脸模型。
71.本步骤中,目标人脸模型可以是利用三维软件绘制出的三维人脸模型,比如动画角色人物、游戏角色人物等。或者,也可以是利用三维扫描技术扫描真人获得的。
72.s102:从基础人脸库中选择与目标人脸模型匹配的至少一个基础人脸模型,并基于至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型。
73.基础人脸库中可以包含有多种人脸模型,不同人脸模型可以是基于捏脸软件,根据人物属性批量制作得到的。
74.这里,每个人脸模型分别对应有各自的骨骼参数和蒙皮矩阵,且每个人脸模型均有其固定的蒙皮矩阵。基于骨骼参数和蒙皮矩阵可以确定静态的人脸模型,若要驱动人脸模型运动,则需要多组该人脸模型的骨骼参数,也即人脸模型运动的位置是由骨骼参数和蒙皮矩阵决定的。一组骨骼参数可以由对应的人脸模型的多个骨骼的位置坐标(即3d位置坐标)组成,这里,骨骼的位置坐标可以包括能够表征骨骼特征的多个位置点(比如骨骼关节点)的坐标,此外,骨骼参数还可以包括骨骼长度等参数。蒙皮矩阵包括基于该人脸模型的多个骨骼的位置坐标进行蒙皮运算时的权重值,也即蒙皮权重,取值范围为0~1。这里,每个模型顶点可以绑定多根骨骼,蒙皮权重相当于每根骨骼对于该模型顶点位置的作用权重,也即该模型顶点的位置相当于将与其绑定的各根骨骼的对应位置点的位置进行加权求和。
75.针对从基础人脸库中选择与目标人脸模型匹配的至少一个基础人脸模型,可以参见下述多种选择(a1~a2)方式:
76.a1、以目标人脸模型为目标,可以从基础人脸库中选择与目标人脸模型的脸部特征相近的人脸模型,作为与目标人脸模型匹配的基础人脸模型。
77.其中,脸部特征可以包括脸型特征和五官特征等。
78.a1-1、可以以脸型特征为例,可以利用脸型分类器确定目标人脸模型的脸型类别;之后,可以从基础人脸库中选择与目标人脸模型的脸型类别匹配的多个基础人脸模型。这里,脸型类别例如包括方脸、三角形、椭圆形、心形和圆形等类别。
79.a1-2、还可以以五官特征为例,在绘制得到目标人脸模型后,可以利用五官分类器,确定目标人脸模型的五官类别,例如,眼睛特征可以包括圆眼、三角眼等类别;鼻子特征可以包括高鼻梁、矮鼻梁、圆鼻头、三角鼻头等类别;嘴巴特征可以包括标准唇、嘟嘟唇、小圆唇等类别。之后,可以从基础人脸库中选择与目标人脸模型的五官类别匹配的多个基础人脸模型。
80.a2、首先,可以从基础人脸库中选择与目标人脸模型的脸型类别匹配的多个候选人脸模型;之后,再基于多个候选人脸模型与目标人脸模型分别对应的目标点位置信息,计算每个候选人脸模型与目标人脸模型之间的误差信息;从多个候选人脸模型中选择出对应的误差信息满足预设条件的至少一个基础人脸模型。
81.这里,按照脸型类别选择出候选人脸模型的过程可以参见上述a1-1中按照脸型类别选择人脸模型的过程。
82.示例性的,利用脸型分类器,确定基础人脸库中的人脸模型的脸型类别,之后,与目标人脸模型的脸型类别进行对比,确定与目标人脸模型的脸型类别匹配的人脸模型,即为候选人脸模型。
83.目标点可以包括面部关键点和/或模型顶点。
84.利用深度神经网络可以对面部五官进行关键点定位,例如,利用人脸特征点检测facial landmark算法对面部五官进行关键点定位,确定面部关键点对应的位置坐标。面部
关键点对应的位置坐标为二维坐标。
85.面部关键点可以包括眼睛关键点,例如瞳孔、左眼角、右眼角等关键点;鼻子关键点,例如鼻尖、鼻翼、鼻根等关键点;嘴巴关键点,例如,口角、上唇中心、下唇中心等关键点。
86.在确定了人脸模型的情况下,即可获得该人脸模型在三维空间中的3d位置坐标。模型顶点可以包括头部中与各骨骼相互绑定的点,例如,骨骼之间的连接点等;和/或,自定义的头部3d坐标点,例如,头部表面自定义的位置点。
87.a2-1、若目标点仅包括面部关键点,则基于多个候选人脸模型与目标人脸模型分别对应的多个面部关键点的位置信息,计算每个候选人脸模型与目标人脸模型之间的误差信息;从多个候选人脸模型中选择出对应的误差信息满足预设条件的至少一个基础人脸模型。
88.面部关键点的位置信息可以包括面部关键点的二维位置坐标。
89.具体实施时,以一个候选人脸模型为例,分别计算候选人脸模型与目标人脸模型对应的各个面部关键点对应的二维位置坐标之间的距离误差,并累计各个面部关键点对应的二维位置坐标之间的距离误差,得到第一距离误差之和l1,将第一距离误差之和l1作为候选人脸模型与目标人脸模型之间的误差信息;若第一距离误差之和l1小于或等于第一预设误差阈值,则可以将该候选人脸模型作为基础人脸模型。
90.第一距离误差之和l1的计算公式:其中,i表示第i个面部关键点,i1表示候选人脸模型中的第i个面部关键点的位置坐标,i2表示目标人脸模型中的第i个面部关键点的位置坐标,n表示面部关键点的个数,||表示取绝对值。
91.示例性的,参见图2所示,其为候选人脸模型与目标人脸模型对应的面部关键点的对比示意图。其中,图a表示候选人脸模型的示意图,图b表示目标人脸模型的示意图。第一距离误差之和=|a1-a2| |b1-b2| |c1-c2| |d1-d2| |e1-e2|。
92.a2-2、若目标点仅包括模型顶点,则基于多个候选人脸模型与目标人脸模型分别对应的模型顶点的位置信息,计算每个候选人脸模型与目标人脸模型之间的误差信息;从多个候选人脸模型中选择出对应的误差信息满足预设条件的至少一个基础人脸模型。
93.模型顶点的位置信息可也包括模型顶点的三维位置坐标。
94.具体实施时,以一个候选人脸模型为例,分别计算候选人脸模型与目标人脸模型对应的各个模型顶点对应的三维位置坐标之间的距离误差,并累计各个模型顶点对应的三维位置坐标之间的距离误差,得到第二距离误差之和l2,将第二距离误差之和l2作为候选人脸模型与目标人脸模型之间的误差信息;若第二距离误差之和l2小于或等于第二预设误差阈值,则可以将该候选人脸模型作为基础人脸模型。
95.第二距离误差之和l2的计算公式:其中,j表示第j个模型顶点,j1表示候选人脸模型中的第j个模型顶点的三维位置坐标,j2表示目标人脸模型中的第j个模型顶点的三维位置坐标,m表示模型顶点的个数,||表示取绝对值。
96.示例性的,参见图3所示,其为候选人脸模型与目标人脸模型对应的模型顶点的对比示意图。其中,图c表示候选人脸模型的示意图,图d表示目标人脸模型的示意图。图中黑点表示模型顶点,实际应用场景中,人脸模型中的模型顶点有几百~几万不等,图中仅示出了人脸模型正面的几种模型顶点,还有大部分模型顶点并未示出。
97.a2-3、若目标点包括面部关键点和模型顶点,则基于多个候选人脸模型与目标人脸模型分别对应的多个面部关键点的位置信息和多个模型顶点的位置信息,分别计算每个候选人脸模型与目标人脸模型之间的第一累计位置误差,将第一累计位置误差作为候选人脸模型与目标人脸模型之间的误差信息。
98.第一累计位置误差包括上述的第一距离误差之和l1,和第二距离误差之和l2。
99.在第一距离误差之和l1,和第二距离误差之和l2分别满足预设条件的情况下,也即,在第一距离误差之和l1小于或等于第一预设误差阈值,以及,第二距离误差之和l2小于或等于第二预设误差阈值的情况下,可以将对应满足预设条件的候选人脸模型作为基准人脸模型。
100.a2-3中计算第一累计位置误差(包含第一距离误差之和l1第二距离误差之和l2)的方式可以参见上述a2-1和a2-2,重复部分在此不再赘述。
101.针对s102中的基于至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型。在一些实施例中,若基于一个基础人脸模型对应的骨骼参数和蒙皮矩阵,确定的初始人脸模型即为该基础人脸模型。
102.在另一些实施例中,若上述至少一个基础人脸模型为多个,则基于多个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型,包括如下步骤:
103.步骤一、基于各个基础人脸模型的骨骼参数分别对应的第一权重信息,对各个基础人脸模型的骨骼参数进行加权求和,得到初始人脸模型的初始骨骼参数;以及,基于各个基础人脸模型的蒙皮矩阵分别对应的第二权重信息,对各个基础人脸模型的蒙皮矩阵进行加权求和,得到初始人脸模型的初始蒙皮矩阵。
104.初始人脸模型的初始骨骼参数w
′
的计算公式可以为:其中,wk表示第k个基础人脸模型的骨骼参数,k∈[1,r];r表示基础人脸模型的个数;θ表示第一权重信息指示的权重值,取值范围为0~1,可以根据经验自定义权重值,本公开实施例不进行具体限定;θk表示第k个基础人脸模型的骨骼参数的权重值。
[0105]
示例性的,可以直接对多个基础人脸模型的骨骼参数进行加权平均求和,确定初始人脸模型的初始骨骼参数,也即,
[0106]
初始人脸模型的初始骨骼参数g
′
的计算公式可以为:其中,gk表示第k个基础人脸模型的蒙皮矩阵,γ表示第二权重信息指示的权重值,取值范围为0~1,可以根据经验自定义权重值,本公开实施例不进行具体限定;γk表示第k个基础人脸模型的蒙皮矩阵的权重值。
[0107]
示例性的,可以直接对多个基础人脸模型的蒙皮矩阵进行加权平均求和,确定初始人脸模型的初始蒙皮矩阵,也即,
[0108]
步骤二、基于初始骨骼参数和初始蒙皮矩阵,确定初始人脸模型。
[0109]
利用蒙皮矩阵中每个骨骼对应的权重值,对对应骨骼的初始骨骼参数进行加权处理,确定初始人脸模型。
[0110]
s103:基于初始人脸模型和目标人脸模型,迭代调整初始人脸模型的骨骼参数,得到使得初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;基准骨骼参数用
于制作生成目标人脸模型运动时的各帧画面。
[0111]
本公开实施例在得到基准骨骼参数之后,基于该基准骨骼参数可以制作生成多种形式的运动画面,比如目标人脸模型的运动视频、运动动画、体现连续动作的多帧图片等。
[0112]
可以将初始人脸模型和目标人脸模型输入到骨骼参数反解算模型,该骨骼参数反解算模型基于梯度下降方法反解算骨骼参数,并迭代调整初始人脸模型的骨骼参数,直到得到适合目标人脸模型的基准骨骼参数,也即基于模型输出的骨骼参数确定的新的人脸模型与目标人脸模型之间的误差最小,将本次输出的骨骼参数作为基准骨骼参数。
[0113]
这里,骨骼参数反解算模型可以为基于优化器adam的算法模型。
[0114]
具体实施时,基于初始人脸模型述目标人脸模型分别对应的多个模型顶点的位置信息,确定初始人脸模型与目标人脸模型之间的第二累计位置误差;若第二累计位置误差不满足迭代截止条件,则更新初始人脸模型的骨骼参数,基于更新后的骨骼参数更新初始人脸模型,并针对更新后的初始人脸模型重复上述确定第二累计位置误差的步骤,直到确定的第二累计位置误差满足迭代截止条件为止,将最终更新后的骨骼参数作为基准骨骼参数。
[0115]
第二累计位置误差l3的计算公式:其中,s表示第s个模型顶点,s1表示初始人脸模型中的第s个模型顶点的三维位置坐标,s2表示目标人脸模型中的第s个模型顶点的三维位置坐标,q表示模型顶点的个数,||表示取绝对值。
[0116]
若第二累计位置误差l3大于第三预设误差阈值的情况下,则确定第二累计位置误差不满足迭代截止条件,此时可以更新初始人脸模型的骨骼参数为基于梯度下降方法反解算出的骨骼参数,基于反解算出的骨骼参数和初始蒙皮矩阵确定更新后的初始人脸模型。针对更新后的初始人脸模型,按照第二累计位置误差l3的计算公式,计算更新后的初始人脸模型与目标人脸模型之间的累计位置误差,进一步判断是否满足迭代截止条件,如此迭代,直到更新的初始人脸模型与目标人脸模型之间的累计位置误差满足迭代截止条件为止,也即累计位置误差小于或等于第三预设误差阈值。将满足迭代截止条件对应的更新后的骨骼参数作为基准骨骼参数。
[0117]
参见图4所示,其为骨骼参数反解算的流程示意图。
[0118]
为了丰富基础人脸库中的人脸模型,在满足迭代截止条件时,还可以将最新更新的初始人脸模型存入基础人脸库。
[0119]
这里,迭代截止条件可以参见上述的判断第二累计位置误差是否小于或等于第三预设误差阈值,针对第三预计误差阈值的具体数据可以基于经验设定,本公开实施例不进行具体限定。
[0120]
参见图5所示,其为候选人脸模型、预先绘制的目标人脸模型、以及基于基准骨骼参数生成的目标人脸模型的对比展示示意图。其中,图e表示候选人脸模型,图f表示预先绘制的目标人脸模型,图g表示基准骨骼参数生成的目标人脸模型。这里,图g示出的目标人脸模型可以是利用初始蒙皮矩阵中每个骨骼对应的权重值,对对应骨骼的基准骨骼参数进行加权处理,确定出的人脸模型。
[0121]
承接s103,在一些实施例中,在确定目标人脸模型的基准骨骼参数之后,还可以基于基准骨骼参数,和目标画面帧对应的目标人脸模型达到预设姿态时的目标骨骼参数,生
成从基准骨骼参数对应的初始画面帧到目标画面帧之间的多个中间画面帧分别对应的多组过渡骨骼参数;之后,基于基准骨骼参数和多组过渡骨骼参数,生成目标人脸模型达到预设姿态时对应的各帧画面。
[0122]
这里,目标画面帧可以是预先设置的目标人脸模型达到预设姿态时,目标骨骼参数对应的画面帧。预设姿态可以包括预先设置的期望目标人脸模型达到的表情(例如微笑、惊讶、恐惧等)、动作(例如眨眼、说话、点头等)。目标骨骼参数例如可以是用户利用捏脸软件调整目标人脸模型为预设姿态时的目标人脸模型的骨骼参数。
[0123]
具体实施时,可以在基准骨骼参数和目标骨骼参数之间自动插入多组过渡骨骼参数,基于多组过渡骨骼参。也即,可以利用初始蒙皮矩阵中每个骨骼对应的权重值,对对应骨骼的过渡骨骼参数进行加权处理,确定中间画面帧中的目标人脸模型。
[0124]
初始画面帧中的目标人脸模型可以是由基准骨骼参数和初始蒙皮矩阵确定的。目标画面帧对应的目标人脸模型可以是由目标骨骼参数和初始蒙皮矩阵确定的。
[0125]
参见图6所示,其为目标人脸模型达到预设姿态时对应的各帧画面的展示示意图。由初始画面帧61、中间画面帧62和目标画面帧63组成目标人脸模型达到预设姿态时的各帧画面,例如可以包括目标人脸模型对应的3d角色生成的表情动画,或者,目标人脸模型对应的3d角色生成的游戏视频。
[0126]
上述s101~s103基于基础人脸库,能够初步获取到与目标人脸模型较为相似的至少一个基础人脸模型;之后,根据至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,可以确定一个初始人脸模型;利用该初始人脸模型的蒙皮矩阵,迭代调整初始人脸模型的骨骼参数,能够得到初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;在之后制作目标人脸模型运动时的各帧画面的过程中,可以使用该组基准骨骼参数来生成目标人脸模型运动时的各帧画面,也即实现人脸模型的表情动作,从而提高各帧画面的制作效率。
[0127]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0128]
基于同一发明构思,本公开实施例中还提供了与运动画面生成方法对应的运动画面生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述运动画面生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0129]
参照图7所示,为本公开实施例提供的一种运动画面生成装置的示意图,所述装置包括:获取模块701、第一确定模块702和第二确定模块703;其中,
[0130]
获取模块701,用于获取预先绘制的目标人脸模型;
[0131]
第一确定模块702,用于从基础人脸库中选择与所述目标人脸模型匹配的至少一个基础人脸模型,并基于所述至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型;
[0132]
第二确定模块703,用于基于所述初始人脸模型和所述目标人脸模型,迭代调整所述初始人脸模型的骨骼参数,得到使得所述初始人脸模型与所述目标人脸模型之间的误差最小时的基准骨骼参数;
[0133]
所述基准骨骼参数用于制作生成所述目标人脸模型运动时的各帧画面。
[0134]
一种可选的实施方式中,所述第一确定模块702,具体用于从所述基础人脸库中选择与所述目标人脸模型的脸型类别匹配的多个候选人脸模型;
[0135]
基于所述多个候选人脸模型与所述目标人脸模型分别对应的目标点位置信息,计算每个所述候选人脸模型与所述目标人脸模型之间的误差信息;
[0136]
从所述多个候选人脸模型中选择出对应的所述误差信息满足预设条件的所述至少一个基础人脸模型。
[0137]
一种可选的实施方式中,所述目标点包括面部关键点和模型顶点;
[0138]
所述第一确定模块702,具体用于基于所述多个候选人脸模型与所述目标人脸模型分别对应的多个面部关键点的位置信息和多个模型顶点的位置信息,分别计算每个所述候选人脸模型与所述目标人脸模型之间的第一累计位置误差,将所述第一累计位置误差作为所述候选人脸模型与所述目标人脸模型之间的误差信息。
[0139]
一种可选的实施方式中,所述第一确定模块702,具体用于基于各个所述基础人脸模型的骨骼参数分别对应的第一权重信息,对各个所述基础人脸模型的骨骼参数进行加权求和,得到所述初始人脸模型的初始骨骼参数;以及,基于各个所述基础人脸模型的蒙皮矩阵分别对应的第二权重信息,对各个所述基础人脸模型的蒙皮矩阵进行加权求和,得到所述初始人脸模型的初始蒙皮矩阵;
[0140]
基于所述初始骨骼参数和所述初始蒙皮矩阵,确定所述初始人脸模型。
[0141]
一种可选的实施方式中,所述第二确定模块703,具体用于基于所述初始人脸模型和所述目标人脸模型分别对应的多个模型顶点的位置信息,确定所述初始人脸模型与所述目标人脸模型之间的第二累计位置误差;
[0142]
若所述第二累计位置误差不满足迭代截止条件,则更新所述初始人脸模型的骨骼参数,基于更新后的骨骼参数更新所述初始人脸模型,并针对更新后的所述初始人脸模型重复上述确定所述第二累计位置误差的步骤,直到确定的第二累计位置误差满足迭代截止条件为止,将最终更新后的骨骼参数作为所述基准骨骼参数。
[0143]
一种可选的实施方式中,所述装置还包括存储模块704,用于将满足迭代截止条件时,最新更新的所述初始人脸模型存入所述基准人脸库。
[0144]
一种可选的实施方式中,所述装置还包括生成模块705,用于基于所述基准骨骼参数,和目标画面帧对应的所述目标人脸模型达到预设姿态时的目标骨骼参数,生成从所述基准骨骼参数对应的初始画面帧到所述目标画面帧之间的多个中间画面帧分别对应的多组过渡骨骼参数;
[0145]
基于所述基准骨骼参数和所述多组过渡骨骼参数,生成所述目标人脸模型达到所述预设姿态时对应的各帧画面。
[0146]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0147]
基于同一技术构思,本技术实施例还提供了一种计算机设备。参照图8所示,为本技术实施例提供的计算机设备的结构示意图,包括:
[0148]
处理器81、存储器82和总线83。其中,存储器82存储有处理器81可执行的机器可读指令,处理器81用于执行存储器82中存储的机器可读指令,所述机器可读指令被处理器81执行时,处理器81执行下述步骤:s101:获取预先绘制的目标人脸模型;s102:从基础人脸库
中选择与目标人脸模型匹配的至少一个基础人脸模型,并基于至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型;s103:基于初始人脸模型和目标人脸模型,迭代调整初始人脸模型的骨骼参数,得到使得初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;基准骨骼参数用于制作生成目标人脸模型运动时的各帧画面。
[0149]
上述存储器82包括内存821和外部存储器822;这里的内存821也称内存储器,用于暂时存放处理器81中的运算数据,以及与硬盘等外部存储器822交换的数据,处理器81通过内存821与外部存储器822进行数据交换,当计算机设备运行时,处理器81与存储器82之间通过总线83通信,使得处理器81在执行上述方法实施例中所提及的执行指令。
[0150]
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的运动画面生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
[0151]
本公开实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现上述的运动画面生成方法的步骤。其中,计算机程序产品可以是任何能实现上述运动画面生成方法的产品,该计算机程序产品中对现有技术做出贡献的部分或全部方案可以以软件产品(例如软件开发包(software development kit,sdk))的形式体现,该软件产品可以被存储在一个存储介质中,通过包含的计算机指令使得相关设备或处理器执行上述运动画面生成方法的部分或全部步骤。
[0152]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0153]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0154]
另外,在本公开各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0155]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0156]
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开
的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种运动画面生成方法,其特征在于,包括:获取预先绘制的目标人脸模型;从基础人脸库中选择与所述目标人脸模型匹配的至少一个基础人脸模型,并基于所述至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型;基于所述初始人脸模型和所述目标人脸模型,迭代调整所述初始人脸模型的骨骼参数,得到使得所述初始人脸模型与所述目标人脸模型之间的误差最小时的基准骨骼参数;所述基准骨骼参数用于制作生成所述目标人脸模型运动时的各帧画面。2.根据权利要求1所述的方法,其特征在于,所述从基础人脸库中选择与所述目标人脸模型匹配的至少一个基础人脸模型,包括:从所述基础人脸库中选择与所述目标人脸模型的脸型类别匹配的多个候选人脸模型;基于所述多个候选人脸模型与所述目标人脸模型分别对应的目标点位置信息,计算每个所述候选人脸模型与所述目标人脸模型之间的误差信息;从所述多个候选人脸模型中选择出对应的所述误差信息满足预设条件的所述至少一个基础人脸模型。3.根据权利要求2所述的方法,其特征在于,所述目标点包括面部关键点和模型顶点;所述基于所述多个候选人脸模型与所述目标人脸模型分别对应的目标点位置信息,计算每个所述候选人脸模型与所述目标人脸模型之间的误差信息,包括:基于所述多个候选人脸模型与所述目标人脸模型分别对应的多个面部关键点的位置信息和多个模型顶点的位置信息,分别计算每个所述候选人脸模型与所述目标人脸模型之间的第一累计位置误差,将所述第一累计位置误差作为所述候选人脸模型与所述目标人脸模型之间的误差信息。4.根据权利要求1所述的方法,其特征在于,所述至少一个基础人脸模型为多个,基于多个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型,包括:基于各个所述基础人脸模型的骨骼参数分别对应的第一权重信息,对各个所述基础人脸模型的骨骼参数进行加权求和,得到所述初始人脸模型的初始骨骼参数;以及,基于各个所述基础人脸模型的蒙皮矩阵分别对应的第二权重信息,对各个所述基础人脸模型的蒙皮矩阵进行加权求和,得到所述初始人脸模型的初始蒙皮矩阵;基于所述初始骨骼参数和所述初始蒙皮矩阵,确定所述初始人脸模型。5.根据权利要求1所述的方法,其特征在于,所述基于所述初始人脸模型和所述目标人脸模型,迭代调整所述初始人脸模型的骨骼参数,得到使得所述初始人脸模型与所述目标人脸模型之间的误差最小时的基准骨骼参数,包括:基于所述初始人脸模型和所述目标人脸模型分别对应的多个模型顶点的位置信息,确定所述初始人脸模型与所述目标人脸模型之间的第二累计位置误差;若所述第二累计位置误差不满足迭代截止条件,则更新所述初始人脸模型的骨骼参数,基于更新后的骨骼参数更新所述初始人脸模型,并针对更新后的所述初始人脸模型重复上述确定所述第二累计位置误差的步骤,直到确定的第二累计位置误差满足迭代截止条件为止,将最终更新后的骨骼参数作为所述基准骨骼参数。6.根据权利要求5所述的方法,其特征在于,还包括:将满足迭代截止条件时,最新更新的所述初始人脸模型存入所述基准人脸库。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于所述基准骨骼参数,和目标画面帧对应的所述目标人脸模型达到预设姿态时的目标骨骼参数,生成从所述基准骨骼参数对应的初始画面帧到所述目标画面帧之间的多个中间画面帧分别对应的多组过渡骨骼参数;基于所述基准骨骼参数和所述多组过渡骨骼参数,生成所述目标人脸模型达到所述预设姿态时对应的各帧画面。8.一种运动画面生成装置,其特征在于,包括:获取模块,用于获取预先绘制的目标人脸模型;第一确定模块,用于从基础人脸库中选择与所述目标人脸模型匹配的至少一个基础人脸模型,并基于所述至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型;第二确定模块,用于基于所述初始人脸模型和所述目标人脸模型,迭代调整所述初始人脸模型的骨骼参数,得到使得所述初始人脸模型与所述目标人脸模型之间的误差最小时的基准骨骼参数;所述基准骨骼参数用于制作生成所述目标人脸模型运动时的各帧画面。9.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一项所述的运动画面生成方法的步骤。10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一项所述的运动画面生成方法的步骤。
技术总结
本公开提供了一种运动画面生成方法、装置、计算机设备和存储介质,其中,该方法包括:获取预先绘制的目标人脸模型;从基础人脸库中选择与目标人脸模型匹配的至少一个基础人脸模型,并基于至少一个基础人脸模型分别对应的骨骼参数和蒙皮矩阵,确定初始人脸模型;基于初始人脸模型和目标人脸模型,迭代调整初始人脸模型的骨骼参数,得到使得初始人脸模型与目标人脸模型之间的误差最小时的基准骨骼参数;基准骨骼参数用于制作生成目标人脸模型运动时的各帧画面。时的各帧画面。时的各帧画面。
技术研发人员:徐国智 唐迪 蒋昊 温翔 周佳庆
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:2022.02.17
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-10498.html