人手轮廓识别方法与流程

文档序号:12786826阅读:3377来源:国知局

本发明涉及手势识别领域,特别涉及一种人手轮廓识别方法。



背景技术:

在计算机科学中,手势识别是通过数学算法来识别人类手势的一个议题。手势识别可以来自人的身体各部位的运动,但一般是指人体手部的运动。手势作为一种自然、直观的人机交互手段,在过去二十多年里一直是人机交互技术的一个研究热点。

然而基于视觉的手势识别在数据采集时容易受到背景干扰,如面部、颈部的皮肤或颜色与肤色相似的衣物等。这样,在手势识别技术中,最为基本的问题就是,人手的形状及位置的判断,只有能精确识别人手轮廓,才能精确识别人的手势。要求背景颜色和手的颜色有较好的区分度,特别是在背景多变且较为复杂的情况下,这种背景干扰会更加严重。

现有技术的手势识别技术主要有两种,一种是应用彩色摄像头结合图像算法来识别手势,其不足之处在于,由于摄像头不是景深摄像头,难以识别带有深度的手势(例如前推,弯曲等),降噪水平较差,难以去除背景干扰,其识别精度比较低;另一种是采用3D体感摄影机Kinect来识别,Kinect自带的SDK软件的优点是在人体骨骼识别方面效果出色,为了保证识别效果,需要将整个人体都出现摄像头覆盖区域内,但是在人手识别方面,依然存在一定背景干扰,其识别精度较低。



技术实现要素:

本发明的目的在于,提供一种人手轮廓识别方法,有效解决现有手势识别技术中存在的背景颜色干扰严重、手形识别精度比较低的技术问题。

为实现上述目的,本发明提供一种人手轮廓识别方法,包括:

利用至少一Kinect彩色摄像头获取至少一三维人手图像,利用至少一景深摄像头获取至少一景深数据;

对所述三维人手图像进行图像增强处理;

对所述三维人手图像进行轮廓检测处理,获取至少一含背景色的人手图像,存储含背景色的人手图像的轮廓坐标;

根据所述含背景色的人手轮廓坐标计算并存储至少一人手掌心坐标;

根据所述人手掌心坐标及所述景深数据计算人手掌心的景深距离;

根据预设的人手形状及所述人手掌心的景深距离设定至少一人手轮廓景深距离阈值;

利用所述含背景色的人手轮廓及所述景深数据计算所述含背景色的人手轮廓内各个像点的景深距离;

将所述含背景色的人手轮廓内各个像点的景深距离与所述人手轮廓景深距离阈值做对比,将景深距离超出所述人手轮廓景深距离阈值范围的像点设置为白色,从而去除所述三维人手图像的背景色;以及

对所述三维人手图像进行第二次轮廓检测处理,获取并存储至少一人手轮廓。

本发明的优点在于,可以有效去除背景色的干扰,精确地识别手掌轮廓、手指轮廓及掌心坐标;具有景深识别功能,可以识别带有深度的手势(例如前推,弯曲等),无需使用人体骨骼数据,不用使整个人体出现在摄像头视野内。

附图说明

图1所示为本发明中人手轮廓识别方法的流程图。

具体实施方式

以下参考说明书附图介绍本发明的优选实施例,用以举例证明本发明可以实施,这些实施例可以向本领域中的技术人员完整介绍本发明的技术内容,使得本发明的技术内容更加清楚和便于理解。然而本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

如图1所示,本发明提供一种人手轮廓识别方法,包括:

步骤S1)利用至少一Kinect彩色摄像头获取至少一三维人手图像,利用至少一景深摄像头获取至少一景深数据。Kinect是微软公司设计的一种3D体感摄影机,可以通过USB接口与主机相连接,它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。Kinect比一般的摄像头更为智能,Kinect能够发射红外线,从而对整个房间进行立体定位。Kinect彩色摄像头则可以借助红外线来识别人体的运动,还可以识别出完整的RGB色彩,并借助面部识别技术自动为用户登录。除此之外,配合主机上的一些高端软件,便可以对人体的48个部位进行实时追踪。在Kinect彩色摄像头拍照速度为30帧/秒的情况下,每秒会获取30张三维人手图像,以及相应的30组景深数据。

步骤S2)对所述三维人手图像进行图像增强处理,具体包括:直方图修正步骤;颜色调整步骤;分辨率调整步骤,将分辨率调整为512×424;等等。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的。

步骤S3)对所述三维人手图像进行轮廓检测处理,获取至少一含背景色的人手图像,存储含背景色的人手图像的轮廓坐标,具体包括如下步骤:步骤S301)定义人的皮肤颜色在YCbCr色度空间上分布范围;步骤S302)计算所述三维人手图像上的每一像点在YCbCr色度空间上的映射数据;步骤S303)在YCbCr色度空间上,将所述映射数据中符合人的皮肤颜色的像点集合定义为人手图像,将所述映射数据中不符合人的皮肤颜色的像点设置为白色;以及步骤S304)定义所述人手图像边缘处的像点集合为所述三维人手图像对应的人手轮廓。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的,例如OpenCV软件。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效--由一系列 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彩色摄像头相连接的主机中的软件来实现的,例如Kinect SDK软件,利用Kinect SDK软件可以计算人手掌心点的景深距离。

步骤S6)根据预设的人手形状及所述人手掌心的景深距离设定至少一人手轮廓景深距离阈值。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的,该阈值就是距离摄像头的距离,通过一个判断语句就可以实现,例如1m~3m,这个范围在0.5m~5m之间根据不同系统不同的需求自己可以设定。事先在计算机数据库中预设人手形状,不同的人手形状对应不同的手势。

步骤S7)利用所述含背景色的人手轮廓及所述景深数据计算所述含背景色的人手轮廓内各个像点的景深距离。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的。

步骤S8)将所述含背景色的人手轮廓内各个像点的景深距离与所述人手轮廓景深距离阈值做对比,将景深距离超出所述人手轮廓景深距离阈值范围的像点设置为白色,从而进一步去除所述三维人手图像的背景色。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的。

步骤S9)对所述三维人手图像进行第二次轮廓检测处理,获取并存储至少一人手轮廓。该步骤是通过与Kinect彩色摄像头相连接的主机中的软件来实现的,例如OpenCV软件。第二次使用OpenCV的cvFindCounters方法找出人手图像的轮廓,具体细节与步骤S3)相同,可进一步去除背景色,得到一个比较精确的人手图像,该人手图像中与白色部分相邻的像点即为精确的人手轮廓。

本发明将彩色摄像头与景深摄像头结合起来使用,将两者的数据相叠加,优化了判断算法,提升了手指判断的精度,因此手势识别更加精准。可以有效去除背景色的干扰,精确地识别手掌轮廓及掌心坐标;具有景深识别功能,可以识别带有深度的手势(例如前推,弯曲等),无需使用人体骨骼数据,不用使整个人体出现在摄像头视野内。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1