基于Kinect的高精度无标记全身运动追踪系统的制作方法

文档序号:21777349发布日期:2020-08-07 19:44阅读:237来源:国知局
基于Kinect的高精度无标记全身运动追踪系统的制作方法

本发明涉及虚拟现实技术领域,具体涉及一种基于kinect的高精度无标记全身运动追踪系统、方法。



背景技术:

随着计算机技术的发展,人机交互的方式也越来越多样化。人机交互是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。人机交互在虚拟现实中的应用变得非常普遍,尤其是在游戏、医学、生物研究中。以游戏中捕捉人体运动姿态为例,通常是采用kinect(体感控制器、传感器)来捕捉人体运动姿态。kinect是基于计算机视觉的姿态捕捉设备,该设备集成了深度摄像机、rgb摄像机与红外发射装置,利用红外照射方法获取监测场地的深度信息,进而获得当前捕捉对象的骨骼节点数据。

传统的人体运动姿态捕捉方式可以分为穿戴有设备的姿态捕捉和未穿戴设备的姿态捕捉。其中,穿戴有设备时,通常对人体活动范围以及人体的运动姿态有较大的约束;未穿戴设备时,在姿势捕捉的过程中往往存在有肢体自遮挡行为。因此,传统的两种姿态捕捉方式在进行姿势捕捉时,存在精度低、易用性差等问题。



技术实现要素:

基于此,为了解决上述技术问题,提供一种基于kinect的高精度无标记全身运动追踪系统、方法,可以提高人体运动姿态捕捉的精度。

一种基于kinect的高精度无标记全身运动追踪系统,所述系统包括:

骨骼节点数据获取单元,用于获取传感器采集到的骨骼节点数据;

坐标转换单元,用于将所述骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,所述目标骨骼节点数据中包含有所述骨骼节点数据的信息;

数据约束处理单元,用于对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的置信度;

权重分配观测模型获取单元,用于根据所述目标骨骼节点数据的置信度得到数据层权重,获取所述传感器的系统层权重,并根据所述数据层权重以及所述系统层权重得到权重分配数据观测模型;

位置信息获取单元,用于获取追踪数据二阶预测模型,根据所述权重分配数据观测模型以及所述追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到所述骨骼节点数据的位置信息;

运动追踪信息获取单元,用于根据所述位置信息以及所述骨骼数据权重,得到所述骨骼节点数据对应的运动追踪信息。

进一步,所述数据约束处理单元包括:

参考关节数据获取单元,用于采集多帧参考关节数据;

高斯分布曲线获取单元,用于计算出所述参考关节数据中每两个骨骼节点之间的欧式距离,并计算出所述欧式距离的高斯分布,得到高斯分布曲线;

置信度计算单元,用于根据所述高斯分布曲线对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的骨骼约束置信度。

进一步,所述数据约束处理单元包括:

枚举值获取单元,用于获取预设的各个骨骼节点数据的置信度,并分别获取与各个所述骨骼节点数据的置信度对应的枚举值;

目标枚举值查找单元,用于查找与所述目标骨骼节点数据对应的目标枚举值;

所述置信度计算单元,还用于根据所述目标枚举值对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的可信度约束置信度。

进一步,所述数据约束处理单元包括:

欧拉角范围获取单元,用于获取所述目标骨骼节点数据所对应骨骼的欧拉角范围;

欧拉角范围比较单元,用于将所述欧拉角范围与参考欧拉角范围比较,并得到比较结果;

所述置信度计算单元,还用于根据所述比较结果对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的运动约束置信度。

进一步,所述坐标转换单元包括:

坐标标定单元,用于对所述传感器进行标定,得到所述传感器标定后的传感器坐标;

坐标处理单元,用于根据所述传感器坐标得到转换标定参数,并根据所述转换标定参数将所述骨骼节点数据转换到unity3d世界坐标系中。

进一步,所述系统还包括:

参考骨骼节点数据获取单元,用于获取多个参考骨骼节点数据,并分别根据多个所述参考骨骼节点数据确定人体方向和传感器方向;

所述权重分配观测模型获取单元包括:

系统层权重分配单元,用于分别计算所述人体方向与所述传感器方向之间的夹角,并根据所述夹角为所述传感器分配系统层权重;

数据层权重分配单元,用于根据所述目标骨骼节点数据的置信度,对所述参考骨骼节点分配数据层权重;

权重分配数据观测模型生成单元,用于根据多个所述参考骨骼节点数据、所述系统层权重以及所述数据层权重,生成权重分配数据观测模型。

进一步,所述系统还包括:

向量确定单元,用于获取卡尔曼滤波状态预测方程,将骨骼点的位置和速度作为所述卡尔曼滤波状态预测方程的状态向量,将骨骼点的加速度作为所述卡尔曼滤波状态预测方程的控制向量;

变化公式获取单元,用于根据所述卡尔曼滤波状态预测方程、所述状态向量以及所述控制向量,得到所述骨骼点的变化公式,并得到与所述变化公式中的转换矩阵和控制矩阵;

测量噪声获取单元,用于获取所述传感器在采集所述骨骼节点数据时的测量噪声;

卡尔曼滤波状态差分方程生成单元,用于根据所述测量噪声生成卡尔曼滤波状态差分方程,并计算出所述测量噪声的均方根值;

追踪数据二阶预测模型生成单元,用于根据所述变化公式以及所述卡尔曼滤波状态差分方程,得到所述追踪数据二阶预测模型。

进一步,所述系统还包括:

时间更新单元,用于根据第一帧噪声协方差矩阵、第一帧的最优估计值与真实值的协方差矩阵,对第二帧所述状态向量的预测值以及预测值和真实值的协方差矩阵进行时间更新;所述第一帧为所述第二帧的前一帧;

增益更新单元,用于根据第二帧噪声协方差矩阵、所述预测值和真实值的协方差矩阵以及转换矩阵,对所述卡尔曼滤波状态预测方程中的卡尔曼增益进行更新;

状态更新单元,用于根据更新的卡尔曼增益对所述第二帧预测值和测量值的权重进行分配,得到当前帧所述状态向量的最优估计值,并对当前帧的最优估计值与真实值的协方差矩阵进行更新。

一种基于kinect的高精度无标记全身运动追踪方法,所述方法包括:

获取传感器采集到的骨骼节点数据;

将所述骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,所述目标骨骼节点数据中包含有所述骨骼节点数据的信息;

对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的置信度;

根据所述目标骨骼节点数据的置信度得到数据层权重,获取所述传感器的系统层权重,并根据所述数据层权重以及所述系统层权重得到权重分配数据观测模型;

获取追踪数据二阶预测模型,根据所述权重分配数据观测模型以及所述追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到所述骨骼节点数据的位置信息;

根据所述位置信息以及所述骨骼数据权重,得到所述骨骼节点数据对应的运动追踪信息。

进一步,所述对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的置信度,包括:

采集多帧参考关节数据;

计算出所述参考关节数据中每两个骨骼节点之间的欧式距离,并计算出所述欧式距离的高斯分布,得到高斯分布曲线;

根据所述高斯分布曲线对所述目标骨骼节点数据进行数据约束处理,得到所述目标骨骼节点数据的骨骼约束置信度。

上述一种基于kinect的高精度无标记全身运动追踪系统、方法,通过获取传感器采集到的骨骼节点数据;将骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,目标骨骼节点数据中包含有骨骼节点数据的信息;对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度;根据目标骨骼节点数据的置信度得到数据层权重,获取传感器的系统层权重,并根据数据层权重以及系统层权重得到权重分配数据观测模型;获取追踪数据二阶预测模型,根据权重分配数据观测模型以及追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到骨骼节点数据的位置信息;根据位置信息,得到骨骼节点数据对应的运动追踪信息。本技术方案的所达到的有益效果在于:由于传感器采集的数据质量会受噪声的影响,通过将骨骼节点数据转换到世界坐标系中得到目标骨骼节点数据,进而对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度,使得输入的骨骼节点数据更加精确;通过计算骨骼节点数据的数据层权重,并根据卡尔曼滤波进行数据融合获取骨骼节点数据的位置信息,可以提高获得的运动追踪信息的精度。

附图说明

图1为一个实施例中基于kinect的高精度无标记全身运动追踪系统的应用环境图;

图2为一个实施例中基于kinect的高精度无标记全身运动追踪系统的结构框图;

图3为一个实施例中基于kinect的高精度无标记全身运动追踪方法的流程框图;

图4为一个实施例中骨骼生理约束模型的使用步骤的流程框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的基于kinect的高精度无标记全身运动追踪系统,可以应用于如图1所示的应用环境中。如图1所示,该应用环境包括kinect传感器110、nuc一体机112、kinect传感器120、nuc一体机122、kinect传感器130、nuc一体机132、kinect传感器140、nuc一体机142以及服务器端主机150。其中,各个kinect传感器分别与各个nuc一体机连接,各个nuc一体机均与服务器端主机150连接。具体的,各个nuc一体机均可以采用udp(userdatagramprotocol)协议与服务器端主机150进行通信,各个nuc一体机可以通过udp协议将预处理过的骨骼数据以oscmessage数据格式传输到服务器端主机150。四台kinect传感器可以均布在直径为5m的圆上,相对位置不能发生改变,每台kinect传感器距离地面高度可以为120cm,利用四台nuc一体机作为客户端,分别接受四台kinect传感器采集的骨骼节点数据,并在服务器端主机150上对数据进行进一步处理。通过不断改变人体面部朝向与kinectv2传感器之间的方向角,采集骨骼节点数据计算误差,分析kinectv2传感器自遮挡、深度数据的歧义性以及观察角等,可以得到对初始追踪数据质量的影响特性。

四台kinect传感器110-140分别将采集到骨骼节点数据通过四台nuc一体机112-142发送给服务器端主机150,服务器端主机150可以将骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,目标骨骼节点数据中包含有骨骼节点数据的信息。四台nuc一体机112-142可以对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度。四台nuc一体机112-142可以根据目标骨骼节点数据的置信度得到数据层权重,获取传感器的系统层权重,并根据数据层权重以及系统层权重得到权重分配数据观测模型。并获取追踪数据二阶预测模型,在服务器主机端150根据权重分配数据观测模型以及追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到骨骼节点数据的位置信息得到骨骼节点数据对应的运动追踪信息。其中,服务器端主机150可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。

在一个实施例中,如图2所示,基于kinect的高精度无标记全身运动追踪系统,包括:骨骼节点数据获取单元210、坐标转换单元220、数据约束处理单元230、权重分配观测模型获取单元240、位置信息获取单元250和运动追踪信息获取单元260,其中:

骨骼节点数据获取单元210,用于获取传感器采集到的骨骼节点数据。

其中,传感器可以是kinectv2(第二代)传感器,kinectv2传感器可以作为身体运动捕捉设备,kinectv2传感器是基于计算机视觉的姿态捕捉设备,该设备集成了深度摄像机、rgb(red、green、blue)摄像机与红外发射装置,利用红外照射方法获取监测场地的深度信息,进而获得当前捕捉对象的骨骼节点数据,刷新频率为30hz,kinectv2传感器的默认追踪角度为70°,追踪范围为0.5-4.5m,其中检测舒适区为1.2-3.5m,该范围内误差小于20mm,超过4.5m也可以被检测到。

骨骼节点数据可以用于表示传感器采集到的人体中骨骼的具体位置,包括姿势和骨骼点的三维坐标。kinectv2传感器可以对人体的骨骼关键点进行实时追踪,并采集各个骨骼关键点的骨骼节点数据。本方案提供的一种基于kinect的高精度无标记全身运动追踪系统中,骨骼节点数据获取单元可以用于获取kinectv2传感器采集到的骨骼节点数据。

坐标转换单元220,用于将骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,目标骨骼节点数据中包含有骨骼节点数据的信息。

由于摄像机可安放在环境中的任意位置,在环境中选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,将unity3d的世界坐标系作为该基准坐标系。本方案采用四台kinectv2传感器来采集骨骼节点数据,由于每台kinectv2传感器均有自己的坐标系,不同坐标系下的数据无法进行相互作用与处理,因此,需要将不同kinectv2传感器采集的数据统一转换到世界坐标系中。具体的,本方案可以采用matlabcalibrationtoolbox(摄像机标定工具箱)通过张氏标定法来对四台kinectv2传感器进行两两空间坐标标定,将骨骼节点数据转换到世界坐标系中,得到目标骨骼节点数据。其中,目标骨骼节点数据中包含有骨骼节点数据的坐标、位置信息、旋转信息、追踪状态信息等信息。

数据约束处理单元230,用于对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度。

数据约束处理是指为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,数据库管理系统自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。nuc一体机在得到目标骨骼节点数据后,可以对目标骨骼节点数据进行数据约束处理。

置信度也可以称为可靠度,或置信水平、置信系数,是指在抽样对总体参数作出估计时,由于样本的随机性,其结论总是不确定的,由此而采用一种统计中的区间估计法,即估计值与总体参数在一定允许的误差范围以内,其相应的概率有多大,这个相应的概率称作置信度。nuc一体机在对目标骨骼节点数据进行数据约束处理之后,可以计算得到目标骨骼节点数据的置信度。

权重分配观测模型获取单元240,用于根据目标骨骼节点数据的置信度得到数据层权重,获取传感器的系统层权重,并根据数据层权重以及系统层权重得到权重分配数据观测模型。

人体的每个骨骼节点都会有对应的数据层权重。随着人体在活动区域内进行装配操作而不断运动,人体与每台kinectv2传感器之间的相对位置也在不断发生变化,每台kinectv2传感器的系统层权重也在自适应变化,nuc一体机可以获取kinectv2传感器的系统层权重。

nuc一体机可以根据目标骨骼节点数据的置信度得到数据层权重,根据数据层权重以及系统层权重得到权重分配数据观测模型。

位置信息获取单元250,用于获取追踪数据二阶预测模型,根据权重分配数据观测模型以及追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到骨骼节点数据的位置信息。

追踪数据二阶预测模型可以是预先设置好的。其中,骨骼节点数据的位置信息可以包括骨骼节点的从第k-1帧到第k帧的位移、速度变化等信息。nuc一体机可以获取预设的追踪数据二阶预测模型,从而通过卡尔曼滤波进行数据融合得到骨骼节点数据的位移、速度变化等位置信息。

运动追踪信息获取单元260,用于根据位置信息,得到骨骼节点数据对应的运动追踪信息。

其中,运动追踪信息可以用于表示骨骼节点的运动曲线。

在本实施例中,通过获取传感器采集到的骨骼节点数据;将骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,目标骨骼节点数据中包含有骨骼节点数据的信息;对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度;根据目标骨骼节点数据的置信度得到数据层权重,获取传感器的系统层权重,并根据数据层权重以及系统层权重得到权重分配数据观测模型;获取追踪数据二阶预测模型,根据权重分配数据观测模型以及追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到骨骼节点数据的位置信息;根据位置信息以及骨骼数据权重,得到骨骼节点数据对应的运动追踪信息。本技术方案的所达到的有益效果在于:由于传感器采集的数据质量会受噪声的影响,通过将骨骼节点数据转换到世界坐标系中得到目标骨骼节点数据,进而对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度,使得输入的骨骼节点数据更加精确;通过计算骨骼节点数据的数据层权重,获取传感器的系统层权重,并通过卡尔曼滤波进行数据融合获取骨骼节点数据的位置信息,可以提高获得的运动追踪信息的精度。

在一个实施例中,数据约束处理单元230包括人体关节数据获取单元、高斯分布曲线获取单元和置信度计算单元,其中:

参考关节数据获取单元,用于采集多帧参考关节数据。

参考关节数据可以用于表示标准的人体关节数据。在人体运动过程中,某些关节点的位置可能会重合,导致骨骼点的数据出现较大偏差,进而造成全身骨骼模型的骨骼长度出现较大偏差。因此,在本方案中,nuc一体机可以采集多帧参考关节数据。

高斯分布曲线获取单元,用于计算出参考关节数据中每两个骨骼节点之间的欧式距离,并计算出欧式距离的高斯分布,得到高斯分布曲线。

欧式距离是指一个通常采用的距离定义,指在n维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。例如,在二维和三维空间中的欧氏距离就是两点之间的实际距离。高斯分布又叫做正态分布,也可以用于表示概率分布。

nuc一体机在获取预先采集的至少一帧参考关节数据后,可以计算出每帧每两个骨骼节点之间的欧式距离,并去掉数据中的奇异值,然后计算出去掉奇异值后的欧式距离的高斯分布,进而根据欧式距离的分布情况拟合得到高斯分布曲线。

置信度计算单元,用于根据高斯分布曲线对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的骨骼约束置信度。

nuc一体机可以根据高斯分布曲线对目标骨骼节点数据进行数据约束处理。nuc一体机可以根据单个kinectv2传感器计算出的骨骼长度以及高斯分布曲线,计算出骨骼生理约束置信度,即目标骨骼节点数据的骨骼约束置信度。具体的,nuc一体机可以通过建立好的骨骼生理约束模型来计算目标骨骼节点数据的骨骼约束置信度。其中,目标骨骼节点数据的骨骼约束置信度可以分为0和p,骨骼长度落在高斯分布3σ范围外时,目标骨骼节点数据的骨骼约束置信度为0,骨骼长度落在高斯分布3σ范围内时,目标骨骼节点数据的骨骼约束置信度为p。

在另一个实施例中,数据约束处理单元230包括枚举值获取单元、目标枚举值查找单元和置信度计算单元,其中:

枚举值获取单元,用于获取预设的各个骨骼节点数据的置信度,并分别获取与各个骨骼节点数据的置信度对应的枚举值。

枚举是列出有穷序列集的所有成员的程序,枚举值可以用于表示列举出的有穷列集的各个值。kinectv2传感器中可以存储有人体各个骨骼节点数据的置信度,其中,kinectv2传感器中存储的骨骼节点数据的置信度可以是预先设置好的。具体的,kinectv2传感器中还可以存储有各个骨骼节点数据置信度对应的枚举值。例如,kinectv2传感器中可以存储有三种枚举,其中nottracked表示为未能跟踪到关节点;inferrend表示通过预测算法估算出关节位置;trached表示跟踪到关节点位置。

目标枚举值查找单元,用于查找与目标骨骼节点数据对应的目标枚举值。

nuc一体机分别获取到与各个骨骼节点数据的置信度对应的枚举值之后,可以查找与目标骨骼节点数据对应的目标枚举值。例如,nuc一体机获取到的骨骼节点数据a置信度对应的枚举值为inferrend、骨骼节点数据b置信度对应的枚举值为trached、骨骼节点数据c置信度对应的枚举值为nottracked;而目标骨骼节点数据为骨骼节点数据b,因此nuc一体机可以查找到与目标骨骼节点数据对应的目标枚举值为trached。

置信度计算单元,还用于根据目标枚举值对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的可信度约束置信度。

在再一个实施例中,数据约束处理单元230包括欧拉角范围获取单元、高欧拉角范围比较单元和置信度计算单元,其中:

欧拉角范围获取单元,用于获取目标骨骼节点数据所对应骨骼的欧拉角范围。

欧拉角可以用于表示唯一地确定定点转动物体位置的三个一组独立角参量。nuc一体机获取到传感器采集到的骨骼节点数据后,可以进一步获取目标骨骼节点数据所对应骨骼的欧拉角范围。

欧拉角范围比较单元,用于将欧拉角范围与参考欧拉角范围比较,并得到比较结果。

人体的每个关节的欧拉角都有自己的取值范围,根据人机功效学可以确定每个骨骼节点正常运动时的骨骼点参考欧拉角范围,突破该取值范围将会违反人体的运动约束。nuc一体机中可以存储有骨骼节点数据、以及与骨骼节点数据所对应骨骼的参考欧拉角范围。nuc一体机可以将欧拉角范围与参考欧拉角范围比较,并得到比较结果。其中,比较结果可以包括欧拉角范围在参考欧拉角范围内、欧拉角范围超过参考欧拉角范围。

置信度计算单元,还用于根据比较结果对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的运动约束置信度。

当nuc一体机得到的比较结果为欧拉角范围在参考欧拉角范围内时,nuc一体机可以得到目标骨骼节点数据的运动约束置信度为1;当nuc一体机得到的比较结果为欧拉角范围超过参考欧拉角范围内时,nuc一体机可以得到目标骨骼节点数据的运动约束置信度为0。

在一个实施例中,坐标转换单元220包括坐标标定单元和坐标处理单元,其中:

坐标标定单元,用于对传感器进行标定,得到传感器标定后的传感器坐标。

标定是指使用标准的计量仪器对所使用仪器的准确度或精度进行检测是否符合标准。在本实施例中,可以采用matlabcalibrationtoolbox(摄像机标定工具箱)通过张氏标定法来对四台kinectv2传感器进行两两空间坐标标定,从而得到传感器标定后的传感器坐标。

坐标处理单元,用于根据传感器坐标得到转换标定参数,并根据转换标定参数将骨骼节点数据转换到unity3d世界坐标系中。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪系统,还包括参考骨骼节点数据获取单元,用于获取多个参考骨骼节点数据,并分别根据多个参考骨骼节点数据确定人体方向和传感器方向。

传感器获取到的骨骼节点数据可以被多种因素所影响,而参考骨骼节点数据可以用于表示传感器获取到的没有收到过因素影响的骨骼节点数据。nuc一体机中可以存储有多个参考骨骼节点数据,即nuc一体机可以从自身存储的数据中获取到多个参考骨骼节点数据。根据参考骨骼节点数据,nuc一体机可以确定人体方向和传感器方向。其中,人体方向可以用于表示人体的面部朝向。

权重分配观测模型获取单元包括系统层权重分配单元、数据层权重分配单元和权重分配数据观测模型生成单元,其中:

系统层权重分配单元,用于分别计算人体方向与传感器方向之间的夹角,并根据夹角为传感器分配系统层权重。

随着人体在活动区域内进行装配操作而不断运动,人体与每台kinectv2传感器之间的相对位置也在不断发生变化。nuc一体机可以根据人体方向与kinectv2传感器自身坐标系z轴之间的夹角来对kinectv2传感器分配系统层权重,其中,nuc一体机为kinectv2传感器分配的系统层权重,可以是为kinectv2传感器分配的权重λi(i=1,2,3,4)。由于人体与每台kinectv2传感器之间的相对位置在不断发生变化,每台kinectv2传感器的系统层权重也在自适应变化。

数据层权重分配单元,用于根据目标骨骼节点数据的置信度,对参考骨骼节点分配数据层权重。

nuc一体机可以根据目标骨骼节点数据的置信度,对参考骨骼节点分配数据层权重,即对第i台kinectv2传感器采集到的第j个关节点分配权重。

权重分配数据观测模型生成单元,用于根据多个参考骨骼节点数据、系统层权重以及数据层权重,生成权重分配数据观测模型。

权重分配数据观测模型可以用于对每台kinectv2传感器的系统层权重进行调整,还可以用于分配骨骼节点数据对应的数据层权重。nuc一体机可以根据目标骨骼节点数据的置信度得到数据层权重自适应分配函数。由于kinectv2传感器可以追踪到骨骼节点,四台kinectv2传感器可以得到骨骼点三维坐标和与之对应的置信度,对第i台kinectv2传感器采集到的第j个关节点分配权重λi,j(j=0,1,2,3......),该权重也是随着人体运动而自适应变化的。nuc一体机可以根据多个参考骨骼节点数据、系统层权重以及数据层权重,生成权重分配数据观测模型。其中,权重分配数据观测模型的表达式为:上述表达式中,为数据融合后的第j个关节点三维数据;λi,j(j=0,1,2,3......)为第i台kinectv2传感器采集的第j个骨骼节点的基于数据质量的数据层置信度权重;γi为第i台kinectv2传感器的系统层权重;为第i台kinectv2传感器采集的第j个骨骼节点坐标。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪系统,还包括向量确定单元、变化公式获取单元和追踪数据二阶预测模型生成单元,其中:

向量确定单元,用于获取卡尔曼滤波状态预测方程,将骨骼点的位置和速度作为卡尔曼滤波状态预测方程的状态向量,将骨骼点的加速度作为卡尔曼滤波状态预测方程的控制向量。

卡尔曼滤波状态预测方程的表达式为:xk=fkxk-1+gkuk+wk,其中xk为第k帧状态向量,fk为转换矩阵,uk为控制向量,gk为控制矩阵,wk为系统噪声。把每一个骨骼点的位置和速度作为状态方程的状态向量每一帧每个骨骼点的加速度作为控制向量uk=ak。

变化公式获取单元,用于根据卡尔曼滤波状态预测方程、状态向量以及控制向量,得到骨骼点的变化公式,并得到与变化公式中的转换矩阵和控制矩阵。

根据卡尔曼滤波状态预测方程xk=fkxk-1+gkuk+wk、状态向量以及控制向量uk=ak,可以得到骨骼点从第k-1帧到第k帧的位移、速度变化公式为:

测量噪声获取单元,用于获取传感器在采集骨骼节点数据时的测量噪声。

在本实施例中,q为系统噪声的均方根矩阵,r为测量噪声的均方根矩阵,矩阵fk、gk、h在之前的研究中均以完成,因此需要分析测量过程和预测模型中的噪声分布特点。针对系统噪声的均方根矩阵q,由于在身体运动过程中骨骼节点加速度是在不断变化的,因此可以用加速度等效代替系统噪声wk。

卡尔曼滤波状态差分方程生成单元,用于根据测量噪声生成卡尔曼滤波状态差分方程,并计算出测量噪声的均方根值。

针对测量噪声的均方根矩阵r拟采用实验的方法获得,利用单个kinectv2传感器在多种姿态下采集大量的骨骼数据,针对骨骼追踪状态的三种枚举值,分别得出三种追踪状态下测量噪声的均方根值:其中,xkinect为kinectv2传感器测得的第i个骨骼数据,xoptitracki为optitrack测得的第i个骨骼数据,n为对应骨骼追踪状态的样本数量,rstate为对应状态下的测量噪声均方根值。以手腕骨骼点数据为例,四台kinectv2传感器分别采集到一个手腕骨骼点数据,分别对应一个追踪状态,那么手腕骨骼点数据在卡尔曼滤波时的测量噪声均方根值r为:其中,rstatei为第i台kinectv2传感器追踪手腕骨骼点数据的测量噪声均方根值,ni为第i台kinectv2传感器对应骨骼追踪状态获得对应测量噪声均方根值的实验样本数量。

追踪数据二阶预测模型生成单元,用于根据变化公式以及卡尔曼滤波状态差分方程,得到追踪数据二阶预测模型。

根据骨骼点的变化公式,可以得到系统的状态方程表示为:由此可得,转换矩阵和控制矩阵的表达式为:其中为k-1时刻的最优估计值,为k时刻的预测值,通过对转换矩阵和控制矩阵的计算来构建追踪数据二阶预测模型。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪系统,还包括时间更新单元、增益更新单元和矩阵更新单元,其中:

时间更新单元,用于根据第一帧噪声协方差矩阵、第一帧的最优估计值与真实值的协方差矩阵,对第二帧状态向量的预测值以及预测值和真实值的协方差矩阵进行时间更新;第一帧为第二帧的前一帧。

其中,nuc一体机可以根据系统噪声,通过第一帧噪声方差矩阵q、k-1帧的最优估计值与真实值的协方差矩阵pk-1对第k帧状态向量的预测值和预测值与真实值的协方差矩阵进行时间更新。其中,协方差矩阵更新公式为:预测值更新公式为:

增益更新单元,用于根据第二帧噪声协方差矩阵、预测值和真实值的协方差矩阵以及转换矩阵,对卡尔曼滤波状态预测方程中的卡尔曼增益进行更新。

nuc一体机可以通过第二帧噪声协方差矩阵r、预测值与真实值的协方差矩阵和转换矩阵h对卡尔曼增益kk进行更新,完成当前帧目标测量值与目标预测值的权重分配。其中,更新后的卡尔曼增益的表达式为:

状态更新单元,用于根据更新的卡尔曼增益对第二帧预测值和测量值的权重进行分配,得到当前帧状态向量的最优估计值,并对当前帧的最优估计值与真实值的协方差矩阵进行更新。

nuc一体机可以通过卡尔曼增益来分配第k帧预测值与测量值的权重,计算得到当前帧的状态向量最优估计值,并对当前帧的最优估计值与真实值的协方差矩阵进行更新,从而生成骨骼节点数据的当前估计值和当前误差值。其中,最优估计更新的表达式为:协方差矩阵更新的表达式为:

在一个实施例中,如图3所示,提供了一种基于kinect的高精度无标记全身运动追踪方法,包括以下步骤:

步骤302,获取传感器采集到的骨骼节点数据。

步骤304,将骨骼节点数据转换到unity3d世界坐标系中,得到目标骨骼节点数据,目标骨骼节点数据中包含有骨骼节点数据的信息。

步骤306,对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度。

步骤308,根据目标骨骼节点数据的置信度得到数据层权重,获取传感器的系统层权重,并根据数据层权重以及系统层权重得到权重分配数据观测模型。

步骤310,获取追踪数据二阶预测模型,根据权重分配数据观测模型以及追踪数据二阶预测模型,通过卡尔曼滤波进行数据融合得到骨骼节点数据的位置信息。

步骤312,根据位置信息,得到骨骼节点数据对应的运动追踪信息。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度,包括:采集多帧参考关节数据;计算出参考关节数据中每两个骨骼节点之间的欧式距离,并计算出欧式距离的高斯分布,得到高斯分布曲线;根据高斯分布曲线对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的骨骼约束置信度。

在一个实施例中,nuc一体机中可以存储有预先设置的骨骼生理约束模型。具体的,骨骼生理约束模型的使用步骤如图4所示,具体包括:

步骤402,采集多帧参考关节数据。

步骤404,去掉参考关节数据中的数据奇异值。

步骤406,将去掉数据奇异值后的参考关节数据进行拟合,得到高斯分布曲线3σ。

步骤408,判断测量出的目标骨骼节点数据对应的骨骼长度是否在高斯分布曲线3σ内。

步骤410,若步骤408判断结果为是,则目标骨骼节点数据的骨骼约束置信度为p。

步骤412,若步骤408判断结果为否,则目标骨骼节点数据的骨骼约束置信度为0。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度,包括:获取预设的各个骨骼节点数据的置信度,并分别获取与各个骨骼节点数据的置信度对应的枚举值;查找与目标骨骼节点数据对应的目标枚举值;根据目标枚举值对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的可信度约束置信度。

在另一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的置信度,还包括:获取目标骨骼节点数据所对应骨骼的欧拉角范围;将欧拉角范围与参考欧拉角范围比较,并得到比较结果;根据比较结果对目标骨骼节点数据进行数据约束处理,得到目标骨骼节点数据的运动约束置信度。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,将骨骼节点数据转换到世界坐标系中,得到目标骨骼节点数据,目标骨骼节点数据中包含有骨骼节点数据的坐标,包括:对传感器进行标定,得到传感器标定后的传感器坐标;根据传感器坐标得到转换标定参数,并根据转换标定参数将骨骼节点数据转换到unity3d世界坐标系中。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,还包括:获取多个参考骨骼节点数据,并分别根据多个参考骨骼节点数据确定人体方向和传感器方向;分别计算人体方向与传感器方向之间的夹角,并根据夹角为传感器分配系统层权重;根据目标骨骼节点数据的置信度,对参考骨骼节点分配数据层权重;根据多个参考骨骼节点数据、系统层权重以及数据层权重,生成权重分配数据观测模型。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,还包括:获取卡尔曼滤波状态预测方程,将骨骼点的位置和速度作为卡尔曼滤波状态预测方程的状态向量,将骨骼点的加速度作为卡尔曼滤波状态预测方程的控制向量;根据卡尔曼滤波状态预测方程、状态向量以及控制向量,得到骨骼点的变化公式并得到与变化公式中的转换矩阵和控制矩阵;获取传感器在采集骨骼节点数据时的测量噪声;根据测量噪声生成卡尔曼滤波状态差分方程,并计算出测量噪声的均方根值;根据变化公式以及卡尔曼滤波状态差分方程,得到追踪数据二阶预测模型。

在一个实施例中,提供的一种基于kinect的高精度无标记全身运动追踪方法,还包括:根据第一帧噪声协方差矩阵、第一帧的最优估计值与真实值的协方差矩阵,对第二帧状态向量的预测值以及预测值和真实值的协方差矩阵进行时间更新;第一帧为第二帧的前一帧;根据第二帧噪声协方差矩阵、预测值和真实值的协方差矩阵以及转换矩阵,对卡尔曼滤波状态预测方程中的卡尔曼增益进行更新;根据更新的卡尔曼增益对第二帧预测值和测量值的权重进行分配,得到当前帧状态向量的最优估计值,并对当前帧的最优估计值与真实值的协方差矩阵进行更新。

在一个实施例中,采用了实验比对的方式对本方案进行了验证。具体的,采用实验室的optitrack追踪设备的追踪数据作为对照组,单kinectv2传感器追踪设备、无标记全身运动追踪系统和ik逆向动力学求解(tracker)结果作为实验组,以精度、稳定性和延迟为指标对试验数据进行对比分析,对无标记全身运动追踪系统做出评价。针对可装配性中的可达性、活动空间为指标设计试验方案,以delmia的仿真结果为对照,验证人体模型精度是否满足虚拟现实辅助可装配性设计中对高精度人体追踪的要求。

应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1