CN109782911B - 基于虚拟现实的全身动作捕捉方法和系统 - Google Patents

基于虚拟现实的全身动作捕捉方法和系统 Download PDF

Info

Publication number
CN109782911B
CN109782911B CN201811647445.3A CN201811647445A CN109782911B CN 109782911 B CN109782911 B CN 109782911B CN 201811647445 A CN201811647445 A CN 201811647445A CN 109782911 B CN109782911 B CN 109782911B
Authority
CN
China
Prior art keywords
joint
kinect
space
palm
virtual reality
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.)
Active
Application number
CN201811647445.3A
Other languages
English (en)
Other versions
CN109782911A (zh
Inventor
戴恩波
刘道兵
黄云龙
韦宇炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Giaking Software Co ltd
Original Assignee
Guangzhou Giaking Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Giaking Software Co ltd filed Critical Guangzhou Giaking Software Co ltd
Priority to CN201811647445.3A priority Critical patent/CN109782911B/zh
Publication of CN109782911A publication Critical patent/CN109782911A/zh
Application granted granted Critical
Publication of CN109782911B publication Critical patent/CN109782911B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明涉及VR领域,涉及基于虚拟现实的全身动作捕捉方法和系统,方法包括:通过Kinect获得人体姿态数据;计算各关节旋转角度并映射到人物模型;通过LeapMotion获取手掌及各手指位置数据;通过空间坐标转换获得Kinect识别空间下手掌及各手指位置数据;将LeapMotion手掌位置重置于Kinect识别空间下手掌位置,计算手指关节旋转角度并映射到人物模型的手指;将场景摄像机放置于人物模型眼睛部位位置,通过头显控制摄像机旋转,进行VR环境下全身动作捕捉。本发明使用消费级硬件组合来解决全身动捕设备成本过高的问题,并通过坐标转换和基于关节的人物模型映射便捷地进行全身交互,提高VR沉浸感体验。

Description

基于虚拟现实的全身动作捕捉方法和系统
技术领域
本发明涉及虚拟现实领域,特别涉及一种基于虚拟现实的全身动作捕捉方法和系统。
背景技术
全身动作捕捉一直是VR(Virtual Reality,虚拟现实)领域研究的热点,也是实现虚拟现实完全沉浸性的第一步,目前行业中也有很多种全身动作捕捉的解决方案,比如Ikinema,OptiTrack等等,一套全身动作捕捉设备下来至少要数万甚至数百万元,成本过高。
目前还没有万元以下的虚拟现实全身动作捕捉解决方案,最常见即是通过控制器控制的方式与虚拟世界进行交互,这种交互方式限制双手,无法通过手指或者自然手势来触发交互效果。同时常见的能够捕捉到的人体部位,也就只有带着虚拟现实眼镜的头部,拿着控制器的双手,其余部分都没办法跟踪,也就出现了体验中只能看到双手而不能看到身体与双腿的问题,而人的身体和双腿却也是可以用来与虚拟世界进行交互的重要部分。
发明内容
本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种基于虚拟现实的全身动作捕捉方法和系统。
本发明实施方式的一种基于虚拟现实的全身动作捕捉方法,其特征在于,包括:
通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据;
进行空间坐标计算出各个关节的旋转角度;
将各个关节的旋转角度映射到人物模型上;
通过LeapMotion获取手掌及各个手指的位置数据;
将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据;
将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,计算手指关节旋转角度;
将手指关节旋转角度映射到人物模型的手指;
将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
一种实施方式中,进行空间坐标计算出各个关节的旋转角度包括:
根据以下坐标换算公式将各个关节点原始坐标从Kinect空间坐标系转换为Unity世界空间坐标系:
Pworld=Mk2wPkinect
Figure GDA0001974320570000021
其中,Pworld表示Unity世界空间下的坐标,Mk2w表示从Kinect空间到Unity世界空间的转换矩阵,Pkinect表示Kinect空间下的坐标,H表示Kinect传感器的高度,A表示Kinect传感器的角度;
对获得的关节点在Unity世界的世界坐标,按以下公式通过相邻关节点之间相减获得关节方向:
dir=Pj-PjParent
其中,dir表示方向,Pj表示关节点的世界坐标,PjParent表示父关节点的世界坐标;
根据关节方向计算获得用于将关节的旋转角度运用于人体模型的关节四元数。
一种实施方式中,将各个关节的旋转角度映射到人物模型上包括:
将关节四元数赋予人物模型的关节角度完成关节的旋转角度到人物模型的映射。
一种实施方式中,将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据包括:
根据以下公式将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据:
Pworld=Ml2wPleapmotion
其中,Ml2w表示从LeapMotion空间到Kinect正前方向世界空间的转换矩阵,Pleapmotion表示LeapMotion空间下的坐标。
一种实施方式中,将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉包括:
在初始化阶段,将场景摄像机放置于人物模型眼睛部位的位置,将摄像机的位置与人物模型眼睛部位的位置进行相减,得到偏移值;
按照以下公式确定摄像机位置:
摄像机位置=人物模型眼睛部位的位置+偏移值
通过虚拟现实头显根据摄像机位置来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
本发明还提出一种基于虚拟现实的全身动作捕捉系统,其特征在于,包括:
第一数据获得模块,用于通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据;
第一计算模块,用于进行空间坐标计算出各个关节的旋转角度;
第一映射模块,用于将各个关节的旋转角度映射到人物模型上;
第二数据获得模块,用于通过LeapMotion获取手掌及各个手指的位置数据;
空间坐标转换模块,用于将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据;
第二计算模块,用于将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,计算手指关节旋转角度;
第二映射模块,用于将手指关节旋转角度映射到人物模型的手指;
执行模块,用于将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
一种实施方式中,第一计算模块具体用于根据以下坐标换算公式将各个关节点原始坐标从Kinect空间坐标系转换为Unity世界空间坐标系:
Pworld=Mk2wPkinect
Figure GDA0001974320570000041
其中,Pworld表示Unity世界空间下的坐标,Mk2w表示从Kinect空间到Unity世界空间的转换矩阵,Pkinect表示Kinect空间下的坐标,H表示Kinect传感器的高度,A表示Kinect传感器的角度;
对获得的关节点在Unity世界的世界坐标,按以下公式通过相邻关节点之间相减获得关节方向:
dir=Pj-PjParent
其中,dir表示方向,Pj表示关节点的世界坐标,PjParent表示父关节点的世界坐标;
根据关节方向计算获得用于将关节的旋转角度运用于人体模型的关节四元数。
一种实施方式中,第一映射模块具体用于将关节四元数赋予人物模型的关节角度完成关节的旋转角度到人物模型的映射。
一种实施方式中,空间坐标转换模块具体用于根据以下公式将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据:
Pworld=Ml2wPleapmotion
其中,Ml2w表示从LeapMotion空间到Kinect正前方向世界空间的转换矩阵,Pleapmotion表示LeapMotion空间下的坐标。
一种实施方式中,执行模块具体用于在初始化阶段,将场景摄像机放置于人物模型眼睛部位的位置,将摄像机的位置与人物模型眼睛部位的位置进行相减,得到偏移值;
按照以下公式确定摄像机位置:
摄像机位置=人物模型眼睛部位的位置+偏移值
通过虚拟现实头显根据摄像机位置来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
本发明实施方式的基于虚拟现实的全身动作捕捉方法和系统,使用Kinect和LeapMotion结合的消费级硬件组合方式来解决全身动捕设备成本过高的问题,并且通过坐标转换和基于关节的人物模型映射能够便捷地进行捕捉,而且包括身体和双腿都能进行交互,提高虚拟现实的沉浸感体验,进而扩展低成本虚拟现实设备的交互方式。
本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本发明实施方式的基于虚拟现实的全身动作捕捉方法的流程示意图;
图2是本发明实施方式的基于虚拟现实的全身动作捕捉系统的组成示意图;
图3是本发明实施方式的人体关节点示意图;
图4是本发明实施方式的Kinect摆放时的视野示意图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。
请参阅图1,本发明实施方式的基于虚拟现实的全身动作捕捉方法,包括:
步骤1,通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据;
步骤2,进行空间坐标计算出各个关节的旋转角度;
步骤3,将各个关节的旋转角度映射到人物模型上;
步骤4,通过LeapMotion获取手掌及各个手指的位置数据;
步骤5,将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据;
步骤6,将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,计算手指关节旋转角度;
步骤7,将手指关节旋转角度映射到人物模型的手指;
步骤8,将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
请参阅图2,本发明实施方式的基于虚拟现实的全身动作捕捉系统,包括:
第一数据获得模块,用于通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据;
第一计算模块,用于进行空间坐标计算出各个关节的旋转角度;
第一映射模块,用于将各个关节的旋转角度映射到人物模型上;
第二数据获得模块,用于通过LeapMotion获取手掌及各个手指的位置数据;
空间坐标转换模块,用于将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据;
第二计算模块,用于将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,计算手指关节旋转角度;
第二映射模块,用于将手指关节旋转角度映射到人物模型的手指;
执行模块,用于将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
在该实施方式中,基于虚拟现实的全身动作捕捉方法以基于虚拟现实的全身动作捕捉系统作为步骤的执行对象,或者以系统内的各个模块作为步骤的执行对象。具体地,步骤1以第一数据获取模块作为步骤的执行对象,步骤2以第一计算模块作为步骤的执行对象,步骤3以第一映射模块作为步骤的执行对象,步骤4以第二数据获取模块作为步骤的执行对象,步骤5以空间坐标转换模块作为步骤的执行对象,步骤6以第二计算模块作为步骤的执行对象,步骤7以第二映射模块作为步骤的执行对象,步骤8以执行模块作为步骤的执行对象。
步骤1中,第一数据获得模块通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据。如图3所示,图示中①至⑧分别表示头、颈、肩部脊椎、脊椎中部、脊椎底部、右肩、左肩、臀部右侧、臀部左侧,
Figure GDA0001974320570000071
Figure GDA0001974320570000072
分别表示右手臂的肘部、腕部、手部、手指尖和拇指,
Figure GDA0001974320570000073
Figure GDA0001974320570000074
分别表示左手臂的肘部、腕部、手部、手指尖和拇指,
Figure GDA0001974320570000075
Figure GDA0001974320570000076
分别表示右腿的膝盖、踝关节和脚部,
Figure GDA0001974320570000077
Figure GDA0001974320570000078
分别表示左腿的膝盖、踝关节和脚部。在Kinect里面,是用如图3的一系列关节点来表示人体骨架的。如图4所示,人体的各关节点位置用(x,y,z)坐标表示,这些坐标单位是米。坐标轴x、y、z是深度感应器实体的空间x、y z坐标轴。这个坐标系是右手螺旋的,Kinect感应器处于原点上,z坐标轴则与Kinect感应的朝向一致。y轴正半轴向上延伸,x轴正半轴(从Kinect感应器的视角来看)向左延伸。利用Kinect的SDK,告诉Kinect需要人体姿态数据,然后创建一个骨骼事件,在打开骨骼跟踪功能。当骨架追踪启用后,运行时,库将处理一幅图像和深度数据来传递包含骨架数据的帧。可以在处理过程中的任何时候打开或关闭骨架追踪。这样有人体姿态数据后,系统就会通知,进而通过调用相应函数拿到包括各个关节点原始坐标在内的人体姿态数据。
步骤2中,第一计算模块根据以下坐标换算公式将各个关节点原始坐标从Kinect空间坐标系转换为Unity世界空间坐标系:
Pworld=Mk2wPkinect
Figure GDA0001974320570000081
其中,Pworld表示Unity世界空间下的坐标,Mk2w表示从Kinect空间到Unity世界空间的转换矩阵,Pkinect表示Kinect空间下的坐标,H表示Kinect传感器的高度,A表示Kinect传感器的角度。因为人物模型与用户的身高及骨骼宽度不同,故不能直接将关节点坐标映射到人物模型上。
其中,转换矩阵的计算过程如下:
Figure GDA0001974320570000082
对获得的关节点在Unity世界的世界坐标,按以下公式通过相邻关节点之间相减获得关节方向:
dir=Pj-PjParent
其中,dir表示方向,Pj表示关节点的世界坐标,PjParent表示父关节点的世界坐标;例如:左手肘方向=左手腕位置-左手肘位置,对照图3可知道各个节点及对应的父节点。
根据关节方向dir计算获得用于将关节的旋转角度运用于人体模型的关节四元数。例如:手肘(ELBOW)关节点旋转计算:
Quaternion=Quatemion.FromToRotation(baseDir,jointDir);
通过Quaternion.FromToRotation()函数获得从A方向到B方向的四元数。
步骤3中,第一映射模块将关节四元数赋予人物模型的关节角度完成关节的旋转角度到人物模型的映射。即将身体关节旋转角度数据映射到人物模型身上,此时人物模型可以与用户作出相同动作,具体如下:
3.1人物模型动作(动画)也是通过关节进行控制的
3.2将上一步得到的各个关节Quaternion赋予人物模型的关节角度即可。需要注意的是相对/绝对角度的问题,上面计算出来的角度是相对角度,但是手肘的角度,也就是上臂和前臂的角度,并没有再加上整个上肢的角度。所以手肘最终的角度是肩膀角度+手肘角度。
步骤4,第二数据获得模块通过LeapMotion获取手掌及各个手指的位置数据。同Kinect类似,可以直接通过LeapMotion可以获得各个关节点原始坐标。
步骤5中,空间坐标转换模块根据以下公式将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据:
Pworld=Ml2wPleapmotion
其中,Ml2w表示从LeapMotion空间到Kinect正前方向世界空间的转换矩阵,该转换矩阵可参考步骤2的转换矩阵获得。Pleapmotion表示LeapMotion空间下的坐标。通过空间坐标转换,将LeapMotion识别空间下的手掌位置及各个手指位置换算成Kinect识别空间下,也即是世界空间(此处将Kinect的识别空间坐标系认定为世界空间坐标系,因为Kinect的识别空间和LeapMotion识别空间是不同的,可以认为各自的坐标系不同)。
步骤6中,将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,也即是手的位置由Kinect来控制,LeapMotion只负责精确控制手指的灵活度。同样将手指各关节点位置由手掌位置的相对位置换算过来,并计算关节旋转角度,计算过程简略描述如下:
由于之前将方向调整好了,此处只需要通过与LeapMotion手掌位置与人物模型原手掌位置相减,得到偏移值,然后所有手指关节点位置加上偏移值即可。手指关节旋转角度和步骤2中在Kinect中计算关节旋转角度一样。
步骤7中,第二映射模块将步骤6计算获得的手指关节旋转角度映射到人物模型的手指。
步骤8中,执行模块将场景摄像机放置于人物模型眼睛部位的位置,通过相对位置固定跟随模型头部,在初始化阶段将摄像机的位置与人物模型眼睛部位的位置进行相减,得到偏移值;再按照以下公式确定摄像机位置:
摄像机位置=人物模型眼睛部位的位置+偏移值
通过虚拟现实头显根据摄像机位置来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
综上所述,本发明实施方式的基于虚拟现实的全身动作捕捉方法和系统,使用Kinect和LeapMotion结合的消费级硬件组合方式来解决全身动捕设备成本过高的问题,并且通过坐标转换和基于关节的人物模型映射能够便捷地进行捕捉,而且包括身体和双腿都能进行交互,提高虚拟现实的沉浸感体验,进而扩展低成本虚拟现实设备的交互方式。
在本发明的实施方式的描述中,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的实施方式的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的实施方式的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明的实施方式中的具体含义。
在本发明的实施方式中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的实施方式的不同结构。为了简化本发明的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明的实施方式可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明的实施方式提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种基于虚拟现实的全身动作捕捉方法,其特征在于,包括:
通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据;
进行空间坐标计算出各个关节的旋转角度;
将各个关节的旋转角度映射到人物模型上;
通过LeapMotion获取手掌及各个手指的位置数据;
将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据;
将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,计算手指关节旋转角度;
将手指关节旋转角度映射到人物模型的手指;
将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉;
进行空间坐标计算出各个关节的旋转角度包括:
根据以下坐标换算公式将各个关节点原始坐标从Kinect空间坐标系转换为Unity世界空间坐标系:
Pworld=Mk2wPkinect
Figure FDA0003248958050000011
其中,Pworld表示Unity世界空间下的坐标,Mk2w表示从Kinect空间到Unity世界空间的转换矩阵,Pkinect表示Kinect空间下的坐标,H表示Kinect传感器的高度,A表示Kinect传感器的角度;
对获得的关节点在Unity世界的世界坐标,按以下公式通过相邻关节点之间相减获得关节方向:
dir=Pj-PjParent
其中,dir表示方向,Pj表示关节点的世界坐标,PjParent表示父关节点的世界坐标;
根据关节方向计算获得用于将关节的旋转角度运用于人体模型的关节四元数。
2.如权利要求1所述基于虚拟现实的全身动作捕捉方法,其特征在于,将各个关节的旋转角度映射到人物模型上包括:
将关节四元数赋予人物模型的关节角度完成关节的旋转角度到人物模型的映射。
3.如权利要求2所述基于虚拟现实的全身动作捕捉方法,其特征在于,将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据包括:
根据以下公式将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据:
Pworld=Ml2wPleapmotion
其中,Ml2w表示从LeapMotion空间到Kinect正前方向世界空间的转换矩阵,Pleapmotion表示LeapMotion空间下的坐标。
4.如权利要求3所述基于虚拟现实的全身动作捕捉方法,其特征在于,将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉包括:
在初始化阶段,将场景摄像机放置于人物模型眼睛部位的位置,将摄像机的位置与人物模型眼睛部位的位置进行相减,得到偏移值;
按照以下公式确定摄像机位置:
摄像机位置=人物模型眼睛部位的位置+偏移值
通过虚拟现实头显根据摄像机位置来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
5.一种基于虚拟现实的全身动作捕捉系统,其特征在于,包括:
第一数据获得模块,用于通过Kinect获得包括各个关节点原始坐标在内的人体姿态数据;
第一计算模块,用于进行空间坐标计算出各个关节的旋转角度;
第一映射模块,用于将各个关节的旋转角度映射到人物模型上;
第二数据获得模块,用于通过LeapMotion获取手掌及各个手指的位置数据;
空间坐标转换模块,用于将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据;
第二计算模块,用于将LeapMotion手掌位置重置于Kinect识别空间下的手掌位置,计算手指关节旋转角度;
第二映射模块,用于将手指关节旋转角度映射到人物模型的手指;
执行模块,用于将场景摄像机放置于人物模型眼睛部位的位置,通过虚拟现实头显来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉;
第一计算模块具体用于根据以下坐标换算公式将各个关节点原始坐标从Kinect空间坐标系转换为Unity世界空间坐标系:
Pworld=Mk2wPkinect
Figure FDA0003248958050000031
其中,Pworld表示Unity世界空间下的坐标,Mk2w表示从Kinect空间到Unity世界空间的转换矩阵,Pkinect表示Kinect空间下的坐标,H表示Kinect传感器的高度,A表示Kinect传感器的角度;
对获得的关节点在Unity世界的世界坐标,按以下公式通过相邻关节点之间相减获得关节方向:
dir=Pj-PjParent
其中,dir表示方向,Pj表示关节点的世界坐标,PjParent表示父关节点的世界坐标;
根据关节方向计算获得用于将关节的旋转角度运用于人体模型的关节四元数。
6.如权利要求5所述基于虚拟现实的全身动作捕捉系统,其特征在于,第一映射模块具体用于将关节四元数赋予人物模型的关节角度完成关节的旋转角度到人物模型的映射。
7.如权利要求6所述基于虚拟现实的全身动作捕捉系统,其特征在于,空间坐标转换模块具体用于根据以下公式将LeapMotion获取的手掌及各个手指的位置数据进行空间坐标转换处理,获得Kinect识别空间下手掌及各个手指的位置数据:
Pworld=Ml2wPleapmotion
其中,Ml2w表示从LeapMotion空间到Kinect正前方向世界空间的转换矩阵,Pleapmotion表示LeapMotion空间下的坐标。
8.如权利要求7所述基于虚拟现实的全身动作捕捉系统,其特征在于,执行模块具体用于在初始化阶段,将场景摄像机放置于人物模型眼睛部位的位置,将摄像机的位置与人物模型眼睛部位的位置进行相减,得到偏移值;
按照以下公式确定摄像机位置:
摄像机位置=人物模型眼睛部位的位置+偏移值
通过虚拟现实头显根据摄像机位置来控制摄像机的旋转,进行虚拟现实环境下的全身动作捕捉。
CN201811647445.3A 2018-12-30 2018-12-30 基于虚拟现实的全身动作捕捉方法和系统 Active CN109782911B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811647445.3A CN109782911B (zh) 2018-12-30 2018-12-30 基于虚拟现实的全身动作捕捉方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811647445.3A CN109782911B (zh) 2018-12-30 2018-12-30 基于虚拟现实的全身动作捕捉方法和系统

Publications (2)

Publication Number Publication Date
CN109782911A CN109782911A (zh) 2019-05-21
CN109782911B true CN109782911B (zh) 2022-02-08

Family

ID=66499015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811647445.3A Active CN109782911B (zh) 2018-12-30 2018-12-30 基于虚拟现实的全身动作捕捉方法和系统

Country Status (1)

Country Link
CN (1) CN109782911B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966213A (zh) * 2020-06-29 2020-11-20 青岛小鸟看看科技有限公司 图像处理方法、装置、设备及存储介质
CN114078280B (zh) * 2020-08-11 2024-12-31 北京达佳互联信息技术有限公司 动作捕捉方法、装置、电子设备及存储介质
CN112927330B (zh) * 2021-03-17 2024-04-26 北京七维视觉传媒科技有限公司 用于生成虚拟人体图像的方法和系统
CN113157093A (zh) * 2021-04-20 2021-07-23 沈阳工程学院 一种虚拟人物对象姿态同步控制系统
CN113343902A (zh) * 2021-06-28 2021-09-03 广州虎牙科技有限公司 一种手掌的深度检测方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360729A (zh) * 2014-08-05 2015-02-18 北京农业信息技术研究中心 基于Kinect和Unity3D的多交互方法与装置
CN108734194A (zh) * 2018-04-09 2018-11-02 浙江工业大学 一种面向虚拟现实的基于单深度图的人体关节点识别方法
CN109077731A (zh) * 2018-06-11 2018-12-25 上海大学 一种基于视觉的人体检测方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360729A (zh) * 2014-08-05 2015-02-18 北京农业信息技术研究中心 基于Kinect和Unity3D的多交互方法与装置
CN108734194A (zh) * 2018-04-09 2018-11-02 浙江工业大学 一种面向虚拟现实的基于单深度图的人体关节点识别方法
CN109077731A (zh) * 2018-06-11 2018-12-25 上海大学 一种基于视觉的人体检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
航天员虚拟交互操作训练多体感融合驱动方法研究;邹俞等;《图学学报》;20180815(第04期);第742-751页 *

Also Published As

Publication number Publication date
CN109782911A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109782911B (zh) 基于虚拟现实的全身动作捕捉方法和系统
JP7273880B2 (ja) 仮想オブジェクト駆動方法、装置、電子機器及び可読記憶媒体
Cerulo et al. Teleoperation of the SCHUNK S5FH under-actuated anthropomorphic hand using human hand motion tracking
US8917240B2 (en) Virtual desktop coordinate transformation
Wang et al. Real-time hand-tracking with a color glove
KR20210011984A (ko) 이미지 처리 방법 및 장치, 이미지 디바이스, 및 저장 매체
Kakadiaris et al. Model-based estimation of 3D human motion with occlusion based on active multi-viewpoint selection
KR101519775B1 (ko) 오브젝트의 모션 인식 기반 애니메이션 생성 방법 및 장치
EP3035164B1 (en) Wearable sensor for tracking articulated body-parts
CN108762495A (zh) 基于手臂动作捕捉的虚拟现实驱动方法及虚拟现实系统
US9384329B2 (en) Caloric burn determination from body movement
CN109243575B (zh) 一种基于移动交互和增强现实的虚拟针灸方法及系统
Placidi et al. Overall design and implementation of the virtual glove
US11209916B1 (en) Dominant hand usage for an augmented/virtual reality device
US11951384B2 (en) System and method for virtual character animation using motion capture
Silva et al. Sensor data fusion for full arm tracking using myo armband and leap motion
Nissler et al. OMG: introducing optical myography as a new human machine interface for hand amputees
Molet et al. An animation interface designed for motion capture
Maruyama et al. Riding motion capture system using inertial measurement units with contact constraints
Maycock et al. Robust tracking of human hand postures for robot teaching
CN113496168B (zh) 手语数据采集方法、设备、存储介质
Yasumuro et al. 3D modeling of human hand with motion constraints
Molla et al. Singularity free parametrization of human limbs
JP2012079177A (ja) 仮想物体操作装置
CN112927330A (zh) 用于生成虚拟人体图像的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant