一种动画生成方法、可读存储介质和电子设备
文献发布时间:2023-06-19 09:40:06
技术领域
本发明涉及计算机领域,具体涉及一种动画生成方法、可读存储介质和电子设备。
背景技术
在线教育领域,需要制作大量的动画视频。现有技术的动画制作方法往往是在特定的场景下,逐帧调整动画形象(动画形象可以为人物也可以为动物)。这种动画视频的制作方法工作量大,人力成本极高、制作周期漫长,难以满足在线教育领域对动画视频的要求。
发明内容
有鉴于此,为了解决人工绘制动画视频制作周期长、成本高的问题,本发明实施例的目的是提供一种动画生成方法、可读存储介质和电子设备。
第一方面,本发明实施例提供一种动画生成方法,包括:
基于目标检测模型对目标视频进行识别,获取所述目标视频各关键帧中的关键点的预测信息,为各关键点生成预测信息序列;
根据所述预测信息序列中当前帧与上一帧的预测信息计算出对应关键点在当前时刻的修正信息;
通过具有关联关系的两个关键点的所述修正信息获得骨骼信息,所述骨骼信息包括骨骼标识和骨骼位置信息,所述骨骼位置信息是通过所述两个关键点的所述修正信息获得的;
根据骨骼位置信息在当前时刻与上一时刻的变化生成骨骼状态变化矩阵;
根据骨骼标识-部件顶点的绑定关系和各骨骼状态变化矩阵计算出更新后的动画形象的部件顶点的空间位置,将更新后的动画形象作为动画视频中的动画帧。
优选地,所述根据各骨骼状态变化矩阵计算出更新后的动画形象的部件顶点的空间位置包括:
获取所述动画形象的所述部件顶点在当前时刻的空间位置;
通过各骨骼位置信息获取各骨骼状态变化矩阵对所述部件顶点的影响权重;
逐个计算各骨骼状态变化矩阵对所述部件顶点的影响,获得受影响后的部件顶点空间位置集合,对受影响后的部件顶点空间位置集合中的各元素加权求和获得下一时刻动画形象的部件顶点更新后的空间位置。
优选地,所述骨骼状态变化矩阵包括:
所述骨骼在当前时刻与上一时刻的位移向量;
所述骨骼在当前时刻与上一时刻的旋转向量;以及
所述骨骼在当前时刻与上一时刻的缩放向量。
优选地,所述关键点用于表征运动中的人体或动物体的骨骼定位参考点。
优选地,所述骨骼位置信息包括:骨骼位置和骨骼置信度。
优选地,所述骨骼位置信息是通所述两个关键点的所述修正信息获得的,包括:
获取第一关键点的修正信息,获取第二关键点的修正信息;所述关键点的修正信息包括:关键点位置信息和关键点置信度;其中,所述关键点位置信息用于表征所述关键点的坐标,所述关键点置信度用于所述关键点位置信息的准则程度。
根据第一关键点的修正信息和第二关键点的修正信息计算骨骼位置信息,所述骨骼位置信息包括:骨骼位置和骨骼置信度;其中,所述骨骼位置是计算第一关键点位置信息和第二关键点位置信息的加权和获得的;其中,第一关键点对所述骨骼位置的影响权重为第一关键点的置信度;第二关键点对所述骨骼位置的影响权重为第二关键点的置信度;所述骨骼置信度是通过预设的规则对第一关键点的置信度和第二关键点的置信度处理后获得的。
优选地,其特征在于所述骨骼标识-部件顶点的绑定关系是通过预定的方式获得的。
优选地,所述方法还包括:
通过计算获取所述骨骼标识-部件顶点的绑定关系。
优选地,所述通过计算获取所述骨骼标识-部件顶点的绑定关系的方法包括:
计算所述动画形象的部件顶点与各所述骨骼的距离,将所述动画形象的部件顶点绑定到距离最近的所述骨骼,通过归一化的方法获得各所述骨骼对所述动画形象的部件顶点的影响权重。
第二方面,本发明实施例提供一种存储介质,包括:用于存储计算机程序指令,所述计算机程序指令在被处理器执行时实现上述任一项所述的方法。
第三方面,本发明实施例提供一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以上述任一项所述的方法。
本发明实施例的技术方案预先录制包括人物或动物运动的视频,以此视频为目标视频,通过提取软件,提取目标视频的图像集。以训练好的神经网络为目标检测网络,以提取的图像集为检测集,识别出能够定位人体或动物体动作的关键点预测信息,通过两个连续时刻的关键预测信息获得关键点修正信息,根据关键点修正信息获取骨骼信息,根据骨骼信息在两个不同时刻的状态变化获得骨骼状态变化矩阵。将骨骼与动画形象的顶点进行绑定。获取动画形象的初始顶点位置,根据绑定关系用骨骼状态变化矩阵更新动画形象的顶点,获得动画帧。由此,将多个动画帧组合为动画,节约了动画的制作成本、缩短了动画的制作周期。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例动画生成方法的流程图;
图2是本发明实施例的关键帧示意图;
图3是本发明实施例骨骼信息的示意图;
图4是本发明实施例更新动画形象顶点的示意图;
图5是本发明实施例计算骨骼标识-部件顶点绑定关系的流程图;
图6是本发明实施例获得更新后的动画形象的流程图;
图7是本发明实施电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在线教育领域,需要制作大量的动画视频。为了提高绘制动画的效率、减少人力成本,本发明实施例提供一种动画生成方法。
图1是本发明实施例动画生成方法的流程图,参照图1,本发明实施例动画生方法包括如下步骤:
步骤100,基于目标检测模型对目标视频进行识别,获取所述目标视频各关键帧中的关键点的预测信息,为各关键点生成预测信息序列。
目标检测模型是通过训练神经网络获得的,目标检测模型是已经训练好的神经网络模型。
目标视频是预先录制的视频或给定的视频,其包括运动的人体或动物体。
关键帧是具有时间标签的图像文件,通过提取目标视频的图像流能够获得多个关键帧。其中,各关键帧中包括人体或动物体。
在本实施例中,关键点的预测信息包括位置信息和置信度,是目标检测模型的输出结果。具体地,位置信息可以通过平面或空间坐标来表示,置信度是位置信息的可信度。
具体参照图2,关键帧1是通过目标视频提取的图像文件,关键帧2是通过目标视频提取的图像文件,为了识别出运动中的人体或动物体的动作,本发明实施例将各关键帧作为检测集送入目标检测模型,期望通过目标检测模型获得运动中的人体或动物体的关键点的预测信息。
在一种可选的实现方式中,关键帧是通过目标视频获得的。具体地,对目标视频进行提取从而获取目标视频各关键帧。例如,通过视频提取软件,提取出目标视频中的各关键帧。关键帧1(时间标签T1)是在时间标签T1提取的图像文件;关键帧2(时间标签T2)是在时间标签T2提取的图像文件。
为了识别关键帧中运动中的人体或动物体的动作,首先,通过关键帧获取运动中的人体或动物体的关键点的预测信息。
在一种可选的实现方案中,将各关键帧作为测试集输入目标检测模型,以识别出关键点的预测信息。也就是说,以关键帧的集合作为测试集,将测试集输入训练好的神经网络(目标检测模型),通过训练好的神经网络(目标检测模型)输出运动中的人体或动物体的关键点的预测信息。关键点的预测信息包括位置信息和置信度,关键点的位置信息能够定位人体或动物体上重要的参考点的位置,也就是说,将各关键点按绑定关系连接,能够表征人体或动物体的动作;关键点置信度是神经网络输出的关键点位置的可信程度。例如,通过目标检测模型识别出关键帧1中定位人体动作的各关键点:关键点1、关键点2、……等,这些通过目标检测模型识别出的关键点是通过关键点预测信息表示的。同样的方法,在关键帧2中识别出定位人体动作的各关键点:关键点1、关键点2、……等。
参照图3,可以看出关键帧2中人物的动作与关键帧1中人物的动作相比发生了变化。对应地,通过目标检测模型识别出的关键帧2中的关键点1和关键点2的预测信息与关键帧1中对应关键点的预测信息不同。也就是说,两个连续的关键帧中相同关键点的预测信息发生变化,从而能够表征人体的肢体或躯干的位置发生变化,这种肢体或躯干位置的变化进而能表征人体动作的变化。
将目标视频各关键帧构成检测集,将检测集送入目标检测模型,由此,能够获得各关键帧中的人体的各关键点的预测信息。将关键点的预测信息生成序列(关键点的预测信息序列)就能表示出一系列动作。
接下来,获取各关键帧中的时间标签,获得关键帧上关键点的预测信息序列。例如,获取关键点1在关键帧1的关键点预测信息,获取关键点1在关键帧2的关键点预测信息……等,根据各关键帧的时间标签,生成关键点1的预测信息序列;同样的方法,获得关键点2的预测信息序列。依次类推,获得各个关键点的预测信息序列。
也即,通过目标检测模型获得各关键点的预测信息序列,能够表征出人体或动物体一系列的动作。
为了获得更加准确的人体动作,需要对关键的预测信息进行修正,也就是说,通过目标检测模型获得的各关键点的预测信息所表征出的动作和关键帧中人体的实际动作是存在差异的,通过对预测信息进行修正能够获得更加准确的动作。具体参见步骤200。
步骤200,根据所述预测信息序列中当前帧与上一帧的预测信息计算出对应关键点在当前时刻的修正信息。
继续参照图3,在一种可选的实现方式中,以T2时刻的图像文件为当前帧,以T1时刻的图像文件为上一帧。获取T2时刻各关键点的预测信息,获取T1时刻各关键点的预测信息。
为了对关键点的信息进行修正,通过当前帧和上一帧的关键点的预测信息获得关键点的修正信息。关键点的修正信息包括:经修正的位置信息和经修正的置信度。
可选地,计算关键点1在T2时刻的经修正的位置信息的方法具体为:获取关键点1在T1时刻的预测信息的位置信息,获取关键点1在T2时刻的预测信息的位置信息,加权求和(权重为置信度),将所述和值作为修正后的位置信息。由此,通过上述方式,获取当前关键帧对应关键点在当前时刻的经修正的位置信息。
计算关键点1在T2时刻的经修正的置信度的方法为:获取关键点1在T1时刻的预测信息的置信度s0,获取关键点1在T2时刻的预测信息的置信度s1,关键点1在T2时刻的经修正的置信度s为:
由此,通过上述方式可以获取当前关键帧对应关键点在当前时刻的经修正的置信度。
通过上述方法,能够计算出当前时刻的关键点的修正信息。依次计算关键点1、关键点2……在当前时刻的修正信息。类似地,通过调整时间标签的关系,能够计算上一时刻、下一时刻……等各时刻的关键点的修正信息。
步骤300,通过具有关联关系的两个关键点的所述修正信息获得骨骼信息,所述骨骼信息包括骨骼标识和骨骼位置信息,所述骨骼位置信息是通过所述两个关键点的所述修正信息获得的。
通过关键点之间的绑定关系,能够确定骨骼信息。其中,所述骨骼信息包括骨骼标识和骨骼位置信息。继续参照图3,通过关键点1和关键2的绑定关系,能够确定骨骼信息,其中,骨骼1表示骨骼标识;通过关键点1和关键2的修正信息还能够获得骨骼位置信息。根据不同关键点的绑定关系,可以获得多个骨骼信息。
骨骼位置信息包括骨骼位置和骨骼置信度。骨骼位置是计算第一关键点经修正的位置信息和第二关键点经修正的位置信息的加权和获得的。其中,第一关键点对骨骼位置的影响权重为第一关键点的经修正的置信度;第二关键点对骨骼位置的影响权重为第二关键点的经修正的置信度。例如:T2时刻骨骼1的骨骼位置是通过下面的方法计算获得的:
T2时刻第一关键点的经修正的位置信息*T2时刻第一关键点的经修正的置信度+T2时刻第二关键点的经修正的位置信息*T2时刻第二关键点的经修正的置信度。
骨骼置信度则可以通过第一关键点的经修正的置信度和第二关键点的经修正的置信度处理后获得的。
具体地,获取T2时刻第一关键点的经修正的置信度p0,获取T2时刻第二关键点的经修正的置信度p1,T2时刻骨骼1的置信度p为:
由此,对于每个骨骼执行上述步骤300,就可以获得人体或动物体所有骨骼的骨骼位置信息。
步骤400,根据骨骼位置信息在当前时刻与上一时刻的变化生成骨骼状态变化矩阵。
骨骼状态变化矩阵包括,所述骨骼在当前时刻与上一时刻的位移向量t、所述骨骼在当前时刻与上一时刻的旋转向量r、以及所述骨骼在当前时刻与上一时刻的缩放向量z。
参照图4,具体地,可以获得同一骨骼在不同时刻的骨骼位置计算出骨骼状态变化矩阵。
例如:以T2时刻为当前时刻,以T1时刻为上一时刻。获取T1时刻骨骼1的骨骼位置,获取T2时刻的骨骼1的骨骼位置:
其一,通过计算骨骼1由T1时刻到T2时刻的位移变化获得骨骼在当前时刻T2与上一时刻T1的位移向量t;
其二,通过计算骨骼1由T1时刻到T2时刻的旋转变化获得骨骼在当前时刻T2与上一时刻T1的旋转向量r;
其三,通过计算骨骼1由T1时刻到T2时刻的缩放变化获得骨骼在当前时刻T2与上一时刻T1的缩放向量z。
上述向量构成骨骼状态变化矩阵。
通过骨骼状态变化矩阵能够更新动画形象部件顶点,也即,根据运动的人体或动物体的骨骼信息的状态变化使得动画形象获得更新。具体参见步骤500。
步骤500,根据骨骼标识-部件顶点的绑定关系和各骨骼状态变化矩阵计算出更新后的动画形象的部件顶点的空间位置,将更新后的动画形象作为动画视频中的动画帧。
具体参照图5,部件顶点是动画形象的部件的定位点,可以是肢体、躯干和面部的定位点。以T2时刻为当前时刻,T1时刻为上一时刻,通过各骨骼的变化可以表征人体的动作发生变化。例如,从T1时刻到T2时刻,骨骼1和骨骼2的参数发生了变化,骨骼3的参数没有发生变化。骨骼1和骨骼2表征人体的手臂,骨骼3表征人体的躯干。为了根据人体的骨骼变化更新动画形象,将骨骼标识-部件顶点进行绑定。
在一种可选的实现方式中,骨骼标识-部件顶点的绑定关系通过预定的方式获得,具体可以由设计人员将骨骼标识与动画形象的订单进行绑定。例如,将骨骼1与顶点1进行绑定,将骨骼2与顶点2进行绑定,本领域技术人员应理解,骨骼标识与部件顶点的绑定关系不是一一对应的。
在一种可选的实现方式中,通过计算的方法获得骨骼标识-部件顶点的绑定关系,包括三个子步骤,具体参见图5。
步骤501,计算所述动画形象的部件顶点与各所述骨骼的距离。
在一种可选的实现方式中,获取同一时刻下,动画形象的部件顶点与各骨骼的距离。
步骤502,将所述动画形象的部件顶点绑定到距离最近的所述骨骼。
在一种可选的实现方式中,将动画形象的部件顶点绑定到距离最近的所述骨骼。
步骤503,通过归一化的方法获得各所述骨骼对所述动画形象的部件顶点的影响权重。
在一种可选的实现方式中,计算骨骼到部件顶点的距离D,以骨骼对部件顶点的影响权重为1/D
接下来,根据骨骼标识-部件顶点的绑定关系,计算出更新后的动画形象顶点的空间位置。
具体参照图6,通过以下三个子步骤计算出更新后的动画形象顶点的空间位置。
步骤510,获取所述动画形象的所述部件顶点在当前时刻的空间位置。
获取动画形象的各部件顶点在当前时刻的空间位置。具体地,动画帧1是动画形象在T2时刻(时间标签T2)的动画形象,动画形象的动作和表情是通过动画形象的部件顶点确定的。结合图5,例如顶点1和顶点2确定了动画形象某个肢体在动画帧中的具体状态,类似地,可以通过各动画形象的部件顶点确定动画形象的肢体、躯干和面部的状态。为了计算出下一时刻的动画帧2(时间标签T3),需要预先确定当前时刻的动画帧1中各顶点的空间位置。在一种可选的实现方式中,空间位置通过空间坐标表示。
步骤520,通过各骨骼位置信息获取各骨骼状态变化矩阵对所述部件顶点的影响权重。
以骨骼1、骨骼2和骨骼3与顶点1构成绑定关系为例详细说明。
首先,获取T1时刻到T2时刻的各骨骼状态变化矩阵{R1,R2,R3}。例如,通过计算能够获得骨骼1由T1时刻到T2时刻的骨骼变化矩阵R1。类似的,通过计算能够获得骨骼2由T1时刻到T2时刻的骨骼变化矩阵R2,通过计算能够获得骨骼3由T1时刻到T2时刻的骨骼变化矩阵R3。
接下来获取骨骼1、骨骼2和骨骼3的各状态变化矩阵对顶点1影响的权重{P1,P2,P3}。具体地,以骨骼1在T2时刻的骨骼置信度P1作为骨骼变化矩阵R1对顶点1的影响权重P1,以骨骼2在T2时刻的骨骼置信度P2作为骨骼变化矩阵R2对顶点1的影响权重P2,以骨骼3在T2时刻的骨骼置信度P3作为骨骼变化矩阵R3对顶点1的影响权重P3。
分别获得根据各骨骼位置信息获取各骨骼状态变化矩阵对有绑定关系的部件顶点的影响权重。
步骤530,逐个计算各骨骼状态变化矩阵对所述部件顶点的影响,获得受影响后的部件顶点空间位置集合,对受影响后的部件顶点空间位置集合中的各元素加权求和获得下一时刻动画形象的部件顶点更新后的空间位置。
为了更新动画帧1的动画形象,需要逐个计算各骨骼状态变化矩阵对所述部件顶点的影响,获得受影响后的部件顶点空间位置集合。
继续以骨骼1、骨骼2和骨骼3与顶点1构成绑定关系为例详细说明。
获取顶点1在T2时刻的空间位置W1,用骨骼变化矩阵R1更新顶点1的空间位置,获得顶点1受影响后的部件顶点空间位置W11={X11,Y11,Z11},用骨骼变化矩阵R2更新顶点1的空间位置获得顶点1受影响后的部件顶点空间位置W12={X12,Y12,Z12},用用骨骼变化矩阵R3更新顶点1的空间位置获得顶点1受影响后的部件顶点空间位置W13={X13,Y13,Z13}。将W11、W12和W13作为空间位置集合{W11,W12,W13}。
接下来以骨骼1在T2时刻的骨骼置信度P1为受影响后的部件顶点空间位置W11的权重,以骨骼2在T2时刻的骨骼置信度P2为受影响后的部件顶点空间位置W12的权重,以骨骼3在T2时刻的骨骼置信度P3为受影响后的部件顶点空间位置W13的权重,对W11、W12和W13加权求和获得T3时刻动画形象的顶点1更新后的空间位置W2。
通过类似的方法,计算每个顶点在T3时刻的空间位置,从而获得T3时刻的动画帧,也即,将更新后的动画形象作为动画视频中的动画帧。
本发明实施例的技术方案预先录制包括人物或动物运动的视频,以此视频为目标视频,通过提取软件,提取目标视频的图像集。以训练好的神经网络为目标检测网络,以提取的图像集为检测集,识别出能够定位人体或动物体动作的关键点预测信息,通过两个连续时刻的关键预测信息获得关键点修正信息,根据关键点修正信息获取骨骼信息,根据骨骼信息在两个不同时刻的状态变化获得骨骼状态变化矩阵。将骨骼与动画形象的顶点进行绑定。获取动画形象的初始顶点位置,根据绑定关系用骨骼状态变化矩阵更新动画形象的顶点,获得动画帧。由此,将多个动画帧组合为动画,节约了动画的制作成本、缩短了动画的制作周期。
图7是本发明实施例的电子设备的示意图。
如图7所示的电子设备7包括通用的硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(I/O)装置75。输入/输出(I/O)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置75通过输入/输出(I/O)控制器76与系统相连。
本领域的技术人员应明白,本申请的实施例可提供方法、装置(设备)或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
也可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
本发明的另一实施例涉及一种非易失性可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部方法的实施例。
即,本领域技术人员可以理解,实现上述实施例的方法中的全部或部分步骤是可以通过程序来指定相关的硬件来完成,该程序存储在一个可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种动画生成方法、可读存储介质和电子设备
- 动画生成方法、装置、电子设备及计算机可读存储介质