毛雁明,章立亮
(宁德师范学院 计算机系,福建 宁德 352100)
,
基于Kinect骨架追踪技术的PPT全自动控制方法研究
毛雁明,章立亮
(宁德师范学院 计算机系,福建 宁德 352100)
提出了一种基于Kinect骨架追踪技术的PPT全自动控制方法,首先通过Kinect传感器获取骨架节点的三维信息,其次根据骨架节点之间的位置关系以及左右手的运动信息对手势进行识别,最后将手势识别结果映射到PPT控制命令以实现对PPT的全自动控制.实验结果表明,该方法对不同光照和复杂背景具有很好的鲁棒性,识别率高且能够有效地实现对PPT的全自动控制.
Kinect; 骨架追踪; PPT控制; 手势识别
随着会议、演讲及授课智能化程度的提高,PPT作为其重要辅助工具,为用户提供了便利.但由于对PPT的控制受到传统输入设备如鼠标、键盘等的束缚,使得人机交互方式不能满足用户的需要.为了使用户能够更加自然、友好、人性化的无接触控制PPT,可使用声音、激光笔、手势等来控制PPT.由于手势含有大量的交互信息,且提供了自然、直接的人际交互方式,同时也符合人类的行为习惯.因此,许多研究者对手势识别进行了相关的研究,大体可以分为2类:一类是基于视觉的手势识别方法[1-3],主要利用网络摄像头捕获手势图像进而分割手势,然后采用特定的方法识别手势.该方法的缺点是容易受到光照条件、复杂背景以及类肤色如人脸等的干扰;另一类是基于Kinect传感器的手势识别方法[4-10],主要利用微软2010年新近推出的Kinect传感器获取手势深度图像,而深度信息对光照以及复杂环境等具有很好的鲁棒性,能够克服基于视觉的手势识别方法的缺点.但这2类方法在进行手势识别之前都需要进行手势分割,而手势分割的质量将影响后续的手势识别效果.因此,笔者提出了一种基于Kinect骨架追踪技术的手势识别方法,该方法不需要对手势进行分割,而是直接利用Kinect传感器获取人体骨架节点信息,接着根据骨架节点之间的位置关系以及左右手的运动信息对手势进行识别,最后将手势识别结果应用于对PPT的全自动控制.试验结果表明,该方法对光照条件和复杂背景具有很好的鲁棒性,识别率高且能够有效的实现对PPT的全自动控制.
骨架追踪是Kinect“体感操作”的基础,通过Kinect传感器获取深度图像,并利用机器学习和模式识别的方法来感知压缩深度信息,从而构建火柴人的骨架节点,图1为OpenNI可检测的15个关节点构造火柴人的示意图[11].
图1 OpenNI可检测的15个关节点
深度图的获取采用了光编码技术(Light Coding),将经过编码后的红外线散斑投射到空间中,使得空间被标记,由于散斑具有高度的随机性,使得空间中任意两处的散斑具有不同的图案,接着接收器(一个标准的CMOS感应器)将接收到的空间外线影像交由PS1080芯片处理,计算出深度图.Kinect传感器要把得到的深度图转换为骨架图,如图2所示,需要经过以下3个步骤:1)人体识别,即将人体从背景环境中区分出来,主要通过分析比较接近Kinect的区域,这也是最有可能是人体的目标,接着逐点扫描这些区域深度图像的像素判断属于人体的哪些部位;2)部位分类,即从深度图像中利用特征值将人体32个部位识别出来;3)光节点识别,即利用机器学习的方法对已识别的32个人体部位信息进行分析识别出20个关节点数据[12].
图2 深度图像转换为骨骼图像
目前OpenNI/NITE一共定义了24个关节点,不过现在只有15个关节点可以通过骨架功能(SkeletonCapability)提供的成员函数GetSkeletonJointPosition()函数获取关节点的位置信息,此时获取的骨架点坐标是真实世界的绝对坐标,因此,需要通过深度生成器DepthGenerator下的ConvertRealWorldToProjective()函数将绝对坐标转换为屏幕上的投影坐标,以便在屏幕上绘制关节点.通过调用Qt中的QPainter类的成员函数drawEllipse()画圆函数绘制关节点以及drawLine()画线函数绘制相应关节点之间的连线,其在白天和黑暗条件下绘制骨骼关节点图像的效果如图3所示.从图3中可以看出,该方法对光照条件和复杂背景具有很好的鲁棒性.
手势识别的效果是实现全自动控制PPT的关键,本文的手势识别方法无需进行前期手势的分割,而是直接通过分析骨架节点之间的位置关系以及左右手的运动信息实现对手势的识别,并将识别结果应用到对PPT的全自动控制.
图3 骨骼图像
2.1 手势定义 要实现手势的识别,必须事先建立一个有意义的手势集合,根据PPT中常用的打开、最大化、第一页、最后一页、上一页、下一页以及关闭功能,定义了7种手势,如表1所示.表1中“LeftRightUp”表示左右手升起且高过头部,用于打开PPT文件;“LeftRightStraight”表示左右手往两边伸直,用于最大化PPT文件;“RightUp”表示右手升起且高过头部,用于将PPT翻到第一页;“LeftUp”表示左手升起且高过头部,用于将PPT翻到最后一页;“LeftToLeft”表示左手向左运动,用于将PPT翻到上一页;“RightToRight”表示右手向右运动,用于将PPT翻到下一页;“LeftRightCombine”表示双手合并,用于关闭PPT.
表1 手势定义表
2.2 手势识别 根据表1定义的手势,只需要用到其中3个骨架节点信息,即左手位置信息、右手位置信息以及头部位置信息,分别用LeftHand、RightHand和Head表示.现在可通过判断左右手与头部之间的位置关系以及左右手的运动信息实现对手势的识别.设人体离Kinect传感器1 m左右,则当LeftHand.Y>Head.Y且RightHand.Y>Head.Y时,识别出的手势为“LeftRightUp”;当LeftHand.Y
(1)
其中h为手心深度, (x,y)为手心的真实位置,(x′,y′)为转换后在640×480标准区域的坐标.因此通过对转换后的坐标分析可完成对手势的识别.
2.3PPT控制 根据手势识别的结果,只有当识别的手势为“LeftRightUp”时,才调用MFC中的ShellExecuteA()函数打开PPT文件,再调用FindWindowA()函数获取该文件的句柄,设为hwnd,这样就可以通过PostMessage()函数向该PPT句柄发送相应的消息实现对PPT的控制.当手势为“LeftRightStraight”时,发送VK_F5消息以最大化PPT;当手势为“RightUp”时,发送VK_HOME消息将PPT翻到第一页;当手势为“LeftUp”时,发送VK_END消息将PPT翻到最后一页;当手势为“LeftToLeft”时,此时需判断PPT是否在第一页,若不是,则发送VK_LEFT消息将PPT上翻一页;当手势为“RightToRight”时,此时需判断PPT是否在最后一页,若不是,则发送VK_LEFT消息将PPT下翻一页;当手势为“LeftRightCombine”时,发送VK_MENU和VK_F4消息关闭PPT文件.PPT控制系统流程如图4所示.
为了验证本文算法的有效性,以VS2008为开发工具,基于OpenNI和Qt编写了一个基于Kinect骨骼追踪技术的PPT全自动控制的应用程序,识别速度为25f/s,达到了手势识别应用实时性的要求.
图5为手势识别与PPT控制实验效果图,从图中可以看出,该手势识别方法无需进行前期手势的分割,只需要根据双手和头部关节点的位置关系以及双手的运动信息就可实现手势的识别.为了验证本文算法的有效性,采集5个人分别按照定义的手势对PPT进行操作,其实验结果如表2所示.从表2中可以看出,用户成功率都高于97%且每个手势的操作成功率高于95%,尤其是打开、最大化、第一页、最后一页和关闭的操作成功率为100%,而上一页、下一页操作个别有误的原因是人手运动过慢或人手运动过快后又将手移回原处.综上所述,本文算法总的平均操作成功率为98.4%,能够有效的应用于对PPT的全自动控制.
图5 手势识别与PPT控制效果图
表2 手势识别成功率(其中m/n表示成功m次,失败n次)
打开最大化最后一页第一页下一页上一页关闭用户成功率/%User110/010/015/015/018/219/110/097%User210/010/015/015/019/119/110/098%User310/010/015/015/020/020/010/0100%User410/010/015/015/019/119/110/098%User510/010/015/015/019/120/010/099%操作成功率/%100%100%100%100%95%97%100%
本文提出了一种基于Kinect骨架追踪技术的手势识别方法,先利用骨架功能提供的GetSkeletonJointPosition()函数获取15个关节点位置信息,并根据PPT常用操作功能选取了左手、右手以及头部3个关节点信息作为手势识别的特征向量,然后利用左右手与头部、左右手之间的位置关系以及左右手的运动信息进行手势识别,最后将手势识别的结果应用于对PPT的全自动控制.该方法的优点是无需进行前期的手势分割工作,识别率高且能够有效地实现对PPT的全自动控制.下一步的工作是在手势识别中考虑更多的骨架节点信息,并将其推广到其他应用领域.
[1]WachsJP,KolschM,SternH,etal.Vision-basedhand-gestureapplications[J].CommunicationsoftheACM, 2011, 54(2):60-71.
[2] 张秋余,王道东,张墨逸,等.基于特征包支持向量机的手势识别[J].计算机应用,2012,32(12):3 392-3 396.
[3] 公衍超,万帅,杨楷芳,等.利用双目视觉视频的实时三维裸手手势识别[J].西安电子科技大学学报(自然科学版),2014,41(4): 130-136.
[4] 陶丽君,李翠华,张希倩,等.基于Kinect传感器深度信息的动态手势识别[J].厦门大学学报(自然科学版),2013,52(4):493-497.
[5] 邓瑞,周玲玲,应忍冬. 基于Kinect深度信息的手势提取与识别研究[J].计算机应用研究,2013,30(4): 1 263-1 265.
[6] 李健,路飞,田国会,等.基于Kinect的PPT全自动控制系统研究[J].计算机工程与应用,2013,49(17):133-138.
[7]ZhouRen,YuanJunsong,MengJingjing,etal.RobustPart-basedHandGestureRecognitionusingKinectSensor[J].IEEETrans.onMultimedia(T-MM), 2013,15(5):1 110-1 120.
[8] 王松林.基于Kinect的手势识别与机器人控制技术研究[D].北京:北京交通大学,2014.
[9] 许凯,王敏.基于手轮廓的深度图像手势识别方法[J].计算机工程与科学,2014,36(5):941-946.
[10] 屈燕琴,李昕,卢夏衍.基于表观特征分析的手势识别及其应用[J].计算机工程与科学,2015,37(1):139-145.
[11] 任侃,曹越,吴杰,等.OpenNI体感应用开发实践[M]. 北京:机械工业出版社.2014:82-84.
[12] 余涛.Kinect应用开发实践[M].北京:机械工业出版社.2013:60-65.
PPT Full-automatic Control Method Based on Kinect Skeleton Tracking Technology
MaoYanming,ZhangLiliang
(DepartmentofComputer,NingdeNormalUniversity,Ningde352100,China)
Inourreport,anovelPPTautomaticcontrolmethodbasedonKinectskeletontrackingtechnologywasproposed.Firstly,theKinectsensorwasutilizedtocapturethe3Dinformationofskeletonjoints;secondly,thepositionrelationshipbetweenskeletonjointsandmotioninformationofleftandrighthandwereusedforrealizinggesturerecognition;finally,thegesturerecognitionresultsweremappedtoPPTcontrolcommandstorealizePPTautomaticcontrol.Theresultsindicatedthatthemethodhasgoodrobustnessinthedifferentilluminationandcomplexbackgrounds,highrecognitionrate,andcanrealizetheautomaticcontrolofPPTeffectively.
Kinectsensor;skeletaltracking;PPTcontrol;gesturerecognition
2015-03-25
福建省自然科学基金(2015J01660);福建省教育厅A类科技项目(JA15543)
毛雁明(1982-),男,福建福安人,讲师,硕士,研究方向:计算机视觉、模式识别,E-mail:hydrone@163.com
1004-1729(2015)03-0215-06
TP 391.41
A DOl:10.15886/j.cnki.hdxbzkb.2015.0040