APP下载

基于Kinect深度信息的动态手势识别

2016-06-13郭晓利杨婷婷张雅超

东北电力大学学报 2016年2期

郭晓利,杨婷婷,张雅超

(1.东北电力大学 信息工程学院,吉林 吉林 132012;2.国网吉林省电力有限公司 吉林供电公司,吉林 吉林 130021)



基于Kinect深度信息的动态手势识别

郭晓利1,杨婷婷1,张雅超2

(1.东北电力大学 信息工程学院,吉林 吉林 132012;2.国网吉林省电力有限公司 吉林供电公司,吉林 吉林 130021)

摘要:针对复杂动态手势识别问题,本文首先通过体感传感器Kinect获取人体深度图像,利用阈值分割法分割出手势深度图像,然后建立由隐马尔可夫模型(HMM)和模糊神经网络(FNN)相结合的HMM-FNN模型进行动态手势识别。本文的动态手势主要是针对虚拟变电站中对设备的常用操作手势来进行人机交互研究的。HMM-FNN模型将复杂动态手势特征分解为三个子特征序列,分别建立HMM模型,然后进行模糊推理对手势进行分类识别。经实验验证,HMM-FNN模型能快速有效识别复杂动态手势,且鲁棒性强,识别效果明显优于HMM模型。

关键词:Kinect;阈值分割法;复杂动态手势;HMM-FNN;手势识别

由于手势具有自然、直观的特点,手势交互成为人机交互中对用户限制最少的交互模式,目前,基于视觉的手势识别在体感游戏、机器人机械手的抓取等方面得到越来越广泛的应用[1-2]。体感传感器Kinect是微软公司推出的外接体感设备,可以同时获取RGB图像和深度图像,逐渐成为基于视觉手势识别的重点研究对象。开源软件OpenNI定义并形成标准的API,可以方便的访问和使用Kinect设备,但它只提供了单击、挥动、举起、移动4种简单的手势[3],不能满足用户利用自然手势进行人机交互的需求,这就需要丰富扩展其手势集。

近年来,基于Kinect的手势识别研究也成为热点,文献[4]采用隐马尔科夫模型HMM进行动态手势识别,HMM能对手势轨迹进行有效识别,但是只针对相对简单的动作手势;文献[5]采用加权的动态时间规整DTW算法进行手势识别,训练过程简单,但实验计算量大,且识别过程容易受周围人手的干扰。本文使用Kinect体感传感器建立由隐马尔可夫模型(HMM)和模糊神经网络(FNN)相结合的复合手势识别模型HMM-FNN,它将高维手势特征分解为3个低维特征序列,根据其特征分别建立HMM模型,同时结合FNN的模糊推理能力,进行动态手势的识别[6]。本文采用虚拟变电站中仿真人员对变电站设备的常用动态操作手势进行模型训练,实验发现该复合模型能快速准确的识别复杂动态手势,并有效降低系统复杂度,减少计算负担。

1深度图像的获取

图1 Kinect获取的彩色图像和深度图像

Kinect的CMOS红外传感器可以感知外界,通过红外激光散斑的感应获得深度信息,能够不受环境光照和复杂背景的影响,由此能实现手势跟踪与识别[4]。本文利用Kinect 2.0的深度摄像头直接获取深度图像,在此之前需要将Kinect 2.0连接到符合其配置要求的计算机上,并下载安装Kinect for windows SDK 2.0、OpenCV、OpenNI,在Microsoft Visual Studio 2013环境下完成软硬件配置过程。

首先初始化Kinect对象,获取由深度摄像头输入的数据流[7],然后通过ColorFrameReady、DepthFrameReady事件触发来获取景深数据[8],如图1。获取深度图像以后需要调用getMetaData()函数更新手势数据。

表1cvThreshold()中threshold_type取值和相应的操作

2手势图像的采集与阈值分割

本文主要针对手部动作进行研究,因此在获取深度图像后需要对手部图像信息进行采集与分割。Kinect采集的深度信息存储在一个二维数组里,每个数据对象实际上是像素点对应物体到深度摄像头的距离[3],根据日常中手部离深度摄像头的距离设定阈值,分割出手所在范围的深度图。首先用Nite模块跟踪到手区域重心位置,然后采用OpenCV中的函数cvThreshold()实现阈值分割[9]。它通过比较给定数组中的每一个元素值与设定的阈值threshold_type的大小来进行相应的操作,从而实现手势部分深度图的分割,如表1所示。

最后将深度图中的手势区域与背景区域作二值化处理[10],突出显示手部效果,实现手势分割,如图2。

图2 手势分割图

3手势的跟踪及识别

本文在完成阈值分割的工作后,得到手部深度图像,为实现动态手势的识别需要对动态手势进行快速准确的跟踪,采用OpenNI的预备手势检测到人手后[4],通过记录手部重心的位置来跟踪运动的手势。

3.1动态手势特征提取

本文所研究的动态手势具有时间上可变、空间上可变及手势的完整性可变的特征,本文将复杂动态手势序列分为手形的变化、手在二维平面位置的变化和Z轴方向运动三个特征序列[6],分别进行特征提取。

在手势深度图像中,手形特征通过各手指的长度及手指之间的距离进行表示。5根手指,设手指指尖与手部区域重心连线的长度分别为l0-l4,手指间距离为d0-d4。手指之间有遮挡时,被遮挡的手指长度设为0,相邻手指的距离则由可见的手指之间的距离来表示,手形的基本特征通过l0-l4,d0-d4即可表示出来。为了使手形不受尺度缩放的影响,l0-l4,d0-d4通过除以当前帧中手的外包圆直径dh得到新的特征值来实现规范化处理[11]。此外,不同手形对应的数值集群不同,本文设定不同手形对应的基数数值Vbase,使不同手形的特征值分布在不同的数值区间段。手形特征值V可以根据公式(1)得出:

(1)

式中:a(0≤a≤100)是一个比例常数;n(0≤n≤5)是可见的手指数量;E是偏心率,由公式(2)计算得出:

(2)

式中,A,B是刚体绕X,Y轴的惯性矩,H是惯性积。

图3 方向角区域的划分

对于Z轴方向的运动,本文通过记录手掌面积来获得Z轴运动方向。将每个时刻的手掌面积与初始时刻(t=0)的手掌面积S0进行比较,本文得到一组连续的归一化面积数值S:1,s1,…,si,…ST。

3.2HMM-FNN模型

隐马尔可夫模型是一种统计分析模型,是由具有一定状态数的隐马尔可夫链和显示随机函数集结合的双重随机过程,时序建模能力比较强[13]。模糊神经网络是由模糊理论与神经网络结合起来的,它综合了两者的优点,能实现学习、功能关联、识别和信息处理[14],但它仅适于离散的特征向量,不能处理时序序列。HMM-FNN模型根据复杂动态手势的运动特点建立相应的时序模型,同时结合FNN模型模糊规则建模和推理能力,成为一种符合动态手势识别需求的复合模型结构[6]。

本文采用的HMM-FNN模型中,根据特征提取的类型,HMM模型主要针对手势的3维特征序列进行建模,手形变化、Z轴方向运动特征序列采用一维连续HMM模型进行建模,整体手的2维平面运动则由一维离散HMM模型建模,分别记为手形变化HMM模型——PH(Posture HMM)、二维平面运动轨迹HMM模型——TH(Trajectory HMM)、Z轴方向运动——ZH(ZHMM)。

混合高斯模型(GMM)使用3至5个高斯模型来表示图像中各个像素点的特征,在获取新一帧图像后更新GMM,用当前图像中的每一个像素点与GMM匹配,来判断背景点与前景点[15]。在GMM模型下观察矢量Q的似然度为:

(3)

式中:ωi为分量i的权重,gi(x)为一维高斯密度函数且gi(x)-N(μ,σ2)。连续的HMM模型采用GMM作为观察特征的输出概率密度。

3.3动态手势的识别

本文在前面实现手势跟踪的基础上,进而实现对动态手势的识别。将跟踪到的动态手势序列分解为三组序列,即平面轨迹点序列,手形变化序列和手心距离序列。手形变化序列和手心距离序列输入到连续型HMM模型中进行分类评估,在运动方向上对平面轨迹点序列进行方向特性量化后得到离散方向特征序列,将其输入到离散HMM模型来评估。在完成动态手势特征序列输入到HMM模型后,采用前向递推法计算HMM模型的似然度p(Q/λ),将其作为模糊隶属度,完成模糊化预处理。然后采用Sum-Product推理方法进行模糊推理与判决,从而识别出手势的语义。

4实验及分析

本实验采用KinectforWindows2.0,Kinect2.0所需的硬件要求:基于64位的处理器,2.5GHzi7处理器或更快的处理器,4GBRAM,DX11显卡适配器,USB3;OS为:win8、win8.1。实验采用PC一台,配置如下:CPU为IntelCorei7 2.6GHz,64位处理器,4GBRAM,显卡为NAIDIAGeForceGT720M,内置USB3.0总线。OS为win8.1。在MicrosoftVisualStudio2013的编译环境下,本文采用C#编程实现识别功能。

首先为跟踪过程设定了10个静态手势,包括1个握拳手形,3个1手指手形,2个2手指手形,2个3手指手形,1个4手指手形和1个5手指手形,分别标记为pos1-pos10。

动态手势的手形变化有pos1变化为pos2,pos2变化为pos10等,设置PH中状态节点数目为5;整体手的2维平面运动轨迹设计为8种,向上、下、左、右移动,顺时针、逆时针旋转,N形运动,Z形运动,状态节点设为4,在GMM中,高斯节点的个数同为4;z轴方向运动有前推、后拉、先前推再后拉及先后拉再前推4种运动类型,状态节点设为3。

本文根据虚拟变电站中对变电站设备的常用操作——选择、移动、放缩、旋转,设计了相对应的交互手势,如表2所示。

表2 自定义的交互手势集

手势1至7选择10个实验者进行15次,则每种手势有150组数据,随机抽取100组做训练数据,测试数据则由剩余50组构成。首先对PH、TH、ZH分别进行训练,HMM模型中状态节点数目的选择需要根据手势的复杂程度来决定,在GMM中,高斯状态分量的个数与状态节点的数目相同。然后利用误差反向传播BP算法对与模糊神经网络的连接权重进行训练。对于与FNN的连接权重进行训练。如手势7的动作只与手形变化相关,可以在建立HMM的模型中,免除与TH的节点连接,在设置规则条件的权重时,手形变化权重略大于Z轴方向运动。

本文为了与普通的HMM作比较,在完成训练过程后,对手势进行了HMM模型训练,并统计其正确率,如表3所示。

表3 动态手势识别实验结果

分析实验结果,对于复杂动态手势1-7,HMM-FNN的识别率明显高于HMM模型。实验说明HMM-FNN模型虽然训练过程较为复杂,但它通过连接模糊神经网络,运用模糊推理能力,能有效快速准确的实现复杂动态手势的识别;且Kinect2.0能区分识别多人手势,并可将离摄像头最近的手势设置为主识别手势,识别过程不受周围多人手势的影响,抗干扰能力强。

5结束语

本文主要对基于Kinect的动态手势识别进行了研究,建立了HMM-FNN的复合模型,经实验验证,本研究能准确快速的识别一系列的动态手势,并丰富了Kinect的动态手势集。基于HMM-FNN复合模型的动态手势识别方法较之于单纯的隐马尔科夫模型,它充分考虑到手势本身的空间特征和模糊特性:针对空间特征将动态手势特征序列分为手形变化、整体手的二维平面运动及Z轴方向运动3组特征序列,然后输入到HMM-FNN中分别进行识别,降低了系统识别复杂度;针对模糊特性,它连接到FNN模型中进行模糊推理,加强了系统的鲁棒性,比简单的确定性推理更适用于该手势识别。下一步打算将此手势识别方法应用到变电站三维可视化培训平台[16]中,使用自然习惯动作完成设备拆卸、安装、检修等虚拟操作过程,实现人机交互式学习。

参考文献

[1]王艳,张奇志.基于Kinect深度信息的手势识别[J].北京信息科技大学学报,2013,28(1):22-26.

[2]Tomoya M,Jungpil S,and Pankoo K.Hand gesture and character recognition based on Kinect sensor[J].International Journal of Distributed Sensor Networks,2014,(2014):1-6.

[3]陈艳艳,陈正鸣,周小芹.基于Kinect的手势识别及在虚拟装配技术中的应用[J].电子设计工程,2013,21(10):3-7.

[4]陶丽君,李翠华,张希婧,等.基于Kinect传感器深度信息的动态手势识别[J].厦门大学学报,2013,52(4):493-497.

[5]余旭.基于Kinect传感器的动态手势识别[D].西南大学,2014.

[6]王西颖,戴国忠,张希文,等.基于HMM-FNN的复杂动态手势识别[J].软件学报,2008,19(9):2302-2312.

[7]Yangecnu.Kinect for Windows SDK 开发入门(一):开发环境配置[OL].http://www.cnblogs.com/yangecnu/archive/2012/03/30/KinectSDK_Geting_Started.html.2015.4.

[8]Yangecnu.Kinect for Windows SDK 开发入门(四):景深数据数据处理(上)[OL].http://www.cnblogs.com/yangecnu/archive/2012/04/04/KinectSDK_Depth_Image_Processing_Part1.html.2015.4.

[9]雷建锋,汪伟.基于OpenCV的图像阈值分割研究与实现[J].现代电子技术,2013,36(24):72-76.

[10] 曹雏清,李瑞峰,赵立军.基于深度图像技术的手势识别方法[J].计算机工程,2012,38(8):16-18.

[11] Chong W,Zhong L,and Shing-Chow C.Superpixel-based hand gesture recognition with Kinect depth camera[J].IEEE Transactions on Multimedia,2015,1(17):29-39.

[12] 王德鑫,石崇林,张茂军.基于Petri网和BPNN的多重触控手势识别[J].模式识别与人工智能,2012,23(3):408-413.

[13] 林闯,胡杰,孔祥震.用户体验质量(QoE)的模型与评价方法综述[J].计算机学报,2012,35(1):1-15.

[14] 谭涛,任开春,陈熙隆,等.模糊神经网络技术[J].重庆文理学院学报:自然科学版,2011,30(1):71-74.

[15] 朱齐丹,李科,张智,等.改进的混合高斯自适应背景模型[J].哈尔滨工程大学学报,2010,31(10):1348-1353,1392.

[16] 曲朝阳,侯嵩林,张玉萍,等.变电站三维可视化培训平台的实现[J].东北电力大学学报,2014,34(3):75-79.

Gesture Recognition Based on Kinect Depth Information

GUO Xiao-li1,YANG Ting-ting1,ZHANG Ya-chao2

(1.School of Information Engineering,Northeast Dianli University,Jilin Jilin 130021;2.Jilin Power Supply Company,State Grid Electric Power Limited Company in Jilin Province,Jilin Jilin 130021)

Abstract:According to the problem of complex dynamic gesture recognition,this paper obtains the body depth image through the body feeling sensor device Kinect,and the threshold segmentation method is used to segment the gestures depth image.In this paper,the dynamic hand gestures is mainly aiming at common operations of equipment in virtual substation gestures for studying the human-computer interaction.Then the HMM-FNN model combined by the Hidden Markov Model (HMM) and the Fuzzy Neural Network (FNN) is used for dynamic gesture recognition.HMM-FNN model decomposes the complex dynamic gesture features into three sub sequence.The child HMM model is respectively built,and then the fuzzy inference classifies gestures recognition.By experimental verification,the HMM-FNN model can quickly and effectively identifiy complicated dynamic hand gestures.It has strong robustness.The recognition effect is superior to the HMM model.

Key words:Kinect;Threshold segmentation method;Complex dynamic gesture;HMM-FNN;Gesture recognition

收稿日期:2016-01-12

基金项目:省科技计划重点转化项目(20140307008GX)

作者简介:郭晓利(1968-),女,吉林省吉林市人,东北电力大学信息工程学院教授,硕士,主要研究方向:软件工程、人工智能.

文章编号:1005-2992(2016)02-0090-05

中图分类号:TP391

文献标识码:A