基于Kinect传感器的家电手势控制应用研究
2015-05-05吴志勇
吴志勇,杜 振
(1. 山东理工大学 计算机科学与技术学院,山东 淄博 255049; 2. 中国海洋大学 信息科学与工程学院,山东 青岛 266100)
基于Kinect传感器的家电手势控制应用研究
吴志勇1,2,杜 振2
(1. 山东理工大学 计算机科学与技术学院,山东 淄博 255049; 2. 中国海洋大学 信息科学与工程学院,山东 青岛 266100)
为提高智能家电的人机交互性,研究实现了一种基于Kinect传感器的手势识别系统,用户通过该系统可手势控制电视的多种操作功能。对常见的3种动态手势识别算法进行分析对比后,结合应用需求,重点研究了动态手势识别DTW算法。基于Kinect for Windows SDK获取的手势深度图像和骨骼图像数据,采用DTW算法进行识别,最后给出了程序实现。实验表明,该方法可实现多种电视控制功能,而且具有较好的实时性和准确性。
Kinect;手势识别;DTW算法;家电控制
随着人机交互技术的发展,人与机器设备之间的交互体验越发简单和自然。现今,不论是小小的智能手机终端还是大屏幕设备都可采用触屏技术,使人们摆脱了繁琐的键盘输入和鼠标控制。未来,人机交互的理想状态可通过语言、手势、表情等自然操作设备[1],而这些功能已在多种领域尝试和应用,其功能优化和发展依赖于语音识别、手势识别、人脸识别技术的发展。
另外,随着物联网智能家居产业的发展,智能家电设备将是智能家庭空间的重要应用,如何使家庭用户与智能家电设备更自然地交互,是各大家电厂商技术竞争的动力。目前,采用较广泛的技术是在智能家电设备中嵌入无线模块,通过无线感知、远程控制、服务的方式为家庭用户提供操作功能,而这仍需要家庭用户通过各种终端进行操作。现今,手势识别技术取得较大发展,相对传统手势识别技术易受光照、背景等外部因素影响,手势识别准确率具有较大提高[2]。本文研究一种基于Kinect传感器的智能电视手势控制系统,通过Kinect采集图像深度数据和骨骼数据,采用DTW算法识别手势动作,完成智能电视控制功能。实验表明,该方法可实现多种智能电视控制功能,而且具有较好的实时性和准确性。
1 Kinect传感器
Kinect是微软发布的一款体感外设,设备拥有3个摄像头,可同时获取RGB彩色图像、深度图像和人体骨骼图像,是研究基于计算机视觉的手势识别技术的理想设备[3]。其外观如图1所示,中间一个是RGB摄像头,图像采集速度可达30 f/s(帧/秒);两边分别是红外线发射器和红外线接收器,用于深度图像的获取;两侧是一组四元传声器阵列,用于声源定位和语音识别。
图1 Kinect外观图
2 手势识别技术
手势通常可分为静态手势和动态手势,静态手势是指手在不动的情况下,手指和手掌做出不同的姿势和形状;动态手势是指手随时间的变化,手的位置和形状发生变化的手势,而动态手势更能表达操作者的丰富意图[4]。结合应用需求,本文重点研究动态手势识别,动态手势识别算法包括3种,即基于语义识别、基于统计识别和基于模板识别,表1对各种识别方法进行了比较。
表1 手势识别技术比较
识别算法算法、模型优点缺点语法识别上下文无关句法分析、语法推理,较少使用易于理解准确率低、鲁棒性差统计识别隐马尔科夫模型HMM准确率高计算过程复杂模板识别动态时间规整DTW算法简单、效率高易受外界影响
从比较来看,动态手势识别算法主要应用HMM和DTW两种,针对简单孤立的手势识别,两种算法识别效果不大,但因HMM模型建立过程复杂,所以本文选择较为简单有效的DTW算法进行手势识别。
3 基于DTW的动态手势识别
3.1 DTW算法思想
DTW算法采用动态规划的思想,可以很好地解决时间轴畸变问题,被广泛应用于语音识别系统[5]。而语音识别和手势识别相类似,起决定作用的不是语言和手势移动的速度,而是音调和手势移动轨迹。
设模板特征向量时间序列A={a1,a2,…,ai}和待识别特征向量时间序列B={b1,b2,…,bj},其中i不一定等于j。通过DTW算法可构建一个时间规整函数,使序列B的时间轴j映射到序列A的时间轴i的总误差最小。设F={f(1),f(2),…,f(n)}为时间规整函数,其中f(n)=(i(n),j(n))表示第n个匹配点,i(n)和j(n)分别是序列A和B的特征矢量,其匹配距离可表示为d(ai(n),bj(n))。按照DTW动态规划先局部后整体的算法原理,即获得使所有匹配点的特征向量之间的加权距离和D最小
(1)
为保证手势识别的准确率提高,需对规整函数F加入限制条件[6]:
1)连续性限制:对规整函数中的所有匹配点f(n)严格按序计算匹配距离。
2)单调性限制:结合手势动作的时间有序性,要求规整函数F中的匹配点f(n)不违背时间顺序,即ft+1≥ft。
根据上述限制条件,添加相应的约束条件后,利用下列递归公式获得累积距离,即可得到最优路径,确定匹配手势模板
D(ai(n),bj(n))=d(ai(n),bj(n))+min(D(ai(n),bj(n)),
(ai(n),bj(n)),(ai(n),bj(n)))
(2)
3.2 基于Kinect的手势识别
以Kinect SDK提供的人体骨骼模型为基础,通过Kinect传感器可实时获取人体骨骼中的20个节点的三维坐标信息[7]。根据智能电视手势控制需求,分左右手臂两组选择20个骨骼节点中的4个节点提取动态手势特征,即左手节点、左手腕节点、左手肘节点和左手臂节点;右手节点、右手腕节点、右手肘节点和右手臂节点,如图2所示。
图2 人体骨骼节点
结合智能电视控制操作,本文设计了如表2所示的动态手势。
表2 手势操作类型
序号动作控制含义1左手握拳,右手握拳手势识别开始2左手向右,右手向右顺向频道切换3左手向左,右手向左逆向频道切换4左手向上,右手向上音量增大5左手向下,右手向下音量减小
由于基于DTW的手势识别是一种基于模板匹配的方法,因此需要建立手势模板库。将录制好的手势数据存入模板库,然后利于DTW算法对控制手势与模板库匹配,识别出手势。基于DTW的识别流程如图3所示。
图3 基于DTW算法的手势识别流程
4 手势识别实现
智能电视手势控制系统以实现对智能电视的节目切换、音量调节、静音开关等控制功能为目标,模拟系统由智能电视、Kinect传感器、无线视频机顶盒、便携式计算机组成,如图4所示。
图4 系统组成结构
系统中的无线视频机顶盒连接智能电视,并通过无线方式接收便携式计算机发送的手势识别信号。Kinect传感器与便携式计算机连接。传统情况下,视频机顶盒是通过遥控器操作控制,而接入Kinect体感传感器后,通过手势识别软件,视频机顶盒接收笔记本电脑发送的用户手势控制功能,完成对视频设备的手势控制。
本文通过Kinect摄像头获取手势深度图像和骨骼图像,需要用到的开发工具包括Visual Studio .Net 2010,Kinect SDK for Windows 1.0和OpenCV。Kinect SDK for Windows是微软发布的基于Kinect的开发套件[8],为驱动Kinect设备提供API接口,但该SDK并没有提供手势识别引擎,因此需要自己实现手势识别功能,安装SDK后,设备管理器内显示如图5所示的设备信息。OpenCV是开源的计算机图像处理开发包,可用于对获取手势图像的处理。
图5 Kinect设备信息
为获取深度图像和骨骼图像,Kinect SDK提供了一个传感器对象和两个获取深度数据、骨骼数据的重要方法。KinectSensor对象表示Kinect硬件设备,是获取彩色影像数据,深度数据和骨骼追踪数据的源头。
kinectSensor_DepthFrameReady方法可打开深度图像帧来提取深度帧数据,kinectSensor_ SkeletonFrameReady方法打开骨骼图像帧来提取骨骼帧数据,获取骨骼数据方法使用如下:
private void kinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) {
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) {
Skeleton[] skeletonData = new Skeleton[ks.SkeletonStream.FrameSkeletonArrayLength];
skeletonFrame.CopySkeletonDataTo(skeletonData);
its.ProcessSkeleton(skeletonData, ks.AccelerometerGetCurrentReading(), skeletonFrame.Timestamp);
}
}
}
获取深度图像和骨骼图像后,通过调用已封装的手势识别方法gestureRecongniation()进行手势识别,演示程序如图6所示。
图6 手势识别演示程序(截图)
通过测试,手势识别响应时间在0.3 s以内,正确率达95%,通过与其他手势识别系统比较,该系统具有明显优势,如表3所示。
表3 手势识别系统比较
手势识别系统比较项方便性受环境影响度扩展性精确度响应时间基于手环差较高差较高慢基于RGB图像好高较好一般快基于Kinect深度图好低好高快
5 结束语
现今,基于大数据、云计算、智能穿戴推动下的人机交互技术发展迅速,智能家居、智能汽车等与大众息息相关的技术已不再陌生,人类与机器之间的交互和沟通趋向自然化、简单化。本文以微软Kinect传感器为基础,研究实现了手势识别系统在智能家电控制中的应用,通过本系统的实现对手势识别技术和家电人机交互发展具有应用指导意义。
[1] 杨碧玲.手势和语音识别_智能家电人机交互新趋势[J].集成电路应用,2013(3):32-35.
[2] 陈艳丽,金纪东.手部姿势与挥动速度识别的人机交互[J].电子测量与仪器学报,2014(1):56-61.
[3] 方华,刘诗雄.基于Kinect骨骼系统的手势识别研究[J].计算机工光盘软件与应用,2014(2):65-68.
[4] 陈静. 基于Kinect的手势识别技术及其在教学中的应用[D].上海:上海交通大学,2013.
[5] SU C J,CHIANG C Y,HUANG J Y. Kinect-enabled home-based rehabilitation system using dynamic time warping and fuzzy logic[J]. Applied Soft Computing,2014(22):652-666.
[6] 邹洪.实时动态手势识别关键技术研究[D].广州:华南理工大学,2011.
[7] 张毅,张烁.基于Kinect深度图像信息的手势轨迹识别及应用[J].计算机应用研究,2012(9):3547-3549.
[8] 吴秦,陈智.基于Kinect骨骼跟踪技术的人机交互[J].常州大学学报,2014(3):6-11.
Research on Gesture Control System Applied on Home Appliance by Kinect Sensor
WU Zhiyong1,2,DU Zhen2
(1.SchoolofComputerScienceandTechnology,ShandongUniversityofTechnology,ShandongZibo255049,China; 2.SchoolofInformationScienceandEngineering,OceanUniversityofChina,ShandongQingdao266100,China)
To improve human-computer interaction of the intelligent home appliances, a gesture recognition system based on Kinect sensor is implemented. Smart TV with a variety of operating functions is controlled by the gesture recognition system. According the application needs the DTW gesture recognition algorithm is focused after analysis and comparison of three kinds of dynamic hand gesture recognition algorithm. The gesture is recognized with DTW algorithm after obtained the data of depth gesture image and skeleton gesture image by the Kinect SDK for Windows. Finally, the program demo is given. The tests show this method can achieve a variety of TV control function and has better real-time performance and veracity.
Kinect;gesture recognition;DTW algorithm;appliance control
山东省高等学校科技计划项目(J10LG80)
TP216.2
B
10.16280/j.videoe.2015.16.014
2015-07-02
【本文献信息】吴志勇,杜振.基于Kinect传感器的家电手势控制应用研究[J].电视技术,2015,39(16).
吴志勇(1978— ),讲师,博士生,主要研究领域为嵌入式系统、模式识别。
责任编辑:时 雯