一种基于深度传感器的手势识别方法技术

技术编号:17363988 阅读:122 留言:0更新日期:2018-02-28 14:17
本发明专利技术公开了一种基于深度传感器的手势识别方法,步骤依次为获取深度流信息和人体骨架节点数据;分割手势区域;对手势区域的3D点云坐标进行正面化和二值化;手势特征提取、归一化和降维处理;对手势特征进行筛选,得到最优手势特征子集;采用支持向量机训练手势分类器,得到分类结果;对手势分类结果进行滤波。本发明专利技术弥补了现有技术的缺陷,提高了手势识别的精度、稳定性和效率。

A gesture recognition method based on depth sensor

The invention discloses a method of gesture recognition based on depth sensor, comprising the following steps of obtaining the depth information and data flow of human skeleton node; gesture segmentation region; the gesture area of 3D point cloud coordinate positive and binarization; feature extraction, normalization and dimension; of gesture features were obtained the optimal gesture feature subset; using support vector machine classifier training gesture classification results of gesture classification results are filtered. The invention makes up the defects of the existing technology, and improves the precision, stability and efficiency of the gesture recognition.

【技术实现步骤摘要】
一种基于深度传感器的手势识别方法
本专利技术涉及深度测量和手势分类领域,特别涉及了一种基于深度传感器的手势识别方法。
技术介绍
手势识别一直是人际交互应用中非常重要的一种技术,其中基于深度信息的手势识别与传统的基于计算机视觉的手势识别相比具有先天优势,比如在黑暗环境或者光照比较强烈的时候都会影响彩色图上面的提取的特征,从而影响最终的识别率。现有基于深度信息手势识别技术一般都是提取手势轮廓特征进行分类,基于形状特征的方法主要有:(1)形状内容分析;(2)模板匹配;(3)豪斯多曼距离;(4)方向直方图;(5)Hu不变距。现有基于深度信息手势识别方法在算法效率、识别精度和稳定性以及模型数据包大小等方面均存在缺陷,制约了手势识别技术的应用。
技术实现思路
为了解决上述
技术介绍
提出的技术问题,本专利技术旨在提供一种基于深度传感器的手势识别方法,弥补现有技术的缺陷,提高手势识别的精度、稳定性和效率。为了实现上述技术目的,本专利技术的技术方案为:一种基于深度传感器的手势识别方法,包括以下步骤:(1)通过深度传感器获取深度流信息和人体骨架节点数据;(2)根据深度流信息和人体骨架节点数据分割出手势区域;(3)对手势区域的3D点云坐标进行正面化,并将正面化的3D点云进行空间三个平面的映射,得到三个平面的手势二值化图;(4)对三个平面的手势二值化图进行手势特征提取,然后对提取的手势特征依次进行归一化和降维处理;(5)对归一化和降维处理后的手势特征进行特征筛选,得到最优手势特征子集;(6)采用支持向量机训练手势分类器,将最优手势特征子集输入手势分类器,得到分类结果;(7)对手势分类结果进行滤波,将手势分类器输出的分类结果评判分数与手势相对深度传感器的方向分数、手势的运动速度分数作为参数因子,将三个参数因子相乘并归一化后的值作为滤波结果。进一步地,步骤(2)的具体步骤如下:(201)深度传感器获取的图像为w*h平面图像,它是以图像中心为原点,其中w为平面图像的宽,h为平面图像的高,首先将深度传感器采集的深度值转换为实际的深度距离值d:d=K*tan(draw/2842.5+1.1863)-0.037上式中,K为深度传感器焦距,draw表示原始图像深度值;(202)然后将像素位置(i,j,d)转换到实际位置信息(x,y,z):其中,s为缩放尺度,(i,j)为像素的平面坐标;(203)根据实际位置信息和人体手部的骨架节点进行手势分割。进一步地,步骤(203)的具体过程步骤如下:(2031)计算手腕关键点v1到手肘关键点v2之间的欧式距离d12:上式中,v1.x、v1.y、v1.z分别为手腕关键点v1的实际位置信息,v2.x、v2.y、v2.z分别为手肘关键点v2的实际位置信息;(2032)然后以手掌中央关键点v0为中心,以d12×2/3为半径,设置一个圆形的感兴趣区域,在该感兴趣区域内通过深度距离和最近邻法去分割手势。进一步地,为了防止手部和身体区域的粘连,计算身体平面的一个平均深度值Vmax和手势的最小深度值Vmin,构造一个以手掌中央关键点v0为球心,以d12为x,y轴半径,以v0-Vmin和Vmax-v0为前、后深度半径的椭圆3D空间,然后通过阈值分割把手部的3D点分割出来。进一步地,步骤(3)的具体步骤如下:(301)对手势区域的3D坐标利用最小二乘法进行平面拟合,得到手势点云的平面法向量(a,b,c);(302)计算该法向量与二维X-Y平面平行时需要绕X轴旋转的角度α以及该法向量与二维Y-Z平面平行时需要绕Y轴旋转的角度β:(303)对手势3D点云进行正面化:上式中,为手势3D点云原始坐标,为正面化后的坐标;(304)对正面化后的手势3D点云求取3维空间的包围圈Box3D,该包围圈以手势中心为原点,然后求取最左最右最上最下四个方向的边界像素坐标,以所有手势区域点集的深度数据的中间值作为手部中心原点的深度值,以正负40为前后距离,然后以该Box3D把手势区域分割出来做主成分分析,得到对应的特征向量和特征值,特征值的前3维信息分别代表了x,y,z三个方向的主要信息,通过特征值来分别重构出X,Y,Z三个轴的点云信息,映射后得到X-Y,Y-Z,Z-X三个平面的手势二值化图。进一步地,步骤(4)中手势特征提取的具体步骤如下:(401)首先对所得到的手势二值化图做形态学处理,以消除空洞和细节影响,载使用八领域搜索算法提取手势边界坐标信息;(402)边界坐标信息是一些离散的点坐标,对描述整个手势的轮廓信息不够充分,因此对其进行曲线拟合差值,保证差值后得到N个点坐标序列,设这N个坐标为(x0,y0),(x1,y2)···(xN-1,yN-1),把每一个点的坐标用复数表示:Cn=xn+i×yn,n=0,1,2…,N;(403)然后对该复数坐标序列进行傅里叶变换,得到傅里叶变换系数k=0~255,为了得到旋转、平移和缩放的不变性,对zk进行归一化,得到归一化的傅里叶描述子;(404)傅里叶描述子的高频成分主要集中了图像的细节信息,而其低频成分保留了图像的轮廓信息,截取傅里叶描述子两端的低频成分;(405)Hu七阶距具有旋转、缩放、尺度不变性,提取Hu七阶距,与傅里叶描述子的低频成分融合成手势轮廓特征。进一步地,步骤(5)的具体步骤如下:(501)求每个样本中第1个手势特征与该样本中其余手势特征的欧式距离,找出欧式距离最小的特征,将该特征所对应的分类类别与第1个手势特征所对应的分类类别比较,若二者一致就记录下来,将所有样本中的一致个数与样本总量相除,得到第1个手势特征的正确率;(502)按照步骤(502),依次计算后续手势特征的正确率,将后一个手势特征的正确率小于前一个手势特征的正确率作为停止条件,从而得到最优手势特征子集。进一步地,步骤(7)的具体步骤如下:(701)首先求取手势分类结果评判分数Classifier_score,训练两个手势分类器来同时识别深度图上的手势,第一个分类器采集深度距离小于1米的手势样本来进行训练,第二个分类器采集深度距离大于1.6米的手势样本来进行训练,得到两个分类器的置信分数,然后采用线性加权的方式将两个置信分数融合在一起,得到Classifier_score:上式中,classifier0和classifier1分别为第一个分类器和第二个分类器的置信分数,d为深度距离;当深度距离小于1米时,只考虑第一个分类器所得出的分类概率;当深度距离大于1.6米时,只考虑第二个分类器所得出的分类概率;当深度距离在1~1.6米之间时,将两个分类结果以线性加权的方式组合,当两个分类器所得出的分类结果不同时,将两个分类器的结果相减,当两个分类器所得出的分类结果相同时,将两个分类器的结果相加;(702)将手掌与深度传感器的夹角作为手势相对深度传感器的方向分数Acc_Score,夹角越小,则被遮挡的图像越多,那么分类器所得出的结果也就越不确定;(703)当手势运动速度小于0.1m/s时,把手势的运动速度分数Velocity_Score设置为1,而当速度大于0.55m/s时,把Velocity_Score设置为0,在0.1~0.55m/s之间时,采用一种线性下降的方式设置Velocity_Score;(704)将三个因子相乘Classi本文档来自技高网...
一种基于深度传感器的手势识别方法

【技术保护点】
一种基于深度传感器的手势识别方法,其特征在于,包括以下步骤:(1)通过深度传感器获取深度流信息和人体骨架节点数据;(2)根据深度流信息和人体骨架节点数据分割出手势区域;(3)对手势区域的3D点云坐标进行正面化,并将正面化的3D点云进行空间三个平面的映射,得到三个平面的手势二值化图;(4)对三个平面的手势二值化图进行手势特征提取,然后对提取的手势特征依次进行归一化和降维处理;(5)对归一化和降维处理后的手势特征进行特征筛选,得到最优手势特征子集;(6)采用支持向量机训练手势分类器,将最优手势特征子集输入手势分类器,得到分类结果;(7)对手势分类结果进行滤波,将手势分类器输出的分类结果评判分数与手势相对深度传感器的方向分数、手势的运动速度分数作为参数因子,将三个参数因子相乘并归一化后的值作为滤波结果。

【技术特征摘要】
1.一种基于深度传感器的手势识别方法,其特征在于,包括以下步骤:(1)通过深度传感器获取深度流信息和人体骨架节点数据;(2)根据深度流信息和人体骨架节点数据分割出手势区域;(3)对手势区域的3D点云坐标进行正面化,并将正面化的3D点云进行空间三个平面的映射,得到三个平面的手势二值化图;(4)对三个平面的手势二值化图进行手势特征提取,然后对提取的手势特征依次进行归一化和降维处理;(5)对归一化和降维处理后的手势特征进行特征筛选,得到最优手势特征子集;(6)采用支持向量机训练手势分类器,将最优手势特征子集输入手势分类器,得到分类结果;(7)对手势分类结果进行滤波,将手势分类器输出的分类结果评判分数与手势相对深度传感器的方向分数、手势的运动速度分数作为参数因子,将三个参数因子相乘并归一化后的值作为滤波结果。2.根据权利要求1所述基于深度传感器的手势识别方法,其特征在于,步骤(2)的具体步骤如下:(201)深度传感器获取的图像为w*h平面图像,它是以图像中心为原点,其中w为平面图像的宽,h为平面图像的高,首先将深度传感器采集的深度值转换为实际的深度距离值d:d=K*tan(draw/2842.5+1.1863)-0.037上式中,K为深度传感器焦距,draw表示原始图像深度值;(202)然后将像素位置(i,j,d)转换到实际位置信息(x,y,z):其中,s为缩放尺度,(i,j)为像素的平面坐标;(203)根据实际位置信息和人体手部的骨架节点进行手势分割。3.根据权利要求2所述基于深度传感器的手势识别方法,其特征在于,步骤(203)的具体过程步骤如下:(2031)计算手腕关键点v1到手肘关键点v2之间的欧式距离d12:上式中,v1.x、v1.y、v1.z分别为手腕关键点v1的实际位置信息,v2.x、v2.y、v2.z分别为手肘关键点v2的实际位置信息;(2032)然后以手掌中央关键点v0为中心,以d12×2/3为半径,设置一个圆形的感兴趣区域,在该感兴趣区域内通过深度距离和最近邻法去分割手势。4.根据权利要求3所述基于深度传感器的手势识别方法,其特征在于,为了防止手部和身体区域的粘连,计算身体平面的一个平均深度值Vmax和手势的最小深度值Vmin,构造一个以手掌中央关键点v0为球心,以d12为x,y轴半径,以v0-Vmin和Vmax-v0为前、后深度半径的椭圆3D空间,然后通过阈值分割把手部的3D点分割出来。5.根据权利要求1所述基于深度传感器的手势识别方法,其特征在于,步骤(3)的具体步骤如下:(301)对手势区域的3D坐标利用最小二乘法进行平面拟合,得到手势点云的平面法向量(a,b,c);(302)计算该法向量与二维X-Y平面平行时需要绕X轴旋转的角度α以及该法向量与二维Y-Z平面平行时需要绕Y轴旋转的角度β:(303)对手势3D点云进行正面化:上式中,为手势3D点云原始坐标,为正面化后的坐标;(304)对正面化后的手势3D点云求取3维空间的包围圈Box3D,该包围圈以手势中心为原点,然后求取最左最右最上最下四个方向的边界像素坐标,以所有手势区域点集的深度数据的中间值作为手部...

【专利技术属性】
技术研发人员:王行盛赞李骊杨高峰周晓军
申请(专利权)人:北京华捷艾米科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1