目标对象控制方法、装置、存储介质和计算机设备与流程

文档序号:20959820发布日期:2020-06-02 20:37阅读:169来源:国知局
目标对象控制方法、装置、存储介质和计算机设备与流程

本申请涉及计算机技术领域,特别是涉及一种目标对象控制方法、装置、计算机可读存储介质和计算机设备。



背景技术:

随着计算机技术的发展,出现了越来越多需要对生物对象进行模拟运动的场景,比如游戏场景或动画场景中需要控制虚拟生物实现行走、跳跃、慢跑或坐下等动作。而控制生物对象运动又涉及到控制四足动物运动和控制二足动物运动,对于控制四足动物运动,相对于比控制二足动物运动来说更加复杂。

传统的控制虚拟生物运动的方式,通常是以数据为驱动,训练单一的神经网络来实现角色控制。但采用传统的方案,对于四足动物角色而言,因为难以明确定义四足动物的两个步态过渡期的脚步模式,常常导致捕捉到的动作数据是无结构化和随机的,也就意味着使用这些数据设计角色控制器时,工程师需要手动或半自动的提取步态周期以及实现数据转换,不可避免的引入人工处理数据误差,存在控制准确性低的问题。



技术实现要素:

基于此,有必要针对控制虚拟生物运动时的控制准确性低的技术问题,提供一种目标对象控制方法、装置、计算机可读存储介质和计算机设备。

一种目标对象控制方法,包括:

获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;所述当前帧对应的运动轨迹信息通过前次预测得到;

获取所述当前帧之前的在前帧中所述目标对象各关节对应的关节运动信息;

获取所述目标对象在当前帧中对应的目标运动信息,并根据所述目标运动信息确定所述当前帧对应的动态网络参数,所述动态网络参数基于不同帧而动态变化,不同的所述动态网络参数用于表征不同的运动状态;

基于所述动态网络参数、所述运动轨迹信息、所述关节运动信息及所述目标运动信息,确定所述目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息,并预测所述目标对象在当前帧之后的在后帧中的运动轨迹信息;

根据所述目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制所述目标对象运动。

一种目标对象控制装置,所述装置包括:

获取模块,用于获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;所述当前帧对应的运动轨迹信息通过前次预测得到;

所述获取模块,还用于获取所述当前帧之前的在前帧中所述目标对象各关节对应的关节运动信息;

所述获取模块,还用于获取所述目标对象在当前帧中对应的目标运动信息,并根据所述目标运动信息确定所述当前帧对应的动态网络参数,所述动态网络参数基于不同帧而动态变化,不同的所述动态网络参数用于表征不同的运动状态;

确定模块,用于基于所述动态网络参数、所述运动轨迹信息、所述关节运动信息及所述目标运动信息,确定所述目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息,并预测所述目标对象在当前帧之后的在后帧中的运动轨迹信息;

控制模块,用于根据所述目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制所述目标对象运动。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;所述当前帧对应的运动轨迹信息通过前次预测得到;

获取所述当前帧之前的在前帧中所述目标对象各关节对应的关节运动信息;

获取所述目标对象在当前帧中对应的目标运动信息,并根据所述目标运动信息确定所述当前帧对应的动态网络参数,所述动态网络参数基于不同帧而动态变化,不同的所述动态网络参数用于表征不同的运动状态;

基于所述动态网络参数、所述运动轨迹信息、所述关节运动信息及所述目标运动信息,确定所述目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息,并预测所述目标对象在当前帧之后的在后帧中的运动轨迹信息;

根据所述目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制所述目标对象运动。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;所述当前帧对应的运动轨迹信息通过前次预测得到;

获取所述当前帧之前的在前帧中所述目标对象各关节对应的关节运动信息;

获取所述目标对象在当前帧中对应的目标运动信息,并根据所述目标运动信息确定所述当前帧对应的动态网络参数,所述动态网络参数基于不同帧而动态变化,不同的所述动态网络参数用于表征不同的运动状态;

基于所述动态网络参数、所述运动轨迹信息、所述关节运动信息及所述目标运动信息,确定所述目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息,并预测所述目标对象在当前帧之后的在后帧中的运动轨迹信息;

根据所述目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制所述目标对象运动。

上述目标对象控制方法、装置、计算机可读存储介质和计算机设备,在预测目标对象在当前帧的运动状态时,可通过当前帧所期望达到的目标状态所对应的目标运动信息来动态调整当前帧的动态网络参数。其中,动态网络参数基于不同帧而动态变化,不同的动态网络参数可用于表征不同的运动状态。进而可基于该动态网络参数,对包括当前帧在内的帧序列所对应的运动轨迹信息、在前帧中该目标对象各关节对应的关节运动信息、及目标运动信息进行处理,充分融合历史运动信息和目标运动信息,以准确且平滑地预测出当前帧的运动状态,从而控制目标对象运动,以此循环以完成相应的动作。这样从端到端的形式,无需人为定义两个步态过渡阶段的脚步模式,降低人工预处理所引入的误差,大大提高了目标对象的控制准确性。此外,通过上述方式还可实现更好的模拟效果,大幅度降低目标对象关节动作僵硬以及脚底打滑等不自然现象,控制效果更好。

附图说明

图1为一个实施例中目标对象控制方法的应用环境图;

图2为一个实施例中目标对象控制方法的流程示意图;

图3a为一个实施例中四足生物骨骼层级结构的侧面示意图;

图3b为一个实施例中四足生物骨骼层级结构的正面示意图;

图4为另一个实施例中目标对象控制方法的流程示意图;

图5为一个实施例中动作预测网络的结构示意图;

图6为一个实施例中目标对象控制模型的网络结构示意图;

图7为一个实施例中目标对象控制模型的训练步骤的流程示意图;

图8a为一个实施例中通过目标对象控制模型控制目标对象实现跳跃的结果示意图;

图8b为一个实施例中通过目标对象控制模型控制目标对象实现坐下的结果示意图;

图8c为另一个实施例中通过目标对象控制模型控制目标对象实现坐下的结果示意图;

图9为另一个实施例中目标对象控制装置的结构框图;

图10为另一个实施例中目标对象控制装置的结构框图;

图11为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中目标对象控制方法的应用环境图。参照图1,该目标对象控制方法应用于目标对象控制系统。该目标对象控制系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端110和服务器120均可单独用于执行本申请实施例中提供的目标对象控制方法。终端110和服务器120也可协同用于执行本申请实施例中提供的目标对象控制方法。

比如,终端110可获取控制指令,并根据该控制指令执行本申请实施例所提及的目标对象控制方法,从而控制该目标对象执行相应的运动。或者,用户可通过终端110触发控制指令,终端110将控制指令传输至服务器120,服务器120响应于该控制指令,执行本申请实施例所提及的目标对象控制方法,从而控制该目标对象执行相应的运动。

如图2所示,在一个实施例中,提供了一种目标对象控制方法。本实施例主要以该方法应用于计算机设备来举例说明,该计算机设备具体可以是上述图1中的终端110或服务器120。参照图2,该目标对象控制方法具体包括如下步骤:

s202,获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;当前帧对应的运动轨迹信息通过前次预测得到。

其中,目标对象是待控制的虚拟对象,具体可以是通过运行在计算机设备上的数据所实现的虚拟角色。当前帧是当前处理的待显示的帧图像。帧序列是包括当前帧在内的一系列的帧图像,具体可通过当前帧和当前帧之前的历史帧所构成。其中,帧序列所包括的帧图像的数量可依据具体应用场景而定,比如8帧、12帧或16帧等,本申请实施例对此不做限定。运动轨迹信息是目标对象在运动过程中的轨迹信息,具体可以是目标对象在运动过程中的某个部位或重心在全局坐标系下的位置信息、前进方向和运动速度等信息。全局坐标系是以目标对象所在的场景中的某一点作为原点的坐标系,全局坐标系的原点是固定的。也就是说,该运动轨迹信息可以用来衡量该目标对象相对于其所处的场景所发生的运动变化。

关于控制目标对象运动,在计算机设备上的体现就是不同帧中的目标对象可处于相同或不同的位置,可执行相同或不同的动作,从而不同帧按顺序可以形成一个连续的动作视频。这样,用户从感官上可以看到该目标对象在运动。

具体地,计算机设备可在目标对象运动的过程中,从历史帧中筛选出n个历史目标帧和当前帧共同构成帧序列,进而分别确定各帧中该目标对象的运动轨迹信息。其中,对于当前帧中该目标对象的运动轨迹信息可通过前次预测得到。对于历史目标帧中该目标对象的运动轨迹信息,由于该历史目标帧是已经发生的历史帧,计算机设备可直接根据该目标对象之前的运动状态提取出相应的运动轨迹信息。

在一个实施例中,不同帧图像中,该目标对象对应的运动轨迹信息,就是该目标对象的中心部位的中心点所对应的位置信息、前进方向和运动速度等信息。也就是该目标对象所对应的根节点(root)的位置信息、前进方向和运动速度等信息。计算机设备可根据一系列帧图像中目标对象root的位置,构成该目标对象的运动轨迹。其中,关于该目标对象的根节点的确定方式参考后文中的详细说明。

在一个实施例中,当次对当前帧进行处理时,就会预测下一帧root的位置信息、前进方向和运动速度。而当前帧中该目标对象的root的位置信息、前进方向和运动速度,是通过上一次预测得到。在本申请中,计算机设备可基于上一次预测得到的当前帧所对应的运动轨迹信息,从而进行修正,得到当前帧准确的运动轨迹信息,并预测下一帧中目标对象的运动轨迹信息。这样不断地预测修正,即可得到每一帧各自对应的修正后的运动轨迹信息,从而计算机设备可根据修正后的运动轨迹信息控制目标对象运动。

可以理解,计算机设备从历史帧中筛选历史目标帧的方式不限,可以是随机筛选,也可以是筛选与当前帧时间距离最近的预设数量的历史帧,还可以是从当前帧开始倒数,每隔n(其中,n为大于等于1的正整数)帧抽取一帧历史帧作为历史目标帧,共抽取预设数量的历史帧等,本申请实施例对此不做限定。关于帧序列中帧图像的数量也可以依据实际情况而设定,比如12帧、15帧或8帧等,本申请实施例对此不做限定。

在一个实施例中,计算机设备可从当前帧开始,回溯查找确定相应的历史目标帧,主要是因为在时间序列上离当前帧越近的历史帧,与当前帧的关联性越强。因而将与当前帧在时间上越接近的历史帧作为目标历史帧,来预测当前帧目标对象的运动情况越准确。

在一个实施例中,在当前帧之前的历史帧与当前帧的总帧数小于帧序列的预设数量时,计算机设备可对缺少的历史帧进行补全,以得到预设数量的帧序列。计算机设备进行补全的方式有多种,比如基于已有的历史帧进行上采样以构成足够数量的帧序列,或者直接对于缺少的运动轨迹信息进行补全等。其中,对缺少的运动轨迹信息进行补全比如全部补全为零、某个预设值、或者是随机值等,本申请实施例对此不做限定。其中,对历史帧进行上采样的具体方式比如对历史帧进行插值处理,或重复采样等,以得到预设数量的目标历史帧,本申请实施例对此上采样的具体方式不做限定。

在一个实施例中,步骤s202,也就是获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息的步骤具体包括:在目标对象的运动过程中,对当前帧之前的历史帧进行均匀采样,得到预设数量的历史目标帧,将当前帧和预设数量的历史目标帧共同构成帧序列;获取前次预测得到的目标对象在当前帧中的运动轨迹信息;对于帧序列中的各历史目标帧,分别确定目标对象在相应历史目标帧中的运动轨迹数据。

具体地,在目标对象的运动过程中,计算机设备可对当前帧之前的历史帧进行均匀采样,得到多于一帧的历史目标帧,进而将当前帧和历史目标帧共同构成帧序列。对于当前帧中该目标对象的运动轨迹信息可通过前次预测得到。对于历史目标帧中该目标对象的运动轨迹信息,由于该历史目标帧是已经发生的历史帧,计算机设备可直接根据该目标对象之前的运动状态提取出相应的运动轨迹信息。其中,对历史帧进行均匀采样是等间距采样,也就是每隔相同数量的历史帧,抽取一帧历史帧作为目标历史帧,直至抽取到预设数量的目标历史帧。

上述实施例中,对历史帧进行均匀采样得到历史目标帧,从而将当前帧和历史目标帧共同构成帧序列,从而确定帧序列中各帧所对应的运动轨迹信息,在对当前帧进行预测时,可以更多的参考历史帧中目标对象的运动状态,提高预测的准确性。

s204,获取当前帧之前的在前帧中目标对象各关节对应的关节运动信息。

其中,在前帧是生成时间在当前帧之前的某一帧或多帧,具体可以是当前帧的前一帧,也可以是当前帧的第前n帧,还可以是当前帧之前的多帧帧图像等,本申请实施例对此不作限定。其中n为大于1的正整数。关节是骨骼与骨骼之间相连接的节点,具有活动和旋转的能力,比如肩关节和膝关节等。

关节运动信息是目标对象的关节的运动信息,具体可以是各关节分别在刚体坐标系下所对应的位置信息、旋转信息和速度,或者各关节分别在刚体坐标系下所对应的相对位置信息、相对旋转信息和相对速度等。刚体坐标系是以目标对象中的某个点为坐标原点的坐标系,在目标对象的运动过程中,该刚体坐标系相对于全局坐标系运动。也就是说,该关节运动信息可以用来衡量该目标对象中各关节在相对于其他关节的运动变化。

具体地,计算机设备可根据目标对象运动过程的时序,确定在当前帧之前的在前帧,进而识别在该在前帧中目标对象的各关节。计算机设备可根据目标对象的历史运动状态,确定该在前帧中目标对象的各关节各自对应的关节运动信息。可以理解,在前帧中各关节对应的关节运动信息,反映了目标对象的关节的历史运动情况,可用于预测当前帧中目标对象的关节运动情况。

在一个实施例中,计算机设备可以目标对象为基准建立刚体坐标系,该刚体坐标系随着目标对象的运动而移动。计算机设备可从在前帧中提取出该目标对象的各关节分别在该刚体坐标系中的运动信息作为关节运动信息。

在另一个实施例中,计算机设备可以目标对象为基准建立刚体坐标系,计算机设备在确定该目标对象的关节运动信息时,可将某关节相对于另一个关节的相对运动信息作为该关节的关节运动信息。

在一个实施例中,各关节对应的关节运动信息包括各关节对应的相对运动信息。步骤s204,也就是获取当前帧之前的在前帧中目标对象各关节对应的关节运动信息的步骤具体包括:确定目标对象在运动过程中,在当前帧之前的在前帧;根据与目标对象对应的关节层级结构树,确定目标对象中不同层级的各关节;按照关节层级结构树从上至下的顺序,依次确定下一层级的关节相对于上一层级的关节的相对运动信息。

其中,关节层级结构树是以目标对象所模拟生物的重心所对应的关节为根节点而构建的结构树。在该关节层级结构树中从根节点依次向外延展直至所模拟生物的手或脚所对应的关节。对于两足生物而言,其关节层级结构树中的根节点为两足生物的盆骨,叶子节点为两足生物的手和脚,该叶子节点与末端关节相对应。对于四足生物而言,其关节层级结构树中的根节点为四足生物的脊椎,叶子节点为四足生物的前后脚。关节层级结构树可以很好的对生物对象进行计算机层面的建模处理,便于对生物对象进行模拟,可协助定位生物对象中的不同关节,便于准确快速的确定不同关节各自对应的相对运动信息。

参考图3a和图3b,图3a为一个实施例中四足生物骨骼层级结构的侧面示意图,图3b为一个实施例中四足生物骨骼层级结构的正面示意图。如图3a和3b中所示的,该四足动物显示如图3a和图3b中的301所示,其中,圆点代表该四足生物的关节点,线条是连接两个关节的骨骼,比如图3a和图3b中的圆点3011表示四足生物的关节点,图3a中的细长区域3012表示四足生物的骨骼。该模型共包含27个关节点,每个关节均有3个自由度,总计81个自由度。

具体地,计算机设备可根据目标对象运动过程的时序,确定在当前帧之前的在前帧,进而识别在该在前帧中目标对象的各关节。计算机设备可根据与目标对象对应的关节层级结构树,定位该目标对象中不同层级的各关节。计算机设备可将最上层的关节在刚体坐标系中的运动信息作为该关节对应的关节运动信息。进而再按照关节层级结构树从上至下的顺序,依次将下一层级的关节相对于上一层级的关节的相对运动信息,作为该下一层级的关节对应的关节运动信息。

上述实施例中,按照关节层级结构树从上至下的顺序,依次将下一层级的关节相对于上一层级的关节的相对运动信息,作为该下一层级的关节对应的关节运动信息,可以更精准的描述不同关节间的运动情况,以便更精准的控制该目标对象的关节运动。

在一个实施例中,运动轨迹信息包括目标对象的重心所对应的位置信息、前进方向和运动速度;关节运动信息包括目标对象的各关节分别对应的相对位置信息、相对旋转信息和相对速度。

在一个实施例中,目标对象所对应的运动轨迹信息具体可以是目标对象在运动过程中的重心所在部分在全局坐标系下的位置信息、前进方向和运动速度等信息。该目标对象的重心具体可以是该关节层级结构树的根节点,如两足生物的盆骨的中心点,四足生物的脊椎的中心点等。该目标对象的各关节所对应的关节运动信息具体可以是各关节分别在刚体坐标系下的相对位置信息、相对旋转信息和相对速度。这样,通过全方位采集目标对象相对于周边环境的运动信息、以及目标对象中各关节的相对运动信息,可以更准确地预测目标对象在下一阶段的动作姿态。

s206,获取目标对象在当前帧中对应的目标运动信息,并根据目标运动信息确定当前帧对应的动态网络参数,动态网络参数基于不同帧而动态变化,不同的动态网络参数用于表征不同的运动状态。

其中,目标运动信息是期望控制目标对象所能达到的运动状态的信息,目标运动信息具体可包括目标速度和目标运动类型。可以理解,目标速度具体可包括平移速度和/或角速度。目标运动类型是期望该目标对象所能执行的动作的类型,比如闲逛、移动、跳跃、坐、躺、或站立等。该目标运动类型可用于控制目标对象进行不同步态间的切换。

动态网络参数是在进行动作预测时所需的处理参数。在本申请实施例中,该动态网络参数具体是在对运动轨迹信息、关节运动信息及目标运动信息进行处理时所需的权重参数。动态网络参数是动态变化的,不同帧图像对应不同的动态网络参数,不同的动态网络参数可用于表征不同的运动状态。这样,在预测目标对象的运动情况时,计算机设备可通过动态更新的动态网络参数,来实现不同运动状态的过渡和改变,避免了目标对象在运动过程中呈现出不自然的动作姿态。

具体地,计算机设备获取目标运动信息的方式有多种,比如,计算机设备可获取由用户输入的目标运动信息,或者获取预先设置的目标运动信息,还或者接收由其他计算机设备传输的目标运动信息等,本申请实施例对此不作限定。

进一步地,计算机设备在获取到目标运动信息后,可根据该目标运动信息计算与当前帧对应的动态网络参数。在一个实施例中,计算机设备可将目标运动信息输入至预先训练好的控制网络中,通过该控制网络输出当次的动态网络参数。该控制网络具体可以是有多层的全连接成构成的网络结构。

在一个实施例中,获取目标对象在当前帧中对应的目标运动信息,包括:获取用于控制的目标对象运动的控制指令;根据控制指令确定目标对象在当前帧所对应的目标运动信息;目标运动信息包括目标速度和目标运动类型。

具体地,计算机设备可获取由用户触发的控制指令,并根据该控制指令目标对象在当前帧所对应的目标运动信息。也就是根据该控制指令确定当前期望该目标对象达到的目标速度和待转换至的目标运动类型。这样,可基于该控制指令控制目标对象执行与该控制指令对应的动作。

在一个实施例中,步骤s206,也就是根据目标运动信息确定当前帧对应的动态网络参数的步骤具体包括:从目标对象的各关节对应的关节运动信息中,筛选出末端关节对应的运动速度;根据在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标运动信息,确定与当前帧对应的动态网络参数。

其中,末端关节是处于关节层级结构树最下层的关节,也就是该目标对象的着地的关节。对于两足动物而言,末端关节具体可以是双脚,对于四足动物而言,该末端关节具体可以是前后脚。

具体地,计算机设备可从在前帧中该目标对象的各关节对应的关节运动信息中,筛选出末端关节对应的运动速度。进而根据在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标速度和目标运动类型,确定与当前帧对应的动态网络参数。此处选择该目标对象的末端关节对应的速度来共同确定动态网络参数具体是因为,对目标对象所模拟生物的动作类型的划分与相应生物足部的速度有强烈关联。因而,通过末端关节对应的运动速度和当前帧的目标运动信息,可以准确地确定当前帧所对应的动态网络参数。

在一个实施例中,根据在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标运动信息,确定与当前帧对应的动态网络参数,包括:根据在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标运动信息,确定中间网络权重;对中间网络权重进行插值处理,得到当前帧对应的动态网络参数。

具体地,计算机设备可将在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标运动信息,输入至控制网络中,通过控制网络进行线性和/或非线性变换处理,得到中间网络权重。进而按照动作预测网络所对应的网络层级,通过全连接层对该中间网络权重进行插值处理,得到在当前帧的情况下,与该动作预测网络的各层分别对应的动态网络参数。该动态网络参数用于更新动作预测网络的网络参数。进而计算机设备可通过该动作预测网络来对包括当前帧在内的帧序列中对应的运动轨迹信息、在前帧中该目标对象各关节对应的关节运动信息、以及该目标对象在当前帧中对应的目标运动信息进行处理,以得到该目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及该目标对象在当前帧之后的在后帧中的运动轨迹信息。

上述实施例中,通过末端关节对应的运动速度和当前帧的目标运动信息来确定中间网络权重,再对中间网络权重进行插值处理,可以得到与后文所提及的动作预测网络所对应的每一层的动态网络参数。

s208,基于动态网络参数、运动轨迹信息、关节运动信息及目标运动信息,确定目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息,并预测目标对象在当前帧之后的在后帧中的运动轨迹信息。

具体地,计算机设备可根据该动态网络参数,对包括当前帧在内的帧序列中对应的运动轨迹信息、在前帧中目标对象各关节对应的关节运动信息、以及目标对象在当前帧中对应的目标运动信息进行线性和/或非线性变换处理,得到该目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及该目标对象在当前帧之后的在后帧中的运动轨迹信息。该当前帧的在后帧将会作为下一次的当前帧,并返回执行步骤s202至步骤s208,直至达到预设条件,得到该目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息。其中,该预设条件比如是循环执行预设次数、循环执行达到预设时间、或者循环执行后控制该目标对象实现了与控制指令对应的动作等,本申请实施例对此不作限定。

在一个实施例中,计算机设备可根据包括当前帧在内的帧序列中对应的运动轨迹信息、在前帧中目标对象各关节对应的关节运动信息、以及目标对象在当前帧中对应的目标运动信息,构成输入数据,并输入至预训练的动作预测网络中,从而输出该目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及该目标对象在当前帧之后的在后帧中的运动轨迹信息。

s210,根据目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制目标对象运动。

具体地,计算机设备在每确定一次当前帧所对应的关节运动信息和经修正后的运动轨迹信息后,就控制该目标对象执行相应的运动,进而再预测下一帧所对应的关节运动信息和经修正后的运动轨迹信息,控制该目标对象进行相应的运动,以此循环,以实现控制目标对象执行与目标运动信息对应的动作。

上述目标对象控制方法,在预测目标对象在当前帧的运动状态时,可通过当前帧所期望达到的目标状态所对应的目标运动信息来动态调整当前帧的动态网络参数。进而可基于该动态网络参数,对包括当前帧在内的帧序列所对应的运动轨迹信息、在前帧中该目标对象各关节对应的关节运动信息、及目标运动信息进行处理,充分融合历史运动信息和目标运动信息,以准确且平滑地预测出当前帧的角色状态,从而控制目标对象运动,以此循环以完成相应的动作。这样从端到端的形式,无需人为定义两个步态过渡阶段的脚步模式,降低人工预处理所引入的误差,大大提高了目标对象的控制准确性。此外,通过上述方式还可实现更好的模拟效果,大幅度降低目标对象关节动作僵硬以及脚底打滑等不自然现象,控制效果更好。

在一个实施例中,该目标对象控制方法还包括控制目标对象按照预设置的步态模式运动的步骤,该步骤具体包括:确定预设置的步态模式;在控制所述目标对象运动、且完成与所述目标运动信息对应的动作后,控制所述目标对象按照预设置的步态模式运动。

其中,步态模式是控制目标对象按照预设置的步态进行运动的模式,在预设置的步态模式下,目标对象的运动速度、运动方向和运动类型都是预先设置的。比如,当步态模式包括闲逛模式时,计算机设备会控制该目标对象按照与闲逛模式对应的的运动速度,朝着预设置的运动方向,保持每条腿有规律的迈开前进。

具体地,当目标对象执行完与目标运动信息对应的动作后,计算机设备可切换该目标对象的运动模式至预设置的步态模式,以控制该目标对象执行与预设置的步态模式对应的动作。其中,预设置的步态模式比如闲逛模式或移动模式等,本申请实施例对此不做限定。

在一个实施例中,计算机设备基于目标运动信息控制该目标对象运动,并执行完相应的动作后,计算机设备可确定预设置的步态模式,并将该预设置的步态模式所对应的预设运动信息,作为下一阶段的目标运动信息。进而依据该预设运动信息,重复执行前述实施例所提及的目标对象控制方法,以控制该目标对象按照预设置的步态模式运动。

在一个实施例中,控制所述目标对象按照预设置的步态模式运动具体包括:根据与所述预设置的步态模式对应的运动轨迹信息和关节运动信息,控制所述目标对象循环执行与所述步态模式匹配的动作,在产生停止指令时停止。

其中,停止指令是用于控制目标对象停止当前运动的指令。该停止指令具体可以由停止操作触发审,或在满足预设停止条件时自动触发生成。比如,用户通过计算机设备执行停止操作时,计算机设备可触发生成停止指令。还比如,当该目标对象在预设置的步态模式下运动已达到预设时长,或当前时间达到预设时间点,还或者在下一次的控制指令到达时,计算机设备即可自动触发生停止指令。

在一个实施例中,计算机设备中可存储有与预设置的步态模式对应的运动轨迹信息和关节运动信息。当目标对象执行完与目标运动信息对应的动作后,计算机设备可将该目标对象的运动模式切换至预设置的步态模式,并基于该预设置的步态模式所对应的运动轨迹信息和关节运动信息,控制该目标对象按照预设置的步态模式运动。

在一个实施例中,计算机设备在基于目标运动信息控制该目标对象运动,并执行完相应的动作后,可控制该目标对象按照预设置的步态模式循环执行相应的预设置的动作,在产生停止条件时停止。当然,可以理解,计算机设备可一直控制该目标对象循环执行与步态模式匹配的动作。

上述实施例中,在控制目标对象运动,完成与目标运动信息对应的动作后,可控制目标对象按照预设置的步态模式运动,可使得目标对象自动执行预设置的动作,在不同动作间实现不停顿的自然过渡,无需人为手动操作,提高了控制效率和用户操作的便利性。

在一个实施例中,该目标对象控制方法通过目标对象控制模型执行,目标对象控制模型包括控制网络和动作预测网络。参考图4,该目标对象控制方法由计算机设备执行,且该目标对象控制方法具体包括以下步骤:

s402,获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;当前帧对应的运动轨迹信息通过前次预测得到。

s404,获取当前帧之前的在前帧中目标对象各关节对应的关节运动信息。

s406,获取目标对象在当前帧中对应的目标运动信息。

s408,将在前帧中目标对象的末端关节对应的运动速度、以及当前帧中目标对象对应的目标运动信息输入至控制网络,得到与当前帧对应、且与动作预测网络对应的动态网络参数。

具体地,计算机设备可将在前帧中目标对象的末端关节对应的运动速度、以及当前帧中目标对象对应的目标速度和目标运动类型,共同输入至控制网络,通过控制网络的的处理得到对应的动态网络参数。

在一个实施例中,目标对象控制模型还包括全连接层网络。该步骤s408具体包括步骤s408a-s408c,其中:

s408a,拼接在前帧中目标对象的末端关节对应的运动速度、及当前帧中目标对象对应的目标运动信息,得到与控制网络对应的子输入数据。

具体地,该在前帧中目标对象的末端关节对应的运动速度可以认为是从在前帧中该目标对象各关节对应的关节运动信息中筛选出的。因而由在前帧中目标对象的末端关节对应的运动速度、及当前帧中目标对象对应的目标运动信息,具体可看做是动作预测网络的输入数据的一个子集。计算机设备可拼接在前帧中目标对象的末端关节对应的运动速度、及当前帧中目标对象对应的目标运动信息,得到与控制网络对应的子输入数据。

在一个实施例中,该控制网络具体可以是由输入层、隐藏层和输出层所构成的网络结构。其中,隐藏层的数量可以是一层也可以是多于一层,本申请实施例对此不做限定。控制网络的输入层和隐藏层、以及隐藏层和隐藏层间均可采用dropout(抛弃)技术,以防止网络过拟合,而隐藏层的激活函数具体可以是线性整流函数(elu)。其中,dropout技术具体是指在深度学习网络的训练过程中,按照一定的概率将一部分神经网络单元暂时从网络中丢弃,相当于从原始的网络中找到一个更瘦的网络,可以防止控制网络的过拟合。

s408b,将子输入数据输入至控制网络,输出中间网络权重。

具体地,计算机设备可将与当前帧对应的子输入数据输入至控制网络,通过控制网络的激活函数进行处理,输出中间网络权重。

s408c,通过全连接层网络对中间网络权重进行插值处理,得到与当前帧对应、且与动作预测网络对应的动态网络参数。

具体地,计算机设备可通过全连接层网络对中间网络权重进行插值处理,得到与当前帧对应、且与动作预测网络对应的动态网络参数。

在一个实施例中,该全连接层网络也可称为专家网络。控制网络输出为专家网络的权重值(也就是中间网络权重),比如专家网络的专家个数为4,则控制网络的输出长度为4。进而通过专家网络对中间网络权重进行插值处理,得到动作预测网络每一层的参数,该参数也就是动态网络参数。

可以理解,对于控制网络而言,对当前帧处理完成后,随着时间和循环次数的增加,会将当前帧的下一帧作为下一次循环的当前帧,从而根据与下一次的当前帧所对应的子输入数据,输出下一次循环的当前帧所对应的中间网络权重,进而得到下一次循环的当前帧所对应的动态网络参数。这样,不断地循环运算,以得到每一次的动态网络参数,每一次的动态网络参数会协助更新当次动作预测网络的输出。

在一个实施例中,控制网络作为一个适用于不同运动的相位函数,通过动态的更新动作预测网络的动态网络参数,可以实现不同运动状态的过渡和改变,避免了使用单一相位变量而导致的大量数据预处理工作以及目标对象不自然的动作姿态。

s410,根据动态网络参数更新动作预测网络的网络参数。

具体地,计算机设备可根据当次的当前帧所对应的动态网络参数更新动作预测网络当次的网络参数。

s412,拼接运动轨迹信息、关节运动信息、及目标运动信息,得到与动作预测网络对应的输入数据。

具体地,计算机设备可拼接运动轨迹信息、关节运动信息、及目标运动信息,得到与动作预测网络对应的输入数据。

在一个实施例中,计算机设备可确定包括当前帧在内的共计12帧所对应的目标对象在全局坐标系下的位置信息(position)、前进方向(rotation)和运动速度(velocity)。计算机设备还可获取在上一帧中该目标对象的各个关节各自对应的相对位置信息、相对旋转信息和相对速度。与当前帧对应的目标运动信息具体包括目标速度和目标运动类型。计算机设备可拼接上述信息得到与动作预测网络对应的输入数据。

比如,当前帧所对应的输入数据可通过以下公式表示:其中,xi表示当前帧i对应的输入数据,表示帧序列中各帧所对应的位置信息(具体可以是位置坐标),表示帧序列中各帧所对应的前进方向,表示帧序列中各帧所对应的运动速度,表示与当前帧i对应的目标速度,表示与当前帧i对应的目标运动类型,表示在上一帧中该目标对象的各个关节各自对应的相对位置信息,表示在上一帧中该目标对象的各个关节各自对应的相对旋转信息,表示在上一帧中该目标对象的各个关节各自对应的相对速度。在关节数量为27个时,该输入数据的长度为:12*2+12*2+12*2+12*1+12*6+27*3+27*6+27*3=480。其中,对于运动轨迹信息而言,取其在全局坐标系中的横轴面上的运动信息,比如在全局坐标系中,x轴和z轴组成的平面平行于地面,y轴垂直于地面。对于目标运动类型而言,可通过向量表示对应的目标运动类型,比如采用采用one-hot(独热编码)向量的表现形式,也就是每一个向量的长度为6(预设的六种运动类型),表示每一帧的目标运动类型,因而该目标运动类型的长度可为6,当然在其他的实施例中,还可包括更多或更少的运动类型,其相应的长度也会更多或更少,本申请实施例对此不做限定。对于前一帧中该目标对象对应的各关节的关节运动信息,计算机设备可采集各关节分别在刚体坐标系下的x轴、y轴和z轴三个方向上的关信息。

可以理解,上述举例说明中的数量和输入数据的长度仅仅是示例性的说明,并不用于限定本申请,在实际情况中,可采用更多或更少长度的输入数据均在本申请的保护范围内。

s414,将输入数据输入至动作预测网络,通过动态网络参数对输入数据进行处理,输出目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及目标对象在当前帧之后的在后帧中的运动轨迹信息。

具体地,计算机设备可将输入数据输入至动作预测网络,基于当前帧对应的动态网络参数,通过动作预测网络的各隐藏层对输入数据进行线性和/或非线性变换等处理,输出目标对象在当前帧所对应的动作预测输出,该动作预测输出包括目标对象中的关节运动信息和经修正后的运动轨迹信息、以及目标对象在当前帧之后的在后帧中的运动轨迹信息。

可以理解,对于动作预测网络而言,对当前帧处理完成后,随着时间和循环次数的增加,会将当前帧的下一帧作为下一次循环的当前帧,从而根据与下一次的当前帧所对应的输入数据,输出下一次循环的当前帧所对应的动作预测输出。这样,不断地循环运算,以得到该目标对象每一帧的动作预测输出。

在一个实施例中,可以理解,步骤s410、s412和s414的内容,可具体概括为以下步骤:根据动态网络参数更新动作预测网络的网络参数,并将运动轨迹信息、关节运动信息、及目标运动信息,输入至动作预测网络,通过动态网络参数对输入数据进行处理,输出目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及目标对象在当前帧之后的在后帧中的运动轨迹信息。

在一个实施例中,可以理解,步骤s410、s412和s414的内容,可具体概括为以下步骤:根据动态网络参数更新动作预测网络的网络参数,并将运动轨迹信息、关节运动信息、及目标运动信息,输入至动作预测网络,通过动态网络参数对输入数据进行处理,输出目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及目标对象在当前帧之后的在后帧中的运动轨迹信息。

参考图5,图5为一个实施例中动作预测网络的结构示意图。如图5所示,该动作预测网络可包括至少三层的神经网络,如图5所示的输入层(inputlayer)、隐藏层(hiddenlayer1和hiddenlayer2)和输出层(outputlayer),其中隐藏层的网络单元个数为512。该动作预测网络的输入为前述实施例所提及的输入数据,包括帧序列中每一帧上的,该目标对象的重心所对应的位置信息、前进方向和运动速度,前一帧中该目标对象的各关节的相对位置信息、相对旋转信息和相对速度,以及目标速度和目标运动类型。该动作预测网络的输出为预测的当前帧对应的各关节的相对位置信息、相对旋转信息和相对速度,下一帧中该目标对象对应的位置信息、前进方向和运动速度,以及当前帧中根关节所对应的平移速度和角速度。其中,该动作预测网络的输入层和两个隐藏层均采用dropout技术,以防止网络过拟合,隐藏层的激活函数为线性整流函数。

在一个实施例中,计算机设备可通过以下公式表示该动作预测网络的动作预测输出,其中,yi表示当前帧i对应的动作预测输出,表示当前帧的后一帧中该目标对象对应的位置信息(具体可以是位置坐标),表示当前帧的后一帧中该目标对象对应的前进方向,表示当前帧的后一帧中该目标对象对应的运动速度,表示在当前帧中该目标对象的各个关节各自对应的相对位置信息,表示在当前帧中该目标对象的各个关节各自对应的相对旋转信息,表示在当前帧中该目标对象的各个关节各自对应的相对速度。表示经修正后的当前帧中该目标对象对应的x轴方向的平移速度,表示经修正后的当前帧中该目标对象对应的z轴方向的平移速度,表示当前帧中该目标对象在二维平面内的角速度。

s416,根据目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制目标对象运动。

在一个实施例中,计算机设备可根据该目标对象控制模型每帧分别输出的该目标对象的经过修正后的运动轨迹信息,和各关节对应的关节运动信息来控制该目标对象运动,从而执行与目标运动信息相匹配的动作。

在一个实施例中,当该目标对象完成与目标运动信息相匹配的动作后,可恢复至预设的运动步态,也就是继续执行与原来的运动类型对应的动作。

参考图6,图6为一个实施例中目标对象控制模型的网络结构示意图。参考图6,该目标对象控制模型包括控制网络、专家网络(也就是前述实施例所提及的全连接层网络)和动作预测网络。计算机设备可将子输入数据(也就是输入数据的子集)输入至控制网络,通过控制网络输出当前帧对应的中间网络权重,再通过专家网络进行插值处理,得到动态网络参数。动作预测网络根据动态网络进行更新,从而可通过动作预测网络根据上一帧的运动状态信息预测当前帧的动作。

上述实施例中,通过控制网络动态的调整动作预测网络的权重,动作预测网络根据上一帧的状态信息预测当前帧的动作,将工作人员从无趣并且繁琐的数据准备工作中解放出来,同时也避免了人工操作所引入的误差。这样以端到端的形式,能够从非结构化的动作的捕捉数据中学习多种种类的,包括周期性的和非周期性的动作序列。特别是对于四足生物而言,能够实时地完成对四足生物复杂运动状态的控制,能够从不包含步态阶段标签的非结构化数据学习掌握多种运动。

参考图7,在一个实施例中,该目标对象控制模型的训练步骤包括以下步骤:

s702,获取包括样本对象的样本视频帧序列,并根据样本对象的运动状态,确定样本视频帧序列中的各样本视频帧分别对应的运动类型标签。

具体地,计算机设备可获取包括样本对象的样本视频帧序列,该样本对象具体可以是两足生物或四足生物等,该样本视频帧序列具体可以是样本对象在运动的视频。当该目标对象是四足生物时,由于四足生物的难以控制性,捕捉到的运动数据是非结构化的,例如走、小跑、跳跃等动作是随机产生的。

在一个实施例中,计算机设备可将样本对象的运动状态分为以下六种运动类型:闲逛、移动、跳跃、坐、躺、及站立。可通过计算机设备的智能识别或人工对该样本视频帧序列中的各样本视频帧进行打标签,也就是确定样本视频帧序列中的各样本视频帧分别对应的运动类型标签。该过程相对简单,因为每一种运动状态都和其他的状态完全不相同。更进一步,计算机设备还可根据样本对象移动的速度将移动类别进行更细致的划分,比如根据移动的速度由大到小划分为跑、慢跑、快走和走。

在一个实施例中,该目标对象控制模型的训练步骤还包括样本数据处理的步骤,该步骤包括:统计属于不同运动类型标签的样本视频帧的数量;对相应数量满足少样本条件的样本视频帧进行上采样处理,得到在各运动类型标签间样本视频帧的数量分布均匀的样本视频帧序列。

其中,数量满足少样本条件具体可以是某种运动类型标签下的样本视频帧的数量的占比小于预设比值,或者数量小于预设数量等。具体地,在确定了各样本视频帧分别对应的运动类型标签后,计算机设备可统计属于不同运动类型标签的样本视频帧的数量,也就是计算每种运动类型标签所对应的样本视频帧的数量。由于四足生物运动的随机性,不同运动类型标签所对应的样本视频帧的数量可能存在较大的差异,计算机设备可对相应数量满足少样本条件的样本视频帧进行上采样处理,增加数量量少的运动类型标签下的样本视频帧,从而得到在各运动类型标签间样本视频帧的数量分布均匀的样本视频帧序列。

上述实施例中,对相应数量满足少样本条件的样本视频帧进行上采样处理,得到在各运动类型标签间样本视频帧的数量分布均匀的样本视频帧序列,可保障样本分布均衡,提高后续模型训练的效果。

s704,根据样本视频帧序列中与当前样本帧关联的关联帧所对应的样本运动信息、以及运动类型标签,确定当次的样本输入数据和参考输出。

在一个实施例中,计算机设备可预先设置样本输入数据和参考输出的数据结构,根据样本视频帧序列中与当前样本帧关联的关联帧所对应的样本运动信息、以及运动类型标签,确定当次的样本输入数据和参考输出。其中与当前帧关联的关联帧具体可包括该当前样本帧、该当前样本帧之前的在前样本帧、及该当前样本帧之后的在后样本帧。

在一个实施例中,该步骤s704具体包括以下步骤:获取样本对象在包括当前样本帧在内的样本帧序列中对应的样本运动轨迹信息、以及当前样本帧之前的在前样本帧所对应的样本关节运动信息;根据当前帧所属的运动类型标签确定当前样本帧对应的样本目标运动信息;将样本运动轨迹信息、样本关节运动信息、及样本目标运动信息,构成当次的样本输入数据;将样本对象在当前样本帧中的样本关节运动信息、样本运动轨迹信息、及当前样本帧的在后样本帧中的样本运动轨迹信息,构成当次的参考输出。

在一个实施例中,目标对象控制模型在训练和使用阶段,其对应的输入数据和输出数据的数据结构是一致的。在模型训练阶段,计算机设备可获取样本对象在包括当前样本帧在内的样本帧序列中对应的样本运动轨迹信息、以及当前样本帧之前的在前样本帧所对应的样本关节运动信息。其中,该样本帧序列具体可以是计算机设备对当前样本帧的历史样本帧和未来样本帧进行均匀采样得到目标样本帧,由目标样本帧和当前样本帧共同构成样本帧序列。计算机设备可根据当前帧所属的运动类型标签确定与该运动类型标签相匹配的样本目标速度和样本目标运动类型,作为当前样本帧对应的样本目标运动信息。这样,计算机设备就可拼接对应的样本运动轨迹信息、样本关节运动信息、及样本目标运动信息,得到当次的样本输入数据。

对于当次的参考输出,计算机设备可将样本对象在当前样本帧中的样本关节运动信息、对应的样本运动轨迹信息、及当前样本帧的在后样本帧中的样本运动轨迹信息,构成当次的参考输出。

对于该样本视频帧序列中每一帧的样本视频帧,计算机设备均可采用上述方式组件样本输入数据和参考输出,从而可得到矩阵形式的x={x1,x2,…xi},及y={y1,y2,…yi},其中,xi对应yi,代表第i帧样本视频帧所对应的样本输入数据和参考输出。

在一个实施例中,当样本输入数据的数值太大,影响了计算速率时,计算机设备可根据各组样本输入数据统计对应的均值和标准差,从而根据均值和标准差对样本输入数据进行归一化处理,以减小计算机设备的运算负荷提高处理效率。

s706,从样本输入数据中筛选出子样本输入数据并输入至控制网络,并将控制网络的输出输入至全连接层网络,输出与动作预测网络对应的样本网络参数。

具体地,计算机设备可从样本输入数据中筛选出在前样本帧中该样本对象的末端关节对应的样本运动速度、及该样本对象在当前样本帧所对应的样本目标运动信息,构成子样本输入数据。计算机设备可将子样本输入数据并输入至控制网络,通过控制网络输出与该全连接层网络对应的样本中间网络权重。从而根据该全连接层网络进行插值操作,输出与该动作预测网络对应的样本网络参数。其中,该全连接层网络还可以成为专家网络。

s708,将样本输入数据输入至动作预测网络,并基于样本网络参数进行处理,输出当前帧之后的在后帧对应的预测运动信息。

具体地,计算机设备可将当前样本帧对应的样本输入数据输入至动作预测网络,并基于当前样本帧对应的样本网络参数进行处理,输出当前帧之后的在后帧对应的预测运动信息。该预测运动信息就是目标对象控制网络的预测输出。

s710,根据参考输出和预测运动信息的差异,调整目标对象控制模型的模型参数并继续训练,直到满足训练停止条件时停止训练。

其中,训练停止条件是结束模型训练的条件。训练停止条件可以是达到预设的迭代次数,或者是调整模型参数后的目标对象控制模型的预测性能指标达到预设指标。调整目标对象控制模型的模型参数,具体可包括对控制网络、动作预测网络和全连接层网络的网络参数进行调整。

具体地,计算机设备可比较参考输出和预测运动信息的差异,从而朝减少差异的方向,调整目标对象控制模型的模型参数。如果调整模型参数后,不满足训练停止条件,则返回步骤s704继续训练,直到满足训练停止条件时结束训练。

在一个实施例中,计算机设备可通过比较参考输出和预测运动信息的差异确定损失函数,从而利用均方误差计算损失函数的值,通过反向传播来更新模型参数。

上述实施例中,以一种端到端的网络结构形式从非结构化的训练数据中学习样本对象的运动,通过控制网络和动作预测网络的配合,以及基于不同帧而动态变化的动态网络参数,可以实现目标对象不同运动状态之间的自然过渡。这样的训练方式,可减轻数据准备阶段的人工操作,无需人为定义两个步态过渡阶段的脚步模式,降低人工预处理所引入的误差,训练得到的目标对象控制模型的效果更好。

参考图8a-图8c,图8a为一个实施例中通过目标对象控制模型控制目标对象实现跳跃的结果示意图,图8b和图8c为通过目标对象控制模型控制目标对象实现坐下的不同角度的结果示意图。如图8a-图8c中所示的,该目标对象801为一种四足生物,处于以全局坐标系803为坐标参考的环境中,图8a-图8c中可以明确的看出该四足生物801的骨骼呈现出相应动作的姿势,比如,图8a中的在跳跃时前部肢体前倾,四肢呈现出跳跃的状态,该目标对象801的运动轨迹如图8a中的802所示。比如图8b和图8c中所示的,该四足生物801在坐下时,尾椎骨着地,后腿呈曲折状,前肢直立,整个姿态呈现出明显的坐下的姿势。通过本申请前述实施例所提及的方式,可以很好的模拟四足生物的运动,大幅度降低角色腿部动作僵硬以及脚底打滑等不自然现象。

在实际应用中,可通过本申请实施例所提及的目标对象控制方式模拟生物骨骼运动的姿态,可在游戏或动画领域中,根据预设定的虚拟角色,将该虚拟角色的骨骼按照模拟出的生物骨骼运动的姿态进行调整,这样,计算机设备即可控制该虚拟角色的运动。

图2为一个实施例中目标对象控制方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图9所示,在一个实施例中,提供了目标对象控制装置900,包括获取模块901、确定模块902和控制模块903。

获取模块901,用于获取目标对象在包括当前帧在内的帧序列中对应的运动轨迹信息;当前帧对应的运动轨迹信息通过前次预测得到。

获取模块901,还用于获取当前帧之前的在前帧中目标对象各关节对应的关节运动信息。

获取模块901,还用于获取目标对象在当前帧中对应的目标运动信息,并根据目标运动信息确定当前帧对应的动态网络参数。

确定模块902,用于基于动态网络参数、运动轨迹信息、关节运动信息及目标运动信息,确定目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息,并预测目标对象在当前帧之后的在后帧中的运动轨迹信息。

控制模块903,用于根据目标对象在各帧中的关节运动信息和经修正后的运动轨迹信息,控制目标对象运动。

在一个实施例中,运动轨迹信息包括目标对象的重心所对应的位置信息、前进方向和运动速度;关节运动信息包括目标对象的各关节分别对应的相对位置信息、相对旋转信息和相对速度。

在一个实施例中,获取模块901还用于在目标对象的运动过程中,对当前帧之前的历史帧进行均匀采样,得到预设数量的历史目标帧,将当前帧和历史目标帧共同构成帧序列;获取前次预测得到的目标对象在当前帧中的运动轨迹信息;对于帧序列中的各历史目标帧,分别确定目标对象在相应历史目标帧中的运动轨迹数据。

在一个实施例中,各关节对应的关节运动信息包括各关节对应的相对运动信息;获取模块901还用于确定目标对象在运动过程中,在当前帧之前的在前帧;根据与目标对象对应的关节层级结构树,确定目标对象中不同层级的各关节;按照关节层级结构树从上至下的顺序,依次确定下一层级的关节相对于上一层级的关节的相对运动信息。

在一个实施例中,获取模块901还用于获取用于控制的目标对象运动的控制指令;根据控制指令确定目标对象在当前帧所对应的目标运动信息;目标运动信息包括目标速度和目标运动类型。

在一个实施例中,确定模块902,还用于从目标对象的各关节对应的关节运动信息中,筛选出末端关节对应的运动速度;根据在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标运动信息,确定与当前帧对应的动态网络参数。

在一个实施例中,确定模块902,还用于根据在前帧中末端关节对应的运动速度、以及目标对象在当前帧所对应的目标运动信息,确定中间网络权重;对中间网络权重进行插值处理,得到当前帧对应的动态网络参数。

在一个实施例中,确定模块902,还用于将在前帧中目标对象的末端关节对应的运动速度、以及当前帧中目标对象对应的目标运动信息输入至控制网络,得到与当前帧对应、且与动作预测网络对应的动态网络参数。确定模块902,还用于根据动态网络参数更新动作预测网络的网络参数,并将运动轨迹信息、关节运动信息、及目标运动信息,输入至动作预测网络,通过动态网络参数对输入数据进行处理,输出目标对象在当前帧中的关节运动信息和经修正后的运动轨迹信息、以及目标对象在当前帧之后的在后帧中的运动轨迹信息。

在一个实施例中,确定模块902,还用于拼接在前帧中目标对象的末端关节对应的运动速度、及当前帧中目标对象对应的目标运动信息,得到与控制网络对应的子输入数据;将子输入数据输入至控制网络,输出中间网络权重;通过全连接层网络对中间网络权重进行插值处理,得到与当前帧对应、且与动作预测网络对应的动态网络参数。

在一个实施例中,该目标对象控制装置900还包括模型训练模块904,用于获取包括样本对象的样本视频帧序列,并根据样本对象的运动状态,确定样本视频帧序列中的各样本视频帧分别对应的运动类型标签;根据样本视频帧序列中与当前样本帧关联的关联帧所对应的样本运动信息、以及运动类型标签,确定当次的样本输入数据和参考输出;从样本输入数据中筛选出子样本输入数据并输入至控制网络,并将控制网络的输出输入至全连接层网络,输出与动作预测网络对应的样本网络参数;将样本输入数据输入至动作预测网络,并基于样本网络参数进行处理,输出当前帧之后的在后帧对应的预测运动信息;根据参考输出和预测运动信息的差异,调整目标对象控制模型的模型参数并继续训练,直到满足训练停止条件时停止训练。

参考图10,在一个实施例中,该目标对象控制装置900还包括样本处理模块905,用于统计属于不同运动类型标签的样本视频帧的数量;对相应数量满足少样本条件的样本视频帧进行上采样处理,得到在各运动类型标签间样本视频帧的数量分布均匀的样本视频帧序列。

在一个实施例中,该模型训练模块904还用于获取样本对象在包括当前样本帧在内的样本帧序列中对应的样本运动轨迹信息、以及当前样本帧之前的在前样本帧所对应的样本关节运动信息;根据当前帧所属的运动类型标签确定当前样本帧对应的样本目标运动信息;将样本运动轨迹信息、样本关节运动信息、及样本目标运动信息,构成当次的样本输入数据;将样本对象在当前样本帧中的样本关节运动信息、样本运动轨迹信息、及当前样本帧的在后样本帧中的样本运动轨迹信息,构成当次的参考输出。该模型训练模块904还用于将在前样本帧中样本对象的末端关节对应的样本运动速度、及样本对象在当前样本帧所对应的样本目标运动信息,构成子样本输入数据。

在一个实施例中,控制模块903还用于确定预设置的步态模式;在控制目标对象运动、且完成与目标运动信息对应的动作后,控制目标对象按照预设置的步态模式运动。

在一个实施例中,控制模块903还用于根据与预设置的步态模式对应的运动轨迹信息和关节运动信息,控制目标对象循环执行与步态模式匹配的动作,在产生停止指令时停止。

上述目标对象控制装置,在预测目标对象在当前帧的运动状态时,可通过当前帧所期望达到的目标状态所对应的目标运动信息来动态调整当前帧的动态网络参数。进而可基于该动态网络参数,对包括当前帧在内的帧序列所对应的运动轨迹信息、在前帧中该目标对象各关节对应的关节运动信息、及目标运动信息进行处理,充分融合历史运动信息和目标运动信息,以准确且平滑地预测出当前帧的角色状态,从而控制目标对象运动,以此循环以完成相应的动作。这样从端到端的形式,无需人为定义两个步态过渡阶段的脚步模式,降低人工预处理所引入的误差,大大提高了目标对象的控制准确性。此外,通过上述方式还可实现更好的模拟效果,大幅度降低目标对象关节动作僵硬以及脚底打滑等不自然现象,控制效果更好。

图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110或服务器120。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现目标对象控制方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行目标对象控制方法。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的xx装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该目标对象控制装置的各个程序模块,比如,图9所示的获取模块、确定模块和控制模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的目标对象控制方法中的步骤。

例如,图11所示的计算机设备可以通过如图9所示的目标对象控制装置中的获取模块执行步骤s202、s204和s206。计算机设备可通过确定模块执行步骤s208。计算机设备可通过控制模块执行步骤s210。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述目标对象控制方法的步骤。此处目标对象控制方法的步骤可以是上述各个实施例的目标对象控制方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述目标对象控制方法的步骤。此处目标对象控制方法的步骤可以是上述各个实施例的目标对象控制方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1