支持多源异构动捕设备的虚拟人驱动方法与系统

文档序号:32395357发布日期:2022-11-30 10:06阅读:98来源:国知局
支持多源异构动捕设备的虚拟人驱动方法与系统

1.一种支持多源异构动捕设备的虚拟人驱动方法与系统,用于虚拟人驱动,属于计算机应用领域。


背景技术:

2.使用动作捕捉设备采集人体运动数据来驱动真实人的数字替身,让虚拟数字人模仿真实人进行高逼真的运动模仿,广泛应用在人机工效分析、人体运动分析、动画/影视制作等工业、科研、娱乐领域,具有极高的应用价值。动作捕捉设备种类繁多、技术原理各有优劣。根据技术原理主要可以分为机械式、电磁式、光学式、惯性式几种;根据主要捕获对象主要可以分为:用于捕捉手部运动的数据手套、用于捕捉眼球运动的眼动仪、用于捕捉表情的面部捕捉设备系统,以及用于捕捉躯干及四肢运动的动捕衣等。
3.在实际应用中,通常需要获取人体全身多个部位的运动信息,如眼球视向、面部表情、手部手势、躯干及四肢姿态等,采用单一的捕捉设备难以满足此要求,而需要多个设备协同完成;另外,应用软件应尽不受限于具体的动捕设备,这要求应用软件能够兼容多种类型的动捕设备。由于这些设备来自不同厂商、采用不同的技术原理、拥有不同的骨架拓扑结构,形成了多源异构的特点,因此,现有技术存在如下技术问题:
4.1、现有技术通常针对某型的动捕设备(指某一类型动捕设备)进行专用的数据采集与虚拟人驱动,不支持新增的动捕设备,尤其是具有不同拓扑结构的新设备,从而造成兼容性较低的问题;
5.2、现有技术是基于某型的动捕设备进行虚拟人运动驱动,无法同时采集全身多个部位的运动数据,即难以应付复杂应用场景。例如cn110176062a-一种基于运动捕捉数据的虚拟人体的控制方法,仅仅使用光学式动捕设备采集人体主要关节的运动数据,难以同时捕获眼球、手势等细微动作。


技术实现要素:

6.针对上述研究的问题,本发明的目的在于提供一种支持多源异构动捕设备的虚拟人驱动方法与系统,解决现有技术通常针对某型的动捕设备进行专用的数据采集与虚拟人驱动,不支持新增的动捕设备,尤其是具有不同拓扑结构的新设备,从而造成兼容性较低的问题。
7.为了达到上述目的,本发明采用如下技术方案:
8.一种支持多源异构动捕设备的虚拟人驱动方法,包括如下步骤:
9.s1、关节映射
10.建立待驱动虚拟数字人和基于动捕设备本身定义的骨架模型之间的关节映射表;
11.s2、数据采集接口定义与实现
12.定义标准的动捕设备的统一数据采集接口,并为每个动捕设备实现该接口;
13.s3、原始数据采集
14.基于定义的统一数据采集接口,从多个动捕设备中采集原始运动数据;
15.s4、数据处理
16.基于旋转角度和位移信息对采集到的原始运动数据进行统一处理,即得到全身姿态数据;
17.s5、虚拟数字人运动驱动
18.基于全身姿态数据对虚拟数字人进行运动驱动。
19.进一步,所述步骤s1的具体步骤为:
20.s11、获取目标骨架和源骨架
21.使用bvh文件定义虚拟数字人的估计模型,并解析获取骨骼之间的关节关系,形成目标骨架sk
tgt

22.使用bvh文件定义每个动捕设备本身定义的骨架模型,并解析获取骨骼之间的关节关系,形成源骨架其中,上标i表示第i个动捕设备;
23.s12、关节匹配
24.匹配目标骨架sk
tgt
和源骨架之间的每一个相同关节;
25.s13、关节对齐
26.关节匹配后,以源骨架为参考,从源骨架的根关节开始迭代地修改目标骨架中各关节的关节角度,使目标骨架与源骨架姿态相同,记录此时目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src

27.s14、若源骨架的自由度中包含有位移信息,转到步骤s15,否则,根据步骤s13得到的结果形成第i个关节映射表;
28.s15、计算目标骨架sk
tgt
与源骨架之间的腿长比,作为位移系数ratio
leg
,并与步骤s13得到的结果形成第i个关节映射表。
29.进一步,所述步骤s2的具体步骤为:
30.s21、根据动捕设备的操作特性,抽象动捕设备的共性操作,形成包含“参数配置”、“设备打开”、“设备标定”、“数据获取”、“消息处理”和“设备关闭”操作的统一数据采集接口;
31.s22、使用插件的方式,为每一个拟接入应用系统的动捕设备实现统一数据采集接口。
32.进一步,所述步骤s4的具体步骤为:
33.s41、根据各动捕设备采集到的原始运动数据,基于各动捕设备对应的关节映射表中对应关节之间的旋转角度变换关系,对源骨架中的每一个关节的原始运动数据进行空间变换,得到目标骨架中对应关节的旋转角度,其中,旋转角度变换关系包括目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src

34.s42、若各关节映射表中包含位移系数ratio
leg
,转到步骤s43,否则,转到步骤s44;
35.s43、根据各关节映射表中的位移系数ratio
leg
,缩放源骨架的位移数据,得到目标骨架中对应关节的位移数据,并转到步骤s44;
36.s44、融合所有动捕设备变换后的运动数据,得到包含多个部位运动信息的全身姿态数据。
37.进一步,所述步骤s41中得到的目标骨架中各关节的旋转角度的计算公式为:
[0038][0039]
其中,表示f
src
的逆,表示f
tgt
的逆,r
src
表示动捕设备采集到的源关节的旋转角度;
[0040]
步骤s42中得到的目标骨架中各关节的位移数据的计算公式为:
[0041]
l
tgt
=l
src
*ratio
leg
[0042]
其中,l
tgt
表示目标骨架中各关节的位移数据,l
src
表示动捕设备采集到的源关节的位移数据。
[0043]
一种支持多源异构动捕设备的虚拟人驱动系统,包括:
[0044]
关节映射模块:建立待驱动虚拟数字人和基于动捕设备本身定义的骨架模型之间的关节映射表;
[0045]
设备操作模块:定义标准的动捕设备的统一数据采集接口,并为每个动捕设备实现该接口;
[0046]
数据采集模块:基于定义的统一数据采集接口,从多个动捕设备中采集原始运动数据;
[0047]
数据后处理模块:基于旋转角度和位移信息对采集到的原始运动数据进行统一处理,即得到全身姿态数据:
[0048]
虚拟人驱动模块:基于全身姿态数据对虚拟数字人进行运动驱动。
[0049]
进一步,所述关节映射模块包括:
[0050]
骨骼解析子模块:
[0051]
使用bvh文件定义虚拟数字人的估计模型,并解析获取骨骼之间的关节关系,形成目标骨架sk
tgt

[0052]
使用bvh文件定义每个动捕设备本身定义的骨架模型,并解析获取骨骼之间的关节关系,形成源骨架其中,上标i表示第i个动捕设备;
[0053]
关节匹配子模块:匹配目标骨架sk
tgt
和源骨架之间的每一个相同关节;
[0054]
关节对齐子模块:关节匹配后,以源骨架为参考,从源骨架的根关节开始迭代地修改目标骨架中各关节的关节角度,使目标骨架与源骨架姿态相同,记录此时目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src

[0055]
若源骨架的自由度中包含有位移信息,计算目标骨架sk
tgt
与源骨架之间的腿长比,作为位移系数ratio
leg
,并与上述得到的结果形成第i个关节映射表,否则,直接
根据上述得到的结果形成第i个关节映射表。
[0056]
进一步,所述设备操作模块包括:
[0057]
统一数据采集接口模块:根据动捕设备的操作特性,抽象动捕设备的共性操作,形成包含“参数配置”、“设备打开”、“设备标定”、“数据获取”、“消息处理”和“设备关闭”操作的统一数据采集接口;
[0058]
数据采集插件模块:使用插件的方式,为每一个拟接入应用系统的动捕设备实现统一数据采集接口。
[0059]
进一步,所述数据后处理模块包括:
[0060]
坐标变换子模块:根据各动捕设备采集到的原始运动数据,基于各动捕设备对应的关节映射表中对应关节之间的旋转角度变换关系,对源骨架中的每一个关节的原始运动数据进行空间变换,得到目标骨架中对应关节的旋转角度,其中,旋转角度变换关系包括目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src

[0061]
位移约束子模块:若节映射表中包含位移系数ratio
leg
,根据各关节映射表中的位移系数ratio
leg
,缩放源骨架的位移数据,得到目标骨架中对应关节的位移数据,否则,不计算位移数据;
[0062]
数据融合子模块:融合所有动捕设备变换后的运动数据,得到包含多个部位运动信息的全身姿态数据。
[0063]
进一步,所述坐标变换子模块中得到的目标骨架中各关节的旋转角度的计算公式为:
[0064][0065]
其中,表示f
src
的逆,表示f
tgt
的逆,r
src
表示动捕设备采集到的源关节的旋转角度;
[0066]
步骤位移约束子模块中得到的目标骨架中各关节的位移数据的计算公式为:
[0067]
l
tgt
=l
src
*ratio
leg
[0068]
其中,l
tgt
表示目标骨架中各关节的位移数据,l
src
表示动捕设备采集到的源关节的位移数据。
[0069]
本发明同现有技术相比,其有益效果表现在:
[0070]
一、本发明可兼容异构设备的数据采集接口和规范,经过对异构动捕设备的运动数据后处理,实现了多套异构设备协同采集人体多个部位运动信息,降低了系统复杂度,提升了系统可扩展性,即通过统一数据采集接口提高应用系统的兼容性,使用异构设备协同的方式,解决难以同时采集人体全身多部位的运动数据的问题;
[0071]
二、本发明通过制定动捕设备的标准操作接口,在插件化开发的支持下能够快速兼容多种不同类型的动捕设备,提升了应用软件的兼容性和可扩展性;能够通过多套异构动捕设备协同工作,共同采集人体多个部位的运动信息,扩展了单纯依靠单一动捕设备进行动作捕捉的应用场景范围和精度。
附图说明
[0072]
图1为本发明的流程图;
[0073]
图2为本发明的实施例中两种异构动捕设备定义的源骨架与目标骨架存在差异的示意图;
[0074]
图3为本发明的实施例中关节映射的流程图;
[0075]
图4为本发明的实施例中数据采集的流程图;
[0076]
图5为本发明的实施例中的框架结构示意图。
具体实施方式
[0077]
下面将结合附图及具体实施方式对本发明作进一步的描述。
[0078]
本技术发明了一种支持多源异构动捕设备的虚拟人驱动方法与系统。本发明定义了一套可兼容异构设备的数据采集接口和规范,经过对异构动捕设备的运动数据后处理,实现了多套异构设备协同采集人体多个部位运动信息,降低了系统复杂度,提升了系统可扩展性。
[0079]
一种支持多源异构动捕设备的虚拟人驱动方法,包括如下步骤:
[0080]
s1、关节映射
[0081]
建立待驱动虚拟数字人和基于动捕设备本身定义的骨架模型之间的关节映射表;具体步骤为:
[0082]
s11、获取目标骨架和源骨架
[0083]
使用bvh文件定义虚拟数字人的估计模型,并解析获取骨骼之间的关节关系,以获取骨骼之间的连接关系,形成目标骨架sk
tgt

[0084]
使用bvh文件定义每个动捕设备本身定义的骨架模型,并解析获取骨骼之间的关节关系,以获取骨骼之间的连接关系,形成源骨架其中,上标i表示第i个动捕设备;
[0085]
s12、关节匹配
[0086]
匹配目标骨架sk
tgt
和源骨架之间的每一个相同关节,如采用人工匹配的方式;
[0087]
s13、关节对齐
[0088]
关节匹配后,以源骨架为参考,从源骨架的根关节开始迭代地修改目标骨架中各关节的关节角度,使目标骨架与源骨架姿态相同,记录此时目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src

[0089]
s14、若源骨架的自由度中包含有位移信息,转到步骤s15,否则,根据步骤s13得到的结果形成第i个关节映射表;
[0090]
s15、计算目标骨架sk
tgt
与源骨架之间的腿长比,作为位移系数ratio
leg
,并与步骤s13得到的结果形成第i个关节映射表。
[0091]
s2、数据采集接口定义与实现
[0092]
定义标准的动捕设备的统一数据采集接口,并为每个动捕设备实现该接口;具体步骤为:
[0093]
s21、根据动捕设备的操作特性,抽象动捕设备的共性操作,形成包含“参数配置”、“设备打开”、“设备标定”、“数据获取”、“消息处理”和“设备关闭”操作的统一数据采集接口;
[0094]
s22、使用插件的方式(应用软件需要支持多种动捕设备,这些设备操作“参数配置”、“设备打开”、“设备标定”、“数据获取”、“消息处理”和“设备关闭”等都采用的是统一数据采集接口,针对具体的每个动捕设备,都需要实现这个接口。“使用插件的方式”指的是:不需要在应用软件的开发过程中,为所有动捕设备实现此接口,而是采用插件的方式为每一个动捕设备开发一个插件。应用软件可以统一调用这些插件进行操作,插件的方式增加了系统的可扩展性。),为每一个拟接入应用系统的动捕设备实现上述接口(统一数据采集接口)。
[0095]
s3、原始数据采集
[0096]
基于定义的统一数据采集接口,从多个动捕设备中采集原始运动数据;
[0097]
s4、数据处理
[0098]
基于旋转角度和位移信息对采集到的原始运动数据进行统一处理,即得到全身姿态数据;具体步骤为:
[0099]
s41、根据各动捕设备采集到的原始运动数据,基于各动捕设备对应的关节映射表中对应关节之间的旋转角度变换关系,对源骨架中的每一个关节的原始运动数据进行空间变换,得到目标骨架中对应关节的旋转角度,其中,旋转角度变换关系包括目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src
;目标骨架中各关节的旋转角度的计算公式为:
[0100][0101]
其中,表示f
src
的逆,表示f
tgt
的逆,r
src
表示动捕设备采集到的源关节的旋转角度;
[0102]
s42、若关节映射表中包含位移系数ratio
leg
,转到步骤s43,否则,转到步骤s44;
[0103]
s43、根据关节映射表中的位移系数ratio
leg
,缩放源骨架的位移数据,得到目标骨架中对应关节的位移数据,避免出现滑步等失真现象,并转到步骤s44;目标骨架中各关节的位移数据的计算公式为:
[0104]
l
tgt
=l
src
*ratio
leg
[0105]
其中,l
tgt
表示目标骨架中各关节的位移数据,l
src
表示动捕设备采集到的源关节的位移数据。
[0106]
s44、融合所有动捕设备变换后的运动数据,得到包含多个部位运动信息的全身姿态数据。
[0107]
s5、虚拟数字人运动驱动
[0108]
基于全身姿态数据对虚拟数字人进行运动驱动。
[0109]
实施例
[0110]
如图2所示,相较于单一动捕设备定义的骨架模型,如数据手套(如图2中所示)、某
穿戴式惯性动捕设备(图2右所示),待驱动的虚拟数字人体模型(图2左所示)结构复杂,自由度多,必须由多个设备相互协同才能完全驱动目标骨骼;且源/目标骨架存在结构差异:目标骨骼关节个数大于源骨骼,源骨骼初始姿态采用t-pose,而目标骨骼采用n-pose,源骨骼头顶为-z方向,而目标骨骼头顶为z方向,需事先使用关节映射将这些不同点记录下来备用。然后使用多态的方式,为每个接入系统的动捕设备实现预先定义的统一数据采集接口,提供设备连接、标定、数据采集、断开连接等操作,即配置系统中连接的动捕设备,为每个动捕设备设置运行参数;系统调用统一的连接接口打开动捕设备连接;模特摆出动捕设备特定的标定姿态,调用统一的标定接口进行动捕设备标定;系统循环调用统一的数据获取接口,获取动捕设备的原始数据,直到收到退出消息;调用统一的关闭接口断开动捕设备连接。其中,需要为数据手套的配置参数包括串口号,穿戴式动捕设备的参数包括网络ip地址和端口号。定标时,模特摆出图2数据手套和穿戴式动捕设备定义的初始姿态,操作系统完成定标活动。
[0111]
系统运行时,使用统一数据采集接口操作多套动捕设备获取原始运动数据;
[0112]
基于原始运动数据,对于某穿戴式惯性动捕设备,修改从根关节开始直到肩关节的关节角度,使目标骨架双手平举,摆出和源骨架一样的t-pose,此时“left_shoulder”关节的旋转角度为r
tgtinit
,世界坐标为f
tgt
,源骨架中,“upper_arm_l”的全局坐标系为f
src
;目标骨架的腿长(髋关节到踝关节的距离)与源骨架腿长的比为位移系数ratio
leg
;新建穿戴式动捕设备的关节映射表,建立“left_shoulder”与“upper_arm_l”之间的关联,记录r
tgtinit
、f
tgt
、f
src
和位移系数ratio
leg
,以及两个坐标系的相互变换关系等。同理,对于数据手套,同样旋转目标骨骼的指关节,使其和数据手套一样五指朝前的手势,新建数据手套的关节映射表,建立“left_thumb0”与“finger0_l”之间的关联,记录各指关节的旋转角度和坐标变换关系等。
[0113]
结合关节映射表完成运动数据的变换和运动融合,最后利用融合后的全身姿态数据驱动数字虚拟人运动。
[0114]
如图5所示,对本发明中一种支持多源异构动捕设备的虚拟人驱动系统进行描述,该实施例中的系统包括关节映射模块、设备操作模块、数据采集模块、数据后处理模块和虚拟人驱动模块,其中:
[0115]
关节映射模块:建立待驱动虚拟数字人和基于动捕设备本身定义的骨架模型之间的关节映射表;
[0116]
设备操作模块:定义标准的动捕设备的统一数据采集接口,并为每个动捕设备实现该接口;
[0117]
数据采集模块:基于定义的统一数据采集接口,从多个动捕设备中采集原始运动数据;
[0118]
数据后处理模块:基于旋转角度和位移信息对采集到的原始运动数据进行统一处理,即得到全身姿态数据;
[0119]
虚拟人驱动模块:基于全身姿态数据对虚拟数字人进行运动驱动。
[0120]
在实施例中,图5中的关节映射模块包括骨骼解析子模块、关节匹配子模块和关节对齐子模块,如图5所示,其中:
[0121]
骨骼解析子模块:使用bvh文件定义虚拟数字人的估计模型,并解析获取骨骼之间的关节关系,形成目标骨架sk
tgt
;使用bvh文件定义每个动捕设备本身定义的骨架模型,并解析获取骨骼之间的关节关系,形成源骨架如,解析数据手套/穿戴式动捕设备和待驱动虚拟人的骨骼模型,读取各骨骼/关节的名称和关节局部坐标系,并使用同一套数据结构来表示这些异构骨骼模型;
[0122]
关节匹配子模块:提供交互式的操作界面,用于用户建立数据手套/穿戴式动捕设备(源骨架)与待驱动虚拟数字人(目标骨架)之间的映射关系;
[0123]
关节对齐子模块:提供交互式的操作界面,用于用户调节目标骨架各关节的旋转角度,使其与源骨骼具有相同的姿态,并计算异构骨架间相同骨骼坐标系的变换关系。
[0124]
在实施例中,图5中的设备操作模块包含统一数据采集接口模块、数据采集插件模块(包括数据手套采集插件和穿戴式动捕系统采集插件),其中,
[0125]
统一数据采集接口:根据动捕设备的操作特性,抽象动捕设备的共性操作,形成包含“参数配置”、“设备打开”、“设备标定”、“数据获取”、“消息处理”和“设备关闭”操作的统一数据采集接口,即以纯虚类的方式定义了设备的操作规范,包括“参数配置”、“设备打开”、“设备标定”、“数据获取”、“消息处理”和“设备关闭”等操作;
[0126]
数据手套采集插件:实现了上述接口,调用数据手套的sdk驱动数据手套完成数据采集;
[0127]
穿戴式动捕系统采集插件:实现了上述接口,调用穿戴式动捕系统的sdk驱动穿戴式动捕系统完成数据采集。
[0128]
在实施例中,图5中的数据后处理模块包含坐标变换子块模块、位移约束子模块和数据融合子模块,其中:
[0129]
坐标变换子模块:根据各动捕设备采集到的原始运动数据,基于各动捕设备对应的关节映射表中对应关节之间的旋转角度变换关系,对源骨架中的每一个关节的原始运动数据进行空间变换,得到目标骨架中对应关节的旋转角度,其中,旋转角度变换关系包括目标骨架中的目标关节的旋转角度r
tgtinit
、目标骨架中的目标关节的世界坐标f
tgt
、对应源骨架中的源关节的世界坐标f
src
,即根据关节映射表中记录的关系,将设备采集的原始运动数据转换为目标骨骼运动数据;
[0130]
位移约束子模块:,若节映射表中包含位移系数ratio
leg
,根据各关节映射表中的位移系数ratio
leg
,缩放源骨架的位移数据,得到目标骨架中对应关节的位移数据,否则,不计算位移数据,即对于包含位移信息的动捕设备,根据关节映射表的位移约束,缩放源骨架的位移数据,得到目标骨架的位移数据,避免出现滑步等失真现象。
[0131]
数据融合子模块:融合所有动捕设备变换后的运动数据,得到包含多个部位运动信息的全身姿态数据。
[0132]
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1