运动重定向处理方法及装置制造方法

文档序号:6514377阅读:186来源:国知局
运动重定向处理方法及装置制造方法
【专利摘要】本发明实施例提供一种运动重定向处理方法及装置,该方法包括:根据骨骼中的关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,所述骨骼包括源骨骼和目标骨骼;根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理;将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点,本发明的技术方案,可以提高运动重定向中骨骼映射的准确度。
【专利说明】运动重定向处理方法及装置【技术领域】
[0001 ] 本发明实施例涉及计算机技术,尤其涉及一种运动重定向处理方法及装置。
【背景技术】
[0002]近些年来随着计算机性能的提升,计算机动画技术在动漫制作,电影特技,甚至是课堂教学等各方面得到了广泛的应用。计算机动画里面的角色包含以下几个主要的内容:角色模型和骨骼。骨骼包括骨骼结构和运动数据两部分内容,其中,骨骼结构描述了该角色模型几何特征的拓扑结构,它是以树形结构存储,骨骼结构包含了关节点;运动数据描述了骨骼结构中各关节点在一段时间内的的运动信息。角色模型又包括网格模型,贴图以及蒙皮信息。网格模型包括顶点(它描述了网格模型各部分的具体的位置),三角形(点与点之间的联接关系,它构成了网格模型的表面);贴图则展示了三角形上要显示的图案(对于人体模型,皮肤的颜色,眼睛,嘴巴的颜色等都是通过贴图展现在三角形上面);而蒙皮信息通常是指顶点所受到距离它最近的骨骼中几个关节点(通常不超过4个)的影响因子大小,因此对蒙皮信息而言,骨骼是不可替换更改的,骨骼对应的运动数据则是以帧的形式记录的,每一帧记录了骨骼的一个姿态,它存储的是每个骨骼关节点针对父关节点的运动数据,每一个关节点的数据包括三个方面的内容:每个骨骼关节点距离其父关节点的距离、关节点的局部坐标系以及子关节点的信息。
[0003]为了使3D模型的骨骼(目标骨骼)可以执行第三方(包含新的运动数据的)骨骼(源骨骼)的运动,建立源骨骼关节点到目标骨骼关节点的映射关系,并根据所述映射关系把源骨骼上关节点的运动数据传递给目标骨骼关节点上的过程称之为运动重定向,现有技术的运动重定向方法根据关节点名称建立映射关系,这种方式严格依赖于标准的骨骼名称的定义,但是实际不同用户定义的名称并不统一,所以运动重定向结果往往不精确,并且实现过程中还需要依赖于一个用于名称匹配的名称库。
[0004]现有技术中的运动重`定向方法存在准确度较低的问题。

【发明内容】

[0005]本发明实施例提供一种运动重定向处理方法及装置,用以提高运动重定向的准确度。
[0006]本发明第一方面,提供一种运动重定向处理方法,包括:
[0007]根据骨骼中的关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,所述骨骼包括源骨骼和目标骨骼;
[0008]根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理;
[0009]将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点。
[0010]在第一方面的第一种可能的实现方式中,所述特征关节点包括根关节点、胸关节点、左胯关节点、右胯关节点、左肩关节点、右肩关节点和颈关节点;[0011]所述根据骨骼中的关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,包括:
[0012]根据所述关节点的拓扑结构特征,确定所述骨骼中所述根关节点的位置和名称以及所述胸关节点的位置和名称;
[0013]根据所述关节点的拓扑结构特征和所述骨骼的朝向,确定所述骨骼中所述左胯关节点的位置和名称以及所述右胯关节点的位置和名称;
[0014]根据所述骨骼的对称性和所述关节点运动数据,确定所述骨骼中所述左肩关节点的位置和名称、所述右肩关节点的位置和名称以及所述颈关节点的位置和名称。
[0015]根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称之前,还包括:
[0016]将所述骨骼划分为六个分支;
[0017]所述根据关节点的拓扑结构特征和所述骨骼的朝向,确定所述骨骼中所述左胯关节点的位置和名称以及所述右胯关节点的位置和名称,包括:
[0018]根据所述六个分支的关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点;
[0019]确定所述第一腿分支的叶子关节点和所述第二腿分支的叶子关节点的平均朝向的第一向量,所述叶子关节点为关节点的度为O的关节点,所述关节点的度为所述关节点的子关节点的个数;
[0020]根据右手定则确定所述根关节点、所述第一胯关节点和第二胯关节点的第二向量;
[0021]若所述第一向量与所述第二向量的夹角小于90°,则确定所述第一胯关节点为所述左胯关节点,所述第二胯关节点为所述右胯关节点;若所述第一向量与所述第二向量的夹角大于90°,则确定所述第一胯关节点为所述右胯关节点,所述第二胯关节点为所述左胯关节点;
[0022]所述根据所述骨骼的对称性和所述关节点运动数据,确定所述骨骼中所述左肩关节点的位置和名称、所述右肩关节点的位置和名称以及所述颈关节点的位置和名称,包括:
[0023]根据所述六个分支的对称性,确定第一臂分支和第二臂分支以及头分支;
[0024]根据所述右手定则确定所述第一臂分支为左臂分支,并且确定所述第二臂分支为右臂分支;
[0025]根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点;
[0026]根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点;
[0027]根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
[0028]根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述骨骼划分为六个分支之前,还包括:
[0029]根据所述源骨骼中关节点的拓扑结构特征和所述源骨骼的关节点运动数据,删除所述源骨骼的冗余关节点,确定优化的源骨骼;
[0030]复制所述优化的源骨骼和所述目标骨骼,得到复制骨骼,所述复制骨骼包括复制优化的源骨骼和复制目标骨骼;
[0031]对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼;
[0032]所述将所述骨骼划分为六个分支,包括:
[0033]根据复制优化的源骨骼的通用星形结构骨骼中的关节点,将所述优化的源骨骼划分为六个分支,并且根据所述目标骨骼的通用星形结构骨骼,将所述目标骨骼划分为六个分支。
[0034]根据第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼之后,所述将所述骨骼划分为六个分支之前,还包括:
[0035]判断所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼是否相同;
[0036]若是,则执行所述将所述骨骼划分为六个分支。
[0037]结合第一方面的第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述源骨骼中关节点的拓扑结构特征和所述源骨骼的关节点运动数据,删除所述源骨骼的冗余关节点,确定优化的源骨骼,包括:
[0038]确定所述源骨骼中的关节点到所述源骨骼中的关节点的子关节点的距离;
[0039]根据所述源关节点的关节点运动数据,确定所述源骨骼中的关节点的运动幅度;
[0040]删除所述源骨骼中关节点的度为1、并且所述到所述源骨骼中的关节点的子关节点的距离小于第一阈值、并且所述运动幅度小于第二阈值的关节点。
[0041]结合第一方面的第三种至第五种可能的实现方式中任意一种,在第一方面的第六种可能的实现方式中,所述对所述复制骨骼进行简化处理,包括:
[0042]标记根关节点为起始关节点,遍历所述复制骨骼的树形结构;
[0043]判断当前关节点的度是否大于I ;
[0044]若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点,判断所述复制骨骼中的关节点是否遍历结束;
[0045]若是,则删除遍历结束后的复制骨骼中到所述遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点;
[0046]若否,执行所述判断当前关节点的度是否大于I ;
[0047]若否,则判断所述当前节点是否为叶子关节点;
[0048]若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点;[0049]若否,则标记所述当前关节点为起始关节点,执行所述判断当前关节点的度是否大于I。
[0050]结合第一方面的第三种至第六种可能的实现方式中任意一种,在第一方面的第七种可能的实现方式中,所述根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理,包括:
[0051]根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,所述六个分支的语义标签为根据所述特征关节点定义的、用于区分所述六个分支的名称,所述语义标签包括躯干、左腿、右腿、左臂、右臂以及头。
[0052]根据第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,包括:
[0053]判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0054]若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0055]若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射;
[0056]若否,则按长度比例,对所述优化的源骨骼的第一子分支上的关节点和与所述优化的源骨骼的第一子分支上的关节点距离最近的所述目标骨骼的第一子分支上的关节点进行一对一映射;
[0057]若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系;
[0058]若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射;
[0059]若否,则按长度比例,对所述优化的源骨骼的分支上的关节点和与所述优化的源骨骼的分支上的关节点距离最近的所述目标骨骼的分支上的关节点进行映射。
[0060]根据第一方面的第七种可能的实现方式,在第一方面的第九种可能的实现方式中,所述根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,包括:
[0061]判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0062]若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0063]若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射;
[0064]若否,则根据所述优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对所述优化的源骨骼的第一子分支上的关节点和所述重构的目标骨骼的第一子分支上的关节点进行一对一映射;
[0065]若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系;
[0066]若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射;
[0067]若否,则根据所述优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对所述优化的源骨骼的分支上的关节点和所述重构的目标骨骼的分支上的关节点进行一对一映射;
[0068]更新重构的目标骨骼上的关节点的蒙皮信息;
[0069]将所述重构的目标骨骼上的关节点的局部坐标系转化所述源骨骼上的关节点的局部坐标系;
[0070]所述将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点,包括:
[0071]将所述优化的源骨骼的关节点的运动数据赋值给所述目标骨骼中与所述源骨骼的关节点对应的关节点。
[0072]结合第一方面的第二种至第九种可能的实现方式中任意一种,在第一方面的第十种可能的实现方式中,所述根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理之后,所述将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点之前,还包括:
[0073]根据所述骨骼中的所述根关节点、所述左胯关节点和所述右胯关节点,对所述源骨骼的所述六个分支与所述目标骨骼的所述六个分支进行对齐处理。
[0074]本发明第二方面,提供一种运动重定向处理装置,包括:
[0075]确定模块,用于根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,所述骨骼包括源骨骼和目标骨骼;
[0076]处理模块,用于根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理;
[0077]传递模块,用于将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点。[0078]在第二方面的第一种可能的实现方式中,所述特征关节点包括根关节点、胸关节点、左胯关节点、右胯关节点、左肩关节点、右肩关节点和颈关节点;
[0079]所述确定模块,具体用于:
[0080]根据所述关节点的拓扑结构特征,确定所述骨骼中所述根关节点的位置和名称以及所述胸关节点的位置和名称;
[0081]根据所述关节点的拓扑结构特征和所述骨骼的朝向,确定所述骨骼中所述左胯关节点的位置和名称以及所述右胯关节点的位置和名称;
[0082]根据所述骨骼的对称性和所述关节点运动数据,确定所述骨骼中所述左肩关节点的位置和名称、所述右肩关节点的位置和名称以及所述颈关节点的位置和名称。
[0083]根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理模块,还用于在所述根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称之前,将所述骨骼划分为六个分支;
[0084]所述确定模块,还用于:
[0085]根据所述六个分支的关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点;
[0086]确定所述第一腿分支的叶子关节点和所述第二腿分支的叶子关节点的平均朝向的第一向量,所述叶子关节点为关节点的度为O的关节点,所述关节点的度为所述关节点的子关节点的个数;
[0087]根据右手定则确定所述根关节点、所述第一胯关节点和第二胯关节点的第二向量;
[0088]若所述第一向量与所述第二向量的夹角小于90°,则确定所述第一胯关节点为所述左胯关节点,所述第二胯关节点为所述右胯关节点;若所述第一向量与所述第二向量的夹角大于90°,则确定所述第一胯关节点为所述右胯关节点,所述第二胯关节点为所述左胯关节点;
[0089]所述确定模块,还用于:
[0090]根据所述六个分支的对称性,确定第一臂分支和第二臂分支以及头分支;
[0091]根据所述右手定则确定所述第一臂分支为左臂分支,并且确定所述第二臂分支为右臂分支;
[0092]根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点;
[0093]根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点;
[0094]根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
[0095]根据第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理模块,还用于在将所述骨骼划分为六个分支之前,根据所述源骨骼中关节点的拓扑结构特征和所述源骨骼的关节点运动数据,删除所述源骨骼的冗余关节点,确定优化的源骨骼;
[0096]复制所述优化的源骨骼和所述目标骨骼,得到复制骨骼,所述复制骨骼包括复制优化的源骨骼和复制目标骨骼;
[0097]对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼;
[0098]所述处理模块,还用于:
[0099]根据复制优化的源骨骼的通用星形结构骨骼中的关节点,将所述优化的源骨骼划分为六个分支,并且根据所述目标骨骼的通用星形结构骨骼,将所述目标骨骼划分为六个分支。
[0100]根据第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述确定模块,还用于在所述对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼之后,所述将所述骨骼划分为六个分支之前,判断所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼是否相同;若是,则执行所述将所述骨骼划分为六个分支。
[0101]结合第二方面的第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述处理模块,还用于:
[0102]确定所述源骨骼中的关节点到所述源骨骼中的关节点的子关节点的距离;
[0103]根据所述源关节点的关节点运动数据,确定所述源骨骼中的关节点的运动幅度;
[0104]删除所述源骨骼中关节点的度为1、并且所述到所述源骨骼中的关节点的子关节点的距离小于第一阈值、并且所述运动幅度小于第二阈值的关节点。
[0105]结合第二方面的第三种至第五种可能的实现方式中任意一种,在第二方面的第六种可能的实现方式中,所述处理模块,还用于:
[0106]标记根关节点为起始关节点,遍历所述复制骨骼的树形结构;
[0107]判断当前关节点的度是否大于I ;
[0108]若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点,判断所述复制骨骼中的关节点是否遍历结束;
[0109]若是,则删除遍历结束后的复制骨骼中到所述遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点;
[0110]若否,执行所述判断当前关节点的度是否大于I ;
[0111]若否,则判断所述当前节点是否为叶子关节点;
[0112]若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点;
[0113]若否,则标记所述当前关节点为起始关节点,执行所述判断当前关节点的度是否大于I。
[0114]结合第二方面的第三种至第六种可能的实现方式中任意一种,在第二方面的第七种可能的实现方式中,所述处理模块,还用于:
[0115]根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,所述六个分支的语义标签为根据所述特征关节点定义的、用于区分所述六个分支的名称,所述语义标签包括躯干、左腿、右腿、左臂、右臂以及头。
[0116]根据第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述处理模块,还用于:
[0117]判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0118]若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0119]若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射;
[0120]若否,则按长度比例,对所述优化的源骨骼的第一子分支上的关节点和与所述优化的源骨骼的第一子分支上的关节点距离最近的所述目标骨骼的第一子分支上的关节点进行一对一映射;
[0121]若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系;
[0122]若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射;
[0123]若否,则按长度比例,对所述优化的源骨骼的分支上的关节点和与所述优化的源骨骼的分支上的关节点距离最近的所述目标骨骼的分支上的关节点进行映射。
[0124]根据第二方面的第七种可能的实现方式,在第二方面的第九种可能的实现方式中,所述处理模块,还用于:
[0125]判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0126]若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0127]若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射;
[0128]若否,则根据所述优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对所述优化的源骨骼的第一子分支上的关节点和所述重构的目标骨骼的第一子分支上的关节点进行一对一映射;
[0129]若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系;
[0130]若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射;
[0131]若否,则根据所述优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对所述优化的源骨骼的分支上的关节点和所述重构的目标骨骼的分支上的关节点进行一对一映射;
[0132]更新重构的目标骨骼上的关节点的蒙皮信息;
[0133]将所述重构的目标骨骼上的关节点的局部坐标系转化所述源骨骼上的关节点的局部坐标系;
[0134]所述传递模块,具体用于:
[0135]将所述优化的源骨骼的关节点的运动数据赋值给所述目标骨骼中与所述源骨骼的关节点对应的关节点。
[0136]结合第二方面的第二种至第九种可能的实现方式中任意一种,在第二方面的第十种可能的实现方式中,所述处理模块,还用于在所述根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理之后,所述将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点之前,根据所述骨骼中的所述根关节点、所述左胯关节点和所述右胯关节点,对所述源骨骼的所述六个分支与所述目标骨骼的所述六个分支进行对齐处理。
[0137]本发明实施例提供的运动重定向处理方法及装置,通过根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,所述骨骼包括源骨骼和目标骨骼,再根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理,最后将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点,可以实现确定特征关节点时并不依赖于标准的骨骼名称的定义,也不需要使用用于名称匹配的名称库,提高了运动重定向中骨骼映射的准确度。
【专利附图】

【附图说明】
[0138]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0139]图1为本发明提供的运动重定向处理方法实施例一的流程图;
[0140]图2为本发明提供的运动重定向处理方法实施例二的流程图;
[0141]图3A为本发明本发明提供的运动重定向处理方法实施例二中源骨骼和优化的源骨骼的骨骼结构示意图;
[0142]图3B为本发明提供的运动重定向处理方法实施例二中对复制骨骼进行简化处理的流程图;[0143]图4A和图4B为本发明提供的运动重定向处理方法实施例二中复制骨骼的骨骼结构示意图和树形结构示意图;
[0144]图5A和图5B为本发明提供的运动重定向处理方法实施例二中简化处理后得到的通用星形结构的骨骼结构示意图和树形结构示意图;
[0145]图6为本发明提供的运动重定向处理方法实施例二中复制优化的源骨骼的通用星形结构骨骼的分支与优化的源骨骼的分支的映射关系示意图;
[0146]图7为本发明提供的运动重定向处理方法实施例二中确定左膀关节点和右膀关节点的流程图;
[0147]图8为本发明提供的运动重定向处理方法实施例二中确定左肩关节点、右肩关节点以及颈关节点的流程图;
[0148]图9本发明提供的运动重定向处理方法实施例二中右臂分支上关节点的运动变化累加幅值不意图;
[0149]图10为本发明提供的运动重定向处理方法实施例二中七个特征关节点的位置示意图;
[0150]图11为本发明提供的运动重定向处理方法实施例二中待映射的优化的源骨骼和待映射的目标骨骼的拓扑结构示意图;
[0151]图12为本发明提供的运动重定向处理方法实施例二中第二种映射处理方式的流程图;
[0152]图13为本发明提供的运动重定向处理方法实施例二中根据优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点的示意图;
[0153]图14为本发明提供的运动重定向处理装置实施例一的结构示意图;
[0154]图15为本发明提供的运动重定向处理装置实施例三的结构示意图。
【具体实施方式】
[0155]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0156]本发明适用于计算机动画中骨骼结构为类人骨骼结构的源骨骼与目标骨骼之间的运动重定向。
[0157]图1为本发明提供的运动重定向处理方法实施例一的流程图,如图1所示,本实施例的运动重定向处理方法包括:
[0158]S101、根据骨骼中关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称,骨骼包括源骨骼和目标骨骼。
[0159]具体来说,计算机动画里面的角色的骨骼结构可以抽象为树形结构,其中树的每一个节点代表了一个骨骼关节点,在计算机数据结构中,树是由η (η>1)个有限节点组成的具有层次关系的集合Τ。当T为空时,称之为空树,否则它满足如下两个条件:有且只有一个特定的定义为根的节点;其余节点可分为m (m > O)个子集,且不相交,其中每一个子集又是一棵树,并称之为根的子树,树的特点包括:每个节点具有零个或者多个子节点;根节点没有父节点;每个非根节点只有一个父节点;除了根节点以外,每个子节点可以分为m个不相交的子树,一个节点的子节点个数定义为该节点的度,节点的度为O的节点称之为叶子节点,以某节点为根的子树中,任意一个节点称之为该节点的子孙节点,从根节点到该节点所经历的分支上所有的节点都称之为该节点的祖先节点。
[0160]本实施例将一个关节点的子节点个数以及父关节点个数这样的特征信息称之为关节点的拓扑结构特征,本实施例中确定的骨骼的特征关节点的位置和名称用于作为进行源骨骼到目标骨骼的关节点映射处理时的参照关节。
[0161]进一步地,特征关节点包括根关节点、胸关节点、左胯关节点、右胯关节点、左肩关节点、右肩关节点和颈关节点;
[0162]SlOl可以包括:
[0163]根据关节点的拓扑结构特征,确定骨骼中根关节点的位置和名称以及胸关节点的位置和名称;
[0164]具体来说,本实施例定义Base关节点为根关节点根据关节点的拓扑结构特征中根关节点和胸关节点均有三个子关节点,但是根关节点没有父关节点,胸关节点有父关节点的特征,可以确定根关节点和胸关节点的位置和名称。
[0165]根据关节点的拓扑结构特征和骨骼的朝向,确定骨骼中左胯关节点的位置和名称以及右胯关节点的位置和名称;
[0166]根据骨骼的对称性和关节点运动数据,确定骨骼中左肩关节点的位置和名称、右肩关节点的位置和名称以及颈关节点的位置和名称。
[0167]具体来说,对于源骨骼和目标骨骼其运动数据并不会因为不同的人为定义而不统一,所以根据关节点运动数据确定特征关节点的较为精准。
[0168]S102、根据源骨骼的第一特征关节点的位置和名称和目标骨骼的第二特征关节点的位置和名称,进行源骨骼到目标骨骼的关节点映射处理。
[0169]具体来说,以SlOl中确定的特征关节点为参考点进行源骨骼到目标骨骼的关节点映射处理。
[0170]现有技术的运动重定向方法为:首先以关节点的拓扑结构特征为依据,寻找源骨骼和目标骨骼的Base关节点和胸关节点,并建立映射关系;对于其他具有共同拓扑结构特征的关节点、即对称的骨骼关节点,结合名称建立关节点的映射关系;在剩余关节点中查找具有共同名称的关节点,建立关节点的映射关系,可以看出现有技术对于不具备明显拓扑结构特征的关节点(例如肩部、肘部、膝关节等只有一个子关节点的关节)采用标准的骨骼命名方式来进行关节点查找后建立映射关系,因此存在映射不准确的缺陷。
[0171]本实施例根据骨骼中关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称,确定特征关节点时并不依赖于标准的骨骼名称的定义,也不需要使用用于名称匹配的名称库,再以确定的特征参考点进行源骨骼到目标骨骼的关节点映射处理,提高了骨骼映射的准确度。
[0172]S103、将源骨骼的关节点运动数据传递至目标骨骼中的关节点。
[0173]具体来说,由于源骨骼的关节点和目标骨骼的关节点的局部坐标系可能不一致,因此无法将源骨骼特征关节点的运动数据直接传递给目标骨骼的特征关节点,需要先将源骨骼的运动数据由局部坐标系转换为全局坐标系,再转化为目标骨骼对应骨骼的局部坐标系数据,为保证动画质量,可利用反向动力学(Inverse Kinematics,简称IK)算法对传递过来的运动数据进行进一步优化处理,最终生成新的动画并展示。
[0174]可以理解的是,本实施例还包括将目标骨骼关节分支和源骨骼分支对齐的步骤。
[0175]本实施例提供的运动重定向处理方法,通过根据骨骼中关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称,骨骼包括源骨骼和目标骨骼,再根据源骨骼的第一特征关节点的位置和名称和目标骨骼的第二特征关节点的位置和名称,进行源骨骼到目标骨骼的关节点映射处理,最后将源骨骼的关节点运动数据传递至目标骨骼中的关节点,可以实现确定特征关节点时并不依赖于标准的骨骼名称的定义,也不需要使用用于名称匹配的名称库,提高了骨骼映射的准确度。
[0176]图2为本发明提供的运动重定向处理方法实施例二的流程图,如图2所示,本实施例对本发明提供的运动重定向处理方法进行详细说明,包括:
[0177]S201、根据源骨骼中关节点的拓扑结构特征和源骨骼的关节点运动数据,删除源骨骼的冗余关节点,确定优化的源骨骼。
[0178]具体来说,在做运动重定向时,发现源骨骼的拓扑结构有可能含有一些无用的结构信息。这些无用信息主要表现在两个方面:一是在整个运动过程中变化幅度很小;二是骨骼的长度比较小,删除无用的结构信息可以使得后续确定特征关节点和源骨骼到目标骨骼的映射更加准确。
[0179]S201可以包括:
[0180]确定源骨骼中的关节点到源骨骼中的关节点的子关节点的距离;
[0181]根据源关节点的关节点运动数据,确定源骨骼中的关节点的运动幅度。
[0182]删除源骨骼中关节点的度为1、并且到源骨骼中的关节点的子关节点的距离小于第一阈值、并且运动幅度小于第二阈值的关节点。
[0183]具体来说,若某一关节点的度大于1,说明该关节点后面还有分支,故不能删除;若某一关节点的度为0,说明该关节点为叶子关节点,也不能删除,第一阈值的可以设置为小于整个源骨骼的平均长度的数值,第二阈值可以以源骨骼中各关节点的运动幅度为参考设定,删除冗余关节点后,把该冗余关节点的子关节点连到该冗余关节点的父关节点上,并对源骨骼对应的运动数据进行修正,删除该冗余关节点的运动数据。
[0184]图3A为本发明本发明提供的运动重定向处理方法实施例二中源骨骼和优化的源骨骼的骨骼结构示意图,如图3A所示,经过S201的优化过程,删除了源骨骼中的冗余关节点36和冗余关节点37。
[0185]需要说明的是,本实施例仅对源骨骼进行删除冗余关节点的优化处理,而不对目标骨骼进行优化处理,这是由于目标骨骼一般为较优化的骨骼模型,而且若对目标骨骼进行优化处理,则需要修改目标骨骼的蒙皮信息,但本发明并不以此为限。
[0186]S202、复制优化的源骨骼和目标骨骼,得到复制骨骼,复制骨骼包括复制优化的源骨骼和复制目标骨骼。
[0187]具体来说,复制一份优化的源骨骼和目标骨骼,将复制的源骨骼记做复制优化的源骨骼(Copy Source Skel),复制的目标骨骼记做复制目标骨骼(Copy Target Skel)0由于需要判断优化的源骨骼和目标骨骼的拓扑结构是否相同,而需要简化优化的源骨骼和目标骨骼的拓扑结构,但是由于简化处理会破坏优化的源骨骼和目标骨骼的拓扑结构,因此需要复制一份优化的源骨骼和目标骨骼单独用于判断两者的拓扑结构是否相似。
[0188]S203、对复制骨骼进行简化处理,确定复制优化的源骨骼的通用星形结构骨骼和复制目标骨骼的通用星形结构骨骼。
[0189]S203可以包括:标记根关节点为起始关节点,遍历复制骨骼的拓扑结构;
[0190]判断当前关节点的度是否大于I ;
[0191]若是,则标记当前关节点为结束关节点,并删除起始关节点与结束关节点之间的关节点,判断复制骨骼中的关节点是否遍历结束;
[0192]若是,则删除遍历结束后的复制骨骼中到遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点;
[0193]若否,执行判断当前关节点的度是否大于I ;
[0194]若否,则判断当前节点是否为叶子关节点;
[0195]若是,则标记当前关节点为结束关节点,并删除起始关节点与结束关节点之间的关节点;
[0196]若否,则标记当前关节点为起始关节点,执行判断当前关节点的度是否大于I。
[0197]图3B为本发明提供的运动重定向处理方法实施例二中对复制骨骼进行简化处理的流程图,如图3B所示,本实施例对复制骨骼按树形结构进行简化处理的方法,可以包括:
[0198]S301、计算复制骨骼的平均长度。
[0199]S302、标记根关节点为起始关节点,遍历复制骨骼的树形结构。
[0200]S303、判断当前关节点的度是否大于1,若是,则执行S304,否则执行S307。
[0201]S304、标记当前关节点为结束关节点,并删除起始关节点与结束关节点之间的关节点。
[0202]具体来说,在遍历过程中,若发现当前关节点的度大于1,标记当前关节点为结束关节点。依遍历次序保存起始关节点到结束关节点的所有关节点,标记为一个分支。删除从起始关节点到结束关节点之间的节点,但保留原始分支的长度,图4A和图4B为本发明提供的运动重定向处理方法实施例二中复制骨骼的骨骼结构示意图和树形结构示意图,图5A和图5B为本发明提供的运动重定向处理方法实施例二中简化处理后得到的通用星形结构的骨骼结构示意图和树形结构示意图,如图4B和图5B所示,将图4B中的分支{1,2,3,4}简化为分支{1,4},即{1,4}的长度为{1,2,3,4}的长度,按顺序保留删除的关节点的序列号,用作后续将源骨骼和目标骨骼划分为六个分支。
[0203]S305、判断复制骨骼中的关节点是否遍历结束,若是,则执行S306,否则执行S303。
[0204]S306、删除遍历结束后的复制骨骼中到遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点。
[0205]具体来说,第三阈值的设定也可以以S301中计算得到的复制骨骼的平均长度为参考,删除遍历结束后的复制骨骼中长度较短的分支,例如手指的分支。
[0206]S307、判断当前节点是否为叶子关节点,若是,则执行S304,否则执行S303。
[0207]具体来说,如果到叶子关节点位置,没有子关节点个数大于2的节点,即该分支是链状结构,如图4B中{1,19,21,23,25},则标记此叶子关节点为结束关节点。依遍历次序保存起始关节点到结束关节点的所有关节点,标记为一个分支。删除除起始关节点和叶子关节点之外的其它关节点,将{1,19,21,23,25}简化为{1,25},但保留原始分支的长度,SP{1,25}的长度为{1,19,21,23,25}的长度,按顺序保留删除的关节点的序列号,用作后续将源骨骼和目标骨骼划分为六个分支。
[0208]S204、判断复制优化的源骨骼的通用星形结构骨骼和复制目标骨骼的通用星形结构骨骼是否相同,若是,则执行S205,否则,结束运动重定向。
[0209]具体来说,由于本发明适用于计算机动画中骨骼结构为类人骨骼结构的源骨骼与目标骨骼之间的运动重定向,本步骤的目的在于确定优化的源骨骼的结构和目标骨骼的结构是否相似,即优化的源骨骼和目标骨骼是否均为类人骨骼结构,若优化的源骨骼的结构和目标骨骼的结构不相似,则没有进行运动重定向的必要。
[0210]本步骤中若判断复制优化的源骨骼的通用星形结构骨骼的关节点个数和关节点的子关节点的个数与复制目标骨骼的通用星形结构骨骼的关节点个数和关节点的子关节点的个数是否相同,若相同,则认为优化的源骨骼的结构和目标骨骼的结构相似。
[0211]S205、根据复制优化的源骨骼的通用星形结构骨骼中的关节点,将优化的源骨骼划分为六个分支,并且根据目标骨骼的通用星形结构骨骼,将目标骨骼划分为六个分支。
[0212]具体来说,复制优化的源骨骼的通用星形结构骨骼的树形结构如图5B所示,复制优化的源骨骼的通用星形结构骨骼有六个分支,七个关节点。可以通过这七个关节点的序号寻找到优化的源骨骼的六个分支,由于复制优化的源骨骼和优化的源骨骼结构完全一致,因此可以通过关节点的序号寻找到优化的源骨骼的六个分支。其中优化的源骨骼各分支关节点序号可以在S204的简化过程中予以保留,同理,根据目标骨骼的通用星形结构骨骼,将目标骨骼划分为六个分支。
[0213]图6为本发明提供的运动重定向处理方法实施例二中复制优化的源骨骼的通用星形结构骨骼的分支与优化的源骨骼的分支的映射关系示意图,如图6所示,简化后的分支{1,25},可以通过关节点序号寻找到优化后源关节的详细分支{1,19,23,25}(如图6中阴影部分);简化后的分支{4,12},可以通过关节点序号寻找到优化后源关节的详细分支{4,8,9,10,11,12}(如图6中阴影部分)。
[0214]S206、根据关节点的拓扑结构特征,确定骨骼中根关节点的位置和名称以及胸关节点的位置和名称。
[0215]S207、根据关节点的拓扑结构特征和骨骼的朝向,确定骨骼中左胯关节点的位置和名称以及右胯关节点的位置和名称。
[0216]S207可以包括:
[0217]根据六个分支的关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点;
[0218]确定第一腿分支的叶子关节点和第二腿分支的叶子关节点的平均朝向的第一向量,叶子关节点为关节点的度为O的关节点;
[0219]根据右手定则确定根关节点、第一胯关节点和第二胯关节点的第二向量;
[0220]若第一向量与第二向量的夹角小于90°,则确定第一胯关节点为左胯关节点,第二胯关节点为右胯关节点;若第一向量与第二向量的夹角大于90°,则确定第一胯关节点为右胯关节点,第二胯关节点为左胯关节点。[0221]图7为本发明提供的运动重定向处理方法实施例二中确定左胯关节点和右胯关节点的流程图,如图7所示,本实施例确定左胯关节点和右胯关节点的方法可以包括:
[0222]S401、根据六个分支的关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点。
[0223]S402、确定第一腿分支的叶子关节点和第二腿分支的叶子关节点的平均朝向的第
一向量。
[0224]S403、根据右手定则确定根关节点、第一胯关节点和第二胯关节点的第二向量。
[0225]S404、判断第一向量和第二向量的夹角是否小于90°,若是,则执行S405,否则执行 S406。
[0226]S405、确定第一胯关节点为左胯关节点,第二胯关节点为右胯关节点。
[0227]S406、确定第一胯关节点为右胯关节点,第二胯关节点为左胯关节点。
[0228]具体来说,第一腿分支和第二腿分支的关节点的拓扑结构特征为“分支除根节点外只有子关节点为I的关节点以及一个叶子关节点”,第一腿分支和第二腿分支分别从根关节点开始之后的第一个关节点分别为第一胯关节点和第二胯关节点,在确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点之后,还需要进一步的分辨出哪个分支是左腿分支,哪个分支是右腿分支,可以依据脚的朝向来判断两腿分支的哪个是左腿分支,哪个是右腿分支,根据人体骨骼结构得知,人的左胯关节点,根关节点和右胯关节点三点右手定则的朝向和双脚的平均朝向是一致的,即根据三个关节点的右手定则获取的向量和双脚平均朝向的向量的夹角应该小于90° ;相反,人的右胯关节点,根关节点和左胯关节点形成的右手定则的方向和双脚平均朝向是相反的,即根据三个关节点的右手定则获取的向量和双脚平均朝向的向量的夹角应该大于90°,以图4A为例,19-1-18三个关节点构成的右手定则方向和左脚,右脚方向的平均值(22-24,23-25)相似。由此可推断出19为左胯关节点,18为右胯关节点,进一步可得知25为左脚关节点,24为右脚关节点。
[0229]S208、根据骨骼的对称性和关节点运动数据,确定骨骼中左肩关节点的位置和名称、右肩关节点的位置和名称以及颈关节点的位置和名称。
[0230]S208可以包括:
[0231]根据六个分支的对称性,确定第一臂分支和第二臂分支以及头分支;
[0232]根据右手定则确定第一臂分支为左臂分支,并且确定第二臂分支为右臂分支;
[0233]根据关节点运动数据,以胸关节点为起始关节点顺序计算左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点;
[0234]根据关节点运动数据,以胸关节点为起始关节点顺序计算右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点;
[0235]根据关节点运动数据,以胸关节点为起始关节点顺序计算头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
[0236]图8为本发明提供的运动重定向处理方法实施例二中确定左肩关节点、右肩关节点以及颈关节点的流程图,如图8所示,本实施例确定左肩关节点、右肩关节点以及颈关节点的方法可以包括:
[0237]S501、根据六个分支的对称性,确定第一臂分支和第二臂分支以及头分支。
[0238]S502、根据右手定则确定第一臂分支为左臂分支,并且确定第二臂分支为右臂分支。
[0239]S503、根据关节点运动数据,以胸关节点为起始关节点顺序计算左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点。
[0240]S503以确定左肩关节点为例,还可以包括:根据关节点运动数据,以胸关节点为起始关节点顺序计算右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点;根据关节点运动数据,以胸关节点为起始关节点顺序计算头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
[0241]具体来说,根据骨骼的对称性,可以确定第一臂分支和第二臂分支以及头分支,如图4A所示,以(13-1-8)三点构成的右手定则的方向和双脚方向的平均值做对比,可以得出13号关节点以及以后的子关节点属于左臂分支,8号关节点以及以后的子关节点属于右臂分支。然而却无法确定哪个是左肩关节点,哪个是右肩关节点。主要的原因在于,类人骨骼结构在胸部到肩部之间有可能有一个或者多个辅助关节点。为此,引入了关节点运动分析方法,来寻找左肩关节点,右肩关节点以及颈关节点,关节运动分析方法的依据是肩部关节的自由度(Degree of Freedom,简称DoF)变化范围在两臂分支关节点当中是最大的,运动分析方法的过程如下:针对胸关节的三个子分支(左臂分支,右臂分支,以及头分支),按关节点的连接顺序记录下每个分支中关节点在一段时间内关节点变化的幅度差值,该关节点的变化的幅度差值的和反映的是每个关节点的自由度的范围。图9本发明提供的运动重定向处理方法实施例二中右臂分支上关节点的运动变化累加幅值示意图,如图9所示,该曲线描述了图4A中左臂分支中关节点{4,8,9,10,11}的运动变化情况。图9的横轴展示的是从胸关节开始的手臂关节点的序列号,图9的纵轴展示的是运动过程中帧与帧之间关节点在三个方向上的差值的累加值,根据人体关节运动的常识知道肩关节点的自由度范围要大于胸关节的自由度范围,也大于肘关节的自由度范围,由此可以预测肩关节点的变化累加幅值应该大于胸关节点,也大于肘关节点,其数字化特征表现为肩关节点的变化累加幅值和相邻的关节点变化累加幅值相比为一个凸起的峰值特征(如图9中关节点9所示)。
[0242]按照上述关节点运动分析方法,可以得到图4A中源骨骼关节点13和9分别对应左肩关节点和右肩关节点,以及源骨骼关节点5为颈关节点。针对目标骨骼采用同样的方法,可以得到目标骨骼的七个特征关节的位置。
[0243]图10为本发明提供的运动重定向处理方法实施例二中七个特征关节点的位置示意图,其中七个特征关节点如图中阴影部分所示,需要说明的是,这七个特征关节点和复制优化的源骨骼的通用星形结构骨骼或复制目标骨骼的通用星形结构骨骼的七个关节点并不完全相同(只有根关节,胸关节一致,其它五个特征关节分别对应各分支的起始位置,而复制优化的源骨骼的通用星形结构骨骼或复制目标骨骼的通用星形结构骨骼的剩余五个关节则对应各分支的末端位置)。[0244]在确定七个特征关节点的位置和名称之后,可以根据特征关节点的名称确定六个分支的语义标签,例如有根关节点和胸关节点的分支称之为躯干分支,有左臂关节点的分支称之为左臂分支,有右臂关节点的分支称之为右臂分支,有颈关节点的分支称之为颈分支,有左胯关节点的分支称之为左腿分支,有右胯关节点的分支称之为右腿分支,六个分支的语义标签用于在针对各分支进行优化的源骨骼到目标骨骼的映射处理时,区分各分支,例如将优化的源骨骼中的语义标签为左臂分支和目标骨骼中语义标签为左臂分支的两个分支进行映射。
[0245]S209、根据优化的源骨骼的六个分支的语义标签和目标骨骼的六个分支的语义标签,对六个分支分别进行优化的源骨骼到目标骨骼的关节点映射处理。
[0246]六个分支的语义标签为根据特征关节点定义的、用于区分六个分支的名称,语义标签包括躯干、左腿、右腿、左臂、右臂以及头。
[0247]在第一种可能的映射处理方式中,S209可以包括:
[0248]判断待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0249]若是,则根据特征关节点将待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支,分别划分为第一子分支和第二子分支,第一子分支为首端关节点和特征关节点之间的子分支,第二子分支为特征关节点和末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0250]若是,则对优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点进行一对一映射;
[0251]若否,则按长度比例,对优化的源骨骼的第一子分支上的关节点和与优化的源骨骼的第一子分支上的关节点距离最近的目标骨骼的第一子分支上的关节点进行一对一映射;
[0252]若否,则判断优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点是否
存在一对一的映射关系;
[0253]若是,则优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点进行一对一映射;
[0254]若否,则按长度比例,对优化的源骨骼的分支上的关节点和与优化的源骨骼的分支上的关节点距离最近的目标骨骼的分支上的关节点进行映射。
[0255]具体来说,在分别获取了优化的源骨骼和目标骨骼的7个特征关节点以后,依次按照获得的六个分支,根据语义标签分别进行关节点映射处理。首先是躯干部分的映射:躯干部分,已知两个端点是一一对应的,图11为本发明提供的运动重定向处理方法实施例二中待映射的优化的源骨骼和待映射的目标骨骼的拓扑结构示意图,如图11所示,待映射的优化的源骨骼中{1,4}对应待映射的目标骨骼{1,2};其次是头分支的映射待映射的优化的源骨骼中{4,7}对应待映射的目标骨骼{2,5};然后是腿分支,待映射的优化的源骨骼左腿分支{1,19,21,23}对应待映射的目标骨骼{1,18,19,20},待映射的优化的源骨骼右腿分支{1,18,20,22}对应目标骨骼右腿{1,14,15,16};最后是臂分支,待映射的优化的源骨骼左臂分支{4,14,15,16}对应待映射的目标骨骼{2,10,11,12},待映射的优化的源骨骼右臂分支{4,9,10,11}对应待映射的目标骨骼{2,6,7,8}。由于待映射的优化的源骨骼腕部关节子孙节点构成的树拓扑结构和目标骨骼腕部关节子孙节点构成的树拓扑结构不同,故忽略指关节的映射处理。
[0256]六个骨骼分支的映射分为两种情况:两端固定的分支映射(例如躯干分支);一端固定的分支映射(例如双臂,双腿分支和颈部分支的映射)。
[0257]对于两端固定的分支映射(躯干分支),确定优化的源骨骼分支和目标骨骼分支已经定义了的两个端点具有一对一的映射关系,例如图11中优化的源骨骼关节点I和目标骨骼关节点1,优化的源骨骼关节点4和目标骨骼关节点2具有一对一的映射关系,对于躯干分支中间的骨骼关节点映射,则以根关节为起始点,按长度比例(将整个躯干的长度设为I)对优化的源骨骼的分支上的关节点和与优化的源骨骼的分支上的关节点距离最近的目标骨骼的分支上的关节点进行映射,可以理解的是,若优化的源骨骼或者目标骨骼在该分支之间没有关节点则不作映射。
[0258]对于一端固定的分支映射(双臂分支,双腿分支,以及头分支),以左、右肩关节点(针对双臂分支)或者左、右胯关节点(针对双腿分支)或者颈关节点(针对颈部分支)为中间点将该分支分为两个子分支,其中由胸关节点到左右肩关节点或者颈关节点的子分支之间的映射处理同两端固定的分支映射处理;剩余的分支则以左、右肩关节点或者左、右胯关节点或者颈关节点为起始关节点,分别按拓扑顺序依次对剩余的关节点进行一对一的映射,对于含有手指分支的骨骼,不做映射处理。
[0259]在第二种可能的映射处理方式中,S209可以包括:
[0260]判断待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0261]若是,则根据特征关节点将待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支,分别划分为第一子分支和第二子分支,第一子分支为首端关节点和特征关节点之间的子分支,第二子分支为特征关节点和末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0262]若是,则对优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点进行一对一映射;
[0263]若否,则根据优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对优化的源骨骼的第一子分支上的关节点和重构的目标骨骼的第一子分支上的关节点进行一对一映射;
[0264]若否,则判断优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点是否
存在一对一的映射关系;
[0265]若是,则优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点进行一对一映射;
[0266]若否,则根据优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对优化的源骨骼的分支上的关节点和重构的目标骨骼的分支上的关节点进行一对一映射;
[0267]图12为本发明提供的运动重定向处理方法实施例二中第二种映射处理方式的流程图,如图8所示,本实施例的映射处理方法可以包括:
[0268]S1201、判断待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点,若是,则执行S1202,否则,执行S1206。
[0269]S1202、根据特征关节点将待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支,分别划分为第一子分支和第二子分支,第一子分支为首端关节点和特征关节点之间的子分支,第二子分支为特征关节点和末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和目标骨骼的第二子分支上的关节点按拓扑顺序进行一对
一映射。
[0270]S1203、判断优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点是否存在一对一的映射关系,若是,则执行S1204,否则执行S1205。
[0271]S1204、对优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的
关节点进行一对一映射。
[0272]S1205、根据优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对优化的源骨骼的第一子分支上的关节点和重构的目标骨骼的第一子分支上的关节点进行一对一映射。
[0273]S1206、判断优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点是否存在一对一的映射关系,若是,则执行S1207,否则执行S1208。
[0274]S1207、对优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点进行一对一映射;
[0275]S1208、根据优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对优化的源骨骼的分支上的关节点和重构的目标骨骼的分支上的关节点进行一对
一映射。
[0276]S1209、更新重构的目标骨骼上的关节点的蒙皮信息。
[0277]S1210、将重构的目标骨骼上的关节点的局部坐标系转化源骨骼上的关节点的局部坐标系。
[0278]具体来说,在映射处理过程中,为进一步保留优化的源骨骼运动信息并映射到目标骨骼对应区域上,可以按照优化的源骨骼的拓扑结构来修改目标骨骼的拓扑结构以达到一对一映射的目的。
[0279]首先是躯干部分的映射:躯干部分,已知两个端点是一一对应的,如图11所示,待映射的优化的源骨骼中{1,4}对应待映射的目标骨骼{1,2},对于出现优化的源骨骼中间区域关节点多,目标骨骼对应区域关节点少的情况,首先保留目标骨骼区域的整体长度,以及曲线信息,然后按照优化的源骨骼对应区域的骨骼区间的比例重新生成目标骨骼区域对应缺失的关节点,使两个对应区域的关节点达到一对一的映射,图13为本发明提供的运动重定向处理方法实施例二中根据优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点的示意图,如图13所示,左侧线段代表是的目标骨骼,右侧线段代表的优化的源骨骼,左侧线段上三个点(A,B, C)代表的是目标骨骼的关节点,右侧线段上四个点(a, b,c, d)代表的优化的源骨骼上的四个关节点,在映射过程中保持目标骨骼的长度,根据目标骨骼的关节点确定一个曲线(左侧曲线),根据优化的源骨骼关节点所在位置的比例(右侧三条线段,LI,L2,L3)在左侧曲线上重新确定新关节点的位置(b’,c’两个关节点是按照b,c所在位置映射的新关节点),然后删掉目标骨骼区域内旧的关节点,在更新过目标骨骼关节之后,以原有的蒙皮信息作为输入,重新生成该区域的蒙皮信息。对于出现优化的源骨骼中间区域的关节点较少,目标骨骼对应区域的关节点多的情况,同样按照优化的源骨骼对应区域骨骼区间比例更新目标骨骼区域的关节点,如果源骨骼区域和目标骨骼区域关节数一致,则不需要进行任何调整,只记录关节点的映射关系。
[0280]然后是两腿分支对应的区间映射:在本实施例中,以左腿分支的映射为例,待映射的优化的源骨骼左腿分支{1,19,21,23、25}对应待映射的目标骨骼{1,18,19,20,21}做到一一映射。腿部的骨骼至少包括五个关节点:根关节点,胯关节点,膝关节点,踝关节点和趾关节点,根据优化的源骨骼腿部分支可得特征关节点19,以及目标骨骼特征关节点18。从它们开始按照拓扑结构顺序做好一对一映射,根节点到腿部胯关节点之间没有多余关节点,也做一对一映射,如果在优化的源骨骼端点趾关节上有分支,本方法中直接忽略该区域的运动数据,由于这些细微的运动变化在运动重定向过程中可以忽略不计。
[0281]手臂分支的映射:在本实施例中,以左臂分支的映射为例。待映射的优化的源骨骼{4,13,14,15,16,17}和待映射的目标骨骼{3,10,11,12,13}做映射。由于肩膀上关节点数量可能不固定,由此需要按照已获得的特征关节点分区域映射。例如左臂分支上,利用已知的两处特征关节:胸关节点,左肩关节点,把左臂分支分两个区域映射,其中胸部到左肩上的映射用于识别躯干区域在左肩端点的细微变化,而左肩到手腕的映射则用于识别胳膊的运动数据。其中胸部到左肩关节都是已知的;左肩关节点到腕关节点其关节数对于类人的骨骼结构来讲是固定的,其映射同腿分支的映射,如果腕关节以后还有子关节点,分以下几种情况进行讨论:
[0282]情况一:如果优化的源骨骼没有手指关节,则优化的源骨骼到目标骨骼的映射只映射优化的源骨骼中存在的骨骼关节点,忽略掉目标骨骼中剩余的关节点映射。
[0283]情况二:如果目标骨骼没有手指关节,而优化的源骨骼中有且有运动数据,则在腕部按照现有的算法生成曲线骨骼,在生成曲线骨骼以后,简化手部的骨骼,然后寻找最短分支作为拇指,计算其它分支距离拇指分支的角度,按角度大小对其它分支进行排序。采用同样的方式对优化的源骨骼手指分支进行排序,如果两者拓扑结构一致,则按照图13的映射方式生成骨骼关节点,则根据新生成的骨骼的长度确定拇指分支,从拇指分支开始,按照各分支到拇指分支的角度依次确定其它四个手指分支,然后按照源骨骼手指分支的比例进行映射处理;若生成的骨骼拓扑结构和优化的源骨骼子分支拓扑结构不一致,则忽略此处映射不做处理。
[0284]情况三:如果源骨骼和目标骨骼都有手指的关节信息,则判断他们的拓扑结构是否一致。如果一致,则直接一对一映射,如果不一致,则忽略源骨骼当中的手指处的关节映射,不做该区域的映射处理,因为,如果两者拓扑结构不一致,则无法确保映射的准确性,不如不做处理。头分支处理过程同躯干分支的处理。
[0285]在修正目标骨骼分支,保证一对一映射之后,需要将目标骨骼关节的局部坐标系修改为源骨骼对应关节点的局部坐标系。[0286]若采用第一种映射方式进行映射处理,由于优化的源骨骼和目标骨骼关节点的局部坐标系可能不一致,因此无法将优化的源骨骼特征关节点的运动信息直接传递给目标骨骼特征关节点,需要在每一帧运动数据当中将优化的源骨骼的运动数据由局部坐标系转换为全局坐标系,再转化为目标骨骼对应骨骼的局部坐标系数据,比较费时。
[0287]若采用第二种映射方式进行映射处理,则目标骨骼和优化的源骨骼完全一致,则可以直接将目标骨骼关节的局部坐标系修改为源骨骼对应关节点的局部坐标系,而不需要在每帧的时候再做转化。
[0288]如果目标骨骼的分支拓扑结构有修改,则需要进一步修改该骨骼分支对应的模型上顶点的蒙皮信息,否则动画无法正常执行,只针对分支中拓扑结构发生改变的区域进行蒙皮重计算。首先以目标骨骼分支修改前发生变化的骨骼关节点对应的模型顶点数据集(模型顶点数据集指的是所有受到发生变化的骨骼关节点影响的模型顶点的集合)作为作用域,采用热力学模拟的方法,计算该作用域内目标骨骼分支修改后骨骼关节点对各模型顶点的蒙皮信息。
[0289]由于第二种映射方式进一步修改目标骨骼关节实现一对一的映射,并修改目标骨骼关节局部坐标系保证和源骨骼对应关节局部坐标系相同,使得骨骼关节间的运动数据不需要进一步的坐标系转换,提升了骨骼关节点运动数据传递的效率,并提高了运动数据传递的准确度。
[0290]S210、根据骨骼中的根关节点、左胯关节点和右胯关节点,对源骨骼的六个分支与目标骨骼的六个分支进行对齐处理。
[0291]具体来说,优化的源骨骼和目标骨骼的默认姿态可能是不一致的,这时需要将目标骨骼的默认姿态调整到与优化的源骨骼一致。根据优化的源骨骼和目标骨骼各自的根关节点,左胯关节点,右胯关节点,将目标骨骼旋转到和优化的源骨骼一致的朝向,然后分别按各关节点距离其父关节点的向量来对齐六个分支。
[0292]对齐处理是指将源骨骼和目标骨骼都设置成T姿势,即初始化姿势(没有骨骼关节点旋转的姿态)要保持一致,由于是复制优化的源骨骼的运动数据,该对齐应该以源骨骼的默认T姿态作为参考。
[0293]S211、将源骨骼的关节点运动数据传递至目标骨骼中的关节点。
[0294]具体来说,若S209中采用第二种映射方式,则S211可以包括:
[0295]将优化的源骨骼的关节点的运动数据赋值给目标骨骼中与源骨骼的关节点对应的关节点。
[0296]具体来说,若采用第二种映射方式进行映射处理,进行一对一映射,以及更新目标模型的蒙皮信息以后,可以将优化的源骨骼关节点的运动信息直接赋值给对应目标骨骼中的关节点。
[0297]本实施例提供的运动重定向处理方法,首先将源骨骼和目标骨骼划分为六个分支,通过根据骨骼中关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称,骨骼包括源骨骼和目标骨骼,再根据源骨骼的第一特征关节点的位置和名称和目标骨骼的第二特征关节点的位置和名称,进行源骨骼到目标骨骼的关节点映射处理,最后将源骨骼的关节点运动数据传递至目标骨骼中的关节点,可以实现确定特征关节点时并不依赖于标准的骨骼名称的定义,也不需要使用用于名称匹配的名称库,提高了骨骼映射的准确度,采用第二种映射方式进一步修改目标骨骼关节实现一对一的映射,并修改目标骨骼关节局部坐标系保证和源骨骼对应关节局部坐标系相同,使得骨骼关节间的运动数据不需要进一步的坐标系转换,提升了骨骼关节点运动数据传递的效率,并提闻了运动数据传递的准确度。
[0298]图14为本发明提供的运动重定向处理装置实施例一的结构示意图,如图14所示,本实施例的运动重定向处理装置,可以包括:确定模块141、处理模块142以及传递模块143,其中,确定模块141用于根据骨骼中关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称,骨骼包括源骨骼和目标骨骼;处理模块142用于根据源骨骼的第一特征关节点的位置和名称和目标骨骼的第二特征关节点的位置和名称,进行源骨骼到目标骨骼的关节点映射处理;传递模块143用于将源骨骼的关节点运动数据传递至目标骨骼中的关节点。
[0299]进一步地,特征关节点包括根关节点、胸关节点、左胯关节点、右胯关节点、左肩关节点、右肩关节点和颈关节点;
[0300]确定模块141具体用于:
[0301]根据关节点的拓扑结构特征,确定骨骼中根关节点的位置和名称以及胸关节点的位置和名称;
[0302]根据关节点的拓扑结构特征和骨骼的朝向,确定骨骼中左胯关节点的位置和名称以及右胯关节点的位置和名称;
[0303]根据骨骼的对称性和关节点运动数据,确定骨骼中左肩关节点的位置和名称、右肩关节点的位置和名称以及颈关节点的位置和名称。
[0304]本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0305]在本发明提供的运动重定向处理装置实施例二中,处理模块142还用于在根据骨骼中关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称之前,将骨骼划分为六个分支;
[0306]确定模块141还用于:
[0307]根据六个分支的关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点;
[0308]确定第一腿分支的叶子关节点和第二腿分支的叶子关节点的平均朝向的第一向量,叶子关节点为关节点的度为O的关节点;
[0309]根据右手定则确定根关节点、第一胯关节点和第二胯关节点的第二向量;
[0310]若第一向量与第二向量的夹角小于90°,则确定第一胯关节点为左胯关节点,第二胯关节点为右胯关节点;若第一向量与第二向量的夹角大于90°,则确定第一胯关节点为右胯关节点,第二胯关节点为左胯关节点;
[0311]确定模块141还用于:
[0312]根据六个分支的对称性,确定第一臂分支和第二臂分支以及头分支;
[0313]根据右手定则确定第一臂分支为左臂分支,并且确定第二臂分支为右臂分支;
[0314]根据关节点运动数据,以胸关节点为起始关节点顺序计算左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点;
[0315]根据关节点运动数据,以胸关节点为起始关节点顺序计算右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点;
[0316]根据关节点运动数据,以胸关节点为起始关节点顺序计算头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
[0317]进一步地,处理模块142还用于在将骨骼划分为六个分支之前,根据源骨骼中关节点的拓扑结构特征和源骨骼的关节点运动数据,删除源骨骼的冗余关节点,确定优化的源骨骼;
[0318]复制优化的源骨骼和目标骨骼,得到复制骨骼,复制骨骼包括复制优化的源骨骼和复制目标骨骼;
[0319]对复制骨骼进行简化处理,确定复制优化的源骨骼的通用星形结构骨骼和复制目标骨骼的通用星形结构骨骼;
[0320]处理模块142还用于:
[0321]根据复制优化的源骨骼的通用星形结构骨骼中的关节点,将优化的源骨骼划分为六个分支,并且根据目标骨骼的通用星形结构骨骼,将目标骨骼划分为六个分支。
[0322]进一步地,确定模块141还用于在对复制骨骼进行简化处理,确定复制优化的源骨骼的通用星形结构骨骼和复制目标骨骼的通用星形结构骨骼之后,将骨骼划分为六个分支之前,判断复制优化的源骨骼的通用星形结构骨骼和复制目标骨骼的通用星形结构骨骼是否相同;若是,则执行将骨骼划分为六个分支。
[0323]进一步地,处理模块142还用于:
[0324]确定源骨骼中的关节点到源骨骼中的关节点的子关节点的距离;
[0325]根据源关节点的关节点运动数据,确定源骨骼中的关节点的运动幅度;
[0326]删除源骨骼中关节点的度为1、并且到源骨骼中的关节点的子关节点的距离小于第一阈值、并且运动幅度小于第二阈值的关节点。
[0327]进一步地,处理模块142还用于:
[0328]标记根关节点为起始关节点,遍历复制骨骼的树形结构;
[0329]判断当前关节点的度是否大于I ;
[0330]若是,则标记当前关节点为结束关节点,并删除起始关节点与结束关节点之间的关节点,判断复制骨骼中的关节点是否遍历结束;
[0331]若是,则删除遍历结束后的复制骨骼中到遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点;
[0332]若否,执行判断当前关节点的度是否大于I ;
[0333]若否,则判断当前节点是否为叶子关节点;
[0334]若是,则标记当前关节点为结束关节点,并删除起始关节点与结束关节点之间的关节点;
[0335]若否,则标记当前关节点为起始关节点,执行判断当前关节点的度是否大于I。
[0336]进一步地,处理模块142还用于:[0337]根据优化的源骨骼的六个分支的语义标签和目标骨骼的六个分支的语义标签,对六个分支分别进行优化的源骨骼到目标骨骼的关节点映射处理,六个分支的语义标签为根据特征关节点定义的、用于区分六个分支的名称,语义标签包括躯干、左腿、右腿、左臂、右臂以及头。
[0338]进一步地,处理模块142还用于:
[0339]判断待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0340]若是,则根据特征关节点将待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支,分别划分为第一子分支和第二子分支,第一子分支为首端关节点和特征关节点之间的子分支,第二子分支为特征关节点和末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0341]若是,则对优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点进行一对一映射;
[0342]若否,则按长度比例,对优化的源骨骼的第一子分支上的关节点和与优化的源骨骼的第一子分支上的关节点距离最近的目标骨骼的第一子分支上的关节点进行一对一映射;
[0343]若否,则判断优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点是否
存在一对一的映射关系;
[0344]若是,则优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点进行一对一映射;
[0345]若否,则按长度比例,对优化的源骨骼的分支上的关节点和与优化的源骨骼的分支上的关节点距离最近的目标骨骼的分支上的关节点进行映射。
[0346]进一步地,处理模块142还用于:
[0347]判断待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点;
[0348]若是,则根据特征关节点将待映射的、具有相同语义标签的优化的源骨骼的分支和目标骨骼的分支,分别划分为第一子分支和第二子分支,第一子分支为首端关节点和特征关节点之间的子分支,第二子分支为特征关节点和末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点是否存在一对一的映射关系;
[0349]若是,则对优化的源骨骼的第一子分支上的关节点和目标骨骼的第一子分支上的关节点进行一对一映射;
[0350]若否,则根据优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对优化的源骨骼的第一子分支上的关节点和重构的目标骨骼的第一子分支上的关节点进行一对一映射;
[0351]若否,则判断优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点是否存在一对一的映射关系;
[0352]若是,则优化的源骨骼的分支上的关节点和目标骨骼的分支上的关节点进行一对一映射;
[0353]若否,则根据优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对优化的源骨骼的分支上的关节点和重构的目标骨骼的分支上的关节点进行一对一映射;
[0354]更新重构的目标骨骼上的关节点的蒙皮信息;
[0355]将重构的目标骨骼上的关节点的局部坐标系转化源骨骼上的关节点的局部坐标系;
[0356]传递模块,具体用于:
[0357]将优化的源骨骼的关节点的运动数据赋值给目标骨骼中与源骨骼的关节点对应的关节点。
[0358]进一步地,处理模块142还用于在根据源骨骼的第一特征关节点的位置和名称和目标骨骼的第二特征关节点的位置和名称,进行源骨骼到目标骨骼的关节点映射处理之后,将源骨骼的关节点运动数据传递至目标骨骼中的关节点之前,根据骨骼中的根关节点、左胯关节点和右胯关节点,对源骨骼的六个分支与目标骨骼的六个分支进行对齐处理。
[0359]本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0360]图15为本发明提供的运动重定向处理装置实施例三的结构示意图,如图15所示,本实施例的运动重定向处理装置,可以包括:包括至少一个总线151、与总线151相连的至少一个处理器152以及与总线151相连的至少一个存储器153,其中,处理器152通过总线151,调用存储器153中存储的代码,以用于:
[0361]根据骨骼中的关节点的拓扑结构特征、骨骼的对称性和关节点运动数据,确定骨骼的特征关节点的位置和名称,骨骼包括源骨骼和目标骨骼;
[0362]根据源骨骼的第一特征关节点的位置和名称和目标骨骼的第二特征关节点的位置和名称,进行源骨骼到目标骨骼的关节点映射处理;
[0363]将源骨骼的关节点运动数据传递至目标骨骼中的关节点。
[0364]本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0365]需要说明的是,上述各实施例对应的结构示意图仅为一种示意,各部分或模块的连接关系不限于图中示出的形式,可以以实际应用中的情况为准。
[0366]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0367]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0368]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0369]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0370]本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0371]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种运动重定向处理方法,其特征在于,包括: 根据骨骼中的关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,所述骨骼包括源骨骼和目标骨骼; 根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理; 将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点。
2.根据权利要求1所述的方法,其特征在于,所述特征关节点包括根关节点、胸关节点、左胯关节点、右胯关节点、左肩关节点、右肩关节点和颈关节点; 所述根据骨骼中的关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,包括: 根据所述关节点的拓扑结构特征,确定所述骨骼中所述根关节点的位置和名称以及所述胸关节点的位置和名称; 根据所述关节点的拓扑结构特征和所述骨骼的朝向,确定所述骨骼中所述左胯关节点的位置和名称以及所述右胯关节点的位置和名称; 根据所述骨骼的对称性和所述关节点运动数据,确定所述骨骼中所述左肩关节点的位置和名称、所述右肩关节点的位置和名称以及所述颈关节点的位置和名称。
3.根据权利要求2所述的方法,其特征在于,所述根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称之前,还包括: 将所述骨骼划分为六个分支; 所述根据关节点的拓扑结构特征和所述骨骼的朝向,确定所述骨骼中所述左胯关节点的位置和名称以及所述右胯关节点的位置和名称,包括: 根据所述六个分支的关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点; 确定所述第一腿分支的叶子关节点和所述第二腿分支的叶子关节点的平均朝向的第一向量,所述叶子关节点为关节点的度为O的关节点,所述关节点的度为所述关节点的子关节点的个数; 根据右手定则确定所述根关节点、所述第一胯关节点和第二胯关节点的第二向量; 若所述第一向量与所述第二向量的夹角小于90°,则确定所述第一胯关节点为所述左胯关节点,所述第二胯关节点为所述右胯关节点;若所述第一向量与所述第二向量的夹角大于90°,则确定所述第一胯关节点为所述右胯关节点,所述第二胯关节点为所述左胯关节点; 所述根据所述骨骼的对称性和所述关节点运动数据,确定所述骨骼中所述左肩关节点的位置和名称、所述右肩关节点的位置和名称以及所述颈关节点的位置和名称,包括:根据所述六个分支的对称性,确定第一臂分支和第二臂分支以及头分支; 根据所述右手定则确定所述第一臂分支为左臂分支,并且确定所述第二臂分支为右臂分支; 根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点; 根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点; 根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
4.根据权利要求3所述的方法,其特征在于,所述将所述骨骼划分为六个分支之前,还包括: 根据所述源骨骼中关节点的拓扑结构特征和所述源骨骼的关节点运动数据,删除所述源骨骼的冗余关节点,确定优化的源骨骼; 复制所述优化的源骨骼和所述目标骨骼,得到复制骨骼,所述复制骨骼包括复制优化的源骨骼和复制目标骨骼; 对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼; 所述将所述骨骼划分为六个分支,包括: 根据复制优化的源骨骼的通用星形结构骨骼中的关节点,将所述优化的源骨骼划分为六个分支,并且根据所述目标骨骼的通用星形结构骨骼,将所述目标骨骼划分为六个分支。
5.根据权利要求4所述的方法,其特征在于,所述对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通`用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼之后,所述将所述骨骼划分为六个分支之前,还包括: 判断所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼是否相同; 若是,则执行所述将所述骨骼划分为六个分支。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述源骨骼中关节点的拓扑结构特征和所述源骨骼的关节点运动数据,删除所述源骨骼的冗余关节点,确定优化的源骨骼,包括: 确定所述源骨骼中的关节点到所述源骨骼中的关节点的子关节点的距离; 根据所述源关节点的关节点运动数据,确定所述源骨骼中的关节点的运动幅度; 删除所述源骨骼中关节点的度为1、并且所述到所述源骨骼中的关节点的子关节点的距离小于第一阈值、并且所述运动幅度小于第二阈值的关节点。
7.根据权利要求4-6中任一项所述的方法,其特征在于,所述对所述复制骨骼进行简化处理,包括: 标记根关节点为起始关节点,遍历所述复制骨骼的树形结构; 判断当前关节点的度是否大于I ; 若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点,判断所述复制骨骼中的关节点是否遍历结束; 若是,则删除遍历结束后的复制骨骼中到所述遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点;若否,执行所述判断当前关节点的度是否大于I; 若否,则判断所述当前节点是否为叶子关节点; 若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点; 若否,则标记所述当前关节点为起始关节点,执行所述判断当前关节点的度是否大于1
8.根据权利要求4-7中任一项所述的方法,其特征在于,所述根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理,包括: 根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,所述六个分支的语义标签为根据所述特征关节点定义的、用于区分所述六个分支的名称,所述语义标签包括躯干、左腿、右腿、左臂、右臂以及头。
9.根据权利要求8所述的方法,其特征在于,所述根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,包括: 判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点; 若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系; 若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则按长度比例,对所述优化的源骨骼的第一子分支上的关节点和与所述优化的源骨骼的第一子分支上的关节点距离最近的所述目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系; 若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射; 若否,则按长度比例,对所述优化的源骨骼的分支上的关节点和与所述优化的源骨骼的分支上的关节点距离最近的所述目标骨骼的分支上的关节点进行映射。
10.根据权利要求8所述的方法,其特征在于,所述根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,包括: 判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点; 若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系; 若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则根据所述优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对所述优化的源骨骼的第一子分支上的关节点和所述重构的目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系; 若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射; 若否,则根据所述优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对所述优化的源骨骼的分支上的关节点和所述重构的目标骨骼的分支上的关节点进行一对一映射; 更新重构的目标骨骼上的关节点的蒙皮信息; 将所述重构的目标骨骼上的关节点的局部坐标系转化所述源骨骼上的关节点的局部坐标系;` 所述将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点,包括: 将所述优化的源骨骼的关节点的运动数据赋值给所述目标骨骼中与所述源骨骼的关节点对应的关节点。
11.根据权利要求3-10中任一项所述的方法,其特征在于,所述根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理之后,所述将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点之前,还包括: 根据所述骨骼中的所述根关节点、所述左胯关节点和所述右胯关节点,对所述源骨骼的所述六个分支与所述目标骨骼的所述六个分支进行对齐处理。
12.—种运动重定向处理装置,其特征在于,包括: 确定模块,用于根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称,所述骨骼包括源骨骼和目标骨骼; 处理模块,用于根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理; 传递模块,用于将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点。
13.根据权利要求12所述的装置,其特征在于,所述特征关节点包括根关节点、胸关节点、左胯关节点、右胯关节点、左肩关节点、右肩关节点和颈关节点;所述确定模块,具体用于: 根据所述关节点的拓扑结构特征,确定所述骨骼中所述根关节点的位置和名称以及所述胸关节点的位置和名称; 根据所述关节点的拓扑结构特征和所述骨骼的朝向,确定所述骨骼中所述左胯关节点的位置和名称以及所述右胯关节点的位置和名称; 根据所述骨骼的对称性和所述关节点运动数据,确定所述骨骼中所述左肩关节点的位置和名称、所述右肩关节点的位置和名称以及所述颈关节点的位置和名称。
14.根据权利要求13所述的装置,其特征在于,所述处理模块,还用于在所述根据骨骼中关节点的拓扑结构特征、所述骨骼的对称性和关节点运动数据,确定所述骨骼的特征关节点的位置和名称之前,将所述骨骼划分为六个分支; 所述确定模块,还用于: 根据所述六个分支的 关节点的拓扑结构特征,确定第一腿分支和第二腿分支以及第一胯关节点和第二胯关节点; 确定所述第一腿分支的叶子关节点和所述第二腿分支的叶子关节点的平均朝向的第一向量,所述叶子关节点为关节点的度为O的关节点,所述关节点的度为所述关节点的子关节点的个数; 根据右手定则确定所述根关节点、所述第一胯关节点和第二胯关节点的第二向量; 若所述第一向量与所述第二向量的夹角小于90°,则确定所述第一胯关节点为所述左胯关节点,所述第二胯关节点为所述右胯关节点;若所述第一向量与所述第二向量的夹角大于90°,则确定所述第一胯关节点为所述右胯关节点,所述第二胯关节点为所述左胯关节点; 所述确定模块,还用于: 根据所述六个分支的对称性,确定第一臂分支和第二臂分支以及头分支; 根据所述右手定则确定所述第一臂分支为左臂分支,并且确定所述第二臂分支为右臂分支; 根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述左臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为左肩关节点; 根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述右臂分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为右肩关节点; 根据所述关节点运动数据,以所述胸关节点为起始关节点顺序计算所述头分支上关节点的运动变化累加幅值,确定第一个运动变化累加幅值大于其父关节点的运动变化累加幅值和其子关节点的运动变化累加幅值的关节点为颈关节点。
15.根据权利要求14所述的装置,其特征在于,所述处理模块,还用于在将所述骨骼划分为六个分支之前,根据所述源骨骼中关节点的拓扑结构特征和所述源骨骼的关节点运动数据,删除所述源骨骼的冗余关节点,确定优化的源骨骼; 复制所述优化的源骨骼和所述目标骨骼,得到复制骨骼,所述复制骨骼包括复制优化的源骨骼和复制目标骨骼;对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼; 所述处理模块,还用于: 根据复制优化的源骨骼的通用星形结构骨骼中的关节点,将所述优化的源骨骼划分为六个分支,并且根据所述目标骨骼的通用星形结构骨骼,将所述目标骨骼划分为六个分支。
16.根据权利要求15所述的装置,其特征在于,所述确定模块,还用于在所述对所述复制骨骼进行简化处理,确定所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼之后,所述将所述骨骼划分为六个分支之前,判断所述复制优化的源骨骼的通用星形结构骨骼和所述复制目标骨骼的通用星形结构骨骼是否相同;若是,则执行所述将所述骨骼划分为六个分支。
17.根据权利要求15或16所述的装置,其特征在于,所述处理模块,还用于: 确定所述源骨骼中的关节点到所述源骨骼中的关节点的子关节点的距离; 根据所述源关节点的关节点运动数据,确定所述源骨骼中的关节点的运动幅度; 删除所述源骨骼中关节点的度为1、并且所述到所述源骨骼中的关节点的子关节点的距离小于第一阈值、并且所述运动幅度小于第二阈值的关节点。
18.根据权利要求15-17中任一项所述的装置,其特征在于,所述处理模块,还用于: 标记根关节点为起始关节点,遍历所述复制骨骼的树形结构; 判断当前关节点的度是否大于I ;` 若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点,判断所述复制骨骼中的关节点是否遍历结束; 若是,则删除遍历结束后的复制骨骼中到所述遍历结束后的复制骨骼中的关节点的子关节点的距离小于第三阈值的关节点; 若否,执行所述判断当前关节点的度是否大于I ; 若否,则判断所述当前节点是否为叶子关节点; 若是,则标记所述当前关节点为结束关节点,并删除所述起始关节点与所述结束关节点之间的关节点; 若否,则标记所述当前关节点为起始关节点,执行所述判断当前关节点的度是否大于1
19.根据权利要求15-18中任一项所述的装置,其特征在于,所述处理模块,还用于: 根据所述优化的源骨骼的所述六个分支的语义标签和所述目标骨骼的所述六个分支的语义标签,对所述六个分支分别进行所述优化的源骨骼到所述目标骨骼的关节点映射处理,所述六个分支的语义标签为根据所述特征关节点定义的、用于区分所述六个分支的名称,所述语义标签包括躯干、左腿、右腿、左臂、右臂以及头。
20.根据权利要求19所述的装置,其特征在于,所述处理模块,还用于: 判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点; 若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系; 若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则按长度比例,对所述优化的源骨骼的第一子分支上的关节点和与所述优化的源骨骼的第一子分支上的关节点距离最近的所述目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系; 若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射; 若否,则按长度比例,对所述优化的源骨骼的分支上的关节点和与所述优化的源骨骼的分支上的关节点距离最近的所述目标骨骼的分支上的关节点进行映射。
21.根据权利要求19所述的装置,其特征在于,所述处理模块,还用于: 判断待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支除首端关节点和末端关节点之外是否有特征关节点; 若是,则根据所述特征关节点将所述待映射的、具有相同语义标签的所述优化的源骨骼的分支和所述目标骨骼的分支,分别划分为第一子分支和第二子分支,所述第一子分支为所述首端关节点和所述特征关节点之间的子分支,所述第二子分支为所述特征关节点和所述末端关节点之间的子分支,对优化的源骨骼的第二子分支上的关节点和所述目标骨骼的第二子分支上的关节点按拓扑顺序进行一对一映射,判断所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点是否存在一对一的映射关系; 若是,则对所述优化的源骨骼的第一子分支上的关节点和所述目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则根据所述优化的源骨骼的第一子分支上的关节点生成重构的目标骨骼的第一子分支上的关节点,并对所述优化的源骨骼的第一子分支上的关节点和所述重构的目标骨骼的第一子分支上的关节点进行一对一映射; 若否,则判断所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点是否存在一对一的映射关系; 若是,则所述优化的源骨骼的分支上的关节点和所述目标骨骼的分支上的关节点进行一对一映射; 若否,则根据所述优化的源骨骼的分支上的关节点生成重构的目标骨骼的分支上的关节点,并对所述优化的源骨骼的分支上的关节点和所述重构的目标骨骼的分支上的关节点进行一对一映射; 更新重构的目标骨骼上的关节点的蒙皮信息; 将所述重构的目标骨骼上的关节点的局部坐标系转化所述源骨骼上的关节点的局部坐标系; 所述传递模块,具体用于:将所述优化的源骨骼的关节点的运动数据赋值给所述目标骨骼中与所述源骨骼的关节点对应的关节点。
22.根据权利要求14-21中任一项所述的装置,其特征在于,所述处理模块,还用于在所述根据所述源骨骼的第一特征关节点的位置和名称和所述目标骨骼的第二特征关节点的位置和名称,进行所述源骨骼到所述目标骨骼的关节点映射处理之后,所述将所述源骨骼的关节点运动数据传递至所述目标骨骼中的关节点之前,根据所述骨骼中的所述根关节点、所述左胯关节点和所述右胯关节点,对所述源骨骼的所述六个分支与所述目标骨骼的所述六个分支进行对齐处理。
【文档编号】G06T13/00GK103530897SQ201310461048
【公开日】2014年1月22日 申请日期:2013年9月30日 优先权日:2013年9月30日
【发明者】郑清正 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1