基于Kinect传感器的静态手势识别与仿真

2016-11-14 03:27葛艳茹张国伟孙温和卢秋红
现代计算机 2016年29期
关键词:手势算子边缘

葛艳茹,张国伟,孙温和,卢秋红

(1.上海电力学院,上海 200090;2.上海合时智能科技有限公司,上海 201108)

基于Kinect传感器的静态手势识别与仿真

葛艳茹1,张国伟1,孙温和1,卢秋红2

(1.上海电力学院,上海200090;2.上海合时智能科技有限公司,上海201108)

经济的飞速发展,智能化的程度越来越高,手势作为日常生活中最自然、直接的交流手段,被快速地运用到人机交互中。在Kinect传感器的基础上,获得身体部位深度图像,并对深度图像进行基于开操作的重建处理,得到重建图像。然后对重建图像进行边缘检测,得到手部轮廓。最后采用hu矩阵检测直线交点个数的方式,判断手指个数。实验结果表明,Canny算子和hu矩阵的结合,不但能快速准确地进行手势识别,大大提高实验的准确性,而且能够避免外界复杂背景和光照的影响,具有很好的鲁棒性。

Kinect;深度信息;阈值分割;边缘检测;指尖检测

上海市电站自动化技术重点实验室(No.13DZ2273800)

0 引言

进入计算机时代以来,人机交互技术一直相对单一,传统的鼠标键盘交互方式给人们的生活学习带来很大局限性,特别是近年来生活水平不断提高,传统交互方式已经不能满足人们各个方面的需求[1]。手势交互是未来人机交互的发展趋势,将为我们提供更自然、更富创意的方式与计算机进行交流,并已在智能家居、增强现实、手语识别等领域得到广泛应用[2]。例如,我们可以通过手势识别系统将聋哑人的手语转化为语音,以便他们和不懂手语的人进行交流[3]。用户自由的、直接的操纵用户界面,这种手势交互模式已成为未来的发展趋势,也成为近年来的一个研究热点[4]。

微软公司发布的Kinect x-box传感器是一种革命性的深度传感器,被迅速用到游戏上,通过传感器上面的RGB摄像和红外摄像机区分深度,有效捕捉游戏者的动作和姿态[5]。此外,Kinect的出现也造福了许多领域,尤其是利用Kinect传感器做的手势识别,此项技术的应用是广泛的,例如医疗康复、虚拟现实、手语等[6]。手势识别的研究方法也是多种多样,如文献[7]将数据手套和传感器结合,确定手关节,获取手部数据,实现手势提取,但是此种方法必须佩戴数据手套,有很大的局限性,且数据手套价格昂贵,不够经济;文献[8]基于视觉的手势分割算法的研究,在运动分析和肤色模型的基础上,采用卡尔曼滤波和TSL(Tinysoft Statistical analysis Language)肤色模型相结合的手势分割方法,分割出手势,扩大了轮廓点的搜索范围,收缩手势的凹陷区域;文献[9]基于Kinect深度信息的手势提取与识别研究,将深度图转换为三维点云,进行深度信息过滤,以此提取手势数据,并将统计后的手势数据输入到支持向量机进行训练,实现手势识别;文献[8、9]采用的是常用的肤色模型手势识别方法,对手部摆放位置要求严格,手部不能和其肤色相似的部位重叠,易受背景肤色和光照条件的影响。

本文侧重研究Kinect传感器的静态手势识别,研究顺序是先对彩色图像进行深度处理,对所得深度图像进行基于开的重建图像的操作,然后对图像进行二值化处理,利用Canny算子进行边缘检测,最后利用hu矩阵进行指尖识别,得出手指个数。图1是本文静态手势识别的系统研究框图。

1 深度图像的获取

Kinect获取的深度图像的每个像素点由2个字节组成,共16位,其中,高十三位表示从红外摄像头到物体的距离,以毫米为单位,距离区间为0到4096毫米[10],后面三位表示用户编号,如图2所示。高十三位表示摄像头到物体的距离,那么手部深度图像的获取就可以通过设定物体到摄像头的距离阈值来获取,超过阈值的部分置0,小于的置1,但是利用这种距离阈值的方法来获取手部深度图像往往包含背景,得不到想要的效果,如图3所示。

图1 系统研究框图

图2 Kinect深度值和用户索引编号

图3 身体深度图

2 深度图像处理

上面图3已经初步得到了身体的深度图像,但是很显然,除了手部深度图像以外,操作者的身体以及背景都在这幅图上展现出来,这对后面的手势识别产生很大影响,下面做的事情就是把手掌从背景中分离出来。

数学形态学中分析图像一般是以图像中具有形态的结构元素为基础研究对象,并通过这些具有形态的结构元素来获取图像的边缘轮廓。常用的形态学图像处理方法有膨胀、腐蚀、开运算(公式(1))和闭运算(公式(2)),这些处理方法各有其优点,既可以单独使用,又可以结合起来,到达所需要的处理效果。接下来要做的就是对图3的身体深度图进行基于开运算的重建操作。

A是原始图像,B是结构元素图像,公式(1)是开操作,就是A先被B腐蚀,腐蚀后的结果再被B膨胀,开操作一般用来删除不能包含结构元素的微小区域,平滑物体的边界轮廓,又可以做到不改变其面积。公式(2)是闭运算,A先被B膨胀,膨胀后的结果再被B腐蚀,可使轮廓线更光滑,但与开操作删除微小区域不同,闭操作通常用来填补间断和长细的鸿沟,消除小的空洞,填补轮廓线中的断裂。本文在开操作的基础上,进行图像重建操作,正确的恢复腐蚀后所保留物体的形状,经过开操作的重建处理所得的深度图像如图4所示:

图4基于开的重建图像

图4可以看出,经过上文基于开的重建操作,除去了图中一些细小的干扰,并且完整地保存了手部形状,但是仍然没有实现把手掌部位分割出来,接下来,采用最佳阈值法二值化的方法对图像将进行处理,先统计每个像素在整幅图像中的个数,计算每个像素在整幅图中所占的比例,遍历灰度级[0,255],计算方差最大的灰度值,也就是最佳阈值,本文得到的最佳阈值为150,经过二值化处理得到的图像如图5所示,从图中可以看出,经过二值化处理后,手掌区域已经很好地从背景中分离,为后续的手指个数的识别打下了良好的基础。

3 手势提取

图5已经把手掌区域从背景区域分离出来,接下来要做的事情就是进行手指个数的识别,进行识别之前,先用对图像进行边缘检测,在这里采用Canny算子进行边缘提取,此算子先对图像进行去噪,接着寻找亮度梯度,最后采用滞后阈值的方法找出图像边缘。此外,Canny算法会尽可能多地标识出图像中的实际边缘,以及与实际图像中的实际边缘尽可能接近的边缘,图像中的边缘只能标识一次,而且图像噪声也不会被确定为边缘。所以,本文采用Canny算子对图像进行边缘检测,检测后的边缘图像如图6所示。

图5 二值化处理后的图像

图6 Canny算子边缘检测

由上图可以看到Canny算子很准确的把手掌边缘检测出来,接下来采用的是hu矩阵的方法来进行手指的检测,hu矩阵用来检测图像中的直线,通过找到点的几何,来确定直线,进而把直线的获取转换成了点的计数问题,而且,此种方法受噪声的影响不大。处理顺序是先得到hu矩阵和峰值点图像,寻找若干个个大于最大值0.3倍的峰值,在hu矩阵中标出峰值位置,合并距离小于设定值的线段,丢弃长度小于设定值的线段,最后标出线段交点,从直线的斜率和断、端点标记可以判断出手指个数,所得图像如图7所示,由图可见,除去干扰点以后,每个指尖处都会有一个黄色标记点的集合,从图中我们也可以明显的看出,数字‘1’的黄色点集合有一个,数字‘3’的黄色点集合有三个,数字‘5’的黄色点集合有五个,也就是有几个点的集合就有几根手指,从而很好地识别出了阿拉伯数字‘1’、‘3’、‘5’。

图7 hu矩阵处理图像

为证明此次仿真结果的正确性,对‘1’、‘3’、‘5’三个数字的识别分别进行了100次的实验测试,测试结果如表1所示:

表1 实验汇总对照表

4 结语

此次研究,分离出了手部区域,并利用Canny算子获取了边缘信息,采用hu矩阵检测直线交点的方法检测出手指个数,成功的完成了此次手势识别,准确性好,鲁棒性高,要注意的是Kinect传感器放置的高度和角度会影响分割效果,所以实验的时候要选好高度和角度,以便更好地完成手势识别。而手势识别分为静态手势识别和动态手势识别,本次研究针对的是静态手势识别,接下来将会把动态手势识别作为日后的研究工作。

[1]徐鹏飞,张红英.基于Kinect深度图像信息的手势分割和指尖检测算法[J].西南科技大学学报,2014(1):49-54.

[2]李长龙.基于Kinect深度图像的手势识别研究[D].西华大学,2014.

[3]卫洁.基于Kinect传感器的动静态手势识别研究[D].上海师范大学,2015.

[4]郑斌珏.基于Kinect深度信息的手势识别[D].杭州电子科技大学,2014.

[5]El-Laithy R A,Huang J,Yeh M.Study on the Use of Microsoft Kinect for Robotics Applications[C].Position Location and Navigation Symposium(PLANS),2012 IEEE/ION.IEEE,2012:1280-1288.

[6]Mitra S,Acharya T.Gesture Recognition:A Survey[J].Systems Man&Cybernetics Part C Applications&Reviews IEEE Transactions on,2007,37(3):311-324.

[7]王兆其.虚拟人合成研究综述[J].中国科学院大学学报,2000,17(2):89-98.

[8]莫舒.基于视觉的手势分割算法的研究[D].华南理工大学,2012.

[9]邓瑞,周玲玲,应忍冬.基于Kinect深度信息的手势提取与识别研究[J].计算机应用研究,2013,30(4):1263-1265.

[10]曹林,翁武毅.基于Kinect手势识别的研究与实现[J].电子技术与软件工程,2014(6):204-205.

Kinect;Depth Information;Threshold Segmentation;Edge Detection;Fingertip Detection

Static Gesture Recognition and Simulation Based on Kinect Sensor

GE Yan-ru1,ZHANG Guo-wei1,SUN Wen-he1,LU Qiu-hong2
(1.Shanghai University of Electric Power,Shanghai 200090;2.Shanghai Hrstek Corporation,Shanghai 201108)

The rapid development of economy,makes the intellectualized degree is higher and higher.Hand gestures,which are quickly used in human-computer interaction,play as the most natural and the most direct means of communication in daily life.Based on the Kinect sensor,obtains the depth image by Kinect sensor,and then based on the depth image processing operations start rebuilding,and then binarized to give hand image depth,and then to get the hand contour edge detection.The hu matrix detection line intersection number,to determine the number of fingers.The experimental results show that the combination of Canny operator and hu matrix has the very good robustness,not only can fast accurate for gesture recognition,greatly improve the accuracy of the experiment,but also can avoid the complex background and the influence of illumination.

1007-1423(2016)29-0067-04

10.3969/j.issn.1007-1423.2016.29.016

葛艳茹(1991-),女,河南周口人,硕士研究生,研究方向为手势识别张国伟(1970-),男,山西人,副教授,硕士研究生导师,研究方向为信息检测孙温和(1993-),女,浙江乐清人,在读硕士研究生,研究方向为单目视觉SLAM技术卢秋红(1973-),女,博士,高级工程师,硕士生导师,研究方向为机器人技术

2016-08-16

2016-10-10

1007-1423(2016)29-0071-04

10.3969/j.issn.1007-1423.2016.29.017

猜你喜欢
手势算子边缘
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
挑战!神秘手势
V字手势的由来
胜利的手势
一张图看懂边缘计算
在边缘寻找自我
走在边缘