手势指令识别方法技术

技术编号:15747272 阅读:528 留言:0更新日期:2017-07-03 04:22
本发明专利技术提供一种手势指令识别方法,包括:利用Kinect彩色摄像头获取三维人手图像,利用景深摄像头获取景深数据;对所述三维人手图像进行图像增强处理;对所述三维人手图像进行轮廓检测处理,获取人手轮廓坐标;根据所述人手轮廓坐标计算并存储至少一人手掌心位置坐标;根据所述人手轮廓坐标及所述人手掌心位置坐标,计算人手轮廓上任一像点到掌心的距离;以及判断手指尖位置,存储手指尖位置坐标。本发明专利技术的优点在于,可以精确地识别手掌轮廓、手指指尖及掌心位置,具有景深识别功能,可以识别带有深度的手势,如前推、后拉、点击、握手等,无需使用人体骨骼数据,不用使整个人体出现在摄像头视野内。

Hand gesture recognition method

The invention provides a hand gesture instruction recognition method, including: obtaining 3D hand image using Kinect color camera, to obtain depth data by depth camera image enhancement; the three-dimensional image of the hand; 3D hand contour detection image processing, obtain the hand contour coordinates; according to the hand contour and coordinate calculation at least one stored palm position; according to the hand contour coordinates and the human palm coordinates calculation, a hand contour image point to the palm of the distance; and judging the finger tip position storage finger position coordinates. The invention has the advantages that can accurately identify the palm contour, the finger tip and the position of the palm, having a depth recognition function, can be identified with the depth of the gesture, such as push, pull, click on the front, shake hands, without the use of human skeleton data, not that the whole body is the camera visual field.

【技术实现步骤摘要】
手势指令识别方法
本专利技术涉及手势识别领域,特别涉及一种手势指令识别方法。
技术介绍
在计算机科学中,手势识别是通过数学算法来识别人类手势的一个议题。手势识别可以来自人的身体各部位的运动,但一般是指人体手部的运动。手势作为一种自然、直观的人机交互手段,在过去二十多年里一直是人机交互技术的一个研究热点。在手势识别技术中,最为基本的问题就是,人手的形状及位置的判断,只有能精确识别人手形状变化,才能精确识别人的手势。现有技术的手势识别技术主要有两种,一种是应用彩色摄像头结合图像算法来识别手势,其不足之处在于,由于摄像头不是景深摄像头,难以识别带有深度的手势(例如前推,弯曲等),其识别精度比较低;另一种是采用3D体感摄影机Kinect来识别,Kinect自带的SDK软件的优点是在人体骨骼识别方面效果出色,为了保证识别效果,需要将整个人体都出现摄像头覆盖区域内,操作不便。
技术实现思路
本专利技术的目的在于,提供一种手势指令识别方法,有效解决现有手势识别技术中存在的难以识别带有深度的手势、手形识别精度低、操作不便的技术问题。为实现上述目的,本专利技术提供一种手势指令识别方法,包括:利用至少一Kinect彩色摄像头获取至少一三维人手图像,利用至少一景深摄像头获取至少一景深数据;对所述三维人手图像进行图像增强处理;对所述三维人手图像进行轮廓检测处理,获取至少一人手图像,存储人手轮廓坐标;根据所述人手轮廓坐标计算并存储至少一人手掌心位置坐标;根据所述人手轮廓坐标及所述人手掌心位置坐标,计算人手轮廓上任一像点到掌心的距离;以及判断手指尖位置,存储手指尖位置坐标。其中,判断手指尖位置,包括如下步骤:将手掌轮廓上的所有像点依次编号,记录为第1像点、第2像点、.......第M像点,M为像点编号;计算手掌轮廓上每一像点到人手掌心的距离,记录第N像点到人手掌心的距离SN;将SN分别与SN-1及SN+1作对比,当SN大于SN-1且SN大于SN+1时,判定第N像点为一手指的指尖;以及记录伸出的指尖总数量K。进一步地,所述的手势指令识别方法,还包括如下步骤:定义第P帧时第Q个指尖点到掌心的距离TQP;P为帧数,Q小于或等于K;当伸出的指尖数量K为1时,若T1(P+5)与T1P的差值大于一恒定距离X,判定当前手势为单击手势;其中X大于20mm且小于40mm;以及当伸出的指尖数量K大于4时,若若TQ(P+W)小于TQP/2,或者,伸出的指尖数量K减少至小于或等于1,判定当前手势为握手手势;其中,W大于10且小于20。进一步地,所述手势指令识别方法,还包括如下步骤:根据所述景深数据计算第P帧时人手掌心到Kinect彩色摄像头的距离RP;若R(P+W)与RP的差值大于一恒定距离Y,判定当前手势为后拉手势;若R(P+W)与RP的差值小于一恒定距离-Y,判定当前手势为前推手势;其中,Y大于10mm且小于30mm。进一步地,所述手势指令识别方法还包括如下步骤:将人手掌心位置与显示器上光标位置形成映射,当人手掌心坐标发生移动时,显示器光标会发生对应移动,判定当前的手势为移动手势。本专利技术的优点在于,可以精确地识别手掌轮廓、手指指尖及掌心位置,具有景深识别功能,可以识别带有深度的手势,如前推、后拉、点击、握手等,无需使用人体骨骼数据,不用使整个人体出现在摄像头视野内。附图说明图1所示为本专利技术中手势指令识别方法的流程图。具体实施方式以下参考说明书附图介绍本专利技术的优选实施例,用以举例证明本专利技术可以实施,这些实施例可以向本领域中的技术人员完整介绍本专利技术的
技术实现思路
,使得本专利技术的
技术实现思路
更加清楚和便于理解。然而本专利技术可以通过许多不同形式的实施例来得以体现,本专利技术的保护范围并非仅限于文中提到的实施例。如图1所示,本专利技术提供一种手势指令识别方法,包括:步骤S1)利用至少一Kinect彩色摄像头获取至少一三维人手图像,利用至少一景深摄像头获取至少一景深数据。Kinect是微软公司设计的一种3D体感摄影机,可以通过USB接口与主机相连接,它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。Kinect比一般的摄像头更为智能,Kinect能够发射红外线,从而对整个房间进行立体定位。Kinect彩色摄像头则可以借助红外线来识别人体的运动,还可以识别出完整的RGB色彩,并借助面部识别技术自动为用户登录。除此之外,配合主机上的一些高端软件,便可以对人体的48个部位进行实时追踪。在Kinect彩色摄像头拍照速度为30帧/秒的情况下,每秒会获取30张三维人手图像,以及相应的30组景深数据。指令判断步骤中,每一次判断手势指令都是在一个特定的时间段内(如0.8-1.8秒)进行,或者说,是在一个特定的帧数范围(如24-36帧)内进行,这个特定的时间段或者特定的帧数范围可以由用户自行设定,只需判断手指移动前后的帧数量就可以判断手指的移动,可以减少误判的出现。步骤S2)对所述三维人手图像进行图像增强处理,具体包括:修正直方图,用以调整图像颜色,使图像的灰度平均;以及调整分辨率,将分辨率调整为512×424。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的。步骤S3)对所述三维人手图像进行轮廓检测处理,获取至少一人手图像,存储人手轮廓坐标,具体包括如下步骤:步骤S301)定义人的皮肤颜色在YCbCr色度空间上分布范围;步骤S302)计算所述三维人手图像上的每一像点在YCbCr色度空间上的映射数据;步骤S303)在YCbCr色度空间上,将所述映射数据中符合人的皮肤颜色的像点集合定义为人手图像,将所述映射数据中不符合人的皮肤颜色的像点设置为白色;以及步骤S304)定义所述人手图像边缘处的像点集合为所述三维人手图像对应的人手轮廓。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的,例如OpenCV软件。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效--由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。计算机用OpenCV软件的cvFindCounters方法找出人手图像的轮廓,由于人的皮肤颜色在YCbCr色度空间的分布范围:100<=Cb<=127,138<=Cr<=170,在此范围内的像素点可以认为是人手部分的图像,其他像素点可以设置为白色,这样可初步去除色差较大的背景色,得到一个人手图像,该人手图像中与白色部分相邻的像点即为人手轮廓。如有必要可以进行二次或三次轮廓检测处理,以获取比较精确的人手轮廓。步骤S4)根据所述人手轮廓坐标计算并存储至少一人手掌心位置坐标,该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的,例如OpenCV软件。计算机用OpenCV的moments方法可以计算出掌心的位置,即掌心点的三维坐标。先通过findContours方法,由前面找到的轮廓参数找到手的面积,用HandArea表示,然后通过moments方法,以HandArea为参数,得出掌心的位置。步骤S5)根据所述人手轮廓坐标及所述人手掌心位置坐标,计算人手轮本文档来自技高网
...
手势指令识别方法

【技术保护点】
一种手势指令识别方法,其特征在于,包括:利用至少一Kinect彩色摄像头获取至少一三维人手图像,利用至少一景深摄像头获取至少一景深数据;对所述三维人手图像进行图像增强处理;对所述三维人手图像进行轮廓检测处理,获取至少一人手图像,存储人手轮廓坐标;根据所述人手轮廓坐标计算并存储至少一人手掌心位置坐标;根据所述人手轮廓坐标及所述人手掌心位置坐标,计算人手轮廓上任一像点到掌心的距离;以及判断手指尖位置,存储手指尖位置坐标。

【技术特征摘要】
1.一种手势指令识别方法,其特征在于,包括:利用至少一Kinect彩色摄像头获取至少一三维人手图像,利用至少一景深摄像头获取至少一景深数据;对所述三维人手图像进行图像增强处理;对所述三维人手图像进行轮廓检测处理,获取至少一人手图像,存储人手轮廓坐标;根据所述人手轮廓坐标计算并存储至少一人手掌心位置坐标;根据所述人手轮廓坐标及所述人手掌心位置坐标,计算人手轮廓上任一像点到掌心的距离;以及判断手指尖位置,存储手指尖位置坐标。2.如权利要求1所述的手势指令识别方法,其特征在于,判断手指尖位置,包括如下步骤:将手掌轮廓上的所有像点依次编号,记录为第1像点、第2像点、.......第M像点,M为像点编号;计算手掌轮廓上每一像点到人手掌心的距离,记录第N像点到人手掌心的距离SN;将SN分别与SN-1及SN+1作对比,当SN大于SN-1且SN大于SN+1时,判定第N像点为一手指的指尖;以及记录伸出的指尖总数量K。3.如权利要求2所述的手势指令识别方法,其特征在于,还包括如...

【专利技术属性】
技术研发人员:董幼峰陈朝辉王浩
申请(专利权)人:江苏达科智能科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1