一种基于多kinect的人体姿态数据融合方法

文档序号:9217871阅读:1179来源:国知局
一种基于多kinect的人体姿态数据融合方法
【技术领域】
[0001] 本发明属于人体姿态检测及姿态识别技术领域,涉及一种基于多kinect的人体 姿态数据融合方法。
【背景技术】
[0002] 随着时代的发展,人机交互的方式也越来越多,已经不光可以通过语言进行交流, 肢体语言也是不可缺少的部分,计算机视觉领域的一个分支就是研宄人体行为姿态的具体 含义。但是,要理解人体行为姿态,首先要获取到人物的具体姿态,常规的方式是使用普通 相机,然后使用模式识别对视频中的人物轮廓进行分析识别,但是这种方式准确率还不能 满足人机交互的需求。
[0003] 在此应用需求下,Kinect应运而生,它是微软其旗下的游戏主机Xbox360和 Windows平台提供的一种运动感知输入设备。Kinect实际是一个利用三维空间定位技术 的体感摄像头,可以进行实时动作捕捉、影像识别、语音输入、语音识别和社群互动等功能。 因此用户可以使用Kinect跟微软的SDK来获取到人物骨架信息,每个骨骼点是一个三维 坐标信息。但是Kinect使用时需要用户面对Kinect,才能获取人物的整个人体姿态,所以 Kinect对于自遮挡的问题没有很好的解决方案。

【发明内容】

[0004] 本发明的目的是提供一种基于多kinect的人体姿态数据融合方法,解决了现有 kinect在提取人体骨骼信息时,受到干扰骨骼数据出现跳变或者出现自遮挡时姿态缺失的 问题。
[0005] 本发明的技术方案是,一种基于多kinect的人体姿态数据融合方法,具体步骤如 下:
[0006] 步骤1,搭建数据采集系统:
[0007] 正交摆放两台kinect,使其面向拍摄区域,kinectl和kinect2分别与电脑a和 电脑b连接,电脑a与电脑b连接之间建立局域网,以便进行数据传输;
[0008] 步骤2,数据采集:
[0009] 开启系统,电脑b实时将kinect2获取的骨骼数据通过局域网发送给电脑a,同时 电脑a实时获取kinect1的骨骼数据,其中每个骨骼数据包括和F^两部分:Gaj) 是以第i个kinect为坐标原点的人体第j个骨豁位置坐标;Faj)是第i个kinect是否跟 踪到人体第j个骨骼点的标记信息,Faj值为0时,表示第i个kinect没有跟踪到第j个 骨骼位置;Fuj值为1时,表示第i个kinect跟踪到第j个骨骼位置;
[0010] 其中i表示kinect的编号,i为1或2 ;j表示骨骼点的编号,0〈j彡骨骼点数;
[0011] 步骤3,选择数据融合方式:
[0012] 针对Kinect1和Kinect2获取的骨骼数据进行分类,确定不同数据融合策略;
[0013] 步骤4,数据融合:
[0014] 对于符合数据融合条件的骨骼数据进行数据融合;
[0015] 步骤5,数据预测:
[0016] 对于不符合数据融合条件的骨骼数据,采用对坐标数据的运动变化量求简易平均 值进行预测。
[0017] 本发明的特点还在于,
[0018] 步骤3所述不同的数据融合策略,具体为:
[0019] 1)对于满足A= {j|Faj)= 1}的骨骼点,认为已得到该点的骨骼点信息,忽略 Kinect2检测到的骨骼点;
[0020] 2)对于满足B={j|Faj)= 0,F1}的骨豁点,进入步骤4,进行数据融合;
[0021] 3)对于满足C= {j|Faj)= 0,Faj)= 0}的骨骼点,进入步骤5,进行数据预测。
[0022] 步骤4具体为:
[0023] 4. 1找到两个kinect都跟踪到的骨豁点最小下标,即求满足Fa = 1且F$ = 1的骨骼点,以其中最小的j值为融合数据的基准点,记为骨骼点t:
[0024]t=min{j|F(1;』)=1,F(2,』)=1,0 <j<骨豁点个数}
[0025] 如果没找到满足条件的t,则直接进入步骤5,对所有0的骨骼点进行数据 预测;
[0026] 4. 2对于所有= 1的骨骼点,计算所有kinect2跟踪到的骨骼点相对于骨骼 点t的坐标偏移量ej:
[0027] ej=G(2J)-G(2t),jGB
[0028] 其中(^2』为kinect2的骨骼点j的位置坐标,B为步骤3中满足数据融合条件 的骨骼点j的集合,kinect2的骨骼点t的位置坐标;
[0029]4. 3根据坐标偏移量^计算求出所有kinect1未检测到的骨骼位置数据Gaj), 并将这些骨骼点的标志位置为1,即将置为1 :
[0030] G(1;J)=G(1;t)+ej,jGB
[0031] 其中Gaj)Skinect1的骨骼点j的位置坐标,B为步骤3中满足数据融合条件 的骨骼点j的集合,Gat)为kinect1的骨骼点t的位置坐标。
[0032] 步骤5中采用对坐标数据的运动变化量求简易平均值进行预测,具体步骤如下:
[0033]5. 1求连续n帧的骨骼位置的位移变化的平均值:
[0035] 其中,T为当前帧编号;k为帧偏移量;n为需要计算位置变化的帧数;SaT)表示 第j个骨骼点在第T帧的前n帧位移变化的平均值;Ga^k)表示kinectl的第j个骨骼点 在第T-k帧的位置坐标表示kinectl的第j个骨骼点在第T-k-1帧的位置坐标;
[0036]5. 2求得需要预测的时刻的骨骼位置:
[0037] G(i;J;T-i)+S(J;T)
[0038] 其中,Ga,」,T)为kinectl需要预测的第T帧第j个骨骼点位置坐标,G kinectl需要预测的第T-1帧第j个骨骼点位置坐标。
[0039] 本发明的有益效果是,通过采用多台Kinect对人体骨骼信息进行采集,并针对采 集到的信息类别,进行数据融合和数据预测,提取了完整的人体姿态骨骼信息,解决了现有 kinect受到干扰骨骼数据出现跳变或者出现自遮挡时姿态缺失的问题,为后期处理中姿态 识别、人机交互、虚拟现实等提供了便利。
【附图说明】
[0040] 图1是本发明一种基于多kinect的人体姿态数据融合方法的硬件图。
[0041]图中,1.kinect1,2.kinect2,3?拍摄区域,4.电脑a,5?电脑b。
【具体实施方式】
[0042] 下面结合附图和【具体实施方式】对本发明进行详细说明。
[0043] 本发明一种基于多kinect的人体姿态数据融合方法,具体按以下步骤实施:
[0044] 步骤1,搭建数据采集系统:
[0045] 如图1所示,正交摆放两台kinect,使其面向拍摄区域3,拍摄区域3由两台 kinect的摄像区域决定,kinectl1和kinect2 2分别与电脑a4和电脑b5连接,电脑a4 与电脑b5连接之间建立局域网,以便进行数据传输。
[0046] 默认电脑a为为主处理器,系统运行时,电脑b会实时将Kinect2检测到的人物 姿态骨骼数据通过局域网发送给电脑a,同时电脑a也会实时得到Kinect1的姿态骨骼数 据。然后电脑a会同时调用融合算法进行多kinect的数据融合。
[0047] 步骤2,数据采集:
[0048] 开启系统,电脑b实时将kinect2获取的20个骨骼数据通过局域网发送给电脑 a,同时电脑a实时获取kinect1的骨骼数据。其中每个骨骼数据包括和两部 分:是以第i个kinect为坐标原点的人体第j个骨豁位置坐标;F是第i个kinect 是否跟踪到人体第j个骨骼点的标记信息。值为0时,表示第i个kinect没有跟踪到 第j个骨骼位置;Fuj值为1时,表示第i个kinect跟踪到第j个骨骼位置。
[0049] 其中i表示kinect的编号,i为1或2 ;j表示骨骼点的编号,0〈j彡骨骼点数。
[0050] 步骤3,选择数据融合方式:
[0051] 由于Kinect1和Kinect2的坐标信息都是以各自Kinect为坐标原点,而数据融
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1