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

3D虚拟对象的动画生成方法、装置、终端设备及介质

2022-10-26 14:41:20 来源:中国专利 TAG:

3d虚拟对象的动画生成方法、装置、终端设备及介质
技术领域
1.本技术属于图像处理技术领域,尤其涉及一种3d虚拟对象的动画生成方法、装置、终端设备及介质。


背景技术:

2.目前,三维(three dimensions,3d)技术被广泛应用在游戏、电影及虚拟现实(virtual reality,vr)等领域。在3d技术的应用过程中,通常需要根据3d技术的应用场景来设计3d虚拟对象以及3d虚拟对象的一系列动作,以生成3d虚拟对象的动画。例如,当3d技术应用在游戏领域时,通常需要根据3d游戏场景来设计3d游戏角色以及3d游戏角色的一系列动作,并基于3d游戏角色的一系列动作生成3d游戏角色的动画。
3.在生成3d虚拟对象的动画,通常采用的方式是先制作3d虚拟对象的关键动作对应的关键动画帧,再根据关键动画帧生成3d虚拟对象的其他动作对应的动画帧。然而,关键动画帧的制作需要依赖专业人员,且关键动画帧的制作过程复杂且耗时,降低了3d虚拟对象的动画生成效率。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种3d虚拟对象的动画生成方法、装置、终端设备及介质,以解决现有的3d虚拟对象的动画生成效率较低的技术问题。
5.第一方面,本技术实施例提供一种3d虚拟对象的动画生成方法,包括:
6.依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧所述视频帧中的参考对象的三维重建信息;
7.根据所有所述视频帧中的参考对象的三维重建信息和预设对象模型生成所述参考对象对应的第一动画序列;所述预设对象模型包括预设骨架;
8.基于所述预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架;所述目标骨架的结构与所述预设骨架的结构相同或相似;
9.基于所述第一动画序列对所述重定向骨架进行动画重定向,得到所述目标虚拟对象对应的第二动画序列。
10.在第一方面的一种可选的实现方式中,所述根据所有所述视频帧中的参考对象的三维重建信息和预设对象模型生成所述参考对象对应的第一动画序列,包括:
11.获取预设对象模型;
12.基于每一帧所述视频帧中的参考对象的三维重建信息,分别对所述第一动画序列的每一帧第一动画帧中的所述预设对象模型的结构参数进行设置;
13.根据预设的第一动画帧率,将所有所述第一动画帧按序组成所述第一动画序列。
14.在第一方面的一种可选的实现方式中,所述三维重建信息包括网格点信息、骨骼关键点信息、根节点的位置信息及拍摄参数信息;所述基于每一帧所述视频帧中的参考对象的三维重建信息,分别对所述第一动画序列的每一帧第一动画帧中的所述预设对象模型
的结构参数进行设置,包括:
15.针对每一帧所述视频帧,根据所述视频帧中的参考对象的拍摄参数和根节点的位置信息,确定所述预设对象模型在对应的第一动画帧中的空间位置;
16.基于所述预设对象模型在对应的第一动画帧中的空间位置,对所述预设对象模型在对应的第一动画帧中的根节点的位置进行调整;
17.基于所述视频帧中的参考对象的网格点信息和骨骼关键点信息,设置对应的第一动画帧中所述预设对象模型的姿态。
18.在第一方面的一种可选的实现方式中,在所述基于所述预设骨架对目标虚拟对象的目标骨架进行骨架重定向之前,还包括:
19.从所述预设骨架中确定待合并骨骼,将所述待合并骨骼进行合并,得到合并后的骨骼;
20.获取所述目标虚拟对象的目标对象模型;所述目标对象模型包括初始骨架;
21.基于所述合并后的骨骼对所述初始骨架中的相应骨骼进行设置,得到所述目标虚拟对象的目标骨骼。
22.在第一方面的一种可选的实现方式中,所述预设对象模型还包括预设网格体;所述目标虚拟对象模型还包括目标网格体;所述基于所述预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架,包括:
23.将所述目标骨架的骨骼关键点与所述预设骨架的骨骼关键点进行匹配。
24.在第一方面的一种可选的实现方式中,所述依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧所述视频帧中的参考对象的三维重建信息,包括:
25.将所述目标视频的所有视频帧逐帧导入至预设三维重建模型中进行处理,分别得到每一帧所述视频帧中的参考对象的三维重建信息。
26.第二方面,本技术实施例提供一种3d虚拟对象的动画生成装置,包括:
27.三维重建单元,用于依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧所述视频帧中的参考对象的三维重建信息;
28.动画序列生成单元,用于根据所有所述视频帧中的参考对象的三维重建信息和预设对象模型生成所述参考对象对应的第一动画序列;所述预设对象模型包括预设骨架;
29.骨架重定向单元,用于基于所述预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架;所述目标骨架的结构与所述预设骨架的结构相同或相似;
30.动画重定向单元,用于基于所述第一动画序列对所述重定向骨架进行动画重定向,得到所述目标虚拟对象对应的第二动画序列。
31.在第二方面的一种可选的实现方式中,所述动画序列生成单元包括:
32.第一获取单元,用于获取预设对象模型;
33.参数设置单元,用于基于每一帧所述视频帧中的参考对象的三维重建信息,分别对所述第一动画序列的每一帧第一动画帧中的所述预设对象模型的结构参数进行设置;
34.排序单元,用于根据预设的第一动画帧率,将所有所述第一动画帧按序组成所述第一动画序列。
35.第三方面,本技术实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现
如上述第一方面的任一可选方式的步骤。
36.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面的任一可选方式的方法。
37.第五方面,本技术实施例提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如上述第一方面或第一方面的任一可选方式所述的方法。
38.本技术实施例提供的3d虚拟对象的动画生成方法、装置、终端设备、计算机可读存储介质及计算机程序产品具有以下有益效果:
39.本实施例提供的3d虚拟角色的动画生成方法,通过依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧视频帧中的参考对象的三维重建信息,再根据所有视频帧中的参考对象的三维重建信息和预设对象模型生成参考对象对应的第一动画序列;由于预设对象模型的预设骨架的结构与目标虚拟对象的目标骨架的结构相同或相似,因此,将目标视频转换为对应的第一动画序列,可以后续目标虚拟对象的动画模拟提供参考依据;之后,先基于预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架,再基于第一动画序列对重定向骨架进行动画重定向,得到目标虚拟对象对应的第二动画序列,从而能够将目标视频中参考对象的动作映射给虚拟对象,即采用该方案可以自动实现对目标视频中参考对象的动作的模拟,得到目标虚拟对象的动画序列,相对于传统方式而言,无需专业人员制作目标虚拟对象的关键动画帧,从而提高了目标虚拟对象的动画生成效率。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
41.图1为本技术实施例提供的一种3d虚拟对象的动画生成方法的实现流程图;
42.图2为本技术实施例提供的一种目标虚拟对象的示意图;
43.图3为本技术实施例提供的一种第一动画序列的生成流程的示意图;
44.图4为本技术实施例提供的一种第一动画序列的生成方法的实现流程图;
45.图5为本技术实施例提供的一种骨架重定向过程的实现流程图;
46.图6为本技术实施例提供的一种第二动画序列的生成流程的示意图;
47.图7为本技术实施例提供的一种3d虚拟对象的动画生成装置的结构示意图;
48.图8为本技术实施例提供的一种终端设备的结构示意图。
具体实施方式
49.需要说明的是,本技术实施例使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。在本技术实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
50.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
51.本技术实施例提供的一种3d虚拟对象的动画生成方法可以应用在三维(three dimensions,3d)数字创作或虚拟现实(virtual reality,vr)场景中。其中,3d数字创作可以包括但不限于3d影视创作或3d游戏创作。
52.示例性的,在3d游戏创作场景中,可以采用本技术实施例提供的3d虚拟对象的动画生成方法来生成游戏中的3d虚拟对象的动画序列。例如,当需要构建3d游戏场景中的某个目标3d虚拟人物时,可以先录制一个包含人物的视频,该视频中不同视频帧的人物的姿态可以不同,通过对每一帧视频帧的人物进行三维重建,得到每一帧视频帧的人物的三维重建信息,再根据所有视频帧的人物的三维重建信息和预设对象模型生成该人物对应的第一动画序列;由于预设对象模型的骨架结构与目标3d虚拟人物的骨架结构相同或相似,因此,将视频转换为对于的第一动画序列,可以为后续构建目标3d虚拟人物的动画模型提供参考依据;之后,先基于预设对象模型的预设骨架对目标3d虚拟人物的目标骨架进行骨架重定向,得到重定向骨架,再基于第一动画序列对重定向骨架进行动画重定向,得到目标3d虚拟人物对应的第二动画序列,从而能够将视频中人物的动作映射给3d游戏场景中的某个目标3d虚拟人物。
53.本技术实施例提供的一种3d虚拟对象的动画生成方法的执行主体可以为终端设备。终端设备可以包括于手机、平板电脑、笔记本电脑及台式电脑等电子设备。请参阅图1,图1为本技术实施例提供的一种3d虚拟对象的动画生成方法的实现流程图,该3d虚拟对象的动画生成方法可以包括s101~s104,详述如下:
54.在s101中,依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧所述视频帧中的参考对象的三维重建信息。
55.在目标场景(例如,3d游戏创作场景)中,当需要创建3d虚拟对象,并生成3d虚拟对象的动画序列时,终端设备可以获取目标视频。其中,目标视频可以包括若干帧视频帧,每一帧视频帧中均包括参考对象,不同视频帧中的参考对象的姿态可以相同,也可以不同。
56.参考对象指目标虚拟对象进行动作模拟时所参考的对象,因此,参考对象的骨架结构需要与目标虚拟对象的骨架结构相同或相似。其中,目标虚拟对象可以是需要创建的3d虚拟对象中的任意一个3d虚拟对象。示例性的,当目标虚拟对象为类人对象(例如,图2中的21或22)时,参考对象可以是人。
57.目标视频可以是实时录制的包含参考对象的视频,也可以是预先录制或制作的包含参考对象的视频,也可以是从网络上下载的包含参考对象的视频,或者还可以是通过其他方式得到的包含参考对象的视频,此处对目标视频的获取方式不做特别限定。
58.终端设备获取到目标视频后,可以对目标视频分帧处理,得到目标视频中的各帧视频帧。示例性的,如图3所示,若图3中的31为目标视频,终端设备对该目标视频31进行分
帧处理后可以得到多帧视频帧32。
59.终端设备得到目标视频中的各帧视频帧后,可以依次对每一帧视频帧中的参考对象进行三维重建。终端设备对每一帧视频帧中的参考对象进行三维重建的目的是为了得到每一帧视频帧中的参考对象的三维重建信息。
60.其中,依次对每一帧视频帧中的参考对象进行三维重建指,按照每一帧视频帧在目标视频中的排列次序对各帧视频帧中的参考对象进行三维重建。
61.在本技术的一个实施例中,终端设备可以采用三维重建模型依次对每一帧视频帧进行处理,得到每一帧视频帧中的参考对象的三维重建信息。采用三维重建模型可以快速高效地得到每一帧视频帧中的参考对象的三维重建信息。
62.其中,三维重建模型可以是采用预设样本数据集对深度学习模型进行训练得到的。预设样本数据集中的每条数据均包括一个样本图像和该样本图像的三维重建信息。其中,样本图像为包含参考对象的图像。在采用该预设样本数据集对深度学习模型进行训练时,将每条样本数据中的样本图像作为深度学习模型的输入,将每条样本数据中的样本图像的三维重建信息作为深度学习模型的输出,对深度学习模型进行训练,如此,在深度学习模型训练完成后,深度学习模型可以学习到包含参考对象的图像与参考对象的三维重建信息之间的对应关系。终端设备可以将训练完成深度学习模型确定为三维重建模型。
63.作为示例而非限定,当参考对象为人时,参考对象的三维重建信息可以包括:网格点信息、骨骼关键点信息、根节点信息及拍摄参数信息。
64.其中,网格点信息用于描述参考对象的轮廓。
65.骨骼关键点信息用于描述参考对象的姿态。示例性的,骨骼关键点信息可以是骨骼关键点的轴角信息。其中,骨骼关键点可以包括人体各个骨骼的起点和终点。骨骼关键点的轴角信息用于描述骨骼关键点相对于其父节点的三维空间旋转信息。
66.根节点信息用于描述参考对象的骨盆位置。根节点信息可以通过参考对象的骨盆关键点在预设坐标系中的坐标描述。预设坐标系可以根据实际需求设置。
67.拍摄参数信息用于描述参考对象被拍摄时的相机参数。拍摄参数信息可以包括但不限于相机的缩放比例。
68.本技术实施例中,终端设备得到各帧视频帧中的参考对象的三维重建信息后,可以将每一帧视频帧中的参考对象的骨骼关键点信息和根节点信息分别存储在一个数组中,并将所有视频帧对应的数组按照各个视频帧在目标视频中的次序存储在第一预设文件中。作为示例而非限定,第一预设文件可以是pkl格式的文件。pkl格式是python软件保存文件的一种文件格式,python是一种计算机编程语言。
69.在s102中,根据所有所述视频帧中的参考对象的三维重建信息和预设对象模型生成所述参考对象对应的第一动画序列;所述预设对象模型包括预设骨架。
70.预设对象模型指标准的3d参考对象模板。预设对象模型可以通过预设骨架和预设网格体描述。其中,预设骨架与参考对象的骨架相同或相似。示例性的,若参考对象是人,则预设对象模型为标准的3d人体模板。
71.需要说明的是,预设对象模型具有一个预先设置的初始姿态。示例性的,请继续参阅图3,图3中的33为一种标准的3d人体模板,其当前的姿态即为上述初始姿态。
72.终端设备可以根据每一帧视频帧中的参考对象的三维重建信息对预设对象模型
进行姿态和/或位置的调整,得到每一帧视频帧对应的第一动画帧,所有视频帧对应的第一动画帧即组成第一动画序列。如图3所示,终端设备根据每一帧视频帧32中的参考对象的三维重建信息对预设对象模型33进行姿态和/或位置的调整,得到每一帧32对应的第一动画帧34,所有视频帧32对应的第一动画帧34即组成第一动画序列。
73.在本技术的一个实施例中,s102可以包括如图4所示的s41~s43,详述如下:
74.在s41中,获取预设对象模型。
75.在一种可能的实现方式中,预设对象模型可以预先存储在对象模型库中。基于此,终端设备可以从对象模型库中获取预先存储的预设对象模型。
76.在s42中,基于每一帧视频帧中的参考对象的三维重建信息,分别对第一动画序列的每一帧第一动画帧中的预设对象模型的结构参数进行设置。
77.其中,对每一帧第一动画帧中的预设对象模型的结构参数进行设置具体可以为,对每一帧动画帧中的预设对象模型的位置和姿态进行设置。
78.在一种可能的实现方式中,终端设备可以先生成多帧包含预设对象模型的第一动画帧,第一动画帧的数量与目标视频包括的视频帧的数量一致;再设置每一帧第一动画帧中的预设对象模型的初始位置;再基于每一帧视频帧的三维重建信息对对应的第一动画帧中的预设对象模型的位置和姿态进行调整。
79.其中,预设对象在第一动画帧的位置信息可以通过相应视频帧中参考对象的拍摄参数和根节点的位置信息确定;预设对象模型的姿态可以通过相应视频帧中参考对象的网格点信息和骨骼关键点信息确定。
80.在一种可能的实现方式中,s42可以包括以下步骤:
81.步骤a,针对每一帧所述视频帧,根据所述拍摄参数与参考对象的根节点的位置信息确定所述预设对象模型在对应的第一动画帧中的空间位置。
82.在本实现方式中,终端设备获取到每一帧视频帧中的参考对象的拍摄参数和根节点的位置信息后,可以基于该拍摄参数中的缩放比例和根节点的位置信息,结合弱透视投影关系,计算每一帧视频帧对应的第一动画帧中的预设对象模型的空间位置。
83.步骤b,基于所述预设对象模型在对应的第一动画帧中的空间位置对所述预设对象模型在第一动画帧中的根节点位置进行调整。
84.终端设备得到每一帧第一动画帧中的预设对象模型的空间位置后,对每一帧第一动画帧中的预设对象模型的根节点的位置进行调整,使预设对象模型的根节点的位置与预设对象模型在对应的第一动画帧中的空间位置一致。
85.步骤c,基于所述网格点信息和所述骨骼关键点信息设置对应的第一动画帧中所述预设对象模型的姿态。
86.终端设备调整了预设对象模型在每一帧第一动画帧中的空间位置后,可以基于每一帧第一动画帧对应的视频帧中的参考对象的网格点信息和骨骼关键点信息,对每一帧第一动画帧中的预设对象模型的姿态进行调整,使每一帧第一动画帧中的预设对象模型的姿态与对应视频帧中的参考对象模型的姿态相同。
87.具体的,终端设备可以先基于每一帧第一动画帧对应的视频帧中参考对象的骨骼关键点信息,对每一帧第一动画帧中的预设对象模型的各个骨骼关键点的轴角进行调整,使每一帧第一动画帧中的预设对象模型的各个骨骼关键点的轴角与对应视频帧中的参考
对象模型的各个骨骼关键点的轴角相同;之后,终端设备可以基于每一帧第一动画帧对应的视频帧中的参考对象的网格点信息,对每一帧第一动画帧中的预设对象模型的网格点进行调整,使每一帧第一动画帧中的预设对象模型的网格点与对应视频帧中的参考对象模型的网格点相同。
88.在s43中,根据预设的第一动画帧率,将所有所述第一动画帧按序组成所述第一动画序列。
89.本技术实施例中,预设的第一动画帧率可以根据实际需求设置。示例性的,预设的第一动画帧率可以与目标视频的帧率相同,或者预设的第一动画帧率可以为目标视频的帧率的n倍,n可以为大于1的整数。
90.终端设备可以按照各帧第一动画帧对应的视频帧在目标视频中的次序,将所有第一动画帧进行排序,排序后的所有第一动画帧即构成第一动画序列。具体的,将第一帧视频帧对应的第一动画帧作为第一动画序列的第一帧,将第二帧视频帧对应的第一动画帧作为第一动画序列的第二帧,以此类推,即可将上述各个视频帧的对应的第一动画帧按照上述顺序组成第一动画序列。
91.终端设备得到第一动画序列后,可以将第一动画序列存储在第二预设文件中。示例性的,第二预设文件可以为fbx格式的文件。fbx格式是filmbox软件保存文件所使用的一种文件格式。filmbox是一种在三维设计软件之间进行模型、材质、动作和摄影机信息的互导的软件。
92.上述方案,通过获取预设对象模型,基于每一帧视频帧的参考对象的三维重建信息对每一帧对应的第一动画帧中的上述预设对象的结构参数进行设置,从而能够将视频帧中的参考对象的动作姿态快速迁移到第一动画帧中的预设对象中。随后将上述进行结构参数设置后的每一帧第一动画帧按顺序排列,排序后的所有第一动画帧即构成第一动画序列,从而能够将目标视频映射为对应的动画序列,且将每帧视频帧中的参考对象的姿态和位置快速映射到对应第一动画帧中的预设对象模型上,使得每帧第一动画帧中的预设对象模型与对应视频帧中的参考对象具有相同的姿态和位置。
93.在s103中,基于所述预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架;所述重定向骨架的结构与所述预设骨架的结构相同或相似。
94.目标虚拟对象可以为目标场景中需要创建的任意一个3d虚拟对象,例如,可以为3d虚拟人物。目标场景可以包括3d游戏创作场景或vr场景等。
95.每个目标虚拟对象均对应一个默认的目标对象模型。目标对象模型可以通过初始骨架和初始网格体描述。
96.终端设备可以先根据预设骨架以及每个目标虚拟对象的初始骨架确定该目标虚拟对象的目标骨架,再基于上述预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架。
97.其中,目标骨架的结构与预设骨架的结构相同或相似。
98.本技术实施例中,对目标骨架进行骨架重定向过程指,将目标骨架与预设骨架的相同骨骼关键点进行对应的过程。
99.在本技术的一个实施例中,终端设备可以通过如图5所示的s51~s53来得到每个目标虚拟对象的目标骨架,详述如下:
100.在s51中,从所述预设骨架中确定待合并骨骼,将所述待合并骨骼进行合并,得到合并后的骨骼。
101.在本技术实施例中,上述待合并骨骼可以根据预设骨架的实际情况确定。不同骨架中的待合并骨骼可以不同。本技术实施例对预设骨架中待合并骨骼的合并规则与合并方式不做特别限定,合并后的骨骼构成的骨架能够描述参考对象的动作姿态。
102.在s52中,获取所述目标虚拟对象的目标对象模型;所述目标对象模型包括初始骨架。
103.在一种可能的实现方式中,目标虚拟对象的目标对象模型可以预先存储在目标场景对应的虚拟对象模型库中。基于此,终端设备可以从虚拟对象模型库中获取目标虚拟对象的目标对象模型。
104.在s53中,基于所述合并后的骨骼对所述初始骨架中的相应骨骼进行设置,得到所述目标虚拟对象的目标骨架。
105.本技术实施例中,终端设备对预设骨架的待合并骨骼进行合并后,可以基于合并后的骨骼的合并规则与合并方式对初始骨架中的相应骨骼进行合并,将进行骨骼合并后的初始骨架确定为目标虚拟对象的目标骨架。
106.在本技术的一个实施例中,由于目标骨架的骨骼关键点的命名规则与预设骨架的骨骼关键点的命名规则可能不一样,因此,需要可以将目标骨架的骨骼关键点与预设骨架的骨骼关键点进行匹配,以将目标骨架与预设骨架的相同骨骼关键点进行对应,进而实现对目标骨架的重定向。
107.在s104中,基于所述第一动画序列对所述重定向骨架进行动画重定向,得到所述目标虚拟对象对应的第二动画序列。
108.动画重定向指的是将动作数据从一个骨架复制到另外一个骨架,因此,基于第一动画序列对重定向骨架进行动画重定向是指,将第一动画序列中预设对象模型的动作数据从预设骨架复制到目标对象模型的重定向骨架上,从而得到目标对象模型的第二动画序列。
109.在本技术实施例中,终端设备可以先生成多帧包含骨架重定向后的目标对象模型的第二动画帧,其中,第二动画帧的数量与第一动画帧的数量一致;再设置每一帧第二动画帧中的目标对象模型的初始位置,例如,可以将每一帧第二动画帧中的目标对象模型的初始位置设置在每一帧第二动画帧的中央;再基于每一帧第一动画帧的预设对象模型的位置和姿态对第二动画帧中的目标对象模型的动作和姿态进行调整。
110.其中,目标对象模型在第二动画帧的位置可以通过相应第一动画帧中预设对象模型的根节点的位置确定;目标对象模型的姿态可以通过相应第一动画帧中预设对象模型的姿态确定。
111.在一种可能的实现方式中,s104可以包括以下步骤:
112.步骤d:针对每一帧第二动画帧,根据每一帧第一动画帧中预设对象模型的空间位置调整对应第二动画帧中目标对象模型的空间位置。
113.在本实现方式中,终端设备可以获取每一帧第一动画帧中预设对象模型的空间位置,对每一帧对应的第二动画帧中目标对象模型的空间位置进行调整,使预设对象模型在第一动画帧中的空间位置与目标对象模型在第二动画帧的空间位置相同,也即使预设对象
在第一动画帧中的根节点的位置与目标对象模型在第二动画帧中的根节点的位置相同。
114.步骤e:针对每一帧第二动画帧,终端设备对目标对象模型的姿态进行调整,使目标对象模型的姿态与参考对象模型的姿态相同。
115.终端设备调整了目标对象模型在每一帧第二动画帧中的空间位置后,可以基于每一帧第二动画帧对应的第一动画帧中的预设对象模型的网格点信息和骨骼关键点信息,对每一帧第二动画帧中的目标对象模型的姿态进行调整,使每一帧第二动画帧中的目标对象模型的姿态与对应第一动画帧中的预设对象模型的姿态相同。
116.具体的,终端设备可以先基于每一帧第二动画帧对应的第一动画帧中参考对象的骨骼关键点信息,对每一帧第二动画帧中的目标对象模型的各个骨骼关键点的轴角进行调整,使每一帧第二动画帧中的目标对象模型的各个骨骼关键点的轴角与对应第一动画帧中的预设对象模型的各个骨骼关键点的轴角相同;之后,终端设备可以基于每一帧第二动画帧对应的第一动画帧中的预设对象的网格点信息,对每一帧第二动画帧中的目标对象模型的网格点进行调整,使每一帧第二动画帧中的目标对象模型的网格点与对应第一动画帧中的预设对象模型的网格点相同。
117.步骤f:根据预设的第二第一动画帧率,将所有调整后的第二第一动画帧按序组成所述第二动画序列。
118.本技术实施例中,预设的第二动画帧率可以根据实际需求设置。示例性的,预设的第二动画帧率可以与第一动画的帧率相同,或者预设的第二动画帧率可以为第一动画帧率的n倍,n可以为大于1的整数。
119.终端设备可以按照各帧第二动画帧对应第一动画帧中的次序,将所有第二动画帧进行排序,排序后的所有第二动画帧即构成第二动画序列。具体的,将第一帧第一动画帧对应的第二动画帧作为第二动画序列的第一帧,将第二帧第一动画帧对应的第二动画帧作为第二动画序列的第二帧,以此类推,即可将上述各个第一动画帧的对应的第二动画帧按照上述顺序组成第二动画序列。
120.终端设备得到第二动画序列后,可以将第二动画序列存储在第三预设文件中。示例性的,第三预设文件可以为fbx格式的文件。fbx格式是filmbox软件保存文件所使用的一种文件格式。filmbox是一种在三维设计软件之间进行模型、材质、动作和摄影机信息的互导的软件。
121.示例性的,如图6所示,若图6中的611为目标视频61的多个视频帧,则根据每一帧视频帧得到的第一动画帧可以为621,所有第一动画帧组成了第一动画序列61;根据每一帧第一动画帧得到的第二动画帧可以为631,所有第二动画帧631组成了第二动画序列63。
122.上述方案,通过依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧视频帧中的参考对象的三维重建信息,再根据所有视频帧中的参考对象的三维重建信息和预设对象模型生成参考对象对应的第一动画序列;由于预设对象模型的预设骨架的结构与目标虚拟对象的目标骨架的结构相同或相似,因此,将目标视频转换为对应的第一动画序列,可以后续目标虚拟对象的动画模拟提供参考依据;之后,先基于预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架,再基于第一动画序列对重定向骨架进行动画重定向,得到目标虚拟对象对应的第二动画序列,从而能够将目标视频中参考对象的动作映射给虚拟对象,即采用该方案可以自动实现对目标视频中参考对象的动作
的模拟,得到目标虚拟对象的动画序列,相对于传统方式而言,无需专业人员制作目标虚拟对象的关键动画帧,从而提高了目标虚拟对象的动画生成效率。
123.基于上述实施例提供的3d虚拟对象的动画生成方法,本技术实施例进一步给出实现上述方法实施例的3d虚拟对象的动画生成装置,请参阅图7,图7示出了本技术实施例提供的一种3d虚拟对象的动画生成装置的结构示意图。如图7所示,3d虚拟对象的动画生成装置可以包括:三维重建单元71、动画序列生成单元72、骨架重定向单元73以及动画重定向单元74。其中:
124.三维重建单元71用于依次对目标视频的每一帧视频帧中的参考对象进行三维重建,得到每一帧视频帧中的参考对象的三维重建信息。
125.动画序列生成单元72用于根据所有视频帧中的参考对象的三维重建信息和预设对象模型生成参考对象对应的第一动画序列;预设对象模型包括预设骨架。
126.骨架重定向单元73用于基于预设骨架对目标虚拟对象的目标骨架进行骨架重定向,得到重定向骨架;重定向骨架的结构与所述预设骨架的结构相同或相似。
127.动画重定向单元74用于基于第一动画序列对重定向骨架进行动画重定向,得到所述目标虚拟对象对应的第二动画序列。
128.可选的,动画序列生成单元72包括第一获取单元、参数设置单元以及排序单元。其中:
129.第一获取单元用于获取预设对象模型。
130.参数设置单元用用于基于每一帧所述视频帧中的参考对象的三维重建信息,分别对所述第一动画序列的每一帧第一动画帧中的所述预设对象模型的结构参数进行设置。
131.排序单元用于根据预设的第一动画帧率,将所有所述第一动画帧按序组成所述第一动画序列。
132.可选的,参数设置单元包括位置确定单元、位置调整单元以及姿态调整单元。其中:
133.位置确定单元用于针对每一帧所述视频帧,根据所述视频帧中的参考对象的拍摄参数和根节点的位置信息,确定所述预设对象模型在对应的第一动画帧中的空间位置。
134.位置调整单元用于基于所述预设对象模型在对应的第一动画帧中的空间位置,对所述预设对象模型在对应的第一动画帧中的根节点的位置进行调整。
135.姿态调整单元用于基于所述视频帧中的参考对象的网格点信息和骨骼关键点信息,设置对应的第一动画帧中所述预设对象模型的姿态。
136.可选的,3d虚拟对象的动画生成装置还包括骨骼合并单元、第二获取单元以及骨骼设置单元。其中:
137.骨骼合并单元用于从所述预设骨架中确定待合并骨骼,将所述待合并骨骼进行合并,得到合并后的骨骼。
138.第二获取单元用于获取所述目标虚拟对象的目标对象模型;所述目标对象模型包括初始骨架。
139.骨骼设置单元用于基于所述合并后的骨骼对所述初始骨架中的相应骨骼进行设置,得到所述目标虚拟对象的目标骨架。
140.可选的,骨架重定向单元73具体用于:
141.将所述目标骨架的骨骼关键点与所述预设骨架的骨骼关键点进行匹配。
142.可选的,三维重建单元71具体用于:
143.将所述目标视频的所有视频帧逐帧导入至预设三维重建模型中进行处理,分别得到每一帧所述视频帧中的参考对象的三维重建信息。
144.需要说明的是,上述单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参照方法实施例部分,此处不再赘述。
145.请参阅图8,图8为本技术实施例提供的一种终端设备的结构示意图。如图8所示,本实施例提供的终端设备8可以包括:处理器80、存储器81以及存储在存储器81中并可在处理器80上运行的计算机程序82,例如3d虚拟对象的动画生成方法对应的程序。处理器80执行计算机程序82时实现上述应用于3d虚拟对象的动画生成方法实施例中的步骤,例如图1所示的s101~s104。或者,处理器80执行计算机程序82时实现上述3d虚拟对象的动画生成装置实施例中各模块/单元的功能,例如图7所示的单元71~74的功能。
146.示例性的,计算机程序82可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器81中,并由处理器80执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序82在终端设备8中的执行过程。例如,计算机程序82可以被分割成三维重建单元、动画序列生成单元、骨架重定向单元以及动画重定向单元,各单元的具体功能请参阅图7对应的实施例中的相关描述,此处不赘述。
147.本领域技术人员可以理解,图8仅仅是终端设备8的示例,并不构成对终端设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
148.处理器80可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
149.存储器81可以是终端设备8的内部存储单元,例如终端设备8的硬盘或内存。存储器81也可以是终端设备8的外部存储设备,例如终端设备8上配备的插接式硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡或闪存卡(flash card)等。进一步地,存储器81还可以既包括终端设备8的内部存储单元也包括外部存储设备。存储器81用于存储计算机程序以及终端设备所需的其他程序和数据。存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
150.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将供电控制装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只
是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
151.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
152.本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备实现上述各个方法实施例中的步骤。
153.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参照其它实施例的相关描述。
154.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
155.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献