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

虚拟角色的动画生成方法及装置、存储介质、终端与流程

2022-03-23 03:52:13 来源:中国专利 TAG:


1.本发明涉及视频动画技术领域,尤其涉及一种虚拟角色的动画生成方法及装置、存储介质、终端。


背景技术:

2.伴随着虚拟现实和增强现实技术的发展,涌现了一批具有代表性的虚拟角色,虚拟直播技术应运而生。虚拟直播技术是指由虚拟角色替代真人主播进行视频制作的技术。现有技术中,通常需要借助特定的环境(例如,动作捕捉实验室)以及特定的装备(例如,表情捕捉设备、动作捕捉设备等)捕捉真人主播的动作和表情等数据,然后再驱动虚拟角色,以得到包含虚拟角色的视频。这样方案对于场地、成本和设备等具有较高的要求,通常需要花费大量的成本,通用性较差。
3.因此,亟需一种通用性更好、成本更低、用户体验更优的虚拟角色的动画生成方法。


技术实现要素:

4.本发明解决的技术问题是提供一种通用性更好、成本更低、用户体验更优的虚拟角色的动画生成方法。
5.为解决上述技术问题,本发明实施例提供一种虚拟角色的动画生成方法,所述方法包括:获取当前帧图像,所述当前帧图像包括用户的影像;根据所述当前帧图像,确定当前帧用户对应的状态信息,所述状态信息包括:人脸信息、人体姿态信息和眼神方向信息,所述人脸信息包括脸部姿态信息和脸部表情信息;根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据,其中,所述动画数据和所述当前帧图像的时间码相同,所述动画数据包括:面部动画数据、身体动画数据和眼球动画数据。
6.可选的,所述方法还包括:至少根据所述动画数据,确定所述虚拟角色对应的视频流数据;将所述视频流数据发送至直播服务器,以使所述直播服务器将所述视频流数据转发至其他用户终端。
7.可选的,至少根据所述动画数据,确定所述虚拟角色对应的视频流数据包括:获取用户输入的语音信息;对所述语音信息和画面信息进行同步处理,以得到虚拟角色对应的视频流数据,其中,画面信息是根据所述动画数据对所述虚拟角色进行渲染得到的。
8.可选的,所述人体姿态信息包括:躯干颈部动作信息,所述躯干颈部动作信息用于描述用户躯干和颈部的动作,所述躯干颈部动作信息是根据所述脸部姿态信息确定的。
9.可选的,身体动画数据包括躯干颈部动画数据和四肢动画数据,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:根据所述躯干颈部动作信息进行重定向处理,以得到所述躯干颈部动画数据;获取用户选择的四肢动画数据;判断所述躯干颈部动画数据对应的动作和所述四肢动画数据对应的动作是否匹配,如果否,则调整所述躯干颈部动画数据,以使调整后的躯干颈部动画数据与所述四肢动画数据对应的动作匹
配;将所述四肢动画数据与匹配的躯干颈部动画数据进行融合处理,以得到身体动画数据。
10.可选的,根据所述当前帧图像,确定当前帧用户对应的状态信息包括:获取用户输入的四肢动作信息,所述四肢动作信息用于描述用户四肢的动作;对所述躯干颈部动作信息和所述四肢动作信息进行融合处理,以得到当前帧的人体姿态信息。
11.可选的,对所述躯干颈部动作信息和所述四肢动作信息进行融合处理之前,所述方法还包括:判断所述躯干颈部动作信息描述的躯干和颈部的动作是否满足动作条件,如果否,则调整所述躯干颈部动作信息,以使调整后的躯干颈部动作信息描述的躯干和颈部的动作满足所述动作条件;其中,所述动作条件是根据所述四肢动作信息确定的。
12.可选的,根据所述当前帧图像,确定当前帧用户对应的状态信息包括:根据所述当前帧图像,确定当前帧用户对应的脸部姿态信息;将当前帧用户对应的脸部姿态信息输入至人体姿态匹配模型,以得到当前帧用户对应的躯干颈部动作信息;其中,所述人体姿态匹配模型是根据第一训练数据对第一预设模型进行训练得到的,所述第一训练数据包括多对第一样本信息,每对第一样本信息包括:样本用户对应的脸部姿态信息和所述样本用户对应的躯干颈部动作信息。
13.可选的,将所述脸部姿态信息输入至人体姿态匹配模型包括:获取关联姿态信息,所述关联姿态信息包括:关联图像中用户对应的脸部姿态信息和/或躯干颈部动作信息,其中,所述关联图像为所述当前帧图像之前的连续多帧图像和/或所述当前帧图像之后的连续多帧图像;将当前帧用户对应的脸部姿态信息和所述关联姿态信息输入至所述人体姿态匹配模型,以得到当前帧用户对应的躯干颈部动作信息。
14.可选的,根据所述当前帧图像,确定用户对应的状态信息包括:步骤a:根据当前帧用户对应的初始人脸信息,生成三维人脸模型;步骤b:根据所述三维人脸模型,确定预估人脸特征信息,并计算所述预估人脸特征信息和当前帧的目标人脸特征信息之间的第一差异,其中,所述目标人脸特征信息是根据所述当前帧图像检测得到的;步骤c:判断是否满足第一预设条件,如果是,则执行步骤d,否则执行步骤e;步骤d:将所述初始人脸信息作为当前帧用户对应的人脸信息;步骤e:更新所述初始人脸信息,将更新后的初始人脸信息作为当前帧用户对应的初始人脸信息,并返回至步骤a,直至满足所述第一预设条件;其中,首次执行步骤a时,当前帧用户对应的初始人脸信息为上一帧用户对应的人脸信息,或者为预设的人脸信息,所述第一预设条件包括:所述第一差异不大于第一预设阈值和/或更新所述初始人脸信息的次数达到第二预设阈值。
15.可选的,所述眼神方向信息包括三维瞳孔中心位置,根据所述当前帧图像,确定当前帧用户对应的状态信息包括:步骤一:根据当前帧用户对应的眼部信息和预估瞳孔中心位置,确定三维眼球模型,其中,所述眼部信息包括:眼球中心位置、眼球半径和虹膜尺寸;步骤二:根据所述三维眼球模型,计算预估眼部特征信息,并计算所述预估眼部特征信息和目标眼部特征信息之间的第二差异,其中,所述目标眼部特征信息是根据所述当前帧图像检测得到的;步骤三:判断是否满足第二预设条件,如果是,则执行步骤四,否则,执行步骤五;步骤四:将所述预估瞳孔中心位置作为当前帧用户对应的三维瞳孔中心位置;步骤五:更新所述预估瞳孔中心位置,将更新后的预估瞳孔中心位置作为当前帧用户对应的预估瞳孔中心位置,并返回步骤一,直至满足所述第二预设条件;其中,首次执行步骤一时,当前帧用户对应的预估瞳孔中心位置是上一帧用户对应的三维瞳孔中心位置或者是预设位置,所
述第二预设条件包括:所述第二差异不大于第三预设阈值和/或所述更新所述预估瞳孔中心位置的次数达到第四预设阈值。
16.可选的,所述人体姿态信息包括第一骨骼模型的关节角数据,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:生成过渡骨骼模型,所述过渡骨骼模型中多个预设关键关节的位置和所述第一骨骼模型中所述多个预设关键关节的位置相同,所述过渡骨骼模型的骨骼形态和第二骨骼模型的骨骼形态相同;根据所述第一骨骼模型的关节角数据和所述第一骨骼模型,确定所述多个预设关键关节的位置;根据所述多个预设关键关节的位置和所述过渡骨骼模型,确定所述过渡骨骼模型的关节角数据,以得到所述虚拟角色的身体动画数据;其中,所述第一骨骼模型为与用户对应的骨骼模型,所述第二骨骼模型为所述虚拟角色的骨骼模型,所述骨骼形态包括骨骼的数量和每个关节的旋转轴的默认朝向。
17.可选的,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:将所述脸部表情信息输入至表情映射模型,其中,所述表情映射模型是根据第二训练数据对第二预设模型训练得到的,所述第二训练数据包括多组第二样本信息,每组样本信息包括:多个样本用户在预设表情下的脸部表情信息和所述虚拟角色在该预设表情下的面部动画数据,其中,所述多组第二样本信息对应不同的预设表情;获取所述表情映射模型输出的面部动画数据。
18.可选的,所述面部动画数据包括嘴部动画数据,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:从所述脸部表情信息中提取与嘴部相关的表情信息,记为嘴部表情信息;将所述嘴部表情信息输入至第一嘴型映射模型,其中,所述第一嘴型映射模型是根据第三训练数据对第三预设模型训练得到的,所述第三训练数据包括多组第三样本信息,每组第三样本信息包括:多个样本用户在预设表情下的嘴部表情信息以及所述虚拟角色在所述预设表情下的嘴部动画数据,其中,所述多组第三样本信息对应不同的预设表情;获取所述第一嘴型映射模型输出的嘴部动画数据。
19.可选的,所述面部动画数据包括嘴部动画数据,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:根据当前帧用户对应的三维人脸模型,提取与嘴部相关的三维特征点,记为嘴部三维特征信息;将所述嘴部三维特征信息输入至第二嘴型映射模型,其中,所述第二嘴型映射模型是根据第四训练数据对第四预设模型训练得到的,所述第四训练数据包括多组第四样本信息,每组第四样本信息包括:多个样本用户在预设表情下的嘴部三维特征信息和所述虚拟角色在所述预设表情下的嘴部动画数据,其中,所述多组第四样本信息对应不同的预设表情;获取所述第二嘴型映射模型输出的嘴部动画数据。
20.可选的,所述动画数据还包括牙齿动画数据,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据还包括:根据所述嘴部动画数据,确定所述牙齿动画数据。
21.可选的,所述眼神方向信息为所述三维瞳孔中心位置在以所述眼球中心位置为坐标原点的球坐标系中的天顶角和方位角,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:根据所述虚拟角色的眼球半径和所述眼神方向信息,确定虚拟瞳孔位置,以得到所述眼球动画数据,其中,所述虚拟瞳孔位置为所述虚拟角色的三维瞳孔中心位置。
22.可选的,根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据包括:将当前帧用户对应的三维瞳孔中心位置输入至眼神映射模型,其中,所述眼神映射模型是根据第五训练数据对第五预设模型进行训练得到的,所述第五训练数据包括多对第五样本信息,每对第五样本信息包括用户在预设眼神方向下的三维瞳孔中心位置和所述虚拟角色在该预设眼神方向下的三维瞳孔中心位置;从所述眼神映射模型获取虚拟瞳孔中心位置,以得到所述眼球动画数据,其中,所述虚拟瞳孔位置为所述虚拟角色的三维瞳孔中心位置。
23.可选的,所述当前帧图像是由单个摄像头采集的。
24.本发明实施例还提供一种虚拟角色的动画生成装置,所述装置包括:图像获取模块,用于获取当前帧图像,所述当前帧图像包括用户的影像;计算模块,用于根据所述当前帧图像,确定当前帧用户对应的状态信息,所述状态信息包括:人脸信息、人体姿态信息和眼神方向信息,所述人脸信息包括脸部姿态信息和脸部表情信息;重定向模块,用于根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据,其中,所述动画数据和所述当前帧图像的时间码相同,所述动画数据包括:面部动画数据、身体动画数据和眼球动画数据。
25.本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟角色的动画生成方法的步骤。
26.本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟角色的动画生成方法的步骤。
27.与现有技术相比,本发明实施例的技术方案具有以下有益效果:
28.在本发明实施例的方案中,获取当前帧图像,并根据当前帧图像确定当前帧用户对应的状态信息,由于状态信息包括人脸信息、人体姿态信息和眼神方向信息,因此,根据状态信息得到的虚拟角色的动画数据可以具有与用户对应的状态信息相同的语义。采用这样的方案,用户无需穿着特定的动作捕捉服装,也无需佩戴特定的头盔,仅根据单帧图像即可得到用户的表情、脸部姿态、动作姿态和眼神等信息,然后再根据状态信息进行重定向处理,得到虚拟角色的动画,因此本发明实施例提供的方案通用性更好、成本更低且用户体验更好。
29.进一步地,本发明实施例的方案中,躯干颈部动作信息是根据脸部姿态信息得到的,采用这样的方案,计算量更小,能够在保证动画效果的前提下,提高动画生成的效率。
30.进一步地,本发明实施例的方案中,人体姿态模型为时序模型,可以将当前帧用户对应的脸部姿态信息和关联姿态信息输入至人脸姿态模型,以得到当前帧用户对应的躯干颈部动作信息。采用这样的方案,有利于避免单帧图像中用户的脸部姿态发生抖动导致躯干颈部动作信息的不准确,可以使用户的躯干颈部动作信息描述的躯干颈部姿态更加连贯、流畅,从而使得虚拟角色的动画更加连贯流程,无需另做平滑处理。
附图说明
31.图1是本发明实施例中一种虚拟角色的动画生成方法的应用场景在第一视角下的示意图;
32.图2是本发明实施例中一种虚拟角色的动画生成方法的应用场景在第二视角下的示意图;
33.图3是本发明实施例中一种虚拟角色的动画生成方法的流程示意图;
34.图4是图3中步骤s302的一种具体实施方式的部分流程示意图;
35.图5是图3中步骤s302的另一种具体实施方式的部分流程示意图;
36.图6是图3中步骤s303的一种具体实施方式的部分流程示意图;
37.图7是本发明实施例中一种虚拟角色的动画生成方法的应用场景在第一视角下的另一示意图;
38.图8是本发明实施例中一种虚拟角色的动画生成装置的结构示意图;
具体实施方式
39.如背景技术所述,亟需一种通用性更好、成本更低、用户体验更优的虚拟角色的动画生成方法。
40.为了解决上述技术问题,本发明实施例提供一种虚拟角色的动画生成方法,在本发明实施例的方案中,在本发明实施例的方案中,获取当前帧图像,并根据当前帧图像确定当前帧用户对应的状态信息,由于状态信息包括人脸信息、人体姿态信息和眼神方向信息,因此,根据状态信息得到的虚拟角色的动画数据可以具有与用户对应的状态信息相同的语义。采用这样的方案,用户无需穿着特定的动作捕捉服装,也无需佩戴特定的头盔,仅根据单帧图像即可得到用户的表情、脸部姿态、动作姿态和眼神等信息,然后再根据状态信息进行重定向处理,得到虚拟角色的动画,因此本发明实施例提供的方案通用性更好、成本更低且用户体验更好。
41.为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
42.参照图1,图1是本发明实施例中一种虚拟角色的动画生成方法的应用场景在第一视角下的示意图,参照图2,图2是本发明实施例中一种虚拟角色的动画生成方法的应用场景在第二视角下的示意图,参照图7,图7是本发明实施例中一种虚拟角色的动画生成方法的应用场景在第一视角下的另一示意图。其中,第一视角不同于第二视角。下面结合图1、图2和图7,对本发明实施例中的虚拟角色的动画生成方法的应用场景进行非限制性的说明。
43.如图1和图2所示,本实施例的方案中,可以采用摄像头11对用户10进行拍摄。
44.具体而言,用户10为摄像头11的拍摄对象,用户10是真人演员。需要说明的是,与现有技术相比,本发明实施例的方案中,用户10无需穿着动作捕捉服装,无需佩戴表情捕捉设备和眼神捕捉设备等。
45.其中,摄像头11可以是各种现有的适当的拍照设备,本实施例对于摄像头11的类型和数量并不进行限制。
46.在一个具体的例子中,摄像头11的数量为单个,摄像头11可以为rgb(r为红色red的缩写,g为绿色green的缩写,b为蓝色blue的缩写)摄像头;也可以为rgbd(d为深度图depth的缩写)摄像头。也即,摄像头11拍摄得到的图像可以为rgb图像,也可以为rgbd图像等,但并不限于此。
47.进一步地,摄像头11对用户10进行拍摄,可以得到用户10对应的视频流数据,用户
10对应的视频流数据可以包括多帧图像,每帧图像具有时间码,每帧图像中可以包括用户10的影像。
48.在一个具体的例子中,用户10和摄像头11之间的距离小于第一预设距离阈值,图像可以包括用户10脸部的影像,还可以包括用户10颈部和肩膀的影像。换言之,用户10与摄像头11之间的距离通常较小,因此,图像可以不包含用户10全身的影像。需要说明的是,本发明实施例中的摄像头11并非是设置在用户10的佩戴设备上,用户10与摄像头11之间的距离大于第二预设距离阈值,第二预设距离阈值通常远远小于第一预设距离阈值。
49.进一步地,摄像头11可以和终端12连接,终端12可以是现有的各种具有数据接收和数据处理功能的设备,摄像头11可以将采集到的用户10对应的视频流数据发送至终端12。其中,所述终端12可以是手机、平板电脑和计算机等,但并不限于此。需要说明的是,本实施例对于摄像头11和终端12之间的连接方式并不进行限制,可以是采用有线连接,也可以是无线连接(例如,蓝牙连接、局域网连接等)。更具体地,摄像头11可以是设置在终端12上的摄像头,例如,可以是手机上的摄像头、电脑上的摄像头等。
50.进一步地,终端12可以按照时间码的先后顺序,依次对摄像头11采集到的用户10对应的视频流数据中的每帧图像进行处理和分析,以得到用户10对应的状态信息。更进一步地,可以根据每帧图像中用户10对应的状态信息进行重定向处理,以得到该帧图像对应的虚拟角色13的动画数据,得到的动画数据与图像具有相同的时间码。
51.其中,虚拟角色13可以包括虚拟人、也可以包括虚拟动物、虚拟植物等具有脸部和身体的对象。虚拟角色13可以是三维的,也可以是二维的,本发明实施例对此并不进行限制。
52.关于根据每帧图像生成虚拟角色13的动画数据的更多内容将在下文中具体描述。
53.需要说明的是,对于用户10对应的视频流数据中的每帧图像,根据该帧图像得到时间码相同的动画数据的具体流程相同,下文仅以其中一帧(也即,当前帧图像)为例对生成对应的虚拟角色13的动画数据的具体流程进行详细说明。
54.参照图3,图3是本发明实施例中一种虚拟角色的动画生成方法的流程示意图。所述方法可以由终端执行,所述终端可以是各种具有数据接收和处理能力的终端设备,例如,可以是手机、计算机和平板电脑等等,本发明实施例对此并不进行限制。在一个具体的例子中,终端可以是图1中示出的终端12,但并不限于此。图3示出的虚拟角色的动画生成方法可以包括以下步骤:
55.步骤s301:获取当前帧图像,所述当前帧图像包括用户的影像;
56.步骤s302:根据所述当前帧图像,确定当前帧用户对应的状态信息,所述状态信息包括:人脸信息、人体姿态信息和眼神方向信息,所述人脸信息包括脸部姿态信息和脸部表情信息;
57.步骤s303:根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据,其中,所述动画数据和所述当前帧图像的时间码相同,所述动画数据包括:面部动画数据、身体动画数据和眼球动画数据。
58.可以理解的是,在具体实施中,所述方法可以采用软件程序的方式实现,该软件程序运行于芯片或芯片模组内部集成的处理器中;或者,该方法可以采用硬件或者软硬结合的方式来实现。
59.在步骤s301的具体实施中,可以获取当前帧图像,当前帧图像可以是由摄像头对用户拍摄得到的。更具体地,当前帧图像可以是用户对应的视频流数据中当前待处理的图像,当前帧图像的时间码可以记为当前时刻。其中,用户对应的视频流数据可以是采用摄像头对用户进行拍摄得到的。在一个具体的例子中,用户对应的视频流数据是由单个摄像头采集得到的,所述摄像头可以是rgb摄像头或者可以是rgbd摄像头,但并不限于此。
60.进一步地,当前帧图像包括用户的影像。具体而言,当前帧图像可以包括用户脸部的影像,还可以包括用户颈部和肩膀的影像,还可以包括至少一部分手臂的图像等,但并不限于此。
61.关于当前帧图像的更多内容可以参照上文关于图1和图2的相关描述,在此不再赘述。
62.在步骤s302的具体实施中,可以根据当前帧图像确定当前帧用户对应的状态信息,状态信息可以包括:人脸信息、人体姿态信息和眼神方向信息。其中,用户对应的状态信息可以是根据当前帧图像对用户进行还原重建得到的。
63.具体而言,所述人脸信息包括脸部姿态信息和脸部表情信息,其中,脸部姿态信息用于描述用户脸部的位置和朝向,更具体地,用户脸部的位置和朝向是指用户脸部在三维空间中的位置和朝向。例如,用户脸部的位置可以是用户的脸部相对于摄像头的位置,用户脸部的朝向可以是相对于摄像头的朝向。
64.进一步地,人脸信息还可以包括:身份id信息,所述身份id信息用于描述用户的脸部形状和五官分布。
65.进一步地,脸部表情信息可以用于描述用户的表情。在一个具体的例子中,脸部表情信息可以是多个混合形状(blend shapes)的权重,其中,多个混合形状可以是预先设置的;脸部表情信息也可以是对多个混合形状进行主成分分析得到的多个主成分向量的权重;还可以是三维特征点等,但并不限于此。
66.进一步地,人体姿态信息可以用于描述用户身体的动作姿态。在一个具体的例子中,人体姿态信息可以是关节角数据,更具体地,关节角数据为关节的角度。
67.进一步地,眼神方向信息可以用于描述用户的眼神方向。具体而言,眼球中心位置指向三维瞳孔中心位置的方向为眼神方向。更具体地,眼球中心位置为眼球的中心点的位置,三维瞳孔中心位置为瞳孔的中心点的位置。由于虹膜的中心位置与三维瞳孔中心位置是重合的,虹膜在眼球上的具体位置是根据三维瞳孔中心位置确定的,因此虹膜会跟着三维瞳孔中心位置的变化而移动,但同一个用户的虹膜尺寸可以是固定的。其中,虹膜尺寸为虹膜的大小,虹膜尺寸可以用于确定眼球中虹膜的覆盖面积。
68.在一个具体的例子中,眼神方向信息可以为三维瞳孔中心位置。更具体地,眼神方向信息可以为三维瞳孔中心位置在以眼球中心位置为坐标原点的球坐标系中的天顶角和方位角。具体而言,三维瞳孔中心位置可以采用球坐标的方式进行表示,其中,r为三维眼球的半径,θ为天顶角,为方位角。天顶角θ和方位角来可以表征眼球中心位置与三维瞳孔中心位置连接产生的射线方向,因此可以采用三维瞳孔中心位置的球坐标中的天顶角θ和方位角来表示眼神方向。
69.参照图4,图4是图3中步骤s302的一种具体实施方式的部分流程示意图。通过图4示出的步骤,可以得到当前帧用户对应的人脸信息,更具体地,可以得到当前帧用户对应的
脸部姿态信息和脸部表情信息。图4示出的步骤s302可以包括以下步骤:
70.步骤s401:根据当前帧用户对应的初始人脸信息,生成三维人脸模型;
71.步骤s402:根据所述三维人脸模型,确定预估人脸特征信息,并计算所述预估人脸特征信息和当前帧的目标人脸特征信息之间的第一差异;
72.步骤s403:判断是否满足第一预设条件;如果是,则执行步骤s404,否则执行步骤s405;
73.步骤s404:将所述初始人脸信息作为当前帧用户对应的人脸信息;
74.步骤s405:更新所述初始人脸信息,将更新后的初始人脸信息作为当前帧用户对应的初始人脸信息;并返回至步骤s401,直至满足第一预设条件。
75.首次执行步骤s401时,当前帧用户对应的初始人脸信息可以是预先设置的默认值,也可以是上一帧用户对应的人脸信息。
76.具体而言,在首次执行步骤s401时,初始人脸信息中的身份id信息的默认值可以是多个样本用户的身份id信息的平均值。由于根据多个样本用户的身份id信息计算得到的平均值具有通用性,因此可以作为当前帧图像中用户的初始人脸信息中身份id信息的默认值,脸部姿态信息的默认值可以是用户预先设置的位置和朝向,脸部表情信息的默认值可以是用户在中性表情下的脸部表情信息,该默认值可以是预先采集的。需要说明的是,本发明实施例中的“用户”是指当前帧图像中的用户,而“多个样本用户”是指使用摄像头采集视频流数据之前进行训练数据采集等准备工作时涉及的用户或表演者。
77.在另一个实施例中,首次执行步骤s401时,也可以将上一帧用户对应的人脸信息作为当前帧用户对应的初始人脸信息,有利于减少计算量,并且使得到的虚拟角色的面部动画数据更加平滑,无需再另外做平滑处理。
78.再次执行步骤s401时,也即,从步骤s405返回至步骤s401时,当前帧用户对应的初始人脸信息可以为更新后的初始人脸信息。
79.进一步地,可以根据当前帧用户对应的初始人脸信息,合成得到三维人脸模型。换言之,步骤s401中的三维人脸模型是根据当前帧用户对应的初始人脸信息得到的,并非是根据当前帧图像得到的。需要说明的是,对于根据当前帧用户对应的初始人脸信息(身份id信息、脸部姿态信息和脸部表情信息)合成三维人脸模型的具体方法,本发明实施例并不进行限制,可以是现有的各种能够合成三维人脸模型的方法。
80.在步骤s402的具体实施中,可以根据步骤s401中得到的三维人脸模型,计算预估人脸特征信息。所述预估人脸特征信息为根据三维人脸模型得到的人脸特征信息,预估人脸特征信息可以包括:二维投影点坐标信息和纹理特征点坐标信息。
81.具体而言,可以从三维人脸模型中提取多个三维特征点,然后将多个三维特征点投影至二维平面,以得到多个二维投影点。其中,所述二维平面是指摄像头的图像坐标系的平面。
82.更具体地,根据多个预先定义的顶点索引,从三维人脸模型中提取多个顶点,以得到多个三维特征点。也即,三维特征点是基于预先定义的顶点索引在三维人脸模型上确定的顶点。其中,每个顶点索引用于指代特定的脸部部位,不同的顶点索引指代的脸部部位是不同的。例如,顶点索引3780用于指代鼻尖点等。三维人脸模型可以包括多个顶点,可以将多个顶点索引对应的顶点提取出来,即可得到多个三维特征点。
83.进一步地,可以将多个三维特征点投影至二维平面,以将每个三维特征点的三维坐标转化为该三维特征点对应的二维投影点的二维坐标。由此,可以得到预估人脸特征信息,也即,预估人脸特征信息可以包括多个二维投影点的二维坐标。
84.进一步地,可以计算预估人脸特征信息和目标人脸特征信息之间的第一差异,其中,目标人脸特征信息是根据当前帧图像检测得到的。目标人脸特征信息可以包括:二维特征点的坐标信息,其中,二维特征点为当前帧图像中具有特定语义信息的点。具体而言,可以采用机器学习方法对当前帧图像进行检测,以检测出多个二维特征点。其中,语义信息是预先定义的,所述语义信息可以用于描述二维特征点所对应的脸部部位。例如,64号二维特征点的语义信息为:鼻尖点。更具体地,多个二维特征点的语义信息描述的脸部部位与多个顶点索引指代的脸部部位是相同的。由此,二维特征点和二维映射点可以是一一对应的。
85.进一步地,预估人脸特征信息还可以包括纹理特征点坐标信息,对应地,目标人脸特征信息还可以包括与纹理特征点对应的像素点的坐标。具体而言,根据当前帧图像中的像素点确定该像素点对应的二维纹理坐标(u,v),可以根据预先定义的纹理映射关系确定该像素点在三维人脸模型上对应的三维纹理点,也即,与上文中三维特征点不同,三维纹理点是根据预先定义的纹理映射关系在三维人脸模型上确定的顶点。
86.进一步地,可以将多个三维纹理点投影至二维平面,以得到对应的纹理特征点的二维坐标。更进一步地,可以计算像素点和对应的纹理特征点之间的坐标差异。
87.由上,可以根据像素点和对应的纹理特征点之间的坐标差异,以及二维特征点和二维投影点之间的坐标差异,计算得到第一差异。
88.需要说明的是,本发明实施例对于检测目标人脸特征信息和确定预估人脸特征信息的先后顺序并不进行限制。
89.进一步地,可以计算预估人脸特征信息和目标人脸特征信息之间的第一差异。更具体地,可以计算多个二维投影点和多个二维特征点之间的坐标差异。
90.在步骤s403的具体实施中,可以判断是否满足第一预设条件,其中,第一预设条件可以包括:第一差异不大于第一预设阈值,和/或,更新初始人脸信息的次数达到第二预设阈值。
91.进一步地,如果满足第一预设条件,则可以执行步骤s404,也即,可以将当前帧用户对应的初始人脸信息作为当前帧用户对应的人脸信息。换言之,如果满足第一预设条件,则可以确定步骤s401中的三维人脸模型符合用户真实的人脸,换言之,步骤s401中的人脸信息能够准确、真实地描述用户在当前帧图像中的脸部姿态和脸部表情等。
92.进一步地,如果不满足第一预设条件,可以执行步骤s405,也即更新初始人脸信息,根据更新后的初始人脸信息,继续执行步骤s401-s403,直到满足第一预设条件。
93.在一个非限制性的例子中,每次更新初始人脸信息时可以仅更新脸部姿态信息和脸部表情信息,也即,不更新用户的身份id信息。换言之,用户的身份id信息可以是预先确定的。由于本实施例的应用场景中用户通常是固定的,也即,在录制视频的过程中,摄像头拍摄的对象通常是同一人,因此,用户的身份id信息可以是固定的,也即,可以采用预先确定的身份id信息。采用此方案,可以简化人脸信息的计算过程,有利于提高动画生成的效率。
94.在具体实施中,可以在获取用户对应的视频流数据之前,确定用户的身份id信息。
具体而言,可以获取多张身份图像,每张身份图像包括用户的影像,其中,每张身份图像中用户的表情为默认表情且多张身份图像中的用户的脸部姿态(也即,脸部的位置和/或朝向)可以是不同的。
95.进一步地,可以根据多张身份图像对预设的初始三维人脸模型进行迭代优化,以得到用户的身份id参数,在后续生成虚拟角色的动画过程中可以采用根据多张身份图像得到的身份id参数。其中,预设的初始三维人脸模型是指根据身份id参数、脸部姿态信息和脸部表情信息均采用预先设置的默认值构建的三维人脸模型,也即,预设的初始三维人脸模型是未经任何优化和调整的初始模型,默认表情可以为中性表情。
96.继续参考图3,在步骤s302的具体实施中,还可以确定当前帧用户对应的人体姿态信息。具体而言,人体姿态信息可以是通过图像直接构建三维人体模型得到的,也可以是根据脸部姿态信息计算得到的,本实施例对此并不进行限制。
97.具体而言,人体姿态信息可以包括:躯干颈部动作信息。其中,躯干颈部动作信息用于描述所述用户的躯干和颈部的动作姿态。
98.更具体地,躯干颈部动作信息可以包括多个第一预设关节的关节角数据,所述第一预设关节为位于躯干和颈部的关节。
99.在一个具体的例子中,当前帧用户对应的躯干颈部动作信息是根据当前帧用户对应的脸部姿态信息计算得到的。具体而言,可以将当前帧用户对应的脸部姿态信息输入至人体姿态匹配模型,以得到当前帧用户对应的躯干颈部动作信息。
100.更具体地,所述人体姿态匹配模型可以是根据第一训练数据对第一预设模型进行训练得到的,其中,第一预设模型可以是现有的各种具有学习能力的模型。所述第一训练数据可以包括多对第一样本信息,每对第一样本信息包括样本用户对应的脸部姿态信息和所述样本用户对应的躯干颈部动作信息。更具体地,每对第一样本信息是对样本用户进行动作捕捉得到的,属于同一对第一样本信息的脸部姿态信息和躯干颈部动作信息之间具有对应关系。其中,多对第一样本信息可以对同一个样本用户进行动作捕捉得到的,也可以是对多个第一样本用户进行动作捕捉得到的。需要说明的是,本发明实施例中的样本用户为真人。
101.由于第一训练数据来源于真人动作捕捉,采用第一训练数据训练得到的人体姿态匹配模型能够学习到真人脸部的位置、朝向和真人躯干、颈部的姿态之间的关联关系。因此,人体姿态匹配模型输出的躯干颈部动作信息是真实、自然的,也即,输出的躯干颈部动作信息和输入的脸部姿态信息所呈现的用户整体的姿态是真实、自然的。采用上述方案得到躯干颈部动作信息,计算量更小,能够在保证动画效果的前提下,提高动画生成的效率。
102.在另一个具体的例子中,当前帧用户对应的躯干颈部动作信息是根据当前帧用户对应的脸部姿态信息和关联姿态信息计算得到的。更具体地,人体姿态匹配模型的输入为当前帧用户对应的脸部姿态信息和当前帧用户对应的关联姿态信息,对应的输出为当前帧用户对应的躯干颈部动作信息。
103.其中,所述关联姿态信息包括:关联图像中用户对应的脸部姿态信息和/或躯干颈部动作信息,所述关联图像为所述当前帧图像之前的连续多帧图像和/或所述当前帧图像之后的连续多帧图像。
104.更具体地,将当前帧图像的时间码记为t1,关联姿态信息可以包括时间码为t1-t
至t1-1的连续多张图像中用户对应的脸部姿态信息,其中,t为正整数。
105.进一步地,关联姿态信息还可以包括时间码为t1-t至t1-1的连续多张图像中用户对应的躯干颈部动作信息。例如,t=30时,关联姿态信息可以包括与当前帧图像相邻且在当前帧图像之前的30帧图像中用户对应的脸部姿态信息和躯干颈部动作信息。
106.进一步地,关联姿态信息还可以包括时间码为t1 1至t1 t的图像中用户对应的脸部姿态信息,还可以包括时间码为t1 1至t1 t的图像中用户对应的躯干颈部动作信息。例如,t=30时,关联姿态信息还可以包括与当前帧图像相邻且在当前帧图像之后的30帧图像中用户对应的脸部姿态信息和躯干颈部动作信息。
107.由上,本实施例的方案中,人体姿态匹配模型可以为时序模型,可以将当前帧用户对应的脸部姿态信息和关联姿态信息输入至人体姿态匹配模型,以得到当前帧用户对应的躯干颈部动作信息。采用这样的方案,有利于避免单帧图像中用户的脸部姿态发生抖动导致躯干颈部动作信息的不准确,可以使躯干颈部动作信息描述的躯干颈部姿态更加连贯、流畅,从而使得虚拟角色的动画更加连贯流程,无需另做平滑处理。
108.在另一个实施例中,人体姿态信息还可以包括:四肢动作信息,四肢动作信息可以用于描述所述用户四肢的动作姿态。例如,四肢动作信息可以用于描述用户手臂的动作。更具体地,四肢动作信息可以包括多个第二预设关节的关节角数据,所述多个第二预设关节为位于四肢的关节,更具体地,多个第二预设关节可以包括手臂的关节。进一步地,四肢动作信息可以是预先设置的默认值,例如,四肢动作信息的默认值表征的手臂动作可以是自然下垂等,但并不限于此。四肢动作信息还可以是由用户输入的。
109.进一步地,可以将对所述躯干颈部动作信息和所述四肢动作信息进行融合处理,以得到当前帧的人体姿态信息。在对所述躯干颈部动作信息和所述四肢动作信息进行融合处理之前,可以先判断躯干颈部动作信息描述的躯干和颈部的动作是否满足动作条件,如果否,则调整所述躯干颈部动作信息,以使调整后的躯干颈部动作信息描述的躯干和颈部的动作满足所述动作条件。其中,所述动作条件是根据四肢动作信息确定的。
110.具体而言,动作条件是根据四肢动作信息确定的,当躯干颈部动作信息满足动作条件时,可以确定四肢动作信息描述的四肢的动作姿态和躯干颈部动作信息描述的躯干、颈部的动作姿态所呈现的整体的身体姿态是合理、真实的。如果躯干颈部动作信息不满足动作条件,则可以确定四肢动作信息描述的四肢的动作和躯干颈部动作信息描述的躯干、颈部的动作所呈现的整体的身体姿态是不合理的。换言之,动作条件为与四肢动作信息描述的四肢的动作姿态匹配的躯干和颈部的动作姿态,躯干颈部动作信息不满足动作条件,也即,躯干颈部动作信息与动作条件描述的躯干颈部的动作姿态不一致。
111.进一步地,还可以确定当前帧用户对应的眼神方向信息。参照图5,图5是步骤s302中另一种具体实施方式的部分流程示意图。通过图5示出的步骤,可以得到用户当前帧用户对应的眼神方向信息。图5示出的步骤s302可以包括以下步骤:
112.步骤s501:根据当前帧用户对应的眼部信息和预估瞳孔中心位置,确定三维眼球模型;
113.步骤s502:根据所述三维眼球模型,确定预估眼部特征信息,并计算所述预估眼部特征信息和目标眼部特征信息之间的第二差异;
114.步骤s503:判断是否满足第二预设条件;如果是,则执行步骤s504,否则,执行步骤
s505;
115.步骤s504:将所述预估瞳孔中心位置作为当前帧用户对应的三维瞳孔中心位置;
116.步骤s505:更新所述预估瞳孔中心位置,将更新后的预估瞳孔中心位置作为当前帧用户对应的预估瞳孔中心位置;并返回至步骤s501,直至满足第二预设条件。
117.其中,眼部信息包括眼球中心位置、眼球半径和虹膜尺寸。可以理解的是,眼部信息为每个人眼球的个性化数据,不同用户的眼部信息的具体取值是不同的,同一个用户的眼部信息的具体取值可以是固定的,但同一个用户的眼神方向信息可以是不同的。
118.需要说明的是,对于两个眼睛,需要分别执行图5示出的步骤,以分别求解当前帧两个眼睛的眼神方向。对于每个眼睛的处理流程是相同的,下文仅就确定其中一个眼睛的眼神方向信息的具体过程进行详细说明。
119.在首次执行步骤s501之前,可以先根据当前帧图像判断眼睛是否处于闭眼状态,如果是,则可以将上一时刻该眼睛的眼神方向信息作为当前帧用户对应的眼神方向信息,也即,无需再针对该眼睛执行图5示出的步骤。
120.进一步地,首次执行步骤s501时,当前帧用户对应的眼部信息可以是预先设置的默认值,也可以是上一帧用户对应的眼部信息。当前帧用户对应的预估瞳孔中心位置可以是预先设置的默认值,也可以是上一帧用户对应的三维瞳孔中心位置。
121.其中,首次执行步骤s501时,眼球中心位置的默认值可以是多个样本用户的眼球中心位置的平均值,类似地,眼球半径的默认值可以是多个样本用户的眼球半径的平均值,虹膜尺寸的默认值可以是多个样本用户的虹膜尺寸的平均值。预估瞳孔中心位置的默认值可以是用户目视前方时瞳孔的位置。
122.再次执行步骤s501时,也即,从步骤s505返回至步骤s501时,当前帧用户对应的预估瞳孔中心位置可以是更新后的预估瞳孔中心位置。
123.进一步地,可以根据当前帧用户对应的眼部信息和预估瞳孔中心位置,合成得到三维眼球模型。其中,对于根据眼部信息和预估瞳孔中心位置合成三维眼球模型的具体方法,本发明实施例对此并不进行限制,可以是现有的各种能够合成三维眼球模型的方法。
124.在另一个实施例中,首次执行步骤s501时,也可以将上一帧用户对应的眼部信息作为当前帧用户对应的眼部信息,将上一帧用户对应的三维瞳孔中心位置作为当前帧的预估瞳孔中心位置,不仅可以减少计算量,还可以使得虚拟角色的眼球动画数据更加平滑,无需另做平滑处理。
125.在步骤s502的具体实施中,可以根据步骤s501中得到的三维眼球模型,确定预估眼部特征信息,并可以计算预估眼部特征信息和目标眼部特征信息之间的第二差异,其中,目标眼部特征信息是根据当前帧图像检测得到的。
126.具体而言,眼部特征信息可以包括二维瞳孔中心位置和虹膜掩膜位置等。其中,二维瞳孔中心位置是指瞳孔在二维平面中的位置,虹膜掩膜位置可以是指虹膜的掩膜在二维平面中的位置。
127.进一步地,预估眼部特征信息可以是将根据三维眼球模型的瞳孔位置以及虹膜掩膜位置投影到二维平面得到的,目标眼部特征信息可以是采用机器学习方法对当前帧图像进行检测得到的。
128.在步骤s503的具体实施中,可以判断是否满足第二预设条件,其中,第二预设条件
可以包括:第二差异不大于第三预设阈值,和/或,更新预估瞳孔中心位置的次数达到第四预设阈值。其中,第三预设阈值和第一预设阈值可以是相同的,也可以是不同的,第四预设阈值和第二预设阈值可以是相同的,也可以是不同的。
129.进一步地,如果满足第二预设条件,则可以执行步骤s504,也即,可以将当前帧用户对应的预估瞳孔中心位置作为当前帧用户对应的三维瞳孔中心位置。
130.进一步地,如果不满足第二预设条件,可以执行步骤s505,也即,更新预估瞳孔中心位置,根据更新后的预估瞳孔中心位置息,继续执行步骤s501-s503,直至满足第二预设条件。
131.需要说明的是,与身份id信息类似,本实施例中考虑到用户通常是固定的,因此,眼部信息可以是固定的,也即,眼部信息可以是预先确定的,每次仅更新预估瞳孔中心位置,可以简化计算过程,提高动画生成的效率。
132.在具体实施中,在获取用户对应的视频流数据之前,确定用户的眼部信息。具体而言,可以根据眼部图像,眼部图像包括用户眼部的影像且眼部图像中用户的表情为中性表情且眼神方向平视前方。
133.进一步地,可以根据眼部图像确定多个三维眼皮特征点,然后计算多个三维眼皮特征点的三维位置的平均值,并在平均值的基础上加上预设的三维偏移量,以得到眼球中心位置。其中,偏移量的偏移方向朝向眼球内部。
134.进一步地,还可以根据眼部图像对预设的初始三维眼球模型进行迭代优化,以得到虹膜尺寸。在后续生成虚拟角色的动画过程中,可以采用根据眼部图像得到的眼球中心位置和虹膜尺寸,眼球半径可以采用多个样本用户的眼球半径的平均值。其中,预设的初始三维眼球模型是指眼球信息和三维瞳孔中心位置均采用预设的默认值构建的三维眼球模型。
135.在其他实施例中,每次执行步骤s505时,还可以更新眼部信息,本发明实施例对此并不进行限制。
136.进一步地,分别得到两个眼睛的三维瞳孔中心位置后,可以分别确定两个眼睛的眼神方向信息,并判断两个眼睛的眼神方向信息是否满足互动关系。若两只眼睛的眼神方向不满足互动关系时,则可以确定计算得到的眼神方向信息有误,则将上一帧用户对应的眼神方向信息作为当前帧用户对应的眼神方向信息。其中,互动关系是指左眼的眼神方向和右眼的眼神方向能够被同一个人同时做出来。
137.由上,可以得到当前帧用户对应的人脸信息、眼神方向信息和人体姿态信息。
138.继续参考图1,在步骤s303的具体实施中,可以根据当前帧用户对应的状态信息进行重定向处理,以得到当前帧虚拟角色的动画数据。其中,虚拟角色的动画数据可以包括用于生成虚拟角色动画的控制器数据,具体表现形式为数字化向量的序列。可将所述动画数据转化为ue或unity3d可以接收的数据形式(多个混合形状(blend shapes)的权重和关节角数据),输入渲染引擎,如ue或unity3d,即可驱动虚拟角色的相应部位做出相应的动作。
139.参照图6,图6是图3中步骤s303的一种具体实施方式的部分流程示意图。通过图6示出的步骤,可以根据当前帧用户对应的人体姿态信息确定当前帧虚拟角色的身体动画数据。图6示出的步骤s303可以包括以下步骤:
140.步骤s601:生成过渡骨骼模型;
141.步骤s602:根据第一骨骼模型的关节角数据和所述第一骨骼模型,确定所述多个预设关键关节的位置;
142.步骤s603:根据所述多个预设关键关节的位置和所述过渡骨骼模型,确定所述过渡骨骼模型的关节角数据,以得到所述虚拟角色的身体动画数据。
143.考虑到用户的骨骼和虚拟角色的骨骼在定义上(骨骼数量、骨骼默认朝向和关节位置)是不一致的,所以无法将用户的身体姿态信息采用直传的方式给到虚拟角色。具体而言,一方面,由于用于描述用户骨骼的骨骼模型中关节的旋转轴的默认朝向和虚拟角色的骨骼模型中关节的旋转轴的默认朝向是不同的,因此,关节角的定义也不同,无法直接传递关节角数据。另一方面,由于用于描述用户骨骼的骨骼模型中关节位置和虚拟角色的骨骼模型中关节的位置不同,采用逆运动学的方式进行传递也会导致虚拟角色的姿态出现问题。
144.本发明实施例的方案中,可以根据第一骨骼模型和第二骨骼模型生成过渡骨骼模型。其中,第一骨骼模型为与用户对应的骨骼模型,更具体地,与用户对应的骨骼模型为可以用于描述用户骨骼的骨骼模型。第一骨骼模型可以是根据图像进行还原重建得到的,也可以是预先设置的平均骨骼。其中,如果采用平均骨骼,则可以省略获取用户骨骼模型的步骤。进一步地,第二骨骼模型为虚拟角色的骨骼模型。
145.具体而言,过渡骨骼模型的骨骼形态和第二骨骼模型的骨骼形态是相同的,所述骨骼形态包括骨骼的数量和每个关节的旋转轴的默认朝向,也即,过渡骨骼模型的骨骼数量和第二骨骼模型的骨骼数量是相同的,过渡骨骼模型中的骨骼和第二骨骼模型中的骨骼一一对应,过渡骨骼模型中每个关节的旋转轴的默认朝向和第二骨骼模型中对应的关节的旋转轴的默认朝向也是相同的。
146.进一步地,预先定义有多个预设关键关节,预设关键关节为预设定义的关节。更具体地,预设关键关节可以选自上文中的第一预设关节和第二预设关节。可以获取第一骨骼模型中所述多个预设关键关节的位置,并将过渡骨骼模型中所述多个预设关键关节的位置分别设置为所述多个预设关键关节在第一骨骼模型中的位置,由此可以得到过渡骨骼模型。更具体地,过渡骨骼模型中每个预设关键关节的位置和第一骨骼模型中该预设关键关节的位置相同。
147.在步骤s602的具体实施中,可以根据第一骨骼模型的关节角数据和第一骨骼模型,计算得到第一骨骼模型中多个预设关键关节的位置。由于过渡骨骼模型中每个预设关键关节的位置和该预设关键关节在第一骨骼模型中的位置相同,因此,可以得到过渡骨骼模型中多个预设关键关节的位置。
148.进一步地,可以根据多个预设关键关节的位置,计算确定过渡骨骼模型的关节角数据。由于过渡骨骼模型的骨骼形态和第二骨骼模型的骨骼形态是相同的,因此可以采用直传的方式得到虚拟角色的关节角数据。换言之,可以直接将过渡骨骼模型的关节角数据作为虚拟角色的关节角数据。进一步地,所述关节角数据可以作为虚拟角色的身体动画数据。由此,得到的身体动画数据与人体姿态信息可以具有相似的语义。
149.进一步地,还可以进一步优化虚拟角色的身体动画数据。具体而言,可以判断身体动画数据是否满足预设的姿态约束条件,如果不满足,则可以对身体动画数据进行调整,以得到当前帧的身体动画数据。
150.在具体实施中,人体姿态信息包括躯干颈部动作信息,可以根据躯干颈部动作信息进行重定向处理,以得到虚拟角色的躯干颈部动画数据,躯干颈部动画数据用于生成虚拟角色的躯干和颈部的动作。具体而言,可以根据用户对应的躯干颈部的关节角数据,重定向得到虚拟角色的躯干颈部的关节角数据。
151.进一步地,可以获取虚拟角色的四肢动画数据,四肢动画数据用于生成虚拟角色的四肢的动作。其中,四肢动画数据可以是预先设置的。在具体实施中,可以根据用户的选择从多个预设的四肢动画数据中确定当前帧对应的虚拟角色的四肢动画数据。
152.进一步地,可以对四肢动画数据和躯干颈部动画数据进行融合处理,以得到虚拟角色的身体动画数据。在具体实施中,在进行融合处理之前,可以先判断躯干颈部动画数据对应的动作是否与四肢动画数据对应的动作匹配,如果否,可以调整躯干颈部动画数据,以使调整后的躯干颈部动画数据对应的动作与四肢动画数据对应的动作匹配。其中,躯干颈部动画数据对应的动作与四肢动画数据对应的动作匹配时,生成的虚拟角色的整体的身体姿态是合理、真实的。例如,四肢动画数据对应的动作为挥手再见,躯干颈部动画数据对应的动作为躯干呈半躺姿态,则躯干颈部动画数据对应的动作与四肢动画数据对应的动作不匹配。调整后的躯干颈部动画数据对应的动作为躯干呈直立姿态,则调整后的躯干颈部动画数据对应的动作和四肢动画数据对应的动作是匹配的。采用上述的方案,可以对躯干颈部动画数据进行微调,以使躯干颈部动画数据和四肢动画数据生成的虚拟角色的整体身体姿态更加合理、真实自然。
153.更多关于对四肢动画数据和躯干颈部动画数据进行融合处理的内容可以参照上文关于对躯干颈部动作信息和四肢动作信息进行融合处理的相关描述,在此不再赘述。
154.在另一个实施例中,人体姿态信息为上述躯干颈部动作信息和四肢动作信息融合得到的当前帧的人体姿态信息,则可以根据当前帧的人体姿态信息进行重定向处理,以得到当前帧对应的虚拟角色的身体动画数据。
155.继续参考图1,在步骤s303的具体实施中,还可以根据当前帧用户对应的脸部表情信息进行重定向处理,以得到当前帧虚拟角色的面部动画数据。
156.在一个具体的例子中,脸部表情信息为多个混合形状权重,或者是对多个混合形状进行主成分分析得到的多个主成分向量的权重时,如果虚拟角色也预先定义有相同数量和相同语义的混合形状,则可以将权重直接传递给虚拟角色,也即,可以将脸部表情信息直接作为虚拟角色的面部动画数据。
157.在另一个具体的例子中,可以将脸部表情信息输入至表情映射模型,以得到面部动画数据。
158.具体地,脸部表情信息为多个混合形状(blendshapes)的权重,或者是对多个混合形状进行主成分分析得到的多个主成分向量的权重,或者为三维特征点。即多个混合形状(blendshapes)的权重,或者是对多个混合形状进行主成分分析得到的多个主成分向量的权重,或者为三维特征点输入至表情映射模型,以得到面部动画数据。
159.具体而言,所述表情映射模型是预先采用第二训练数据对第二预设模型训练得到的,本发明实施例对于第二预设模型的类型和结构并不进行限制,可以是现有的各种具有学习能力的模型。
160.进一步地,用于训练的第二训练数据可以包括多组第二样本信息,每组第二样本
信息包括:多个样本用户在预设表情下的脸部表情信息和虚拟角色在该预设表情下的面部动画数据。其中,不同组的第二样本信息对应不同的预设表情。其中,多个样本在预设表情下的脸部表情信息可以是预先采集的,虚拟角色在预设表情下的面部动画数据是预先由动画师设置的。由此,采用第二训练数据训练得到的表情映射模型能够学习到脸部表情信息和虚拟角色的面部动画数据之间的映射关系。因此,表情映射模型输出的面部动画数据与用户对应的脸部表情信息可以具有相似的语义。
161.进一步地,由于第二样本信息包括多个样本用户在预设表情下的脸部表情信息,因此,表情映射模型具有通用性,可以用于根据任一用户对应的脸部表情信息确定虚拟角色的面部动画数据。
162.进一步地,上文得到的面部动画数据中可以包括嘴部动画数据。在本发明的一些非限制性的例子中,还可以采用下文描述的方法确定嘴部动画数据,并将通过下文确定的嘴部动画数据覆盖上文得到的面部动画数据中的嘴部动画数据,以得到更新后的面部动画数据。
163.在第一个非限制性的例子中,可以从脸部表情信息中提取出与嘴部相关的表情信息,记为嘴部表情信息。具体而言,可以根据各个混合形状的语义,确定与嘴部相关的混合形状,与嘴部相关的混合形状的权重即为嘴部表情信息。
164.进一步地,可以将嘴部表情信息输入至第一嘴型映射模型。其中,第一嘴型映射模型是预先采用第三训练数据对第三预设模型进行训练得到的。第三预设模型可以是各种现有的具有学习能力的模型,更具体地,第三预设模型可以是径向基(radial basis function)模型,但并不限于此。
165.进一步地,第三训练数据可以包括多组第三样本信息,每组第三样本信息包括多个样本用户在预设表情下的嘴部表情信息和虚拟角色在该预设表情下的嘴部动画数据。其中,不同组的第三样本信息对应不同的预设表情。多个样本用户在预设表情下的嘴部表情信息可以是预先采集的,虚拟角色在预设表情下的嘴部动画数据是预先由动画师设置的。由此,采用第三训练数据训练得到的第一嘴型映射模型能够学习到嘴部表情信息和虚拟角色嘴部动画数据之间的映射关系。因此,第一嘴型映射模型输出的嘴部动画数据与用户的嘴部表情信息可以具有相似的语义。
166.进一步地,由于第三样本信息包括多个样本用户在预设表情下的嘴部表情信息,因此,第一嘴型映射模型具有通用性,可以用于根据任一用户的嘴部表情信息确定虚拟角色的嘴部动画数据。
167.在第二个非限制性的例子中,根据当前帧用户对应的三维人脸模型,可以提取与嘴部相关的三维特征点,更具体地,可以根据预先定义的与嘴部相关的顶点索引,从三维人脸模型中提取多个与嘴部相关的三维特征点,记为嘴部三维特征信息。
168.进一步地,可以将嘴部三维特征信息输入至第二嘴型映射模型,以得到输出的当前帧的嘴部动画数据。其中,第二嘴型映射模型是采用第四训练数据对第四预设模型训练得到的。第四预设模型可以是各种现有的具有学习能力的模型,更具体地,第四预设模型可以是径向基(radial basis function)模型,但并不限于此。
169.进一步地,第四训练数据可以包括多组第四样本信息,每组第四样本信息包括多个样本用户在预设表情下的嘴部三维特征信息和虚拟角色在该预设表情下的嘴部动画数
据。其中,多组第四样本信息对应不同的预设表情。其中,多个样本用户在预设表情下的嘴部三维特征信息可以是预先采集的,更具体地,样本用户在预设表情下的嘴部三维特征信息可以是基于样本用户在预设表情下的三维人脸模型提取得到的;虚拟角色在预设表情下的嘴部动画数据是预先由动画师设置的。由此,采用第四训练数据训练得到的第二嘴型映射模型能够学习到嘴部三维特征信息和虚拟角色嘴部动画数据之间的映射关系。因此,第二嘴型映射模型输出的嘴部动画数据与用户的嘴部三维特征信息可以具有相似的语义。
170.进一步地,由于第四样本信息包括多个样本用户在预设表情下的嘴部三维特征信息,因此,第二嘴型映射模型也具有通用性,可以用于根据任一用户的嘴部三维特征信息确定虚拟角色的嘴部动画数据。
171.进一步地,在步骤s303的具体实施中,还可以根据嘴部动画数据,确定牙齿动画数据。具体而言,可以在嘴部动画数据的基础上加上预设的偏移量,即可得到牙齿动画数据。更具体地,可以从嘴部动画数据中提取出下巴动画数据,并在下巴动画数据的基础上加上预设的偏移量,以得到牙齿动画数据,从而可以使得虚拟角色的牙齿跟随下巴移动,从而使虚拟角色的整体动作姿态更加真实、自然。
172.进一步地,步骤s303的具体实施中,还可以根据当前帧用户对应的眼神方向信息进行重定向处理,以得到当前帧虚拟角色的眼神动画数据,以使得虚拟角色的眼神方向和用户的眼神方向尽可能一致。
173.在一个具体的例子中,可以将当前帧用户对应的三维瞳孔中心位置用球坐标表示时的天顶角θ和方位角直接传递给虚拟角色。具体而言,虚拟角色的眼球中心位置、眼球半径和虹膜尺寸可以是预先设置的,可以直接将天顶角θ和方位角作为虚拟角色的眼球中心位置指向三维瞳孔中心位置的方向。结合虚拟角色的眼球半径,可以确定虚拟角色的三维瞳孔中心位置,由此可以得到虚拟角色的眼神动画数据。
174.在另一个具体的例子中,可以采用眼神映射模型确定眼神动画数据。具体而言,眼神映射模型可以是预先采用第五训练数据对第五预设模型进行训练得到的,第五预设模型可以是现有的各种具有学习能力的模型。
175.在一个非限制性的例子中,第五预设模型可以是径向基模型,第五训练数据可以包括多对第五样本信息,每对第五样本信息包括:用户在预设眼神方向下的三维瞳孔中心位置(可以记为样本瞳孔位置)以及虚拟角色在该预设眼神方向下的三维瞳孔中心位置(可以记为样本虚拟瞳孔位置)。其中,多对第五样本信息对应不同的预设眼神方向。更具体地,多个预设眼神方向可以包括平视、向左看、向右看、向上看和向下看等,但并不限于此。用户在多个预设眼神方向下的三维瞳孔中心位置可以是基于图像检测算法得到的,本实施例对此并不进行限制。虚拟角色在每个预设眼神方向下的三维瞳孔中心位置可以是预先确定的。
176.进一步地,可以根据多个预设眼神方向下用户的三维瞳孔中心位置和虚拟角色的三维瞳孔中心位置,计算确定径向基模型的rbf权重参数,所述rbf权重参数可以用于表征用户对应的三维瞳孔中心位置和虚拟角色的三维瞳孔中心位置之间的映射关系,由此可以得到眼神映射模型。
177.进一步地,可以将当前帧用户对应的三维瞳孔中心位置输入至眼神映射模型中,即可得到眼神映射模型输出的当前帧对应的虚拟瞳孔中心位置,从而得到眼神动画数据,
其中,虚拟瞳孔位置为虚拟角色的三维瞳孔中心位置。
178.由此,可以得到当前帧对应的虚拟角色的动画数据,所述动画数据包括但不限于:面部动画数据、身体动画数据和眼球动画数据等。
179.进一步地,可以根据所述动画数据,确定所述虚拟角色对应的视频流数据。
180.具体地,可以将虚拟角色的动画数据进行解算和渲染,以得到虚拟角色的视频画面信息。例如,可以将动画数据输入实时引擎(例如,ue4、unity等)进行解算和渲染。其中,视频画面信息具有与动画数据相同的时间码。
181.进一步地,可以将所述视频流数据发送至直播服务器,以使所述直播服务器将所述视频流数据转发至其他用户终端。
182.进一步地,还可以获取用户输入的语音信息,语音信息和视频画面是来源于不同的设备,可以根据语音信息和视频画面各自的时间码进行同步处理,以得到虚拟角色对应的视频流数据,其中,画面信息是根据所述动画数据对所述虚拟角色进行渲染得到的。从而使得语音和虚拟角色的表情、眼神和姿态同步,从而得到虚拟角色的直播视频数据。
183.参照图8,图8是本发明实施例中一种虚拟角色的动画生成装置的结构示意图,图8示出的装置可以包括:
184.图像获取模块81,用于获取当前帧图像,所述当前帧图像包括用户的影像;
185.计算模块82,用于根据所述当前帧图像,确定当前帧所述用户对应的状态信息,所述状态信息包括:人脸信息、人体姿态信息和眼神方向信息,所述人脸信息包括脸部姿态信息和脸部表情信息;
186.重定向模块83,用于根据所述状态信息进行重定向处理,以得到所述虚拟角色的动画数据,其中,所述动画数据和所述当前帧图像的时间码相同,所述动画数据包括:面部动画数据、身体动画数据和眼球动画数据。
187.在具体实施中,上述虚拟角色的动画生成装置可以对应于终端内具有动画生成功能的芯片;或者对应于终端中具有动画生成功能的芯片模组,或者对应于终端。
188.关于图8示出的虚拟角色的动画生成装置的工作原理、工作方式和有益效果等更多内容,可以参照上文关于图1至图7的相关描述,在此不再赘述。
189.本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述的虚拟角色的动画生成方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
190.本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的虚拟角色的动画生成方法的步骤。所述终端包括但不限于手机、计算机、平板电脑等终端设备。
191.应理解,本技术实施例中,所述处理器可以为中央处理单元(central processing unit,简称cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
192.还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称rom)、可编程只读存储器(programmable rom,简称prom)、可擦除可编程只读存储器(erasable prom,简称eprom)、电可擦除可编程只读存储器(electrically eprom,简称eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称ram)可用,例如静态随机存取存储器(static ram,简称sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,简称sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,简称ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,简称esdram)、同步连接动态随机存取存储器(synchlink dram,简称sldram)和直接内存总线随机存取存储器(direct rambus ram,简称dr ram)。
193.上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。
194.在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
195.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)
或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
196.应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
197.本技术实施例中出现的“多个”是指两个或两个以上。
198.本技术实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本技术实施例中对设备个数的特别限定,不能构成对本技术实施例的任何限制。
199.虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
再多了解一些

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

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

相关文献