掌桥专利:专业的专利平台
掌桥专利
首页

人体模型运动特征提取方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 10:43:23


人体模型运动特征提取方法、装置、电子设备及存储介质

技术领域

本发明涉及深度学习技术领域,特别是涉及一种人体模型运动特征提取方法、装置、电子设备及存储介质。

背景技术

目前,针对人体模型进行重定向处理或者进行动作分类处理时,均需要提取人体模型各个关节点的运动信息特征,通过深度学习模型对所提取的运动信息特征进行处理,以实现对人体模型的重定向或者动作分类等等。其中,对人体模型进行重定向为将人体模型从一种姿态改变为另一种姿态的过程。

然而,目前所提取的人体模型的各个关节点的运动信息特征难以较为全面的反应出各个关节点的运动信息。

发明内容

本发明实施例的目的在于提供一种人体模型运动特征提取方法、装置、电子设备及存储介质,以使得所提取的人体模型运动特征能够较为全面的反应出各个关节点的运动信息。

为了达到上述目的,本发明实施例提供了一种人体模型运动特征提取方法,包括:

获取三维人体模型的骨架信息和多帧运动信息;其中,骨架信息包括:三维人体模型的每个驱动关节点的相对位移;每一帧运动信息包括:该帧中三维人体模型的各个驱动关节点的原始旋转信息;三维人体模型包括一个根关节点和多个驱动关节点;每个驱动关节点的相对位移表示:驱动关节点相对于根关节点的位移信息;

针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;所述解码后的旋转信息与所述原始旋转信息的数据格式相同;

基于所述解码后的旋转信息与所述原始旋转信息的差异,确定所述编码模型和所述解码模型是否收敛;

若所述编码模型和解码模型未收敛,则调整所述编码模型和解码模型的模型参数,返回所述将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;

若所述编码模型和所述解码模型收敛,则将所述待定输出结果确定为所述驱动关节点的运动特征。

进一步的,所述编码模型包括:骨架信息编码模块和旋转信息编码模块;

所述将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果,包括:

将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型;

骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移;

旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量;将该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

所述若所述编码模型和所述解码模型收敛,则将所述待定输出结果确定为所述驱动关节点的运动特征,包括:

若所述编码模型和所述解码模型收敛,则将该驱动关节点对应的节点向量确定为该驱动关节点的运动特征。

进一步的,所述骨架信息编码模块包括:第一全连接层、第一特征拼接层和第二全连接层;所述旋转信息编码模块包括:第三全连接层、第二特征拼接层和第四全连接层;

所述骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移,包括:

所述第一全连接层,根据该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征;

所述第一特征拼接层,对该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征进行拼接,得到隐层位移拼接特征;

所述第二全连接层,根据隐层位移拼接特征确定该驱动关节点对应的向量位移;

所述旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量,包括:

所述第三全连接层,根据该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征;

所述第二特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的第二隐层位移特征;并将各个拼接后的第二隐层位移特征进行拼接,得到拼接特征;

所述第四全连接层,根据拼接特征确定该驱动关节点对应的节点向量。

进一步的,所述解码模型包括:第五全连接层、第三特征拼接层和第六全连接层;

所述将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息,包括:

所述第五全连接层,根据该驱动关节点和该驱动关节点的各个相邻驱动关节点对应的节点向量,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征;

所述第三特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的隐层位移旋转特征;并将各个拼接后的隐层位移旋转特征进行拼接,得到拼接旋转特征;

所述第六全连接层,根据拼接旋转特征确定该驱动关节点的解码后的旋转信息。

进一步的,每一帧运动信息中的各个驱动关节点的原始旋转信息采用四元数表示:

其中,

为了达到上述目的,本发明实施例还提供了一种人体模型运动特征提取装置,包括:

信息获取模块,用于获取三维人体模型的骨架信息和多帧运动信息;其中,骨架信息包括:三维人体模型的每个驱动关节点的相对位移;每一帧运动信息包括:该帧中三维人体模型的各个驱动关节点的原始旋转信息;三维人体模型包括一个根关节点和多个驱动关节点;每个驱动关节点的相对位移表示:驱动关节点相对于根关节点的位移信息;

数据编码模块,用于针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

数据解码模块,用于将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;所述解码后的旋转信息与所述原始旋转信息的数据格式相同;

模型收敛确定模块,用于基于所述解码后的旋转信息与所述原始旋转信息的差异,确定所述编码模型和所述解码模型是否收敛;

模型参数调整模块,用于若所述编码模型和解码模型未收敛,则调整所述编码模型和解码模型的模型参数,返回所述将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;

运动特征确定模块,用于若所述编码模型和所述解码模型收敛,则将所述待定输出结果确定为所述驱动关节点的运动特征。

进一步的,所述编码模型包括:骨架信息编码模块和旋转信息编码模块;

所述数据编码模块,具体用于将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型;骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移;旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量;将该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

所述运动特征确定模块,具体用于若所述编码模型和所述解码模型收敛,则将该驱动关节点对应的节点向量确定为该驱动关节点的运动特征。

进一步的,所述骨架信息编码模块包括:第一全连接层、第一特征拼接层和第二全连接层;所述旋转信息编码模块包括:第三全连接层、第二特征拼接层和第四全连接层;

所述骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移,包括:

所述第一全连接层,根据该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征;

所述第一特征拼接层,对该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征进行拼接,得到隐层位移拼接特征;

所述第二全连接层,根据隐层位移拼接特征确定该驱动关节点对应的向量位移;

所述旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量,包括:

所述第三全连接层,根据该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征;

所述第二特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的第二隐层位移特征;并将各个拼接后的第二隐层位移特征进行拼接,得到拼接特征;

所述第四全连接层,根据拼接特征确定该驱动关节点对应的节点向量。

进一步的,所述解码模型包括:第五全连接层、第三特征拼接层和第六全连接层;

所述数据解码模块,具体用于所述第五全连接层,根据该驱动关节点和该驱动关节点的各个相邻驱动关节点对应的节点向量,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征;所述第三特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的隐层位移旋转特征;并将各个拼接后的隐层位移旋转特征进行拼接,得到拼接旋转特征;所述第六全连接层,根据拼接旋转特征确定该驱动关节点的解码后的旋转信息。

进一步的,每一帧运动信息中的各个驱动关节点的原始旋转信息采用四元数表示:

其中,

为了达到上述目的,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述三维人体模型运动特征的提取方法步骤。

为了达到上述目的,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述三维人体模型运动特征的提取方法步骤。

为了达到上述目的,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述三维人体模型运动特征的提取方法步骤。

采用本发明实施例提供的方法,获取三维人体模型的骨架信息和多帧运动信息;针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;基于解码后的旋转信息与原始旋转信息的差异,确定编码模型和所述解码模型是否收敛;若编码模型和解码模型未收敛,则调整编码模型和解码模型的模型参数,返回将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;若编码模型和解码模型收敛,则将待定输出结果确定为驱动关节点的运动特征。即提取三维人体模型的每个驱动关节点的运动特征时,考虑了驱动关节点之间的相邻位置关系,排除了偏远驱动关节点之间的影响。因此,使得所提取的各个驱动关节点的运动特征可以较为全面的反应出各个关节点的运动信息。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的人体模型运动特征提取方法的一种流程图;

图2为三维人体模型骨架示意图;

图3为本发明实施例提供的人体模型运动特征提取方法的另一种流程图;

图4为本发明实施例提供的骨架信息编码模块的结构示意图;

图5为本发明实施例提供的旋转信息编码模块的结构示意图;

图6为本发明实施例提供的解码模型的结构示意图;

图7为本发明实施例提供的编码模型和解码模型数据流向的示意图;

图8为本发明实施例提供的人体模型运动特征提取装置的一种结构图;

图9为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

由于现有技术提取的三维人体模型的各个关节点的运动信息特征难以较为全面的反应出各个关节点的运动信息,为了使得所提取的三维人体模型运动特征能够较为全面的反应出各个关节点的运动信息,本发明实施例提供了一种三维人体模型运动特征提取方法、装置、电子设备及存储介质。

参见图1,图1为三维人体模型运动特征提取方法的一种流程,包括:

步骤101,获取三维人体模型的骨架信息和多帧运动信息。

其中,骨架信息包括:三维人体模型的每个驱动关节点的相对位移;每一帧运动信息包括:该帧中三维人体模型的各个驱动关节点的原始旋转信息;三维人体模型包括一个根关节点和多个驱动关节点;每个驱动关节点的相对位移表示:驱动关节点相对于根关节点的位移信息。

举例说明,参见图2,图2为三维人体模型骨架示意图,三维人体模型可以包括多个人体关节点,三维人体模型骨架示意图展示了多个人体关节点:0-hips(臀部关节点)、1-spine_virtual(脊柱虚拟关节点)、1-leftupleg_virtual(左上肢虚拟关节点)、1-rightupleg_virtual(右上肢虚拟关节点)、2-spine(脊柱关节点)、2-leftupleg(左上肢关节点)、2-rightupleg(右上肢关节点)、3-spine1(脊柱关节点1)、3-leftleg(左肢关节点)、3-rightleg(右肢关节点)、4-spine_split(脊柱裂关节点)、4-leftfoot(左脚关节点)、4-rightfoot(右脚关节点)、5-spine2(脊柱关节点2)、5-lefttoebase(左脚底关节点)、5-righttoebase(右脚底关节点)、6-neck_virtual(颈部虚拟关节点)、6-lefttoe_end(左脚尖关节点)、6-righttoe_end(右脚尖关节点)、6-leftshoulder_virtual(左肩虚拟关节点)、6-rightshoulder_virtual(右肩虚拟关节点)、7-neck(颈部关节点)、7-leftshoulder(左肩关节点)、7-rightshoulder(右肩关节点)、8-head(头部关节点)、8-leftshoulder_split(左肩分裂关节点)、8-rightshoulder_split(右肩分裂关节点)、9-headtop_end(头端关节点)、9-leftarm(左臂关节点)、9-rightarm(右臂关节点)、10-leftforearm(左前臂关节点)、10-rightforearm(右前臂关节点)、11-lefthand(左手关节点)、11-righthand(右手关节点)。其中,指定关节点可以包括:左手关节点、左前臂关节点、左肩虚拟关节点、右手关节点、右前臂关节点、右肩虚拟关节点、左脚关节点、左肢关节点、左上肢虚拟关节点、右脚关节点、右肢关节点和右上肢虚拟关节点。其中,0-hips(臀部关节点)可以作为三维人体模型中的根关节点,0-hips(臀部关节点)以外的其它关节点均可以作为三维人体模型中的驱动关节点。

本发明实施例中,三维人体模型的每个驱动关节点的相对位移为该驱动关节点相对于根关节点的位移信息。可以通过每个驱动关节点的坐标和根节点的坐标计算出每个驱动关节点的相对位移。

本发明实施例中,每一帧运动信息包括:该帧中三维人体模型的各个驱动关节点的原始旋转信息。该帧中每个驱动关节点的原始旋转信息可以表示:该帧中三维人体模型的该驱动关节点相对于处于T-pose姿势下的三维人体模型中该驱动关节点的旋转程度。

本发明实施例中,可以将每一帧运动信息中每个驱动关节点的欧拉角转换为四元数,用转换得到的四元数表示每个驱动关节点的原始旋转信息。具体的,每帧中每个驱动关节点的原始旋转信息可以采用四元数表示:

其中,

步骤102,针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果。

步骤103,将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;解码后的旋转信息与原始旋转信息的数据格式相同。

步骤104,基于解码后的旋转信息与原始旋转信息的差异,确定编码模型和解码模型是否收敛。

步骤105,若编码模型和解码模型未收敛,则调整编码模型和解码模型的模型参数,返回将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤。

步骤106,若编码模型和解码模型收敛,则将待定输出结果确定为该驱动关节点的运动特征。

采用本发明实施例提供的方法,获取三维人体模型的骨架信息和多帧运动信息;针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;基于解码后的旋转信息与原始旋转信息的差异,确定编码模型和所述解码模型是否收敛;若编码模型和解码模型未收敛,则调整编码模型和解码模型的模型参数,返回将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;若编码模型和解码模型收敛,则将待定输出结果确定为驱动关节点的运动特征。即提取三维人体模型的每个驱动关节点的运动特征时,考虑了驱动关节点之间的相邻位置关系,排除了偏远驱动关节点之间的影响。因此,使得所提取的各个驱动关节点的运动特征可以较为全面的反应出各个关节点的运动信息。

参见图3,图3为三维人体模型运动特征提取方法的一种流程,包括:

步骤301与步骤101对应相同,此处不再赘述。

步骤302,针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型。

本发明实施例中,每个驱动关节点可以包括一个或多个相邻的驱动关节点。例如,图2中驱动关节点5-spine2的相邻驱动关节点包括:驱动关节点6-leftshoulder_virtual、驱动关节点6-rightshoulder_virtual、驱动关节点6-neck_virtual和驱动关节点4-spine_split。

本发明实施例中,编码模型包括:骨架信息编码模块和旋转信息编码模块。并且,骨架信息编码模块可以包括:第一全连接层、第一特征拼接层和第二全连接层;旋转信息编码模块可以包括:第三全连接层、第二特征拼接层和第四全连接层。

参见图4,图4为编码模型中骨架信息编码模块的结构,图4中骨架信息编码模块包括:第一全连接层401、第一特征拼接层402和第二全连接层403。参见图5,图5为编码模型中旋转信息编码模块的结构,图5中旋转信息编码模块包括:第三全连接层501、第二特征拼接层502和第四全连接层503。

步骤303,骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移。

其中,骨架信息编码模块包括:第一全连接层、第一特征拼接层和第二全连接层。本步骤中,对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理具体可以包括步骤A1-步骤A3:

步骤A1:第一全连接层,根据该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征。

举例说明,参见图4,针对驱动关节点5-spine2,驱动关节点5-spine2的相邻驱动关节点包括:驱动关节点6-leftshoulder_virtual、驱动关节点6-rightshoulder_virtual、驱动关节点6-neck_virtual和驱动关节点4-spine_split。其中,驱动关节点5-spine2的相对位移为O

本步骤中,第一全连接层可以对驱动关节点5-spine2及其各个相邻驱动关节点的相对位移O

步骤A2:第一特征拼接层,对该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征进行拼接,得到隐层位移拼接特征。

本步骤中,可以将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征,在第一轴的方向上进行拼接,得到隐层位移拼接特征。其中,得到的隐层位移拼接特征为α×m维的矩阵,α表示该驱动关节点的相邻驱动关节点的数量。

举例说明,参见图4,第一隐层位移特征HO

HO

HO

HO

HO

HO

可以将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征,在第一轴的方向上进行拼接,得到隐层位移拼接特征MO

步骤A3:第二全连接层,根据隐层位移拼接特征确定该驱动关节点对应的向量位移。

举例说明,参见图4,本步骤中,可以通过第二全连接层对隐层位移拼接特征MO

步骤304,旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量;将该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果。

其中,旋转信息编码模块包括:第三全连接层、第二特征拼接层和第四全连接层。本步骤中,对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理具体可以包括步骤B1-步骤B3:

步骤B1:第三全连接层,根据该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征。

举例说明,参见图5,针对驱动关节点5-spine2,驱动关节点5-spine2的相邻驱动关节点包括:驱动关节点6-leftshoulder_virtual、驱动关节点6-rightshoulder_virtual、驱动关节点6-neck_virtual和驱动关节点4-spine_split。其中,驱动关节点5-spine2的原始旋转信息为Q

步骤B2:第二特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的第二隐层位移特征;并将各个拼接后的第二隐层位移特征进行拼接,得到拼接特征。

本步骤中,第二特征拼接层可以将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征分别与该驱动关节点对应的向量位移在第二轴进行拼接,得到各个拼接后的第二隐层位移特征;然后,第二特征拼接层可以将各个拼接后的第二隐层位移特征在第一轴进行拼接,得到拼接特征。

举例说明,参见图5,第二隐层位移特征HQ

进一步的,第二特征拼接层可以将该驱动关节点和及其各个相邻驱动关节点的第二隐层位移特征在第一轴的方向上进行拼接,得到拼接特征MOQ

步骤B3:第四全连接层,根据拼接特征确定该驱动关节点对应的节点向量。

举例说明,参见图5,本步骤中,可以通过第四全连接层对拼接特征MOQ

步骤305,将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息。

其中,解码后的旋转信息与原始旋转信息的数据格式相同。

本发明实施例中,解码模型包括:第五全连接层、第三特征拼接层和第六全连接层。参见图6,图6为解码模型的结构,图6中解码模型包括:第五全连接层601、第三特征拼接层602和第六全连接层603。

具体的,将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息可以包括步骤C1-步骤C3:

步骤C1:第五全连接层,根据该驱动关节点和该驱动关节点的各个相邻驱动关节点对应的节点向量,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征。

举例说明,参见图6,针对图2中的驱动关节点5-spine2,驱动关节点5-spine2的相邻驱动关节点包括:驱动关节点6-leftshoulder_virtual、驱动关节点6-rightshoulder_virtual、驱动关节点6-neck_virtual和驱动关节点4-spine_split。其中,驱动关节点5-spine2对应的节点向量为V

本步骤中,将该驱动关节点5-spine2及其各个相邻驱动关节点对应的节点向量V

步骤C1:第三特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的隐层位移旋转特征;并将各个拼接后的隐层位移旋转特征进行拼接,得到拼接旋转特征。

本步骤中,第三特征拼接层可以将该驱动关节点及其各个相邻驱动关节点的隐层位移旋转特征分别与该驱动关节点对应的向量位移在第二轴进行拼接,得到各个拼接后的隐层位移旋转特征;然后,第三特征拼接层可以将各个拼接后的隐层位移旋转特征在第一轴进行拼接,得到拼接旋转特征。

举例说明,参见图6,隐层位移旋转特征HV

进一步的,第三特征拼接层可以将该驱动关节点和及其各个相邻驱动关节点的拼接后的隐层位移旋转特征在第一轴的方向上进行拼接,得到拼接旋转特征MV

步骤C1:第六全连接层,根据拼接旋转特征确定该驱动关节点的解码后的旋转信息。

举例说明,参见图6,本步骤中,可以通过第六全连接层对拼接旋转特征MV

步骤306,基于解码后的旋转信息与原始旋转信息的差异,判断该驱动关节点对应的编码模型和解码模型是否收敛,若判断结果为是,执行步骤307,若判断结果为否,执行步骤308。

本步骤中,可以针对每个驱动关节点,通过计算该驱动关节点解码后的旋转信息和原始旋转信息之间的差值,判断该差值是否小于预设差值阈值,若该差值小于预设差值阈值,则确定该驱动关节点对应的编码模型和解码模型收敛;若该差值不小于预设差值阈值,则确定该驱动关节点对应的编码模型和解码模型未收敛。

步骤307,将待定输出结果中该驱动关节点对应的节点向量确定为该驱动关节点的运动特征。

步骤308,调整该驱动关节点对应的编码模型和解码模型的模型参数,返回执行步骤302中所述将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤。

本步骤中,可以调节该驱动关节点对应的编码模型和解码模型中全连接层的参数。

参见图7,本发明实施例可以针对人体模型的每个驱动关节点,将该驱动关节点骨架信息O和原始旋转信息Q、以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息,输入该驱动关节点对应的编码模型E进行处理,将该驱动关节点对应的编码模型E的处理结果作为该驱动关节点对应的解码模型D的输入,将该驱动关节点对应的解码模型D的处理结果作为该驱动关节点的解码后的旋转信息;然后,可以基于该驱动关节点的解码后的旋转信息和原始旋转信息确定损失,基于损失调整该驱动关节点对应的编码模型E和解码模型D的模型参数,当调整到损失值小于预设损失阈值时,确定该驱动关节点对应的编码模型E和解码模型D。进一步的,可以将该驱动关节点骨架信息O和原始旋转信息Q、以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息,输入该驱动关节点对应的收敛后的编码模型E进行处理,输出结果中该驱动关节点对应的节点向量确定为该驱动关节点的运动特征。

采用本发明实施例提供的方法,提取三维人体模型的每个驱动关节点的运动特征时,考虑了驱动关节点之间的相邻位置关系,排除了偏远驱动关节点之间的影响。因此,使得所提取的各个驱动关节点的运动特征可以较为全面的反应出各个关节点的运动信息。

并且,本发明实施例中,每个驱动关节点对应的收敛后的编码模型可以应用在其他需要提取人体模型运动特征的应用场景中,例如,可以应用在人体模型重定向场景中,通过本发明实施例提供的每个驱动关节点对应的收敛后的编码模型提取每个驱动关节点运动特征,并对所提取的运动特征进一步进行定向处理,得到重定向后的人体模型。

基于同一发明构思,根据本发明上述实施例提供的三维人体模型运动特征的提取方法,相应地,本发明另一实施例还提供了一种三维人体模型运动特征的提取装置,其结构示意图如图8所示,具体包括:

信息获取模块801,用于获取三维人体模型的骨架信息和多帧运动信息;其中,骨架信息包括:三维人体模型的每个驱动关节点的相对位移;每一帧运动信息包括:该帧中三维人体模型的各个驱动关节点的原始旋转信息;三维人体模型包括一个根关节点和多个驱动关节点;每个驱动关节点的相对位移表示:驱动关节点相对于根关节点的位移信息;

数据编码模块802,用于针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

数据解码模块803,用于将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;所述解码后的旋转信息与所述原始旋转信息的数据格式相同;

模型收敛确定模块804,用于基于所述解码后的旋转信息与所述原始旋转信息的差异,确定所述编码模型和所述解码模型是否收敛;

模型参数调整模块805,用于若所述编码模型和解码模型未收敛,则调整所述编码模型和解码模型的模型参数,返回所述将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;

运动特征确定模块806,用于若所述编码模型和所述解码模型收敛,则将所述待定输出结果确定为所述驱动关节点的运动特征。

可见,采用本发明实施例提供的装置,获取三维人体模型的骨架信息和多帧运动信息;针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;基于解码后的旋转信息与原始旋转信息的差异,确定编码模型和所述解码模型是否收敛;若编码模型和解码模型未收敛,则调整编码模型和解码模型的模型参数,返回将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;若编码模型和解码模型收敛,则将待定输出结果确定为驱动关节点的运动特征。即提取三维人体模型的每个驱动关节点的运动特征时,考虑了驱动关节点之间的相邻位置关系,排除了偏远驱动关节点之间的影响。因此,使得所提取的各个驱动关节点的运动特征可以较为全面的反应出各个关节点的运动信息。

进一步的,所述编码模型包括:骨架信息编码模块和旋转信息编码模块;

所述数据编码模块802,具体用于将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型;骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移;旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量;将该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

所述运动特征确定模块806,具体用于若所述编码模型和所述解码模型收敛,则该驱动关节点对应的节点向量确定为该驱动关节点的运动特征。

进一步的,所述骨架信息编码模块包括:第一全连接层、第一特征拼接层和第二全连接层;所述旋转信息编码模块包括:第三全连接层、第二特征拼接层和第四全连接层;

所述骨架信息编码模块对该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移进行处理,得到该驱动关节点对应的向量位移,包括:

所述第一全连接层,根据该驱动关节点的相对位移和该驱动关节点的各个相邻驱动关节点的相对位移,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征;

所述第一特征拼接层,对该驱动关节点和该驱动关节点的各个相邻驱动关节点的第一隐层位移特征进行拼接,得到隐层位移拼接特征;

所述第二全连接层,根据隐层位移拼接特征确定该驱动关节点对应的向量位移;

所述旋转信息编码模块对该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息进行处理,得到该驱动关节点对应的节点向量,包括:

所述第三全连接层,根据该驱动关节点的原始旋转信息和该驱动关节点的各个相邻驱动关节点的原始旋转信息,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征;

所述第二特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的第二隐层位移特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的第二隐层位移特征;并将各个拼接后的第二隐层位移特征进行拼接,得到拼接特征;

所述第四全连接层,根据拼接特征确定该驱动关节点对应的节点向量。

进一步的,所述解码模型包括:第五全连接层、第三特征拼接层和第六全连接层;

所述数据解码模块803,具体用于所述第五全连接层,根据该驱动关节点和该驱动关节点的各个相邻驱动关节点对应的节点向量,确定该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征;所述第三特征拼接层,将该驱动关节点和该驱动关节点的各个相邻驱动关节点的隐层位移旋转特征分别与该驱动关节点对应的向量位移进行拼接,得到各个拼接后的隐层位移旋转特征;并将各个拼接后的隐层位移旋转特征进行拼接,得到拼接旋转特征;所述第六全连接层,根据拼接旋转特征确定该驱动关节点的解码后的旋转信息。

进一步的,每一帧运动信息中的各个驱动关节点的原始旋转信息采用四元数表示:

其中,

可见,采用本发明实施例提供的装置,在提取三维人体模型的每个驱动关节点的运动特征时,考虑了驱动关节点之间的相邻位置关系,排除了偏远驱动关节点之间的影响。因此,使得所提取的各个驱动关节点的运动特征可以较为全面的反应出各个关节点的运动信息。

本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,

存储器903,用于存放计算机程序;

处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:

获取三维人体模型的骨架信息和多帧运动信息;其中,骨架信息包括:三维人体模型的每个驱动关节点的相对位移;每一帧运动信息包括:该帧中三维人体模型的各个驱动关节点的原始旋转信息;三维人体模型包括一个根关节点和多个驱动关节点;每个驱动关节点的相对位移表示:驱动关节点相对于根关节点的位移信息;

针对三维人体模型的每个驱动关节点,将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果;

将该待定输出结果输入与该驱动关节对应的解码模型,得到该驱动关节点的解码后的旋转信息;所述解码后的旋转信息与所述原始旋转信息的数据格式相同;

基于所述解码后的旋转信息与所述原始旋转信息的差异,确定所述编码模型和所述解码模型是否收敛;

若所述编码模型和解码模型未收敛,则调整所述编码模型和解码模型的模型参数,返回所述将该驱动关节点的相对位移和原始旋转信息,以及该驱动关节点的各个相邻驱动关节点的相对位移和原始旋转信息输入该驱动关节的对应的编码模型,得到该驱动关节点对应的向量位移和该驱动关节点对应的节点向量作为待定输出结果的步骤;

若所述编码模型和所述解码模型收敛,则将所述待定输出结果确定为所述驱动关节点的运动特征。

上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述终端与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的三维人体模型运动特征的提取方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的三维人体模型运动特征的提取方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 人体模型运动特征提取方法、装置、电子设备及存储介质
  • 特征提取方法、特征提取装置、存储介质与电子设备
技术分类

06120112656664