CN107833271B - 一种基于Kinect的骨骼重定向方法及装置 - Google Patents
一种基于Kinect的骨骼重定向方法及装置 Download PDFInfo
- Publication number
- CN107833271B CN107833271B CN201710944903.9A CN201710944903A CN107833271B CN 107833271 B CN107833271 B CN 107833271B CN 201710944903 A CN201710944903 A CN 201710944903A CN 107833271 B CN107833271 B CN 107833271B
- Authority
- CN
- China
- Prior art keywords
- human body
- data
- body model
- kinect
- bone
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 210000000988 bone and bone Anatomy 0.000 claims abstract description 87
- 230000009471 action Effects 0.000 claims abstract description 12
- 238000006073 displacement reaction Methods 0.000 claims description 21
- 210000002414 leg Anatomy 0.000 claims description 17
- 210000002683 foot Anatomy 0.000 claims description 13
- 239000012636 effector Substances 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 210000004394 hip joint Anatomy 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 7
- 210000003108 foot joint Anatomy 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 210000001217 buttock Anatomy 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 5
- 238000013519 translation Methods 0.000 claims description 5
- 210000000544 articulatio talocruralis Anatomy 0.000 claims description 4
- 210000000629 knee joint Anatomy 0.000 claims description 4
- 238000002372 labelling Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 10
- 230000003993 interaction Effects 0.000 abstract description 2
- 210000001503 joint Anatomy 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000001930 leg bone Anatomy 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/32—Image data format
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明属于人机交互领域,具体涉及一种基于Kinect的骨骼重定向方法及装置。旨在解决现有重定向方法的动作失真和滑步的问题。本发明提供一种基于Kinect的骨骼重定向方法,包括:获取Kinect采集的骨骼数据,将所述骨骼数据转换为人体模型中对应关节点的旋转数据,其中,所述骨骼数据与人体模型中的关节点一一对应;计算所述旋转数据与在T‑Pose状态下预先获取的人体姿态数据的数据偏移量;将所述数据偏移量作用于所述人体模型,控制所述人体模型运动,以实现人体模型的重定位。本发明的基于Kinect的骨骼重定向方法可以做到人体模型与人体动作的统一,并且解决人体模型重定向过程中出现的动作失真和滑步等问题。
Description
技术领域
本发明属于人机交互领域,具体涉及一种基于Kinect的骨骼重定向方法及装置。
背景技术
随着科学技术的发展,骨骼重定向技术被广泛应用于影视、游戏、军事训练以及虚拟现实等领域。骨骼重定向技术是指将运动捕捉采集到的运动数据,映射到虚拟场景中的人体模型上,同时保持虚拟场景中人体模型动作的逼真、以及人体模型与实际人体动作一致同步。运动捕捉采集的数据作为骨骼重定向技术的输入数据,其对骨骼重定向技术具有重大影响。
运动捕捉也被称为动作捕捉,通过在运动物体的关键部位设置传感器,由运动捕捉系统实时捕捉传感器的位置,然后将传感器的三维坐标传给计算机。现有的运动捕捉技术主要分为机械式、声学式、电磁式、主动光学式以及被动光学式,但采用上述运动捕捉技术的设备普遍存在穿戴复杂、实时性差、设备笨拙、安装环境要求高、成本高等缺陷。Kinect是一种3D体感摄像机,能够在不接触人体的情况下,实现对人体骨骼数据的采集,Kinect依靠复杂而又精密的硬件和领先的机器学习算法,可以有效地解决上述问题。
在实际应用中,可以利用Kinect采集的人体骨骼数据,通过骨骼重定向技术驱动带骨骼的三维人体模型运动。但是由于虚拟人体模型的大小比例与真实人物比例不一致,甚至骨架结构也不相同,因此,Kinect采集到的骨骼数据无法直接应用在虚拟人体模型上,此外,将Kinect采集到的骨骼数据应用在虚拟人体模型上,会由于物体的遮挡导致骨骼数据失真、在模型结算过程中,出现滑步现象。
因此,如何提出一种解决上述问题的方案是本领域技术人员目前需要解决的问题。
发明内容
为了解决现有技术中的上述问题,即为了解决现有重定向方法的动作失真和滑步的问题,本发明一方面提供一种基于Kinect的骨骼重定向方法,所述方法包括:
获取Kinect采集的骨骼数据,将所述骨骼数据转换为人体模型中对应关节点的旋转数据,其中,所述骨骼数据与人体模型中的关节点一一对应;
计算所述旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量;
将所述数据偏移量作用于所述人体模型,控制所述人体模型运动,以实现人体模型的重定位。
在上述方法的优选技术方案中,所述“将所述骨骼数据转换为人体模型关节的旋转数据”,其方法为:
选择所述人体模型中的臀部关节点作为原点,以人体左右水平方向为x轴,人体上下竖直方向为y轴,人体正前方为z轴,构建坐标系;
为所述人体模型中的关节点创建坐标,计算所述人体模型中相邻关节点的空间向量差值,通过欧拉公式将所述空间向量差值转换为旋转数据,具体公式为:
vi(t)=kj(t)-ki(t),
V(t)=[p(t),F(k1(t)),F(k2(t)),...,F(kn(t))]T;
其中,p(t)为臀部的空间坐标,F(ki(t))为将Kinect空间中关节点的坐标转换为欧拉角表示的函数;
所述臀部关节点作为根关节点,所述根关节点包含所述人体模型的位移信息和旋转信息,所述位移信息包括3个平移参数,所述旋转信息包括3个旋转参数。
在上述方法的优选技术方案中,所述人体模型具体表示为:
M(t)=[p(t),q1(t),q2(t),...,qn(t)]T,
其中,p(t)=(x,y,z),表示根节点的位移信息,qi(t)=(θ,ψ,φ),表示第i个除根节点以外的节点的旋转信息。
在上述方法的优选技术方案中,在“将所述骨骼数据转换为人体模型关节的旋转数据”之前,该方法还包括:
对所述骨骼数据进行滤波处理,得到第一骨骼数据,对所述第一骨骼数据进行从0-19的数学标注。
在上述方法的优选技术方案中,所述“对所述骨骼数据进行滤波处理”之前,该方法还包括:
步骤S1:在无遮挡的情况下,控制Kinect采集人体腿部上下骨骼长度lu、ll以及腿部总长度l;
步骤S2:计算人体腿部骨骼的实际长度,若所述实际长度大于预设阈值,则对Kinect采集的数据进行滤波处理;
步骤S3:判断实际骨骼长度与腿部总长度是否满足三角约束,若满足,则将髋关节和踝关节位置和的二分之一处作为膝关节的位置。
在上述方法的优选技术方案中,所述“计算所述旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量”,其方法为:
获取在T-Pose状态下人体姿态的初始数据;
计算所述旋转数据中的根节点的位移信息与所述旋转数据中除根节点以外的节点的旋转信息,相对所述初始数据的数据偏移量具体表示为:
V(tj)=[p(t0)+T(tj),r1(tj)v1(t0),r2(tj)v2(t0),...,rn(tj)vn(t0)]T,
其中,p(t0)表示在T-Pose状态下预先获取人体姿态的初始数据,T(tj)表示根节点的位移,rn(tj)表示除根节点以外的节点的旋转信息,vn(t0)表示人体姿态的初始节点信息。
在上述方法的优选技术方案中,所述“将所述数据偏移量作用于所述人体模型,控制所述人体模型运动”,其方法为:
将所述数据偏移量映射到所述人体模型的节点数据中,所述人体模型根据所述数据偏移量进行动作的改变,其中,将所述数据偏移量映射到所述人体模型的节点数据中的具体公式为:
M(tj)=[p(t0)+T(tj),r1(tj)q1(t0),r2(tj)q2(t0),...,rn(tj)qn(t0)],
其中,p(t0)表示在T-Pose状态下预先获取的人体姿态的初始数据,T(tj)表示根节点的位移,qn(t0)表示T-Pose状态下人体模型的初始数据,rn(tj)表示节点的旋转信息。
在上述方法的优选技术方案中,所述“将所述数据偏移量作用于所述人体模型,控制所述人体模型运动”之前,该方法还包括:
计算Kinect当前获取的数据与上一时刻获取的数据中对应的骨骼节点的距离disFrame;
若所述距离disFrame大于预设阈值,则保持所述人体模型中对应的骨骼节点不动,否则,将所述数据偏移量作用于所述人体模型,控制所述人体模型运动。
在上述方法的优选技术方案中,所述“将所述数据偏移量作用于所述人体模型,控制所述人体模型运动”之后,该方法还包括:
检测所述人体模型中足部四个关节点与地面的距离,分别计算所述四个关节点与地面的距离,保留其中最短的距离;
将所述最短的距离作为位置偏移量控制所述人体模型的根节点的位置偏移,对所述人体模型进行失真修正。
在上述方法的优选技术方案中,所述“将所述最短的距离作为位置偏移量控制所述人体模型的根节点的位置偏移,对所述人体模型进行失真修正”,其方法为:
将所述四个关节点与地面最近的关节点作为末端效应器,记录所述末端效应器的状态;
判断所述人体模型足部关节点着地情况:若所述人体模型的左脚关节点着地,则保存右脚第一次着地点水平面的坐标值为(x,z),若所述人体模型的右脚关节点着地,则保存左脚第一次着地点水平面的坐标值为(x,z);
计算实际末端效应器位置与着地点坐标值的偏移量,根据所述偏移量调整所述人体模型根关节的位置,对所述人体模型进行失真修正。
本发明另一方面提供一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行如上述所述的基于Kinect的骨骼重定向方法。
本发明第三方面提供一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;所述程序适于由处理器加载并执行如上述所述的基于Kinect的骨骼重定向方法。
本发明提供一种基于Kinect的骨骼重定向方法,包括:
获取Kinect采集的骨骼数据,将所述骨骼数据转换为人体模型中对应关节点的旋转数据,其中,所述骨骼数据与人体模型中的关节点一一对应;
计算所述旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量;
将所述数据偏移量作用于所述人体模型,控制所述人体模型运动,以实现人体模型的重定位。
与最接近的现有技术相比,本发明至少具有如下有益效果:
本发明提供的基于Kinect的骨骼重定向方法,将Kinect采集的骨骼数据转化为旋转数据,计算出在世界坐标系下,Kinect所采集的每一帧图像中,各个关节点的位置和朝向信息,利用基于正向运动学的方法,使用旋转数据映射到人体模型中,从而能够在人体模型的大小比例与真实人体比例不一致,甚至骨架结构也不相同的情况下,做到人体模型与人体动作的统一。此外,本发明提供的基于Kinect的骨骼重定向方法还可以解决人体模型重定向过程中出现的动作失真和滑步等问题。
附图说明
图1为本发明一种实施例的基于Kinect的骨骼重定向方法的流程示意图;
图2为本发明一种实施例节点构成的人体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
如图1所示,为本发明一种实施例的基于Kinect的骨骼重定向方法的流程示意图,包括:
步骤S1:获取Kinect采集的骨骼数据,将骨骼数据转换为人体模型中对应关节点的旋转数据,其中,骨骼数据与人体模型中的关节点一一对应;
作为新一代的体感设备,Kinect依靠复杂而又精密的硬件和机器学习算法,能够主动捕捉人体的骨骼数据,其中,骨骼数据是指人体各个关节点的位置和朝向信息,骨骼数据与人体模型中的各个关节点一一对应,因此,通过Kinect采集的人体的骨骼数据能够利用正向运动学解析方法,求得虚拟人体模型在世界坐标下,各个关节点的三维坐标和旋转四元数,从而可以通过Kinect获取的数据驱动虚拟的人体模型。
进一步地,本实施例中,图1所示的步骤S1中,在“将骨骼数据转换为人体模型关节的旋转数据”之前,该方法还包括:
对骨骼数据进行滤波处理,得到第一骨骼数据,对第一骨骼数据进行从0-19的数学标注。
由于Kinect设备本身的局限性以及外部环境的干扰等原因,Kinect采集的骨骼数据中有一部分数据会影响后续重定向的精度和准确度,因此对Kinect采集的骨骼数据进行滤波处理,删除不需要的关节数据,对数据进行格式化,并对滤波处理后得到的数据进行数学标注。如图2所示,图2示例性的给出了由节点构成的人体结构示意图,在实际应用中,将人体模型简化为20个关节点,由19段骨骼构成,对骨骼数据对应的关节点进行从0-19的数学标注,从而在后期进行重定向时,便于识别关节点。
作为本发明实施例中的优选方案,在“对骨骼数据进行滤波处理”之前,该方法还包括:
步骤S11:在无遮挡的情况下,控制Kinect采集人体腿部上下骨骼长度lu、ll以及腿部总长度l;
步骤S12:计算人体腿部骨骼的实际长度,若实际长度大于预设阈值,则对Kinect采集的数据进行滤波处理;
步骤S13:判断实际骨骼长度与腿部总长度是否满足三角约束,若满足,则将髋关节和踝关节位置和的二分之一处作为膝关节的位置。
本实施例中,Kinect通常需要用户始终面向传感器,且不能拿任何物体,当人体的一部分被遮挡时,Kinect则不能准确识别人体的姿势。对于人在运动的过程中,由于遮挡等原因,使得Kinect在捕捉关节时,丢失关节点或者识别错误的关节点,因此需要在处理数据的过程中,对关节点进行几何约束处理。
在无遮挡的情况下,控制Kinect采集人体腿部上下骨骼的长度,分别记为lu、ll,以及腿部的总长度l,接着判断关节点的可信度,当Kinect在实际应用中获取骨骼数据后,计算实际腿部的骨骼长度,并比较实际计算的腿部骨骼长度和在无遮挡情况下计算的腿部总长度l两者的差值,若两者的差值在预设阈值范围内,则可以判定该骨骼节点不可信,对Kinect实际采集的数据进行滤波处理,并重复执行步骤S11,若骨骼节点可信,则进一步判断实际的骨骼长度与腿部的总长度是否满足三角约束的条件,若满足条件,则将髋关节和踝关节位置和的二分之一处作为膝关节的位置,并将此关节点作为可用节点处理。
步骤S2:计算旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量;
进一步地,本实施例中,图1所示的步骤S2中,“计算旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量”,其方法为:
获取在T-Pose状态下人体姿态的初始数据;
计算旋转数据中的根节点的位移信息与旋转数据中除根节点以外的节点的旋转信息,相对初始数据的数据偏移量具体如公式(1)所示:
V(tj)=[p(t0)+T(tj),r1(tj)v1(t0),r2(tj)v2(t0),...,rn(tj)vn(t0)]T (1)
其中,p(t0)表示在T-Pose状态下预先获取人体姿态的初始数据,T(tj)表示根节点的位移,rn(tj)表示除根节点以外的节点的旋转信息,vn(t0)表示人体姿态的初始节点信息。
基于Kinect原始数据构建的坐标系和人体模型关节点的基本坐标系的坐标轴不一定全部重合,而且由于不同的设置,人体模型的关节点基坐标系、坐标轴也没有标准的方向,因此不能通过转换后的数据V(t)直接控制人体模型旋转,可以采用插值驱动的方式控制人体模型运动。
初始时,保证人体模型和构建的Kinect骨骼系统保持相同的T-Pose姿势,记录下此时的初始数据V(t0)和M(t0)。在任意时刻tj通过Kinect提供的原始数据K(tj),计算当前时刻的旋转数据,具体方法如公式(2)所示:
V(tj)=[p(tj),F(k1(tj)),F(k2(tj)),...,F(kn(tj))]T (2)
相比于姿势为T-Pose时的初始时刻,用户的各个关节旋转了R(tj)=[r1(tj),r2(tj),...,rn(tj)],根关节点移动了T(tj),其中V(t0)和V(tj)之间的关系具体如公式(3)所示:
V(tj)=[p(t0)+T(tj),r1(tj)v1(t0),r2(tj)v2(t0),...,rn(tj)vn(t0)]T (3)
其中,p(t0)表示在T-Pose状态下预先获取人体姿态的初始数据,T(tj)表示根节点的位移,rn(tj)表示除根节点以外的节点的旋转信息,vn(t0)表示人体姿态的初始节点信息。
步骤S3:将数据偏移量作用于人体模型,控制人体模型运动,以实现人体模型的重定位;
进一步地,本实施例中,图1所示的步骤S3中,“将数据偏移量作用于人体模型,控制人体模型运动”,其方法为:
将数据偏移量映射到人体模型的节点数据中,人体模型根据数据偏移量进行动作的改变,其中,将数据偏移量映射到人体模型的节点数据中的具体公式如公式(4)所示:
M(tj)=[p(t0)+T(tj),r1(tj)q1(t0),r2(tj)q2(t0),...,rn(tj)qn(t0)] (4)
其中,p(t0)表示在T-Pose状态下预先获取的人体姿态的初始数据,T(tj)表示根节点的位移,qn(t0)表示T-Pose状态下人体模型的初始数据,rn(tj)表示节点的旋转信息。
通过当前时刻相对初始状态的姿态变化,可以将姿态变化对应的数据偏移量映射到人体模型的节点数据中,并且人体模型根据数据偏移量进行动作的改变。
本发明提供的基于Kinect的骨骼重定向方法,将Kinect采集的骨骼数据转化为旋转数据,计算出在世界坐标系下,Kinect所采集的每一帧图像中,各个关节点的位置和朝向信息,利用基于正向运动学的方法,使用旋转数据映射到人体模型中,从而能够在人体模型的大小比例与真实人体比例不一致,甚至骨架结构也不相同的情况下,做到人体模型与人体动作的统一。此外,本发明提供的基于Kinect的骨骼重定向方法还可以解决人体模型重定向过程中出现的动作失真和滑步等问题。
作为一种优选的实施例,“将骨骼数据转换为人体模型关节的旋转数据”,其方法为:
选择人体模型中的臀部关节点作为原点,以人体左右水平方向为x轴,人体上下竖直方向为y轴,人体正前方为z轴,构建坐标系;
为人体模型中的关节点创建坐标,计算人体模型中相邻关节点的空间向量差值,通过欧拉公式将空间向量差值转换为旋转数据,具体公式如公式(5)和公式(6)所示:
vi(t)=kj(t)-ki(t) (5)
V(t)=[p(t),F(k1(t)),F(k2(t)),...,F(kn(t))]T (6)
其中,p(t)为臀部的空间坐标,F(ki(t))为将Kinect空间中关节点的坐标转换为欧拉角表示的函数;
臀部关节点作为根关节点,根关节点包含人体模型的位移信息和旋转信息,位移信息包括3个平移参数,旋转信息包括3个旋转参数。
人体模型运动,是通过模型蒙皮上绑定好的骨架驱动的。骨架是由一系列节点组成,按照人体构造关系,在相邻两个关节点之间建立父子关系,所有节点呈树状结构,骨架中的每个节点代表人体骨骼的一个关节。骨骼拓扑结构是由关节点构成的,关节与关节之间构成关节链,因此,骨骼的定义就是关节链的定义,骨骼的运动就是关节链的运动控制。每个关节同其父关节组成一段骨骼,由于该骨骼是一段刚体,由于骨骼之间为锚接,所以每段骨骼存在三个自由度。为每段骨骼建立一个坐标系,该坐标系原点为该骨骼的节点,关节的空间角度可以通过骨骼坐标系在模型空间中的欧拉角表示J(i)=(θ,ψ,φ)。
骨架是由一系列的关节点组成,关节点之间由骨骼段相连,并且具有父子继承关系,每一个父关节点的空间位置变化都会影响其子关节点的空间位置。一般人体模型将人体骨骼简化为20个关节节点,由19段骨骼组成,以其臀部的关节作为骨架结构的根关节点,根关节点不受任何约束,可以旋转和平移,旋转和平移根关节点可以控制整个模型旋转和移动。根关节点记录了人体模型在世界坐标中的位移信息和旋转信息,存在6个自由度,分别为3个平移参数和3个旋转参数,其他关节点记录着该关节点相对于其父节点的旋转信息,为3个自由度的3个旋转参数。
将Kinect提供的原始数据记为:
K(t)=[k1(t),k2(t),...,kn(t)]T (7)
其中ki(t)=[xi,yi,zi]为第i个非根节点的关节点在Kinect坐标系下的三维坐标数据。由于Kinect提供的骨骼数据是非层次的、独立的数据,各个关节之间不存在任何联系,因此无法直接用Kinect提供的数据驱动人体模型运动,需要先将原始数据K(t)转换为能够驱动人体模型运动的旋转数据,具体公式如公式(8)所示:
V(t)=[p(t),F(k1(t)),F(k2(t)),...,F(kn(t))]T (8)
其中,p(t)为臀部的空间坐标,F(ki(t))为将Kinect空间中关节点的坐标转换为欧拉角表示的函数。
作为一种优选的实施例,人体模型具体表示如公式(9)所示:
M(t)=[p(t),q1(t),q2(t),...,qn(t)]T (9)
其中,p(t)=(x,y,z),表示根节点的位移信息,qi(t)=(θ,ψ,φ),表示第i个除根节点以外的节点的旋转信息。
为了描述任意时刻人体模型的姿态,运用刚体运动学定义人体模型的状态。在任意时刻t,模型的姿态M(m)(t)由骨架中n个关节的状态来定义,其中,p(t)=(x,y,z),表示根节点的位移信息,qi(t)=(θ,ψ,φ),表示第i个除根节点以外的节点的旋转信息。
作为一种优选的实施例,“将数据偏移量作用于人体模型,控制人体模型运动”之前,该方法还包括:
计算Kinect当前获取的数据与上一时刻获取的数据中对应的骨骼节点的距离disFrame;
若距离disFrame大于预设阈值,则保持人体模型中对应的骨骼节点不动,否则,将数据偏移量作用于人体模型,控制人体模型运动。
通过Kinect获取骨骼数据后,判断骨骼数据对应的节点数是否可信,通过计算Kinect获取的前后相邻两帧的数据中,相同的节点之间的距离是否在阈值范围内,若是,则说明节点可信,则将数据偏移量作用于人体模型,控制人体模型运动;若否,则保持人体模型中对应的骨骼节点不动。
作为一种优选的实施例,“将数据偏移量作用于人体模型,控制人体模型运动”之后,该方法还包括:
检测人体模型中足部四个关节点与地面的距离,分别计算四个关节点与地面的距离,保留其中最短的距离;
将最短的距离作为位置偏移量控制人体模型的根节点的位置偏移,对人体模型进行失真修正。
通过Kinect采集的数据驱动人体模型运动的过程中,会出现的模型滑步以及模型悬空等失真现象,会明显破坏原始运动的逼真性,因此需要对失真的地方进行修正。根据人体的树状层次结构,足部末端效应器共有4个关节点,分别为:左脚脚后跟(AnkleLeft)、右脚脚后跟(AnkleRight)、左脚脚趾(FootLeft)、右脚脚趾(FootRight),四个关节点均可以与地面相接触,取其中一个为约束关节点,约束关节点的选取原则如下:将与地面距离最小的关节点作为约束关节点。具体方法的流程如下:
检测足部四个关节与地面的距离,比较四个距离的大小;
将距离最小的关节作为末端效应器并保留最小距离,记录末端效应器的状态;
根据最小距离的偏移量在竖直方向移动模型,使模型脚部着地;
当单脚着地时,保存末端效应器第一次着地点水平面的坐标值(x,z);
若左脚着地,保存右脚末端效应器第一次着地点水平面的坐标值(x,z),反之取左脚坐标值;
计算实际末端效应器的位置与着地点坐标值的偏移量,根据该偏移量调整模型根关节的位置。
最右边骨骼链代表Kinect采集的上一数据的位置与姿态,最左边的关节链代表Kinect采集的当前数据的姿态与位置信息,为消除滑步需要将当前数据右移,通过用脚部的位置偏移量来控制根节点的位置偏移,即模型整体的位置偏移。
本发明还提供一种存储装置,其中存储有多条程序,程序适于由处理器加载并执行如上述的基于Kinect的骨骼重定向方法。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的存储装置的具体工作过程以及相关说明,可以参考前述基于Kinect的骨骼重定向方法实施例中的对应过程,且与上述方法具有相同的有益效果,在此不再赘述。
本发明还提供一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;程序适于由处理器加载并执行如上述的基于Kinect的骨骼重定向方法。
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,本发明实施例的处理装置的具体工作过程以及相关说明,可以参考前述基于Kinect的骨骼重定向方法实施例中的对应过程,且与上述方法具有相同的有益效果,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (10)
1.一种基于Kinect的骨骼重定向方法,其特征在于,所述方法包括:
获取Kinect采集的骨骼数据,将所述骨骼数据转换为人体模型中对应关节点的旋转数据,其中,所述骨骼数据与人体模型中的关节点一一对应;
计算所述旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量;包括:获取在T-Pose状态下人体姿态的初始数据,计算所述旋转数据中的根节点的位移信息与所述旋转数据中除根节点以外的节点的旋转信息相对所述初始数据的数据偏移量V(tj)=[p(t0)+T(tj),r1(tj)v1(t0),r2(tj)v2(t0),...,rn(tj)vn(t0)]T即为所述旋转数据与在T-Pose状态下预先获取的人体姿态数据的数据偏移量,其中,p(t0)表示在T-Pose状态下预先获取人体姿态的初始数据,T(tj)表示根节点的位移,rn(tj)表示除根节点以外的节点的旋转信息,vn(t0)表示人体姿态的初始节点信息;
将所述数据偏移量作用于所述人体模型,控制所述人体模型运动,以实现人体模型的重定位,包括:将所述数据偏移量映射到人体模型的节点数据中,人体模型根据所述数据偏移量进行动作的改变,其中,将所述数据偏移量映射到人体模型的节点数据中的具体公式为
M(tj)=[p(t0)+T(tj),r1(tj)q1(t0),r2(tj)q2(t0),...,rn(tj)qn(t0)]
其中,p(t0)表示在T-Pose状态下预先获取的人体姿态的初始数据,T(tj)表示根节点的位移,qn(t0)表示T-Pose状态下人体模型的初始数据,rn(tj)表示节点的旋转信息;
通过当前时刻相对初始状态的姿态变化,能将姿态变化对应的数据偏移量映射到人体模型的节点数据中,并且人体模型根据数据偏移量进行动作的改变。
2.根据权利要求1所述的基于Kinect的骨骼重定向方法,其特征在于,所述“将所述骨骼数据转换为人体模型中对应关节点的旋转数据”,其方法为:
选择所述人体模型中的臀部关节点作为原点,以人体左右水平方向为x轴,人体上下竖直方向为y轴,人体正前方为z轴,构建坐标系;
为所述人体模型中的关节点创建坐标,计算所述人体模型中相邻关节点的空间向量差值,通过欧拉公式将所述空间向量差值转换为旋转数据,具体公式为:
vi(t)=kj(t)-ki(t),
V(t)=[p(t),F(k1(t)),F(k2(t)),...,F(kn(t))]T;
其中,p(t)为臀部的空间坐标,F(ki(t))为将Kinect空间中关节点的坐标转换为欧拉角表示的函数;
所述臀部关节点作为根关节点,所述根关节点包含所述人体模型的位移信息和旋转信息,所述位移信息包括3个平移参数,所述旋转信息包括3个旋转参数。
3.根据权利要求2所述的基于Kinect的骨骼重定向方法,其特征在于,所述人体模型具体表示为:
M(t)=[p(t),q1(t),q2(t),...,qn(t)]T,
其中,p(t)=(x,y,z),表示根节点的位移信息,qi(t)=(θ,ψ,φ),表示第i个除根节点以外的节点的旋转信息。
4.根据权利要求1所述的基于Kinect的骨骼重定向方法,其特征在于,在“将所述骨骼数据转换为人体模型中对应关节点的旋转数据”之前,该方法还包括:
对所述骨骼数据进行滤波处理,得到第一骨骼数据,对所述第一骨骼数据进行从0-19的数学标注。
5.根据权利要求4所述的基于Kinect的骨骼重定向方法,其特征在于,所述“对所述骨骼数据进行滤波处理”之前,该方法还包括:
步骤S1:在无遮挡的情况下,控制Kinect采集人体腿部上下骨骼长度lu、ll以及腿部总长度l;
步骤S2:计算人体腿部骨骼的实际长度,若所述实际长度大于预设阈值,则对Kinect采集的数据进行滤波处理;
步骤S3:判断实际骨骼长度与腿部总长度是否满足三角约束,若满足,则将髋关节和踝关节位置和的二分之一处作为膝关节的位置。
6.根据权利要求1所述的基于Kinect的骨骼重定向方法,其特征在于,所述“将所述数据偏移量作用于所述人体模型,控制所述人体模型运动”之前,该方法还包括:
计算Kinect当前获取的数据与上一时刻获取的数据中对应的骨骼节点的距离disFrame;
若所述距离disFrame大于预设阈值,则保持所述人体模型中对应的骨骼节点不动,否则,将所述数据偏移量作用于所述人体模型,控制所述人体模型运动。
7.根据权利要求6所述的基于Kinect的骨骼重定向方法,其特征在于,所述“将所述数据偏移量作用于所述人体模型,控制所述人体模型运动”之后,该方法还包括:
检测所述人体模型中足部四个关节点与地面的距离,分别计算所述四个关节点与地面的距离,保留其中最短的距离;
将所述最短的距离作为位置偏移量控制所述人体模型的根节点的位置偏移,对所述人体模型进行失真修正。
8.根据权利要求7所述的基于Kinect的骨骼重定向方法,其特征在于,所述“将所述最短的距离作为位置偏移量控制所述人体模型的根节点的位置偏移,对所述人体模型进行失真修正”,其方法为:
将所述四个关节点与地面最近的关节点作为末端效应器,记录所述末端效应器的状态;
判断所述人体模型足部关节点着地情况:若所述人体模型的左脚关节点着地,则保存右脚第一次着地点水平面的坐标值为(x,z),若所述人体模型的右脚关节点着地,则保存左脚第一次着地点水平面的坐标值为(x,z);
计算实际末端效应器位置与着地点坐标值的偏移量,根据所述偏移量调整所述人体模型根关节的位置,对所述人体模型进行失真修正。
9.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行如权利要求1-8任一项所述的基于Kinect的骨骼重定向方法。
10.一种处理装置,包括处理器、存储设备;处理器,适于执行各条程序;存储设备,适于存储多条程序;其特征在于,所述程序适于由处理器加载并执行如权利要求1-8任一项所述的基于Kinect的骨骼重定向方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710944903.9A CN107833271B (zh) | 2017-09-30 | 2017-09-30 | 一种基于Kinect的骨骼重定向方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710944903.9A CN107833271B (zh) | 2017-09-30 | 2017-09-30 | 一种基于Kinect的骨骼重定向方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107833271A CN107833271A (zh) | 2018-03-23 |
CN107833271B true CN107833271B (zh) | 2020-04-07 |
Family
ID=61647915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710944903.9A Active CN107833271B (zh) | 2017-09-30 | 2017-09-30 | 一种基于Kinect的骨骼重定向方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107833271B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229332B (zh) | 2017-12-08 | 2020-02-14 | 华为技术有限公司 | 骨骼姿态确定方法、装置及计算机可读存储介质 |
CN108734762B (zh) * | 2018-05-18 | 2022-12-13 | 河南恒康伟业智能科技有限公司 | 运动轨迹仿真方法及系统 |
CN109509241B (zh) * | 2018-08-16 | 2023-06-23 | 北京航空航天大学青岛研究院 | 角色动画中基于四元数的骨骼重定向方法 |
CN109885163A (zh) * | 2019-02-18 | 2019-06-14 | 广州卓远虚拟现实科技有限公司 | 一种虚拟现实多人交互协作方法与系统 |
CN110176062A (zh) * | 2019-05-05 | 2019-08-27 | 北京当红齐天国际文化发展集团有限公司 | 一种基于运动捕捉数据的虚拟人体的控制方法 |
CN110400365B (zh) * | 2019-07-02 | 2023-06-20 | 东南大学 | 基于动作增量模型的动作重定向方法 |
CN111209793A (zh) * | 2019-12-05 | 2020-05-29 | 重庆特斯联智慧科技股份有限公司 | 一种基于人工智能的区域屏蔽人体安检方法及系统 |
CN113111678B (zh) * | 2019-12-25 | 2024-05-24 | 华为技术有限公司 | 一种用户的肢体节点的位置确定方法、装置、介质及系统 |
CN111932607A (zh) * | 2020-06-05 | 2020-11-13 | 北京西米兄弟未来科技有限公司 | 关节点坐标的获取方法、装置和电子设备 |
CN111860267B (zh) * | 2020-07-13 | 2022-06-14 | 浙大城市学院 | 一种基于人体骨骼关节点位的多通道健身运动识别方法 |
CN112634415B (zh) * | 2020-12-11 | 2023-11-10 | 北方信息控制研究院集团有限公司 | 一种基于人体骨骼模型的人员动作实时仿真方法 |
CN112562071A (zh) * | 2020-12-25 | 2021-03-26 | 北京爱奇艺科技有限公司 | 一种动作差异度计算方法、装置、设备及存储介质 |
CN112669421A (zh) * | 2020-12-31 | 2021-04-16 | 北京爱奇艺科技有限公司 | 模型穿模修正方法、装置、电子设备及存储介质 |
CN112634419B (zh) * | 2020-12-31 | 2022-03-25 | 魔珐(上海)信息科技有限公司 | 一种运动重定向方法、装置、电子设备及存储介质 |
CN112686977B (zh) * | 2020-12-31 | 2024-03-08 | 北京爱奇艺科技有限公司 | 人体模型动作重定向方法、装置、电子设备及存储介质 |
CN113409431B (zh) * | 2021-06-22 | 2022-06-03 | 广州方硅信息技术有限公司 | 基于运动数据重定向的内容生成方法、装置及计算机设备 |
CN113808239A (zh) * | 2021-08-18 | 2021-12-17 | 北京艺旗网络科技有限公司 | 一种用于美术作品在线教育的身体捕捉方法及装置 |
CN113989928B (zh) * | 2021-10-27 | 2023-09-05 | 南京硅基智能科技有限公司 | 一种动作捕捉和重定向方法 |
CN114663199B (zh) * | 2022-05-17 | 2022-08-30 | 武汉纺织大学 | 一种动态展示的实时三维虚拟试衣系统及方法 |
CN115761074B (zh) * | 2022-11-18 | 2023-05-12 | 北京优酷科技有限公司 | 动画数据处理方法、装置、电子设备及介质 |
CN116805344B (zh) * | 2023-06-21 | 2024-05-24 | 支付宝(杭州)信息技术有限公司 | 一种数字人动作重定向方法及装置 |
CN117710468B (zh) * | 2024-02-06 | 2024-05-17 | 天度(厦门)科技股份有限公司 | 基于关节网格形变的姿态重定向方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530897A (zh) * | 2013-09-30 | 2014-01-22 | 华为软件技术有限公司 | 运动重定向处理方法及装置 |
CN105550365A (zh) * | 2016-01-15 | 2016-05-04 | 中国科学院自动化研究所 | 一种基于文本主题模型的可视化分析系统 |
CN105787439A (zh) * | 2016-02-04 | 2016-07-20 | 广州新节奏智能科技有限公司 | 一种基于卷积神经网络的深度图像人体关节定位方法 |
CN106971050A (zh) * | 2017-04-18 | 2017-07-21 | 华南理工大学 | 一种基于Kinect的Darwin机器人关节映射解析方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11195318B2 (en) * | 2014-04-23 | 2021-12-07 | University Of Southern California | Rapid avatar capture and simulation using commodity depth sensors |
-
2017
- 2017-09-30 CN CN201710944903.9A patent/CN107833271B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530897A (zh) * | 2013-09-30 | 2014-01-22 | 华为软件技术有限公司 | 运动重定向处理方法及装置 |
CN105550365A (zh) * | 2016-01-15 | 2016-05-04 | 中国科学院自动化研究所 | 一种基于文本主题模型的可视化分析系统 |
CN105787439A (zh) * | 2016-02-04 | 2016-07-20 | 广州新节奏智能科技有限公司 | 一种基于卷积神经网络的深度图像人体关节定位方法 |
CN106971050A (zh) * | 2017-04-18 | 2017-07-21 | 华南理工大学 | 一种基于Kinect的Darwin机器人关节映射解析方法 |
Non-Patent Citations (2)
Title |
---|
Using motion analysis techniques for motion retargeting;A. Savenko 等;《Proceedings Sixth International Conference on Information Visualisation》;20021007;第1093-9547页 * |
基于Kinect的实时运动重定向技术研究;杨道谈;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20151015;第I138-477页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107833271A (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107833271B (zh) | 一种基于Kinect的骨骼重定向方法及装置 | |
US11610331B2 (en) | Method and apparatus for generating data for estimating three-dimensional (3D) pose of object included in input image, and prediction model for estimating 3D pose of object | |
CN110728739B (zh) | 一种基于视频流的虚拟人控制与交互方法 | |
Pons-Moll et al. | Multisensor-fusion for 3d full-body human motion capture | |
JP5388932B2 (ja) | 情報処理装置およびその制御方法 | |
KR20200011425A (ko) | 2d 이미지로부터의 손 골격 학습, 리프팅 및 노이즈 제거 | |
JP2019522851A (ja) | 3次元空間内の姿勢推定 | |
CN108564643B (zh) | 基于ue引擎的表演捕捉系统 | |
WO2017020766A1 (zh) | 场景提取方法、物体定位方法及其系统 | |
CN108762495A (zh) | 基于手臂动作捕捉的虚拟现实驱动方法及虚拟现实系统 | |
Placidi et al. | Overall design and implementation of the virtual glove | |
CN102848389A (zh) | 基于视觉运动捕捉的机械臂标定及跟踪系统实现方法 | |
CN109284006B (zh) | 一种人体运动捕获装置和方法 | |
Baak et al. | Analyzing and evaluating markerless motion tracking using inertial sensors | |
CN110609621B (zh) | 姿态标定方法及基于微传感器的人体运动捕获系统 | |
WO2024094227A1 (zh) | 一种基于卡尔曼滤波和深度学习的手势姿态估计方法 | |
CN111401340A (zh) | 目标对象的运动检测方法和装置 | |
Schönauer et al. | Wide area motion tracking using consumer hardware | |
CN113658249A (zh) | 虚拟现实场景的渲染方法、装置、设备和存储介质 | |
CN117456558A (zh) | 一种基于摄像头的人体姿态估计与控制方法及相关设备 | |
CN112200917A (zh) | 一种高精度增强现实方法及系统 | |
CN116503540A (zh) | 基于稀疏传感器的人体动作捕捉、定位和环境建图方法 | |
CN113496168A (zh) | 手语数据采集方法、设备、存储介质 | |
CN111292411A (zh) | 一种基于向内环视多rgbd相机的实时动态人体三维重建方法 | |
CN203630717U (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 |