- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Kinet深度信息的指尖检测及手势识别.doc
基于Kinect深度信息的指尖检测及手势识别
【 】传统二维图像基于肤色的手势识别受 背景影响严重,针对这一情况,改进了一种基于Kinect 三维深度信息的指尖检测及手势识别算法。在获取深 度图像后,利用开源库OpenNI的手势生成器获取手 心位置,设定邻近深度阈值提取手部轮廓,同时跟踪 手部。结合OpenCV相关函数对图像进行进一步形态 学预处理,重置手心后通过道格拉斯-普克算法逼近轮 廓,结合凹缺陷特征检测指尖,识别手势。实验结果 表明,该方法能在复杂背景下有效的检测指尖和识别 手势,具有良好的鲁棒性。
【?P键词】Kinect openNI OpenCV指尖检测手
势识别人机交互 引言
在人机交互领域,手势一直是研宄的热门对象。 传统的手势识别一般都将二维颜色图像中肤色和背景 的区别分割出手部。传统的利用肤色进行手部的前景 分害U,利用人的肤色在YcrCb颜色空间或HSV颜色空 间的聚类特性分割手部,但是容易受到光照影响,背 景要求较高。本文通过引入Kinect的深度图像改进了一种有效分割手部,检测指尖并识别数字手势的方法。 首先利用OpenNI的API获取大概手心位置,根据手心 位置深度信息值设定邻近深度阈值分割手部区域,结 合opencv库相关函数预处理后,在传统的凸包检测上 对轮廓做D-P逼近后,检测凹缺陷特征算法得出指尖 数。
一、手势分割原理
基于深度信息图像的手势分割和指尖识别包括深 度图像采集、手势分割、指尖检测和结果显示。通过 打开Kinect的深度数据流获取深度图像,利用邻近阈 值分割手部,指尖检测采用基于D-P逼近的凹缺陷检 测法,最后显示结果。
二、实验过程 2.1系统整体流程
整个系统的流程图如图1所示。
2.2深度图像获取
Kinect包括RGB摄像头、红外摄像头和红外发射 器组成的深度传感器。Kinect相对普通摄像头的优点 就是它的红外传感器可以通过黑白光谱的方式来探测
空间内的物体到传感器的距离,生成3D景深图像。 本文中利用Kinect的3D深度传感器以30帧/每秒获取 像,实时获取手部动态图像。
2.3 OpenNI获取手心位置
OpenNI是一个多语言、跨平台的框架,提供相应
的API接口与外接的硬件进行交互。目前OpenNI支持 的硬件包括:3D Sensor、RGB Camera、IR Camera 和 Audio Device 4类。我们在离Kinect lm左右的距离内 挥动手掌,利用OpenNI中的HandsGenerator类检测 并获取手心位置。
2.4手部分割
在检测和追踪到手心的位置后,可根据手心的深
度值对深度图像进行分割。在分割前采取中值滤波的 方式滤除图像的噪声。中值滤波的基本原理是把数字 像或数字序列中一点的值用该点的一个邻域中各点 值的中值代替,让周围的像素值接近的真实值,从而 消除孤立的噪声点。中值滤波对边缘信息的保护也非 常适合本文对滤波的要求。滤波后再利用opencv库提 供的erode ()和dilate ()对图像进行形态学处理。
我们对图像先进行膨胀后腐蚀操作,然后根据公 式(1)对手部进行提取。
式(1)中,z为手心的深度,T为设定的手掌阈
值,本文中设定阈值为5
值,本文中设定阈值为5。经过分割的图像如
所示。图(2)中左为未经处理的图,右图为处理过的 手部分割图,对比发现处理后轮廓周围噪点明显变少, 为进一步轮廓提取打下基础。
其中中的p,q表示图像X,Y维空间上的矩,n
表示像素个数。
重置手心后对轮廓进行D-P逼近。本文采用道格 拉斯-普克算法优化凸包。识别效果如图3。图3中表 示的数字分别为原图,深度图,手部分割二值图,手 部分割图,轮廓图和识别结果。
三、实验结果和分析
实验环境:PC 端 CPUCorei5-4200H,内存 8GB, 操作系统 WindowslO。在 Visual studio 2013 环境下, 利用openNI开源库结合opencv 2.4.9来进行算法设计。 传感器为Kinectfor XBOX360.深度图像分辨率为640 X 480 o
如图4所示。本文算法可以有效检测1到5个指 尖。相对于传统的相机,Kinect所采集的深度信息能
通过距离将背景信息去除,只对手部图像进行处理, 很好的克服了环境的变化和背景的干扰等因素。本文 将本文从实验中随意每个数字取300帧图像,统计检 测结果,得到表1数据。统计正确定义为伸出手指数 和Result显示结果数相同,否则错误。
四、结论
本文提出了一种基于深度图像的手指分割和手指
检测方法。利用openNI找到手,利用深度信息分割手 部,结合openCV相关函数对图像进行进一步处理, 利用道格拉斯-普克算法优化凸包后,判断出手指数目, 且准确率较高。实验结果
原创力文档


文档评论(0)