CN113592895A - 一种运动信息确定方法、设备及计算机可读存储介质 - Google Patents
一种运动信息确定方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113592895A CN113592895A CN202110125425.5A CN202110125425A CN113592895A CN 113592895 A CN113592895 A CN 113592895A CN 202110125425 A CN202110125425 A CN 202110125425A CN 113592895 A CN113592895 A CN 113592895A
- Authority
- CN
- China
- Prior art keywords
- frame
- motion
- position information
- information
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种运动信息确定方法、设备及计算机可读存储介质;方法包括:获取运动对象的第i帧运动信息和目标位置信息,i为正整数;基于第i帧运动信息和目标位置信息,预测运动对象的第i+1帧运动更新量和基于第i+1帧运动更新量的预估目标位置信息;基于预估目标位置信息和目标位置信息之间的差异,修正第i+1帧运动更新量,并根据修正后的第i+1帧运动更新量获得第i+1帧运动信息;继续迭代,直至获得对应于目标位置信息的第i+n帧运动信息,n为大于1的正整数;获得包括第i帧运动信息至第i+n帧运动信息的运动帧序列,运动帧序列为运动对象针对目标位置信息执行目标导向动作的运动信息集合。通过本申请,能够基于人工智能,提升运动帧序列的准确度。
Description
技术领域
本申请涉及人工智能领域中的信息处理技术,尤其涉及一种运动信息确定方法、设备及计算机可读存储介质。
背景技术
随着人工智能的快速发展,人们对运动对象进行运动的要求变得越来越高;比如,确定运动对象执行目标导向动作(运动对象开门、坐在椅子上、搬箱子)的运动信息。
一般来说,为了确定对象执行目标导向动作的运动信息,通常将运动对象的当前运动状态信息和目标位置作为神经网络模型的输入,再基于神经网络模型的输出确定运动对象执行目标导向动作的运动信息;然而,上述确定运动对象执行目标导向动作的运动信息的过程中,神经网络模型输出的最后一帧运动信息的位置往往与目标位置存在偏差,从而,所确定的运动对象执行目标导向动作的运动信息的准确度较低。
发明内容
本申请实施例提供一种运动信息确定方法、设备及计算机可读存储介质,能够提升所确定的运动对象执行目标导向动作的运动信息的准确度。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种运动信息确定方法,包括:
获取运动对象的第i帧运动信息和目标位置信息,其中,i为正整数;
基于所述第i帧运动信息和所述目标位置信息,预测所述运动对象的第i+1帧运动更新量和基于所述第i+1帧运动更新量的预估目标位置信息;
基于所述预估目标位置信息和所述目标位置信息之间的差异,修正所述第i+1帧运动更新量,并根据修正后的所述第i+1帧运动更新量获得第i+1帧运动信息;
继续进行迭代,直至获得对应于所述目标位置信息的第i+n帧运动信息,其中,n为大于1的正整数;
获得包括所述第i帧运动信息至所述第i+n帧运动信息的运动帧序列,其中,所述运动帧序列为所述运动对象针对所述目标位置信息执行目标导向动作的运动信息集合。
本申请实施例提供一种运动信息确定装置,包括:
信息获取模块,用于获取运动对象的第i帧运动信息和目标位置信息,其中,i为正整数;
信息预测模块,用于基于所述第i帧运动信息和所述目标位置信息,预测所述运动对象的第i+1帧运动更新量和基于所述第i+1帧运动更新量的预估目标位置信息;
信息修正模块,用于基于所述预估目标位置信息和所述目标位置信息之间的差异,修正所述第i+1帧运动更新量,并根据修正后的所述第i+1帧运动更新量获得第i+1帧运动信息;
信息迭代模块,用于继续进行迭代,直至获得对应于所述目标位置信息的第i+n帧运动信息,其中,n为大于1的正整数;
信息确定模块,用于获得包括所述第i帧运动信息至所述第i+n帧运动信息的运动帧序列,其中,所述运动帧序列为所述运动对象针对所述目标位置信息执行目标导向动作的运动信息集合。
在本申请实施例中,所述第i+1帧运动更新量包括第i+1帧对象点位置更新量,所述第i帧运动信息包括第i帧对象点位置信息,所述第i+1帧运动信息包括第i+1帧对象点位置信息;所述信息修正模块,还用于根据所述预估目标位置信息和所述目标位置信息进行向量差计算,获得初始修正向量;基于修正系数调整所述初始修正向量,获得修正向量;采用所述修正向量,修正所述第i+1帧对象点位置更新量后,再将修正后的所述第i+1帧对象点位置更新量与所述第i帧对象点位置信息叠加,获得所述第i+1帧运动信息中的所述第i+1帧对象点位置信息。
在本申请实施例中,所述修正系数与所述运动对象的运动速度正相关。
在本申请实施例中,当所述第i帧对象点位置信息与所述目标位置信息之间的运动距离落在距离范围内时,所述修正系数是根据所述运动距离和所述第i+1帧对象点位置更新量计算得到;当所述运动距离落在所述距离范围外时,所述修正系数为常数。
在本申请实施例中,所述运动对象为虚拟对象时,所述第i+1帧运动信息还包括第i+1帧对象部位位置信息,所述第i+1帧运动更新量还包括第i+1帧对象部位位置相对量;所述信息修正模块,还用于将所述第i+1帧对象部位位置相对量叠加在所述第i+1帧对象点位置信息上,获得第i+1帧对象部位待调整位置信息;将所述第i+1帧对象部位位置相对量和所述第i+1帧对象点位置更新量,均叠加在所述第i帧对象点位置信息上,获得第i+1帧对象部位参考位置信息;基于所述第i+1帧对象部位参考位置信息,调整所述第i+1帧对象部位待调整位置信息,获得所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息。
在本申请实施例中,所述第i+1帧对象部位参考位置信息包括踝参考位置信息和趾参考位置信息,所述第i+1帧待调整对象部位位置信息包括待调整髋位置信息、待调整膝位置信息和待调整踝位置信息;所述信息修正模块,还用于通过旋转所述待调整膝位置信息和所述待调整髋位置信息,将所述待调整踝位置信息,调整至所述踝参考位置信息处,从而确定第i+1帧膝位置信息;将所述第i+1帧膝位置信息、所述待调整髋位置信息、所述踝参考位置信息和所述趾参考位置信息,确定为所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息。
在本申请实施例中,所述信息修正模块,还用于基于所述待调整膝位置信息指向所述待调整踝位置信息的方向、以及所述待调整膝位置信息指向所述待调整髋位置信息的方向,确定膝旋转方向;以所述膝旋转方向为转轴旋转所述待调整膝位置信息,以基于所述待调整髋位置信息和所述踝参考位置信息之间的距离,调整所述待调整踝位置信息;基于所述待调整髋位置信息指向所述踝参考位置信息的方向、以及所述待调整髋位置信息指向调整后的待调整踝位置信息的方向,确定髋旋转方向;以所述髋旋转方向为转轴旋转所述待调整髋位置信息,以将所述目标待调整踝位置信息调整至所述踝参考位置信息处,从而确定出所述第i+1帧膝位置信息。
在本申请实施例中,所述信息预测模块,还用于利用运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测,获得所述运动对象的所述第i+1帧运动更新量和基于所述第i+1帧运动更新量的所述预估目标位置信息,其中,所述运动预测模型用于预测所述运动对象的运动信息。
在本申请实施例中,所述运动信息确定装置还包括模型训练模块,用于获取模型训练样本,其中,所述模型训练样本包括至少一帧运动样本和目标位置样本;利用待训练运动预测模型对所述至少一帧运动样本中的第j帧运动样本和所述目标位置样本进行预测,获得第j+1帧运动信息,其中,所述待训练运动预测模型为待训练的用于预测运动信息的模型,j为大于1的正整数;基于所述第j+1帧运动信息与第j+1帧运动样本之间的差异,训练所述待训练运动预测模型,获得所述运动预测模型。
在本申请实施例中,所述运动信息确定装置还包括模型强化模块,用于获取训练对象的第k帧运动信息和训练位置信息,其中,k为正整数;利用所述运动预测模型对所述第k帧运动信息和所述训练位置信息进行预测,获得所述训练对象的第k+1帧运动更新量和基于所述第k+1帧运动更新量的预估训练位置信息;基于所述预估训练位置信息和所述训练位置信息之间的差异,修正所述第k+1帧运动更新量,并根据修正后的所述第k+1帧运动更新量获得第k+1帧运动信息;基于所述第k帧运动信息和所述第k+1帧运动信息,训练所述运动预测模型,获得强化运动预测模型。
在本申请实施例中,所述信息预测模块,还用于利用所述强化运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测。
在本申请实施例中,所述模型强化模块,还用于将所述第k帧运动信息和所述第k+1帧运动信息添加至包括所述模型训练样本的数据集中;删除所述数据集中满足删除条件的运动信息,获得强化数据集;基于所述强化数据集,训练所述运动预测模型,获得所述强化运动预测模型。
在本申请实施例中,所述运动对象为实体对象时,所述运动信息确定装置还包括运动控制模块,用于基于所述运动帧序列,确定所述实体对象的运动轨迹;控制所述实体对象沿着所述运动轨迹进行运动。
在本申请实施例中,所述信息获取模块,还用于响应于渲染设备发送的动画生成请求,获取所述虚拟对象的所述第i帧运动信息和所述目标位置信息,其中,所述动画生成请求为所述渲染设备接收到目标导向动作执行操作时生成的。
在本申请实施例中,所述动画信息确定装置还包括动画发送模块,用于基于所述运动帧序列,生成目标动作动画;将所述目标动作动画发送至所述渲染设备,以使所述渲染设备播放所述目标动作动画,渲染所述虚拟对象针对所述目标位置信息执行所述目标导向动作的虚拟场景。
本申请实施例提供一种运动信息确定设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的运动信息确定方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的运动信息确定方法。
本申请实施例至少具有以下有益效果:由于基于运动对象的第i帧运动信息和目标位置信息预测出的第i+1帧运动信息,是基于预估目标位置信息和目标位置信息之间的差异修正后再作为确定后续帧的运动信息的依据的;也就是说,第i+1帧运动信息的准确度较高,从而,基于第i+1帧运动信息和目标位置信息迭代出的后续帧运动信息的准确度也较高,因此,能够降低最后一帧运动信息(第i+n帧运动信息)对应的位置与目标位置信息之间的偏差,进而,所确定的运动帧序列的准确度较高,能够提升所确定的运动对象执行目标导向动作的运动信息集合的准确度。
附图说明
图1是一种示例性的训练神经网络模型的流程示意图;
图2是一种示例性的基于神经网络模型生成虚拟对象执行目标导向动作动画的示意图;
图3是本申请实施例提供的运动信息确定系统的一个可选的架构示意图;
图4是本申请实施例提供的图3中的一种服务器的组成结构示意图;
图5是本申请实施例提供的运动信息确定方法的一个可选的流程示意图;
图6是本申请实施例提供的一种示例性的迭代预测修正的流程示意图;
图7是本申请实施例提供的运动信息确定方法的另一个可选的流程示意图;
图8是本申请实施例提供的一种示例性的修正第i+1帧对象点位置更新量的示意图;
图9是本申请实施例提供的一种示例性的逆运动调整的流程示意图;
图10是本申请实施例提供的运动信息确定方法的又一个可选的流程示意图;
图11是本申请实施例提供的运动信息确定方法的再一个可选的流程示意图;
图12是本申请实施例提供的一种示例性的运动信息确定方法;
图13是本申请实施例提供的一种示例性的执行阶段的示意图;
图14是本申请实施例提供的一种示例性的标注动作类型的示意图;
图15是本申请实施例提供的一种示例性的目标动作动画的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三\第四\第五\第六”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三\第四\第五\第六”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)人工智能(Artificial Intelligence,AI):是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
2)机器学习(Machine Learning,ML),是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能;重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习通常包括人工神经网络、置信网络、强化学习、迁移学习和归纳学习等技术。
3)人工神经网络,是一种模仿生物神经网络结构和功能的数学模型,本申请实施例中人工神经网络的示例性结构包括深度神经网络(Deep Neural Networks,DNN)、卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent NeuralNetwork,RNN)、NSM(Neural State Machine,神经状态机)、PFNN(Phase-FunctionedNeural Network,相位函数神经网络)等。
4)数据驱动动画生成技术,一种利用动作序列训练神经网络模型,以及通过神经网络模型生成动画的技术。其中,可以通过身穿带有特制传感器服装的专业动作演员做出需要采集数据的动作(比如走、跑、跳等),来采集动作数据,并将动作数据映射至虚拟对象中,得到动作序列;另外,将动作数据映射至虚拟对象中,是因为专业动作演员与虚拟对象在身高、体型、关节等要素上存在差异。
5)操作,是一种用于触发设备执行处理的方式,比如,点击操作、双击操作、长按操作、滑动操作、手势操作、接收到的触发指令等;另外,在本申请实施例中的各种操作可以是单个操作,又可以是多个操作的总称。
6)响应于,用于表示所执行的处理所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
7)虚拟对象,虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象;该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。另外,虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象,虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
需要说明的是,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
另外,人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
随着人工智能技术的研究和进步,人工智能技术在多个领域展开了研究和应用;例如,常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗和智能客服等;随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。在本申请实施例中,将对人工智能在运动信息确定领域中的应用进行说明。
一般来说,当运动对象为虚拟对象时,为了生成虚拟对象执行目标导向动作的动画,通常是构建一个动画素材库,再基于虚拟对象的运动状态信息和操作指令从动画素材库中匹配出最接近的动画进行播放,以完成虚拟对象执行目标导向动作动画的生成。然而上述生成虚拟对象执行目标导向动作动画的过程中,所匹配出的最接近的动画并不能与虚拟对象执行目标导向的动作较好地对应,并且,所占用的内存空间以及资源计算量会随着动画素材库的增多而线性增长。
另外,为了生成虚拟对象执行目标导向动作的动画,还可以基于数据驱动动画生成技术实现,参加图1和图2。其中,图1是一种示例性的训练神经网络模型的流程示意图;如图1所示,该示例性的训练神经网络模型的流程包括数据采集模块1-1、数据映射模块1-2和模型训练模块1-3。这里,数据采集模块1-1,用于基于专业动作演员1-11身穿带有特制传感器的服装1-12做出的需要采集数据的动作,采集动作数据;数据映射模块1-2,用于将动作数据映射至虚拟对象1-21中,得到动作序列;模型训练模块1-3,用于基于动作序列训练神经网络模型1-31。
图2是一种示例性的基于神经网络模型生成虚拟对象执行目标导向动作动画的示意图;如图2所示,图1中的神经网络模型1-31的输入包括操作指令2-1和虚拟对象的当前帧的运动状态信息2-2,神经网络模型1-31的输出为预测出的虚拟对象下一帧的运动状态信息2-3。
然而,上述生成虚拟对象执行目标导向动作的动画的过程中,神经网络模型输出的最后一帧运动信息的位置往往与目标位置存在偏差。这是因为,运动对象的运动信息一直在变,从而输入至神经网络模型的信息也是一直在变化的,导致了误差的累积;在误差的累积下,导致生成的动画中最后一帧运动信息的位置没有落在给定的目标位置上。
基于此,本申请实施例提供一种运动信息确定方法、装置、设备和计算机可读存储介质,能够降低最后一帧运动信息对应的位置与目标位置信息之间的偏差,进而,能够提升所生成的执行目标导向动作的运动信息的准确度。
下面,说明本申请实施例提供的运动信息确定设备的示例性应用,本申请实施例提供的运动信息确定设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明运动信息确定设备实施为服务器时的示例性应用。
参见图3,图3是本申请实施例提供的运动信息确定系统的一个可选的架构示意图;如图3所示,为支撑一个运动信息确定应用,在运动信息确定系统100中,终端200-1(渲染设备)和终端200-2(实体对象)通过网络300连接服务器400(运动信息确定设备),网络300可以是广域网或者局域网,又或者是二者的组合。另外,在运动信息确定系统100中,还包括数据库500,用于向服务器400提供数据支持。
服务器400,用于获取运动对象的第i帧运动信息和目标位置信息(针对终端200-1,第i帧运动信息和目标位置信息的获取,是通过响应终端200-1通过网络300发送的动画生成请求而触发的),其中,i为正整数;基于第i帧运动信息和目标位置信息,预测运动对象的第i+1帧运动更新量和基于第i+1帧运动更新量的预估目标位置信息;基于预估目标位置信息和目标位置信息之间的差异,修正第i+1帧运动更新量,并根据修正后的第i+1帧运动更新量获得第i+1帧运动信息;继续进行迭代,直至获得对应于目标位置信息的第i+n帧运动信息,其中,n为大于1的正整数;获得包括第i帧运动信息至第i+n帧运动信息的运动帧序列,其中,运动帧序列为运动对象针对目标位置信息执行目标导向动作的运动信息集合。还用于通过网络300向终端200-1发送基于运动帧序列生成的目标动作动画,或者通过网络300向终端200-2发送基于运动帧序列确定运动控制指令。
终端200-1,用于响应于接收到的目标导向动作执行操作,通过网络300向服务器400发送动画生成请求。还用于通过网络300接收服务器400发送的目标动作动画,播放目标动作动画,渲染虚拟对象针对目标位置信息执行目标导向动作的虚拟场景200-11。
终端200-2,用于通过网络300接收服务器400发送的运动控制指令,并基于运动控制指令进行运动。
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能游戏机等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
参见图4,图4是本申请实施例提供的图3中的一种服务器的组成结构示意图,图4所示的服务器400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。服务器400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的运动信息确定装置可以采用软件方式实现,图4示出了存储在存储器450中的运动信息确定装置455,其可以是程序和插件等形式的软件,包括以下软件模块:信息获取模块4551、信息预测模块4552、信息修正模块4553、信息迭代模块4554、信息确定模块4555、模型训练模块4556、模型强化模块4557、运动控制模块4558和动画发送模块4559,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的运动信息确定装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的运动信息确定方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面,将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的运动信息确定方法。
参见图5,图5是本申请实施例提供的运动信息确定方法的一个可选的流程示意图,将结合图5示出的步骤进行说明。
S501、获取运动对象的第i帧运动信息和目标位置信息。
在本申请实施例中,在能够触发执行目标导向动作的应用场景中,用户针对运动对象触发执行目标导向动作的操作(比如,在虚拟场景中触发躲掩体控件的操作,或者在控制智能设备运动场景中触发运动按钮的操作等)时,运动信息确定设备响应于该操作,进行运动对象的运动状态的获取,也就获得了运动对象的第i帧运动信息;另外,运动信息确定设备还能够获取到运动对象执行目标导向动作所对应的位置,即目标位置信息。其中,i为正整数。
需要说明的是,运动对象是可移动的对象,可以是虚拟场景中的虚拟对象,比如,游戏角色,人机交互场景中的互动对象等;还可以是实体场景中的实体对象,比如,智能机器人等智能设备;本申请实施例对此不作具体限定。第i帧运动信息为运动对象当前帧的运动信息,比如,运动对象的位置和速度信息、各关节的位置和速度信息、运动轨迹的相关信息、以及周围地形数据等。目标位置信息与目标导向动作是对应的;比如,当目标导向动作为躲掩体动作时,目标位置信息为掩体附近;又比如,当目标导向动作为坐在椅子上的动作时,目标位置信息为椅子面;通常,目标位置信息是在触发执行目标导向动作的操作时给定的。另外,能够触发执行目标导向动作的应用场景,比如为虚拟对象位于掩体(虚拟场景中的墙、石像、大树等)和摄像头之间的应用场景,又比如为智能设备与目标导向动作对应的对象(快递、水杯等)存在预设距离的应用场景。
S502、基于第i帧运动信息和目标位置信息,预测运动对象的第i+1帧运动更新量和基于第i+1帧运动更新量预估目标位置信息。
在本申请实施例中,运动信息确定设备获得了运动对象的第i帧运动信息和目标位置信息之后,基于第i帧运动信息和目标位置信息,预测运动对象的第i+1帧的运动状态(位置和姿态等),也就获得了第i+1帧运动更新量;另外,运动信息确定设备基于第i帧运动信息和目标位置信息,还能够预测出运动对象执行目标导向动作时所对应的位置,也就获得了预估目标位置信息,比如,预测出的坐在椅子上的位置,预测出的躲掩体时所躲的位置。
需要说明的是,第i+1帧为第i帧的后一帧。
这里,运动信息确定设备可以通过网络模型实现第i+1帧运动更新量和预估目标位置信息的预测;还可以通过分析第i帧运动信息,确定运动对象针对目标位置信息的第i+1帧的运动更新量,实现第i+1帧运动更新量和预估目标位置信息的预测;本申请实施例对此不作具体限定。
S503、基于预估目标位置信息和目标位置信息之间的差异,修正第i+1帧运动更新量,并根据修正后的第i+1帧运动更新量获得第i+1帧运动信息。
在本申请实施例中,预估目标位置信息表征了依据第i帧运动信息和第i+1帧运动更新量所对应的运动趋势运动下去,虚拟对象最终到达的位置;因此,运动信息确定设备获得了预估目标位置信息之后,将预估目标位置信息和目标位置信息进行对比,以获取预估目标位置信息和目标位置信息之间的差异。从而,运动信息确定设备基于预估目标位置信息和目标位置信息之间的差异修正第i+1帧运动更新量,以使修正后的第i+1帧运动更新量对应的运动趋势与目标位置信息更接近;这里,修正后的下一帧运动更新量叠加在第i帧运动信息上,也就获得了即目标第i+1帧运动信息。
需要说明的是,第i+1帧运动信息为确定出的运动对象在第i+1帧时的运动信息,故,运动信息确定设备在获得了第i+1帧运动信息之后,可以基于第i+1帧运动信息确定运动对象在第i+1帧的运动状态;这里,当运动对象为虚拟对象时,第i+1帧运动信息用于渲染虚拟对象在第i+1帧的运动状态,并且,运动信息确定设备可以将第i+1帧运动信息发送至渲染设备进行渲染,还可以通过自身进行渲染,本申请实施例对此不作具体限定。另外,预估目标位置信息和目标位置信息之间的差异,可以是距离数量值,还可以是矢量,又可以是方向,本申请实施例对此不作具体限定。
S504、继续进行迭代,直至获得对应于目标位置信息的第i+n帧运动信息。
在本申请实施例中,运动信息确定设备获得了第i+1帧运动信息之后,与基于第i帧运动信息和目标位置信息预测第i+1帧运动更新量的过程类似,基于第i+1帧运动信息和目标位置信息,继续预测第i+2帧的运动更新量和第i+2帧对应的第i+2帧预估目标位置信息;并基于第i+2帧预估目标位置信息与目标位置信息之间的差异修正第i+2帧的运动更新量,得到第i+2帧运动信息;再继续将第i+2帧运动信息作为预测运动对象的运动信息的输入数据,直至获得对应于目标位置信息的第i+n帧运动信息(最后一帧运动信息)时,结束迭代流程。其中,运动信息确定设备获得的对应于目标位置信息的第i+n帧运动信息,与目标位置信息之间的位置信息差异最小,且运动对象通过第i+n帧运动信息能够到达目标位置信息;n为大于1的正整数。
S505、获得包括第i帧运动信息至第i+n帧运动信息的运动帧序列。
在本申请实施例中,运动信息确定设备获得了第i+n帧运动信息之后,将第i帧运动信息、第i+1帧运动信息、第i+2帧运动信息、……、第i+n帧运动信息组合,也就获得了运动帧序列。其中,运动帧序列为运动对象针对目标位置信息执行目标导向动作的运动信息集合。
需要说明的是,如果第i+1帧运动信息为最后一帧运动信息,即第i+1帧运动信息对应于目标位置信息时,则运动信息确定设备得到第i+1帧运动信息之后,也就获得了运动帧序列;此时,运动帧序列包括第i帧运动信息和第i+1帧运动信息。而如果第i+1帧运动信息不为目标最后一帧运动信息,则运动信息确定设备执行S504和S505。
参见图6,图6是本申请实施例提供的一种示例性的迭代获取运动信息的流程示意图;如图6所示,运动信息确定设备基于第i帧运动信息6-11和目标位置信息6-21预测出第i+1帧运动更新量6-121和预估目标位置信息6-22,基于目标位置信息6-21和预估目标位置信息6-22之间的差异对第i+1帧运动更新量6-121进行修正,得到第i+1帧运动信息6-122;接着,运动信息确定设备基于第i+1帧运动信息6-122和目标位置信息6-21预测出第i+2帧运动更新量6-131和第i+2帧预估目标位置信息6-23,基于目标位置信息6-21和第i+2帧预估目标位置信息6-23之间的差异对第i+2帧运动更新量6-131进行修正,得到第i+2帧运动信息6-132;如此迭代,直至运动信息确定设备完成对最后一帧运动更新量6-1m1(第i+n帧运动更新量)的修正,得到最后一帧运动信息6-1m2(第i+n帧运动信息);其中,m为大于2的整数。
可以理解的是,由于基于运动对象的第i帧运动信息和目标位置信息预测出的第i+1帧运动信息,是基于预估目标位置信息和目标位置信息之间的差异修正后再作为确定后续帧的运动信息的依据的;也就是说,第i+1帧运动信息的准确度较高,从而,基于目第i+1帧运动信息和目标位置信息迭代出的后续帧运动信息的准确度也较高,因此,能够降低最后一帧运动信息对应的位置与目标位置信息之间的偏差,进而,能够提升所生成的执行目标导向动作的运动帧序列的准确性。
在本申请实施例中,第i+1帧运动更新量包括第i+1帧对象点位置更新量,第i帧运动信息包括第i帧对象点位置信息;第i+1帧对象点位置更新量为第i+1帧时运动对象对应的点(比如,运动对象的重心、运动对象的中心等)相对于第i帧对象点位置信息的位置更新量,第i帧对象点位置信息为第i帧时运动对象对应的点的位置信息。此时,参见图7,图7是本申请实施例提供的运动信息确定方法的另一个可选的流程示意图;如图7所示,S503可通过S5031-S5033实现;也就是说,运动信息确定设备基于预估目标位置信息和目标位置信息之间的差异,修正第i+1帧运动更新量,并根据修正后的第i+1帧运动更新量获得第i+1帧运动信息,包括S5031-S5033,下面对各步骤分别进行说明。
S5031、根据预估目标位置信息和目标位置信息进行向量差计算,确定初始修正向量。
在本申请实施例中,预估目标位置信息和目标位置信息之间的差异,指预估目标位置信息与目标位置信息之间的向量差,这里,称为初始修正向量;且该初始修正向量对应的方向为预估目标位置信息指向目标位置信息的方向。
S5032、基于修正系数调整初始修正向量,获得修正向量。
需要说明的是,运动信息确定设备中预先设置有修正系数,或者,运动信息确定设备能够获得修正系数;该修正系数可以是系数阈值,还可以是基于确定的运动信息动态变化的,本申请实施例对此不作具体限定。
在本申请实施例中,运动信息确定设备基于修正系数调整初始修正向量,调整后的初始修正向量即修正向量;这里,运动信息确定设备所采用的调整方式可以为相乘、相除等计算方式,以获取小于初始修正向量的修正向量。另外,修正向量和初始修正向量在方向上一致,此时,运动信息确定设备基于修正系数对初始修正向量进行调整,调整的为初始修正向量的大小。
S5033、采用修正向量,修正第i+1帧对象点位置更新量后,再将修正后的第i+1帧对象点位置更新量与第i帧对象点位置信息叠加,获得第i+1帧运动信息中的第i+1帧对象点位置信息。
需要说明的是,运动信息确定设备基于修正向量对第i+1帧对象点位置更新量进行修正,再将修正后的第i+1帧对象点位置更新量与第i帧对象点位置信息叠加,也就得到了第i+1帧对象点位置信息;比如,运动信息确定设备可以将修正向量与第i+1帧对象点位置更新量相乘实现,还可以是其他的结合方式,本申请实施例对此不作具体限定。这里,运动信息确定设备基于预估目标位置信息和目标位置信息之间的差异所修正的对象为第i+1帧运动信息中的第i+1帧对象点位置更新量。
继续参见图7,在本申请实施例中,运动对象为虚拟对象时,第i+1帧运动更新量还包括第i+1帧对象部位位置相对量,第i+1帧对象部位位置相对量为运动对象的对象部位(比如,运动对象的各个关节)相对于第i+1帧对象点位置信息的相对位置信息;此时,运动信息确定设备还需要对虚拟对象的下半身进行调整,故,S5033可通过S50331-S50333实现;也就是说,运动信息确定设备获得第i+1帧运动信息中的第i+1帧对象点位置信息,包括S50331-S50333,下面对各步骤分别进行说明。
S50331、将第i+1帧对象部位位置相对量叠加在第i+1帧对象点位置信息上,获得第i+1帧对象部位待调整位置信息。
需要说明的是,由于第i+1帧对象点位置更新量和第i+1帧对象部位位置相对量是互相匹配的,且第i+1帧对象部位位置相对量为相对于第i+1帧对象点位置更新量所确定的位置的相对位置信息;因此,修正第i+1帧对象点位置更新量获得的修正后的第i+1帧对象点位置更新量,与第i+1帧对象部位位置相对量将不再互相匹配;当直接基于修正后的第i+1帧对象点位置更新量和第i+1帧对象部位位置相对量渲染运动对象的第i+1帧的动作时,会出现滑步现象(被拖拽平移、脚掌在地面滑步的现象);从而,运动信息确定设备还需要对第i+1帧对象部位位置相对量进行调整。
在本申请实施例中,运动信息确定设备先确定第i+1帧对象点位置更新量和目标第i+1帧对象点位置更新量分别所对应的世界坐标系中位置,再基于第i+1帧对象点位置更新量和目标第i+1帧对象点位置更新量分别所对应的世界坐标系中位置之间的差异调整第i+1帧对象部位位置相对量,以使调整后的第i+1帧对象部位位置相对量与目标第i+1帧对象点位置更新量互相匹配。这里,由于第i+1帧对象部位位置相对量为运动对象的对象部位(比如,运动对象的各个关节)相对于第i+1帧对象点位置信息的相对信息,从而,运动信息确定设备将第i+1帧对象部位位置相对量叠加在第i+1帧对象点位置信息上,也就获得了一套修正后的运动对象在第i+1帧时的对象部位的位置信息;从这一套修正后的运动对象在第i+1帧时的对象部位的位置信息中,获取待调整的对象部位的位置信息,也就获得了第i+1帧对象部位待调整位置信息。
S50332、将第i+1帧对象部位位置相对量和第i+1帧对象点位置更新量,均叠加在第i帧对象点位置信息上,获得第i+1帧对象部位参考位置信息。
需要说明的是,运动信息确定设备将第i+1帧对象点位置信息叠加在第i帧对象点位置信息上,也就得到未修正的第i+1帧的对象点位置信息;接着,运动信息确定设备将第i+1帧对象部位位置相对量,叠加在未修正的第i+1帧的对象点位置信息上,也就获得了另一套未修正的运动对象在第i+1帧时的对象部位的位置信息,从这一套未修正的运动对象在第i+1帧时的对象部位的位置信息中,获取关于脚步的位置信息,也就获得了第i+1帧对象部位参考位置信息。
S50333、基于第i+1帧对象部位参考位置信息,调整第i+1帧对象部位待调整位置信息,获得第i+1帧运动信息中的第i+1帧对象部位位置信息。
需要说明的是,为了解决滑步问题,运动信息确定设备需要将第i+1帧对象部位待调整位置信息进行逆运动调整至第i+1帧对象部位参考位置信息处;从而,运动信息确定设备完成调整之后,也就得到了第i+1帧对象部位位置信息。这里,当第i+1帧对象部位待调整位置信息为第i+1帧对象部位位置相对量对应的部分对象部位的位置信息,则调整后的第i+1帧对象部位待调整位置信息结合未调整的剩余对象部位的位置信息,才能够得到第i+1帧对象部位位置信息。此时,第i+1帧运动信息包括第i+1帧对象点位置信息和第i+1帧对象部位位置信息。
可以理解的是,通过修正获得的第i+1帧对象点位置信息,对第i+1帧对象部位位置相对量进行逆运动调整,使得调整后的第i+1帧对象部位位置相对量与第i+1帧对象点位置信息相互匹配;解决了出现滑步现象的问题,提升了所生成的运动帧序列的准确度。
在本申请实施例中,S5032之前还包括S5034;也就是说,运动信息确定设备基于第i帧运动信息对应的当前帧对象点位置信息与第i+1帧运动信息对应的第i+1帧对象点位置信息之间的距离、以及当前帧对象点位置信息与目标位置信息之间的距离,确定修正量之前,该运动信息确定方法还包括S5034,下面对该步骤进行说明。
在本申请实施例中,修正系数与运动对象的运动速度正相关。也就是说,运动对象的运动速度越快,修正系数越大;运动对象的运动速度越慢,修正系数越小。
在本申请实施例中,修正系数是基于第i帧对象点位置信息与目标位置信息之间的运动距离、第i+1帧对象点位置更新量和运动速度确定的;并且,当第i帧对象点位置信息与目标位置信息之间的运动距离落在距离范围内时,修正系数是根据运动距离和第i+1帧对象点位置更新量计算得到;当运动距离落在距离范围外时,修正系数为常数,并且此时,在一些实施例中,修正系数趋于0。
需要说明的是,运动信息确定设备预先设置了距离范围,或者运动信息确定设备能够获取到距离范围,该距离范围由最小距离阈值和最大距离阈值所对应的距离范围确定的。在第i帧对象点位置信息与目标位置信息之间的运动距离,落在距离范围内时,表明第i帧时刻,运动对象与目标位置信息之间的距离不太远也不太近;此时,运动信息确定设备基于运动速度、运动距离、以及第i+1帧对象点位置更新量确定修正系数。而在运动距离,落在预设距离范围外时,表明第i帧时刻,运动对象与目标位置信息之间的距离太远或太近;由于运动对象与目标位置信息之间的距离太远时,没必要对第i+1帧对象点位置更新量进行修正,而运动对象与目标位置信息之间的距离太近时,对第i+1帧对象点位置更新量的修正会使得虚拟对象的运行效果不自然;因此,此时,运动信息确定设备基于运动速度确定修正系数。
这里,运动距离落在距离范围内时所获得的修正系数,大于运动距离落在距离范围外时所获得的修正系数。
示例性地,参见图8,图8是本申请实施例提供的一种示例性的确定修正系数的示意图;如图8所示,当目标导向动作为躲掩体动作时,掩体8-1处的G点为目标位置信息,P点为预估目标位置信息,A点为第i帧对象点位置信息,F为第i+1帧对象点位置信息;另外,各点处的虚线箭头所指的方向为运动对象的朝向。
基于图8,修正系数可通过式(1)获得,式(1)为:
其中,k为修正系数;为预估目标位置信息和目标位置信息之间的距离差异;为第i+1帧对象点位置更新量对应的值,为第i帧对象点位置信息与目标位置信息之间的运动距离,α为与运动对象的运动速度成正相关的参数;其中,落在距离范围内时,k为 落在距离范围外时,k为是趋于0的。易知,初始修正向量为修正向量量为
可以理解的是,运动信息确定设备基于第i帧对象点位置信息与目标位置信息之间的运动距离的大小,动态地确定对第i+1帧对象点位置更新量的修正程度,使得在确保动画质量的基础上能够精准地执行目标导向动作。
在本申请实施例中,第i+1帧对象部位参考位置信息包括踝参考位置信息和趾参考位置信息,第i+1帧待调整对象部位位置信息包括待调整髋位置信息、待调整膝位置信息和待调整踝位置信息;其中,踝参考位置信息为待参考的踝的位置信息,趾参考位置信息为待参考的趾的位置信息,待调整髋位置信息为待调整的髋的位置信息,待调整膝位置信息为待调整的膝的位置信息,待调整踝位置信息为待调整的踝的位置信息。此时,S50333可通过S503331和S503332;也就是说,运动信息确定设备基于第i+1帧对象部位参考位置信息,调整第i+1帧对象部位待调整位置信息,获得第i+1帧运动信息中的第i+1帧对象部位位置信息,包括S503331和S503332,下面对各步骤分别进行说明。
S503331、通过旋转待调整膝位置信息和待调整髋位置信息,将待调整踝位置信息,调整至踝参考位置信息处,从而确定第i+1帧膝位置信息。
需要说明的是,运动信息确定设备通过逆运动调整,通过调整待调整膝位置信息和待调整髋位置信息,以将待调整踝位置信息,调整至踝参考位置信息处,也就确定出了待调整膝位置信息对应的目标膝位置信息。
S503332、将第i+1帧膝位置信息、待调整髋位置信息、踝参考位置信息和趾参考位置信息,确定为第i+1帧运动信息中的第i+1帧对象部位位置信息。
在本申请实施例中,S503331可通过S5033311-S5033314实现;也就是说,运动信息确认设备通过旋转待调整膝位置信息和待调整髋位置信息,将待调整踝位置信息,调整至踝参考位置信息处,从而确定第i+1帧膝位置信息,包括S5033311-S5033314,下面对各步骤分别进行说明。
S5033311、基于待调整膝位置信息指向待调整踝位置信息的方向、以及待调整膝位置信息指向待调整髋位置信息的方向,确定膝旋转方向。
需要说明的是,运动信息确定设备将待调整膝位置信息指向待调整踝位置信息的方向,以及待调整膝位置信息指向待调整髋位置信息的方向,之间的叉乘结果确定的方向,确定为膝旋转方向。
S5033312、以膝旋转方向为转轴旋转待调整膝位置信息,以基于待调整髋位置信息和踝参考位置信息之间的距离,调整待调整踝位置信息。
需要说明的是,运动信息确定设备先进行膝关节的旋转,从而,运动信息确定设备基于膝旋转方向旋转待调整膝位置信息:在待调整髋位置信息、待调整膝位置信息和待调整踝位置信息所形成的平面中,以膝旋转方向为转轴旋转待调整膝位置信息,以调整待调整踝位置信息,以使待调整髋位置信息与调整后的待调整踝位置信息之间的距离,与待调整髋位置信息和踝参考位置信息之间的距离相等。
在本申请实施例中,当待调整髋位置信息和待调整膝位置信息之间的距离,以及待调整膝位置信息和待调整踝位置信息之间的距离,组成的距离之和,小于待调整髋位置信息和踝参考位置信息之间的距离时,是由于修正系数过大导致的,可调低修正系数(比如,调整式(1)中的α),以使组成的距离之和,大于或等于待调整髋位置信息和踝参考位置信息之间的距离,此时,再执行S50333。
S5033313、基于待调整髋位置信息指向踝参考位置信息的方向、以及待调整髋位置信息指向调整后的待调整踝位置信息的方向,确定髋旋转方向。
在本申请实施例中,运动信息确定设备完成待调整膝位置信息的调整之后,开始对髋关节进行调整,即对待调整髋位置信息进行调整。这里,运动信息确定设备将待调整髋位置信息指向踝参考位置信息的方向、以及待调整髋位置信息指向目标待调整踝位置信息的方向,之间的叉乘结果确定的方向,确定为髋旋转方向。
S5033314、以髋旋转方向为转轴旋转待调整髋位置信息,以将目标待调整踝位置信息调整至踝参考位置信息处,从而确定出第i+1帧膝位置信息。
需要说明的是,运动信息确定设备最后进行踝关节的调整,即以髋旋转方向旋转待调整髋位置信息,以将目标待调整踝位置信息旋转至踝参考位置信息处,此时,带动膝关节的位置发生变化,也就确定出了第i+1帧膝位置信息。
示例性地,参见图9,图9是本申请实施例提供的一种示例性的逆运动调整的流程示意图;如图9所示,位置状态9-1中,点B、点C、点D、点E、点H和点T,依次分别为待调整髋位置信息、待调整膝位置信息、待调整踝位置信息、待调整趾位置信息、踝参考位置信息和趾参考位置信息。运动信息确定设备基于点H和点T,对点B、点C、点D和点E进行调整,以使DE停留在HT处;另外,位置状态9-1为斜二测示意图,其中的任意4点不一定共面。这里,位置状态9-1向位置状态9-2的调整过程,对应于膝关节的调整:在三角形BCD中,通过余弦定理确定出角BCD的角度θ1,由于是通过将点D在BCD所形成的平面中绕着点C旋转至位置状态9-2中点D’(目标待调整踝位置信息),且使得点B和点D’之间的距离,等于点B和点H之间的距离(待调整髋位置信息和踝参考位置信息之间的距离);此时,点C旋转的转轴为对应的方向(膝旋转方向),转角为θ2-θ1,其中,θ2为通过余弦定理确定出位置状态9-2中的角BCD’的角度;另外,经过膝关节的调整,点E转至了点E’处。
位置状态9-2向位置状态9-3的调整过程,对应于髋关节的调整:在三角形BHD’中,通过余弦定理确定出角HBD’的角度θ3,从而,将点B以方向为转轴,θ3为转角进行旋转,使得D’调整至了点D”处,即点H处,以及使得点E’调整至了点E”处。需要说明的是,还可以将三角形BC’D”根据需要绕着轴BD”旋转适当角度。另外,之所以对膝关节和髋关节有不同的处理方式,是因为考虑到膝关节是作为一个轴关节来运动的,而髋关节则可以作为球关节来运动。
位置状态9-3向位置状态9-4的调整过程,对应于踝关节的调整:将点E”调整至点E”’处,即点T处。另外,考虑到运动对象的脚掌具有宽度,且踝关节也可以被作为一个球关节,因此,还可以通过令D”E”’绕着D”E”’自己旋转,达到脚掌掌面与地面重合的效果。
可以理解的是,在运动帧序列的每一帧中,通过对对象点位置更新量的调整,以及紧接着对下半身关节(第i+1帧待调整对象部位位置信息)进行逆运动调整,能够实现运动对象在执行目标导向动作时候的脚步自动规划调整,最终为运动对象确定出精准地在指定的位置(目标位置信息)处执行目标导向动作的运动信息。
参见图10,图10是本申请实施例提供的运动信息确定方法的又一个可选的流程示意图;如图10所示,在本申请实施例中,S502可通过S5021实现;也就是说,运动信息确定设备基于第i帧运动信息和目标位置信息,预测运动对象的第i+1帧运动更新量和基于第i+1帧运动更新量的预估目标位置信息,包括S5021,下面对该步骤进行说明。
S5021、利用运动预测模型对第i帧运动信息和目标位置信息进行预测,获得运动对象的第i+1帧运动更新量和基于第i+1帧运动更新量的预估目标位置信息。
需要说明的是,运动信息确定设备基于第i帧运动信息和目标位置信息,预测虚拟对象的第i+1帧运动信息和预估目标位置信息时,可通过网络模型实现;该网络模型这里称为运动预测模型,以及,运动预测模型用于预测运动对象的运动信息。
在本申请实施例中,S5021之前还包括S5022-S5024;也就是说,运动信息确定设备利用运动预测模型对第i帧运动信息和目标位置信息进行预测之前,该运动信息确定方法还包括S5022-S5024,下面对各步骤分别进行说明。
S5022、获取模型训练样本,其中,模型训练样本包括至少一帧运动信息样本和目标位置信息样本。
需要说明的是,模型训练样本为用于训练用于预测运动对象的运动信息的网络模型的数据集。
S5023、利用待训练运动预测模型对至少一帧运动样本中的第j帧运动样本和目标位置样本进行预测,获得第j+1帧运动信息。
需要说明的是,待训练运动预测模型为待训练的用于预测运动信息的网络模型;运动信息确定设备将至少一帧运动信息中的任一帧运动信息样本(第j帧运动样本)输入至待训练运动预测模型中,所获得的输出即第j+1帧运动信息。
S5024、基于第j+1帧运动信息与第j+1帧运动样本之间的差异,训练待训练运动预测模型,获得运动预测模型。
需要说明的是,基于第j+1帧运动信息与第j+1帧运动样本之间的差异,迭代训练待训练运动预测模型,直至满足训练截止条件时,停止训练,也就得到了运动预测模型。运动预测模型即迭代训练后的待训练运动预测模型;训练截止条件可以是第j+1帧运动信息样本,与第j+1帧运动信息之间的差异小于差异阈值,还可以是达到预设训练次数,等等,本申请实施例对此不作具体限定。
在本申请实施例中,S5022可通过S50221-S50223实现;也就是说,运动信息确定设备获取模型训练样本,包括S50221-S50223,下面对各步骤分别进行说明。
S50221、基于目标导向动作的动作执行阶段,获取目标导向动作数据。
需要说明的是,目标导向动作数据为采集到的执行目标导向动作的运动信息,动作执行阶段包括准备前阶段、准备阶段、执行阶段、动作中阶段和退出阶段中的一种或多种。其中,准备前阶段为运动对象开始抬起第一只脚奔跑之前的阶段,准备阶段为运动对象开始抬起第一只脚奔跑至执行目标导向动作前的倒数第t步的脚落地的阶段,执行阶段为运动对象执行目标导向动作前的倒数第t-1步的脚抬起至最后一步脚落地的阶段,动作中阶段为运动对象保持目标导向动作的阶段,退出阶段为运动对象由静止不动起身进入下一动作的阶段;t为大于等于2的正整数。
S50222、将目标导向动作数据映射为运动对象运动信息。
需要说明的是,由于专业动作演员身高、体型、关节数目等要素与运动对象存在差异,因此,运动信息确定设备将采集到的动作序列即目标导向动作数据映射到运动对象中,也就得到了运动对象运动信息。
S50223、对运动对象运动信息进行标注,得到包括至少一帧运动信息样本和目标位置信息样本的模型训练样本。
需要说明的是,标注是指对运动对象运动信息进行格式转换的过程,通过标注,提升数据的规范化,也就能够提升运动帧序列的准确度。
在本申请实施例中,S50223可通过S502231-S502235实现;也就是说,运动信息确定设备对运动对象运动信息进行标注,得到包括至少一帧运动信息样本和目标位置信息样本的模型训练样本,包括S502231-S502235,下面对各步骤分别进行说明。
S502231、基于运动对象运动信息中的每帧运动信息,确定对象部位信息、初始运动轨迹信息和初始对象点信息,其中,对象部位信息包括踝趾位置信息,初始对象点信息包括对象点位置信息。
需要说明的是,运动对象运动信息为运动信息的帧序列,针对每帧运动信息,能够确定对应的对象部位信息、初始运动轨迹信息和初始对象点信息。其中,对象部位信息为运动对象的骨骼关节信息,比如,位置、速度和方向等;初始运动轨迹信息为运动对象的运动轨迹信息,比如,位置、地形信息和方向等;初始对象点信息为将运动对象作为整体(比如,运动对象的重心)的信息,比如,位置和方向等。
还需要说明的是,由于对象部位信息为运动对象的骨骼关节信息,从而,运动信息确定设备能够从对象部位信息中获取到表征脚步的位置,即踝趾位置信息;而对象点位置信息为将运动对象作为整体时,运动对象所处的位置。
S502232、基于对象点位置信息与预设动作点的对应关系,分别标注初始运动轨迹信息和初始对象点信息的动作类型,得到包括动作类型的运动轨迹信息和包括动作类型的对象点信息。
需要说明的是,预设动作点是基于动作执行阶段确定的,可以是预设动作点中的每个动作点为动作执行阶段中每个阶段的分界点,也可以是预设动作点中的多个动作点属于动作执行阶段中一个阶段,等等,本申请实施例对此不作具体限定。
S502233、基于踝趾位置信息与预设相位段的对应关系,标注相位信息。
需要说明的是,预设相位段是基于运动周期确定的,从而基于标注的相位信息,就能够确定当前帧对应的为运动周期的位置;比如,相位信息可以用于标定左脚和右脚。这里,运动周期指虚拟对象进行运动时对应的最小运动单位,比如,当运动对象为虚拟人物时,运动周期为左脚右脚左脚或右脚左脚右脚。
S502234、将对象部位信息、运动轨迹信息、对象点信息和相位信息,组合为一帧运动信息样本,从而得到至少一帧运动信息样本。
需要说明的是,至少一帧运动信息样本中的每帧运动信息样本,均包括对象部位信息、运动轨迹信息、对象点信息和相位信息。
S502235、基于运动对象运动信息获取目标位置信息样本,从而得到包括至少一帧运动信息样本和目标位置信息样本的模型训练样本。
需要说明的是,由于运动对象运动信息为运动对象执行目标导向动作的训练数据,而目标导向动作对应于终点位置,运动信息确定设备获取该终点位置,也就获得了目标位置信息样本。
在本申请实施例中,S502232可通过S5022321-S5022323实现;也就是说,运动信息确定设备基于对象点位置信息与预设动作点的对应关系,分别标注初始运动轨迹信息和初始对象点信息的动作类型,包括S5022321-S5022323,下面对各步骤分别进行说明。
S5022321、当对象点位置信息与预设动作点中的第一动作点对应,或者对象点位置信息与预设动作点中的第六动作点对应时,标注初始运动轨迹信息和初始对象点信息的动作类型为站立类型。
需要说明的是,第一动作点为准备前阶段和准备阶段的分界点;第六动作点为退出阶段之后的阶段。
S5022322、当对象点位置信息与预设动作点中的第二动作点对应,或者对象点位置信息与预设动作点中的第三动作点对应时,标注初始运动轨迹信息和初始对象点信息的动作类型为奔跑类型。
需要说明的是,第二动作点属于准备阶段;第三动作点为准备阶段和执行阶段的分界点。
S5022323、当对象点位置信息与预设动作点中的第四动作点对应,或者对象点位置信息与预设动作点中的第五动作点对应时,标注初始运动轨迹信息和初始对象点信息的动作类型为执行类型。
需要说明的是,第四动作点为执行阶段和动作中阶段的分界点;第五动作点为动作中阶段和退出阶段的分界点。
在本申请实施例中,当对象点位置信息与,第一动作点之前的阶段对应时,则标注动作类型为站立类型;当对象点位置信息与,第一动作点与第二动作点之间的阶段对应,则标注动作类型为站立类型和奔跑类型;当对象点位置信息与,第二动作点与第三动作点之间的阶段对应,则标注动作类型为奔跑类型;当对象点位置信息与,第三动作点与第四动作点之间的阶段对应,则标注动作类型为奔跑类型和执行类型;当对象点位置信息与,第四动作点与第五动作点之间的阶段对应,则标注动作类型为执行类型;当对象点位置信息与,第五动作点与第六动作点之间的阶段对应,则标注动作类型为站立类型。
在本申请实施例中,S502233可通过S5022331和S5022332实现;也就是说,运动信息确定设备基于踝趾位置信息与预设相位段的对应关系,标注相位信息,包括S5022331和S5022332,下面对各步骤分别进行说明。
S5022331、当踝趾位置信息对应于左脚落地到右脚落地的阶段时,得到包括第一子运动周期相位的相位信息。
需要说明的是,第一子运动周期相位是基于运动周期确定的,且第一子运动周期相位对应于运动周期中的前半周期,比如,0至π。
S5022332、当踝趾位置信息对应于右脚落地到左脚落地的阶段时,得到包括第二子运动周期相位的相位信息。
需要说明的是,第二子运动周期相位是基于运动周期确定的,且第二子运动周期相位对应于运动周期中的后半周期,比如,π至2π。
在本申请实施例中,S5024之后还包括S5025-S5028;也就是说,运动信息确定设备得到运动预测模型之后,该运动信息确定方法还包括S5025-S5028,下面对各步骤分别进行说明。
S5025、获取训练对象的第k帧运动信息和训练位置信息。
需要说明的是,S5025对应的实现过程的描述与S501对应的实现过程描述类似,本申请实施例在此不再赘述;其中,k为正整数。
S5026、利用运动预测模型对第k帧运动信息和训练位置信息进行预测,获得训练对象的第k+1帧运动更新量和基于第k+1帧运动更新量的预估训练位置信息。
需要说明的是,S5026对应的实现过程的描述与S502对应的实现过程描述类似,本申请实施例在此不再赘述。
S5027、基于预估训练位置信息和训练位置信息之间的差异,修正第k+1帧运动更新量,并根据修正后的第k+1帧运动更新量获得第k+1帧运动信息。
需要说明的是,S5027对应的实现过程的描述与S503对应的实现过程描述类似,本申请实施例在此不再赘述。
S5028、基于第k帧运动信息和第k+1帧运动信息,训练运动预测模型,获得强化运动预测模型。
需要说明的是,S5028对应的实现过程的描述与S504对应的实现过程描述类似,本申请实施例在此不再赘述。
相应地,在本申请实施例中,S5021中运动信息确定设备利用运动预测模型对第i帧运动信息和目标位置信息进行预测,包括S50211,下面对该步骤分别进行说明。
S50211、利用强化运动预测模型对第i帧运动信息和目标位置信息进行预测。
需要说明的是,强化运动预测模型及强化后的运动预测模型;运动信息确定设备完成对运动预测模型的强化训练,并获得了强化运动预测模型之后,部署该强化运动预测模型,以基于该强化运动预测模型预测运动对象的第i+1帧运动信息和预估目标位置信息。
在本申请实施例中,S5028中运动信息确定设备基于第k帧运动信息和第k+1帧运动信息,训练运动预测模型,获得强化运动预测模型,包括:将第k帧运动信息和第k+1帧运动信息添加至包括模型训练样本的数据集中;删除数据集中满足删除条件的运动信息,获得强化数据集;基于强化数据集,训练运动预测模型,获得强化运动预测模型。其中,删除条件可以是删除获得第k帧运动信息和第k+1帧运动信息之前通过运动预测模型获得的数据集,还可以是删除获得第k帧运动信息和第k+1帧运动信息之前通过运动预测模型获得的数据集中的最前的部分运动信息,等等,本申请实施例对此不作具体限定。
也就是说,运动信息确定设备在获取到第k帧运动信息和第k+1帧运动信息之后,将第k帧运动信息和第k+1帧运动信息添加进模型训练样本构成的数据集中,继续更新运动预测模型的权重。将更新之后的运动预测模型在模拟器中部署,继续执行目标导向动作,重复以上的过程。而在数据集的池子中,模型训练样本具有最高的质量,会被一直保留;而由模型生成、再经过后处理的数据,当由新版本的网络产生的数据被添加进来时,旧版本的网络产生的数据是具有较差的动作质量,则会被清除出数据集。
可以理解的是,通过强化运动预测模型,提升强化运动预测模型的预测精准性,从而能够减小修正的幅度,提升所生成的运动帧序列的质量。
在本申请实施例中,S5024之后还包括S5029和S50210;也就是说,运动信息确定设备得到运动预测模型之后,该运动信息确定方法还包括S5029和S50210,下面对各步骤分别进行说明。
S5029、获取新的模型训练样本。
需要说明的是,新的模型训练样本是在模型训练样本之后获得的。
S50210、基于新的模型训练样本,优化运动预测模型。
在本申请实施例中,S5021中运动信息确定设备利用运动预测模型对第i帧运动信息和目标位置信息进行预测,还可通过S50212实现,下面对该步骤分别进行说明。
S50212、利用优化后的运动预测模型对第i帧运动信息和目标位置信息进行预测。
需要说明的是,运动信息确定设备完成对运动预测模型的优化,并获得了优化后的运动预测模型之后,部署该优化后的运动预测模型,以基于该优化后的运动预测模型预测运动对象的第i+1帧运动信息和预估目标位置信息。
可以理解的是,在获得了运动预测模型之后,再次获取新的模型训练样本对运动预测模型进行训练,达到了优化运动预测模型的效果,能够提升优化后的运动预测模型的泛化能力,进而能够提升所确定的运动帧序列的准确度。
参见图11,图11是本申请实施例提供的运动信息确定方法的再一个可选的流程示意图;如图11所示,在本申请实施例中,当运动对象为虚拟对象时,S501可通过S5011实现;也就是说,运动信息确定设备获取运动对象的第i帧运动信息和目标位置信息,包括S5011,下面对该步骤进行说明。
S5011、响应于渲染设备发送的动画生成请求,获取虚拟对象的第i帧运动信息和目标位置信息。
需要说明的是,动画生成请求为渲染设备接收到目标导向动作执行操作时生成的。
相应地,继续参见图11,在本申请实施例中,S505之后还包括S506和S507;也就是说;运动信息确定设备获得包括第i帧运动信息至第i+n帧运动信息的运动帧序列之后,该运动信息确定方法还包括S506和S507,下面对该步骤进行说明。
S506、基于运动帧序列,生成目标动作动画。
在本申请实施例中,运动信息确定设备运动帧序列生成动画,也就获得了用于渲染虚拟对象针对目标位置信息执行目标导向动作的动画。
S507、将目标动作动画发送至渲染设备。
需要说明的是,运动信息确定设备将目标动作动画发送至渲染设备,以使渲染设备播放目标动作动画,渲染虚拟对象针对目标位置信息执行目标导向动作的虚拟场景。这里,运动信息确定设备可以实时的将目标动作动画中的每帧动画发送至渲染设备,也可以将目标动作动画中的多帧动画批量发送至渲染设备,还可以将目标动作动画作为整体发送至渲染设备,又可以以“Feeds”流的形式向渲染设备发送目标动作动画,等等,本申请实施例对此不作具体限定。
在本申请实施例中,当运动对象为实体对象时,S505之后还包括S508和S509;也就是说,运动信息确定设备确定包括第i帧运动信息至目标最后一帧运动信息的运动帧序列之后,该运动信息确定方法还包括S507和S508,下面对各步骤分别进行说明。
S508、基于运动帧序列确定实体对象的运动轨迹。
需要说明的是,运动帧序列为实体对象运动时每个最小单位对应的运动信息,从而,运动信息确定设备能够基于运动帧序列确定实体对象针对目标位置信息执行目标导向动作的运动轨迹。
S509、控制实体对象沿着运动轨迹进行运动。
需要说明的是,运动信息确定设备获得了运动轨迹信息之后,控制实体对象沿着运动轨迹进行运动,也就能够控制实体对象完成目标导向动作的执行。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
参见图12,图12是本申请实施例提供的一种示例性的运动信息确定方法;如图12所示,该示例性的运动信息确定方法包括:数据采集模块12-1、数据标注模块12-2、数据预处理模块12-3、模型训练模块12-4、模型强化模块12-5和模型部署模块12-6,其中:
数据采集模块12-1,用于借助动捕设备采集动捕数据(目标导向动作数据)。这里,动捕设备可以为带有特制传感器的服装,由专业动作演员身穿动捕设备执行躲掩体动作(目标导向动作),就能够通过动捕设备采集到躲掩体动作的动捕数据;从而,动捕数据包括站立数据、行走数据、奔跑数据、转身数据和躲掩体数据等。另外,躲掩体动作对应的动作执行阶段包括掩体准备前阶段、掩体准备阶段(准备阶段)、入掩体阶段(执行阶段)、掩体中阶段(动作中阶段)和出掩体阶段(退出阶段);掩体准备前阶段为游戏角色(运动对象)站立至开始抬起第一只脚奔跑的阶段,掩体准备阶段为游戏角色开始抬起第一只脚奔跑至躲掩体前的倒数第五步的脚落地的阶段,入掩体阶段为游戏角色躲掩体前的倒数第四步的脚抬起至最后一步脚落地的阶段,掩体中阶段为游戏角色在掩体中静止不动的阶段,出掩体阶段为游戏角色由静止不动起身至恢复站立进入下一动作的阶段。
还需要说明的是,入掩体阶段的四步可以是“左脚右脚左脚右脚”或者“右脚左脚右脚左脚”。参见图13,图13是本申请实施例提供的一种示例性的执行阶段的示意图;如图13所示,针对掩体13-1执行躲掩体动作时,入掩体阶段13-2对应的四步为“右脚左脚右脚左脚”,入掩体阶段13-3对应的四步位“左脚右脚左脚右脚”;这里,黑色圆圈表示游戏角色的躲掩体位置(目标位置信息),箭头表示躲掩体时游戏角色的朝向,方框表示最后四步的落脚点,L为左脚,R为右脚,白色圆圈中的数字表示脚步的序号;易知,躲掩体位置与游戏角色的朝向不同时,对应的入掩体阶段的四步的左右脚顺序是不同的:对于“向左转、右肩靠墙”的躲掩体动作,右脚落地为入掩体阶段的第一步,在第四步左脚落地之后,游戏角色静止不动,进入掩体中阶段;对于“向右转、左肩靠墙”的躲掩体动作,左脚落地为入掩体阶段的第一步,在第四步右脚落地之后,游戏角色静止不动,进入掩体中阶段。
数据标注模块12-2,用于对动捕数据进行标注。标注包括相位的标注和动作类型的标注;针对相位的标注,确定左脚落地的帧信息(一帧运动信息)对应的相位为0,右脚落地的帧信息对应的相位为π,左脚落地到右脚落地的阶段则为0至π(第一子运动周期相位)的插值,右脚落地到左脚落地的阶段则为π至2π(第二子运动周期相位)的插值。
针对动作类型的标注,通过m个分量表征动作类型,其中,m为动作类型的类型种数(这里,动作类型包括站立类型、奔跑类型和躲掩体类型(执行类型),从而,m的取值为3);以及,每个分量的取值范围为0至1,每个分量对应一个动作类型,且每一帧信息的m个分量的和为1。
参见图14,图14是本申请实施例提供的一种示例性的标注动作类型的示意图;如图14所示,横坐标表示动捕数据的帧数,包括1200帧数据;该动捕数据依次为站立、奔跑、躲掩体、站立的过程,折线图14-1表示站立类型14-11的分量在各帧信息中的取值,折线图14-2表示奔跑类型14-21的分量在各帧信息中的取值,折线图14-3表示躲掩体类型14-31的分量在各帧信息中的取值。动作点14-41至动作点14-46(第一动作点至第六动作点)表示的是六个关键的时间节点:开始躲掩体时,游戏角色处于站立状态,当开始抬起第一只脚时,此时的帧数对应的时间节点为动作点14-41(在图14中为第200帧),在动作点14-41之前的所有帧信息中的站立类型的分量的取值为1,奔跑类型和躲掩体类型的分量的取值均为0。游戏角色第一只脚落下时,此时的帧数对应的时间节点为动作点14-42(在图14中为第300帧)。在动作点14-41和动作点14-42之间,站立类型的分量的取值由1均匀减少到0,奔跑类型的分量的取值均匀增加到1,以此来表征从站立到奔跑的过渡,另外,躲掩体类型的分量的取值为0。当游戏角色入掩体前的倒数第五步的脚落地时,此时的帧数对应的时间节点为动作点14-43(在图14中为第500帧)。在动作点14-42和动作点14-43之间,奔跑类型的分量的取值为1,站立类型和躲掩体类型的分量的取值均为0。游戏角色执行入掩体的四步,在最后一步落地的时候,此时的帧数对应的时间节点为动作点14-44(在图14中为第700帧)。在动作点14-43和动作点14-44之间,奔跑类型的分量的取值由1均匀减小到0,躲掩体类型的分量的取值由0均匀增加到1,另外,站立类型的分量的取值为0。在动作点14-44和动作点14-45之间,躲掩体类型的分量的取值为1,站立类型和奔跑类型的分量的取值均为0。当游戏角色开始起身时,此时的帧数对应的时间节点为动作点14-45(在图14中为第900帧)。当游戏角色恢复站立时,此时的帧数对应的时间节点为动作点14-46(在图14中为第1000帧)。基于动作点14-41至动作点14-46,即可完成每帧信息的动作类型的标注。
数据预处理模块12-3,用于对标注后的动捕数据进行格式转换,使得转换后的数据格式为神经网络模型对应的输入格式,得到模型训练样本。参见表1,示出了神经网络模型的数据的输入和输出:
表1
表1中,骨骼关节信息即本申请实施例中的对象部位信息;相位即本申请实施例中的相位信息。骨骼关节信息(位置、速度、方向)、运动轨迹信息(位置、方向、动作类型、地形信息)、对象点信息(位置、方向、动作类型)和相位,即本申请实施例中的每帧运动信息样本。
模型训练模块12-4,用于基于模型训练样本训练NSM神经网络模型(待训练运动预测模型),得到初始NSM神经网络模型(运动预测模型)。
模型强化模块12-5,将初始NSM神经网络模型部署到游戏模拟器中进行测试。在测试中,游戏角色在距离掩体不同距离的位置上触发躲掩体动作。经过后处理(参见基于式(1)和图8-9实现的修正和逆运动调整)后,游戏角色精准地躲到指定的掩体位置(目标位置信息)上,并获取该躲掩体的动画,经过数据预处理模块12-3处理后添加至动捕数据构成的数据集中,继续训练初始NSM神经网络模型,更新NSM权重。将更新之后的初始NSM神经网络模型再部署到游戏模拟器中,继续在游戏角色距离掩体不同距离的位置上触发躲掩体动作,重复以上迭代更新的过程。需要说明的是,在数据集中,通过动捕数据具有最高的动作质量,从而动捕数据对应的数据集一直保留;而由NSM神经网络生成、再经过后处理的数据集,当存在新产生的数据集被添加进来时,历史产生的数据集有较差的动作质量,从而删除历史产生的数据集。最终,迭代更新结束时,得到强化NSM神经网络模型(强化运动预测模型)。
模型部署模块12-6,训练好之后的NSM网络将被部署到游戏客户端中。在游戏客户端中,提取当前游戏角色的运动状态(第i帧运动信息),通过数据预处理模块12-3处理作为强化NSM神经网络模型的输入。经过强化NSM神经网络模型前向运算之后,得到网络输出(第i+1帧运动更新量)。网络输出经过后处理修改之后的运动状态(第i+1帧运动信息),将被赋值到游戏角色的状态上,生成第i+1帧的画面。
参见图15,图15是本申请实施例提供的一种示例性的目标动作动画的示意图;如图15所示,为基于部署的强化NSM神经网络模型获取到的游戏角色躲掩体的动画的截图15-1至截图15-5,描述了游戏角色转身、朝掩体快速奔跑、转身躲进掩体、并精准停在指定位置的过程。
可以理解的是,本申请实施例提供的运动信息确定方法,能够满足针对枪战游戏中的躲掩体动作对终点精准控制的要求。并且利用本申请实施例提供的运动信息确定方法,采集少量的数据,就可以为游戏中的角色在各种条件下(角色与掩体的距离、角度、朝向不同)自动生成躲掩体的动作动画,减轻游戏开发工作,缩短开发流程,还减小了游戏占用的存储内存。
下面继续说明本申请实施例提供的运动信息确定装置455的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器450的运动信息确定装置455中的软件模块可以包括:
信息获取模块4551,用于获取运动对象的第i帧运动信息和目标位置信息,其中,i为正整数;
信息预测模块4552,用于基于所述第i帧运动信息和所述目标位置信息,预测所述运动对象的第i+1帧运动更新量和基于所述第i+1帧运动更新量的预估目标位置信息;
信息修正模块4553,用于基于所述预估目标位置信息和所述目标位置信息之间的差异,修正所述第i+1帧运动更新量,并根据修正后的所述第i+1帧运动更新量获得第i+1帧运动信息;
信息迭代模块4554,用于继续进行迭代,直至获得对应于所述目标位置信息的第i+n帧运动信息,其中,n为大于1的正整数;
信息确定模块4555,用于获得包括所述第i帧运动信息至所述第i+n帧运动信息的运动帧序列,其中,所述运动帧序列为所述运动对象针对所述目标位置信息执行目标导向动作的运动信息集合。
在本申请实施例中,所述第i+1帧运动更新量包括第i+1帧对象点位置更新量,所述第i帧运动信息包括第i帧对象点位置信息,所述第i+1帧运动信息包括第i+1帧对象点位置信息;所述信息修正模块4553,还用于根据所述预估目标位置信息和所述目标位置信息进行向量差计算,获得初始修正向量;基于修正系数调整所述初始修正向量,获得修正向量;采用所述修正向量,修正所述第i+1帧对象点位置更新量后,再将修正后的所述第i+1帧对象点位置更新量与所述第i帧对象点位置信息叠加,获得所述第i+1帧运动信息中的所述第i+1帧对象点位置信息。
在本申请实施例中,所述修正系数与所述运动对象的运动速度正相关。
在本申请实施例中,当所述第i帧对象点位置信息与所述目标位置信息之间的运动距离落在距离范围内时,所述修正系数是根据所述运动距离和所述第i+1帧对象点位置更新量计算得到;当所述运动距离落在所述距离范围外时,所述修正系数为常数。
在本申请实施例中,所述运动对象为虚拟对象时,所述第i+1帧运动信息还包括第i+1帧对象部位位置信息,所述第i+1帧运动更新量还包括第i+1帧对象部位位置相对量;所述信息修正模块4553,还用于将所述第i+1帧对象部位位置相对量叠加在所述第i+1帧对象点位置信息上,获得第i+1帧对象部位待调整位置信息;将所述第i+1帧对象部位位置相对量和所述第i+1帧对象点位置更新量,均叠加在所述第i帧对象点位置信息上,获得第i+1帧对象部位参考位置信息;基于所述第i+1帧对象部位参考位置信息,调整所述第i+1帧对象部位待调整位置信息,获得所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息。
在本申请实施例中,所述第i+1帧对象部位参考位置信息包括踝参考位置信息和趾参考位置信息,所述第i+1帧待调整对象部位位置信息包括待调整髋位置信息、待调整膝位置信息和待调整踝位置信息;所述信息修正模块4553,还用于通过旋转所述待调整膝位置信息和所述待调整髋位置信息,将所述待调整踝位置信息,调整至所述踝参考位置信息处,从而确定第i+1帧膝位置信息;将所述第i+1帧膝位置信息、所述待调整髋位置信息、所述踝参考位置信息和所述趾参考位置信息,确定为所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息。
在本申请实施例中,所述信息修正模块4553,还用于基于所述待调整膝位置信息指向所述待调整踝位置信息的方向、以及所述待调整膝位置信息指向所述待调整髋位置信息的方向,确定膝旋转方向;以所述膝旋转方向为转轴旋转所述待调整膝位置信息,以基于所述待调整髋位置信息和所述踝参考位置信息之间的距离,调整所述待调整踝位置信息;基于所述待调整髋位置信息指向所述踝参考位置信息的方向、以及所述待调整髋位置信息指向调整后的待调整踝位置信息的方向,确定髋旋转方向;以所述髋旋转方向为转轴旋转所述待调整髋位置信息,以将所述目标待调整踝位置信息调整至所述踝参考位置信息处,从而确定出所述第i+1帧膝位置信息。
在本申请实施例中,所述信息预测模块4552,还用于利用运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测,获得所述运动对象的所述第i+1帧运动更新量和基于所述第i+1帧运动更新量的所述预估目标位置信息,其中,所述运动预测模型用于预测所述运动对象的运动信息。
在本申请实施例中,所述运动信息确定装置455还包括模型训练模块4556,用于获取模型训练样本,其中,所述模型训练样本包括至少一帧运动样本和目标位置样本;利用待训练运动预测模型对所述至少一帧运动样本中的第j帧运动样本和所述目标位置样本进行预测,获得第j+1帧运动信息,其中,所述待训练运动预测模型为待训练的用于预测运动信息的模型,j为大于1的正整数;基于所述第j+1帧运动信息与第j+1帧运动样本之间的差异,训练所述待训练运动预测模型,获得所述运动预测模型。
在本申请实施例中,所述运动信息确定装置455还包括模型强化模块4557,用于获取训练对象的第k帧运动信息和训练位置信息,其中,k为正整数;利用所述运动预测模型对所述第k帧运动信息和所述训练位置信息进行预测,获得所述训练对象的第k+1帧运动更新量和基于所述第k+1帧运动更新量的预估训练位置信息;基于所述预估训练位置信息和所述训练位置信息之间的差异,修正所述第k+1帧运动更新量,并根据修正后的所述第k+1帧运动更新量获得第k+1帧运动信息;基于所述第k帧运动信息和所述第k+1帧运动信息,训练所述运动预测模型,获得强化运动预测模型。
在本申请实施例中,所述信息预测模块4552,还用于利用所述强化运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测。
在本申请实施例中,所述模型强化模块4557,还用于将所述第k帧运动信息和所述第k+1帧运动信息添加至包括所述模型训练样本的数据集中;删除所述数据集中满足删除条件的运动信息,获得强化数据集;基于所述强化数据集,训练所述运动预测模型,获得所述强化运动预测模型。
在本申请实施例中,所述运动对象为实体对象时,所述运动信息确定装置455还包括运动控制模块4558,用于基于所述运动帧序列,确定所述实体对象的运动轨迹;控制所述实体对象沿着所述运动轨迹进行运动。
在本申请实施例中,所述信息获取模块4551,还用于响应于渲染设备发送的动画生成请求,获取所述虚拟对象的所述第i帧运动信息和所述目标位置信息,其中,所述动画生成请求为所述渲染设备接收到目标导向动作执行操作时生成的。
在本申请实施例中,所述动画信息确定装置455还包括动画发送模块4559,用于基于所述运动帧序列,生成目标动作动画;将所述目标动作动画发送至所述渲染设备,以使所述渲染设备播放所述目标动作动画,渲染所述虚拟对象针对所述目标位置信息执行所述目标导向动作的虚拟场景。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的运动信息确定方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的运动信息确定方法,例如,如图5示出的运动信息确定方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例,由于基于运动对象的第i帧运动信息和目标位置信息预测出的第i+1帧运动信息,是基于预估目标位置信息和目标位置信息之间的差异修正后再作为确定后续帧的运动信息的依据的;也就是说,目标第i+1帧运动信息的准确度较高,从而,基于第i+1帧运动信息和目标位置信息迭代预测修正出的后续帧运动信息的准确度也较高,因此,能够降低最后一帧运动信息对应的位置与目标位置信息之间的偏差,进而,所确定的运动帧序列的准确度较高,能够提升所确定的运动对象执行目标导向动作的运动信息的准确度。另外,执行目标导向动作时,还能够实现脚步的自动规划调整,进一步提升了运动信息的准确度。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种运动信息确定方法,其特征在于,包括:
获取运动对象的第i帧运动信息和目标位置信息,其中,i为正整数;
基于所述第i帧运动信息和所述目标位置信息,预测所述运动对象的第i+1帧运动更新量和基于所述第i+1帧运动更新量的预估目标位置信息;
基于所述预估目标位置信息和所述目标位置信息之间的差异,修正所述第i+1帧运动更新量,并根据修正后的所述第i+1帧运动更新量获得第i+1帧运动信息;
继续进行迭代,直至获得对应于所述目标位置信息的第i+n帧运动信息,其中,n为大于1的正整数;
获得包括所述第i帧运动信息至所述第i+n帧运动信息的运动帧序列,其中,所述运动帧序列为所述运动对象针对所述目标位置信息执行目标导向动作的运动信息集合。
2.根据权利要求1所述的方法,其特征在于,所述第i+1帧运动更新量包括第i+1帧对象点位置更新量,所述第i帧运动信息包括第i帧对象点位置信息,所述第i+1帧运动信息包括第i+1帧对象点位置信息;
所述基于所述预估目标位置信息和所述目标位置信息之间的差异,修正所述第i+1帧运动更新量,并根据修正后的所述第i+1帧运动更新量获得第i+1帧运动信息,包括:
根据所述预估目标位置信息和所述目标位置信息进行向量差计算,获得初始修正向量;
基于修正系数调整所述初始修正向量,获得修正向量;
采用所述修正向量,修正所述第i+1帧对象点位置更新量后,再将修正后的所述第i+1帧对象点位置更新量与所述第i帧对象点位置信息叠加,获得所述第i+1帧运动信息中的所述第i+1帧对象点位置信息。
3.根据权利要求2所述的方法,其特征在于,所述修正系数与所述运动对象的运动速度正相关。
4.根据权利要求3所述的方法,其特征在于:
当所述第i帧对象点位置信息与所述目标位置信息之间的运动距离落在距离范围内时,所述修正系数是根据所述运动距离和所述第i+1帧对象点位置更新量计算得到;
当所述运动距离落在所述距离范围外时,所述修正系数为常数。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述运动对象为虚拟对象时,所述第i+1帧运动信息还包括第i+1帧对象部位位置信息,所述第i+1帧运动更新量还包括第i+1帧对象部位位置相对量;
所述获得所述第i+1帧运动信息中的所述第i+1帧对象点位置信息之后,所述方法还包括:
将所述第i+1帧对象部位位置相对量叠加在所述第i+1帧对象点位置信息上,获得第i+1帧对象部位待调整位置信息;
将所述第i+1帧对象部位位置相对量和所述第i+1帧对象点位置更新量,均叠加在所述第i帧对象点位置信息上,获得第i+1帧对象部位参考位置信息;
基于所述第i+1帧对象部位参考位置信息,调整所述第i+1帧对象部位待调整位置信息,获得所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息。
6.根据权利要求5所述的方法,其特征在于,所述第i+1帧对象部位参考位置信息包括踝参考位置信息和趾参考位置信息,所述第i+1帧待调整对象部位位置信息包括待调整髋位置信息、待调整膝位置信息和待调整踝位置信息;
所述基于所述第i+1帧对象部位参考位置信息,调整所述第i+1帧对象部位待调整位置信息,获得所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息,包括:
通过旋转所述待调整膝位置信息和所述待调整髋位置信息,将所述待调整踝位置信息,调整至所述踝参考位置信息处,从而确定第i+1帧膝位置信息;
将所述第i+1帧膝位置信息、所述待调整髋位置信息、所述踝参考位置信息和所述趾参考位置信息,确定为所述第i+1帧运动信息中的所述第i+1帧对象部位位置信息。
7.根据权利要求6所述的方法,其特征在于,所述通过旋转所述待调整膝位置信息和所述待调整髋位置信息,将所述待调整踝位置信息,调整至所述踝参考位置信息处,从而确定第i+1帧膝位置信息,包括:
基于所述待调整膝位置信息指向所述待调整踝位置信息的方向、以及所述待调整膝位置信息指向所述待调整髋位置信息的方向,确定膝旋转方向;
以所述膝旋转方向为转轴旋转所述待调整膝位置信息,以基于所述待调整髋位置信息和所述踝参考位置信息之间的距离,调整所述待调整踝位置信息;
基于所述待调整髋位置信息指向所述踝参考位置信息的方向、以及所述待调整髋位置信息指向调整后的待调整踝位置信息的方向,确定髋旋转方向;
以所述髋旋转方向为转轴旋转所述待调整髋位置信息,以将所述目标待调整踝位置信息调整至所述踝参考位置信息处,从而确定出所述第i+1帧膝位置信息。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述基于所述第i帧运动信息和所述目标位置信息,预测所述运动对象的第i+1帧运动更新量和基于所述第i+1帧运动更新量的预估目标位置信息,包括:
利用运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测,获得所述运动对象的所述第i+1帧运动更新量和基于所述第i+1帧运动更新量的所述预估目标位置信息,其中,所述运动预测模型用于预测所述运动对象的运动信息。
9.根据权利要求8所述的方法,其特征在于,所述利用运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测之前,所述方法还包括:
获取模型训练样本,其中,所述模型训练样本包括至少一帧运动样本和目标位置样本;
利用待训练运动预测模型对所述至少一帧运动样本中的第j帧运动样本和所述目标位置样本进行预测,获得第j+1帧运动信息,其中,所述待训练运动预测模型为待训练的用于预测运动信息的模型,j为大于1的正整数;
基于所述第j+1帧运动信息与第j+1帧运动样本之间的差异,训练所述待训练运动预测模型,获得所述运动预测模型。
10.根据权利要求9所述的方法,其特征在于,所述获得所述运动预测模型之后,所述方法还包括:
获取训练对象的第k帧运动信息和训练位置信息,其中,k为正整数;
利用所述运动预测模型对所述第k帧运动信息和所述训练位置信息进行预测,获得所述训练对象的第k+1帧运动更新量和基于所述第k+1帧运动更新量的预估训练位置信息;
基于所述预估训练位置信息和所述训练位置信息之间的差异,修正所述第k+1帧运动更新量,并根据修正后的所述第k+1帧运动更新量获得第k+1帧运动信息;
基于所述第k帧运动信息和所述第k+1帧运动信息,训练所述运动预测模型,获得强化运动预测模型;
所述利用运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测,包括:
利用所述强化运动预测模型对所述第i帧运动信息和所述目标位置信息进行预测。
11.根据权利要求10所述的方法,其特征在于,所述基于所述第k帧运动信息和所述第k+1帧运动信息,训练所述运动预测模型,获得强化运动预测模型,包括:
将所述第k帧运动信息和所述第k+1帧运动信息添加至包括所述模型训练样本的数据集中;
删除所述数据集中满足删除条件的运动信息,获得强化数据集;
基于所述强化数据集,训练所述运动预测模型,获得所述强化运动预测模型。
12.根据权利要求1至4任一项所述的方法,其特征在于,所述运动对象为实体对象时,所述获得包括所述第i帧运动信息至所述第i+n帧运动信息的运动帧序列之后,所述方法还包括:
基于所述运动帧序列,确定所述实体对象的运动轨迹;
控制所述实体对象沿着所述运动轨迹进行运动。
13.根据权利要求5所述的方法,其特征在于,所述获取运动对象的第i帧运动信息和目标位置信息,包括:
响应于渲染设备发送的动画生成请求,获取所述虚拟对象的所述第i帧运动信息和所述目标位置信息,其中,所述动画生成请求为所述渲染设备接收到目标导向动作执行操作时生成的;
所述获得包括所述第i帧运动信息至所述第i+n帧运动信息的运动帧序列之后,所述方法还包括:
基于所述运动帧序列,生成目标动作动画;
将所述目标动作动画发送至所述渲染设备,以使
所述渲染设备播放所述目标动作动画,渲染所述虚拟对象针对所述目标位置信息执行所述目标导向动作的虚拟场景。
14.一种运动信息确定设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至13任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125425.5A CN113592895A (zh) | 2021-01-29 | 2021-01-29 | 一种运动信息确定方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125425.5A CN113592895A (zh) | 2021-01-29 | 2021-01-29 | 一种运动信息确定方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113592895A true CN113592895A (zh) | 2021-11-02 |
Family
ID=78238036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110125425.5A Pending CN113592895A (zh) | 2021-01-29 | 2021-01-29 | 一种运动信息确定方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113592895A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115619867A (zh) * | 2022-11-18 | 2023-01-17 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、存储介质及程序产品 |
CN115953706A (zh) * | 2023-01-09 | 2023-04-11 | 支付宝(杭州)信息技术有限公司 | 虚拟形象处理方法及装置 |
CN116051699A (zh) * | 2023-03-29 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 动捕数据的处理方法、装置、设备及存储介质 |
-
2021
- 2021-01-29 CN CN202110125425.5A patent/CN113592895A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115619867A (zh) * | 2022-11-18 | 2023-01-17 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、存储介质及程序产品 |
CN115953706A (zh) * | 2023-01-09 | 2023-04-11 | 支付宝(杭州)信息技术有限公司 | 虚拟形象处理方法及装置 |
CN115953706B (zh) * | 2023-01-09 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 虚拟形象处理方法及装置 |
CN116051699A (zh) * | 2023-03-29 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 动捕数据的处理方法、装置、设备及存储介质 |
CN116051699B (zh) * | 2023-03-29 | 2023-06-02 | 腾讯科技(深圳)有限公司 | 动捕数据的处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102645536B1 (ko) | 애니메이션 처리 방법 및 장치, 컴퓨터 저장 매체 그리고 전자 디바이스 | |
CN113592895A (zh) | 一种运动信息确定方法、设备及计算机可读存储介质 | |
Lee et al. | Interactive character animation by learning multi-objective control | |
Peng et al. | Deeploco: Dynamic locomotion skills using hierarchical deep reinforcement learning | |
CN110930483B (zh) | 一种角色控制的方法、模型训练的方法以及相关装置 | |
CN111260762B (zh) | 一种动画实现方法、装置、电子设备和存储介质 | |
CN110827383B (zh) | 三维模型的姿态模拟方法、装置、存储介质和电子设备 | |
CN104508709B (zh) | 使用人体对对象进行动画化 | |
CN110781765A (zh) | 一种人体姿态识别方法、装置、设备及存储介质 | |
CN107423398A (zh) | 交互方法、装置、存储介质和计算机设备 | |
US20230400914A1 (en) | Systems and methods for predicting lower body poses | |
CN111223168A (zh) | 目标对象控制方法、装置、存储介质和计算机设备 | |
US11238634B2 (en) | Motion model refinement based on contact analysis and optimization | |
CN109407826A (zh) | 球类运动模拟方法、装置、存储介质及电子设备 | |
CN116993773A (zh) | 运动信息的重定向方法、装置、设备、存储介质及产品 | |
CN110858328B (zh) | 用于模仿学习的数据采集方法、装置及存储介质 | |
CN115797517A (zh) | 虚拟模型的数据处理方法、装置、设备和介质 | |
CN113592986B (zh) | 基于神经网络的动作生成方法、装置及计算设备 | |
Saini | Manoeuvring drone (Tello ans Tello EDU) using body poses or gestures | |
CN113192163A (zh) | 一种构建虚拟人物多模态运动的系统及方法 | |
Georgiadis | Generation of a synthetic annotated dataset for training and evaluating active perception methods | |
Guo et al. | Optimizing neural network as locomotion controller with motion data | |
CN115779436B (zh) | 动画切换方法、装置、设备及计算机可读存储介质 | |
CN116958337A (zh) | 虚拟对象动画生成方法、装置、电子设备及可读存储介质 | |
CN114247132B (zh) | 虚拟对象的控制处理方法、装置、设备、介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40054054 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |