基于手轮廓特征的手势识别控制方法和系统的制作方法

文档序号:6401860阅读:144来源:国知局
专利名称:基于手轮廓特征的手势识别控制方法和系统的制作方法
技术领域
本发明涉及人机交互领域,具体涉及一种基于手轮廓特征的手势识别控制方法和系统。
背景技术
利用手势控制计算机的人机交互方式正逐步成为人机交互的发展方向和趋势。目前,人们对于计算机内部应用软件(如视频播放软件和PPT幻灯片软件)的控制往往需要辅助键盘、鼠标和控制笔等硬件设备来实现,不能解放使用者的双手。如人们常用PPT —类的幻灯片软件来辅助展示内容,而演讲者控制幻灯片的方式主要依赖于键盘、鼠标和控制笔等硬件设备,不能解放双手以便于演讲者与观众互动。目前出现的手势交互系统采用的是特征库匹配的方式,因此均存在模式识别样本库大、匹配时间长、计算量庞大、且只能基于特定的交互需求和任务来设计系统结构,所以在实现和设计方面都有差别,且都设定了自己相应的约束条件、特征参数,系统的每一个流程执行的算法也不尽相同。然而,由于计算机、智能手机、视频终端等设备内部运行的任务不同以及应用场景的不同,手势具有多样性和多义性,且复杂背景和光线反射会影响手势识别的准确率。因此针对特定任务和特定应用场景需要开发出来的手势交互系统须根据实际控制者输入的手势实现相应的反应或控制,导致手势识别时间长,应用移植困难,影响人机交互体验。

发明内容
本发明所要解决的技术问题是针对现有手势识别控制方法模式识别样本库大、匹配时间长、且不便于移植等问题,提供一种基于手轮廓特征的手势识别控制方法和系统。为解决上述问题,本发明是通过以下技术方案实现的:基于手轮廓特征的手势识别控制方法,包括如下步骤:步骤1,设置系统的初始参数,其中初始参数包括视频边框阈值、手势特征面积阈值、手势特征周长阈值、凸包缺陷面积阈值、物距(即摄像头与控制者的距离)以及手势语义上下左右四个方向所对应的控制命令;步骤2,通过摄像头拍摄人的图像视频流,并将其送入计算机中对图像视频流的视频帧进行图像预处理;步骤3,计算机找出视频帧的所有外轮廓,接着将当前视频帧的外轮廓放入双向轮廓链表,然后遍历链表,排除噪声轮廓;步骤4,若外轮廓的边界接近整个视频帧的边界,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤5,继续对该外轮廓进行手势识别;步骤5,计算外轮廓的面积,若外轮廓的面积与视频区域矩阵面积的比例小于预设的手势特征面积阈值与物距平方的比例时,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤6,继续对该外轮廓进行手势识别;步骤6,计算外轮廓最大边框矩形的周长,若外轮廓最大边框矩形的周长与视频区域矩阵周长的比例大于预设的手势特征周长阈值与物距的比例时,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤7,继续对该外轮廓进行手势识别;步骤7,计算外轮廓的凸包缺陷面积,若外轮廓的凸包缺陷面积小于预设的凸包缺陷面积阈值时,则计算机判定该外轮廓为抱拳手势,此时计算出抱拳手势的中心坐标位置,并重复步骤2-7继续检测下一帧视频帧直至识别出抱拳手势;若外轮廓的凸包缺陷面积大于预设的凸包缺陷面积阈值,则计算机判定该外轮廓为手掌手势,并计算手掌手势的中心坐标位置;步骤8,对抱拳手势和手掌手势的中心坐标位置作差得到手势偏移向量,根据手势偏移向量所在象限来解析控制者上下左右四个方向的手势语义,解析成相应的控制命令,并对解析出的控制命令进行编号生成命令队列;步骤9,计算机从命令队列中逐条取出控制命令,并向计算机的待控应用程序发送控制命令所对应的虚拟键盘消息,最终待控应用程序将响应该控制命令。基于手轮廓特征的手势识别控制系统,包括初始设置模块、图像预处理模块、手势识别模块、命令解析模块和待控应用程序控制模块;初始设置模块,用于设置系统的初始参数,上述初始参数包括视频边框阈值、手势特征面积阈值、手势特征周长阈值、凸包缺陷面积阈值、物距(即摄像头与控制者的距离)以及手势语义上下左右四个方向所对应的控制命令;图像预处理模块,将摄像头拍摄人的图像视频流的每一帧视频帧进行图像预处理;手势识别模块,通过寻找视频帧中的外轮廓来判断预处理后的视频帧中是否有抱拳手势出现,无则继续检测下一帧视频帧是否出现抱拳手势;若识别出抱拳手势,则将抱拳手势的中心坐标位置输入命令解析模块,且对接下来的下一帧视频帧做同样的图像预处理,并寻找下一帧视频帧中是否有手掌手势出现,无则继续检测再下一帧视频帧是否出现手掌手势,若识别出手掌手势,则将手掌手势的中心坐标位置输入命令解析模块;命令解析模块,对抱拳手势和手掌手势的中心坐标位置作差得到手势偏移向量,根据手势偏移向量所在象限来解析控制者上下左右四个方向的手势语义,解析成相应的控制命令,并对解析出的控制命令进行编号生成命令队列;待控应用程序控制模块,从命令队列中逐条取出控制命令,并向待控应用程序发送控制命令所对应的虚拟键盘消息,使得待控应用程序响应该控制命令。与现有技术相比,本发明具有如下特点:I)通过对视频帧进行外轮廓提取来进行手势识别,利用手势识别过程中手势特征面积和手势特征周长来识别出手势,并以凸包缺陷面积和来刻画抱拳和手掌,从而有效提高了手掌识别的准确度和效率;2)手势识别过程中全部采用周长和面积等常用计算判别,而非复杂的图像模式识别样本比对方式,因而不需要添加额外样本库,就可以为其他应用开发服务,比如基于手势控制的图片查看器、音乐播放器、网页浏览器和游戏应用程序。


图1为基于手轮廓特征的手势识别控制方法流程图;图2为手势外轮廓的凸包和凸包缺陷示意图;图3为图像预处理流程图;图4为一种象限与命令控制规则;图5为基于手轮廓特征的手势识别控制系统原理框图。
具体实施例方式下面以待控应用程序是PPT (幻灯片)为例,对本发明进行进一步详细说明:一种基于手轮廓特征的手势识别控制方法,如图1所示,包括如下步骤:步骤1,启动系统所需的初始步骤,设置系统初始参数。如将摄像头连接到计算机中,完成设置面板中的各项参数,待打开指定幻灯片显示连接成功后,可通过摄像头将获取的视频帧输入图像处理步骤。具体实施时可使用VC++编程设计一个MFC界面,分别对摄像头和幻灯片设计一个启动按钮,检查是否连接成功,而在设置面板的设计中应该包含场景设置、抱拳设置、手掌设置和文件设置,其中场景设置参数包括视频边框阈值、二值阈值、物距和图像范围、手势语义上下左右四个方向所对应的控制命令,抱拳设置参数包括外轮廓面积和外轮廓最大边框矩形周长,手掌设置参数包括外轮廓面积和外轮廓最大边框矩形周长和凸包缺陷面积,文件设置参数包括幻灯片文件名和全屏后文件名。手势轮廓的特性影响着手势识别的效率和准确率。在本发明中,引入了外轮廓的凸包和凸包缺陷的概念。其中凸包是由手的各个外凸顶点依次相连获得的闭合区域,即图2中手的外围深色线描画出的即是凸包。凸包缺陷则是指凸包内部2个手指之间的空隙,SP图2中A到H被标出的区域即是凸包的各个“凸包缺陷”。这些凸度缺陷提供了手以及手状态的特征表现的方法,据此本发明提出了以凸包缺陷面积和来刻画手掌,提高了手掌识别的准确度和效率。其中识别的检测部分,包括人脸区域排除、边界区域排除、长宽比、周长和面积、凸包缺陷检测,从而识别精度大大提高。步骤2,完成初始步骤之后,可通过设计的开始跟踪按钮,启动摄像头拍摄人的图像视频流,并将其送入计算机中对图像视频流的视频帧进行图像预处理。在本实施例中,采用OpenCV的cvCreateCameraCapture函数捕获视频流,再用OpenCV的cvQueryFrame函数转换视频流得到每巾贞图像输入图像预处理步骤进行图像预处理。图像预处理步骤用于图像预处理检测手势,即通过将视频帧从RGB空间转换成YCbCr空间,提取Cb分量进行二值化,按照“膨胀-腐蚀-膨胀-腐蚀”进行形态操作三步,得到每帧预处理后的图像输入手势识别步骤。在本实施例中,首先通过接入计算机的摄像头采集视频图像,接着把采集到的视频图像由RGB格式转换为YCbCr格式,从而分离出该色彩空间亮度和色度信息,由于其灰度化后的图像对光照有较强的抗干扰能力,因此能有效减少光照的影响。参见图3。然后利用整体阈值法来得到二值化图像。整体阈值二值化是仅由像素点(i,j)的灰度值f(i,j)确定阈值的,设图像f(i,j)的灰度值限定在[a,b]内,其阈值为 b)),则其图像二值化计算的一般数学表达式为:
Γ ( 、Jl/⑷Odg(x,y) = in "、得到的g(x,y)就是二值图像,阈值t不同,得到的二值图像g(x,y)也是不同的。阈值运算把所有像素分成O和255的两组,通过选定合适的阈值,这样就可以把多灰度级的图像变成只有两个灰度级的图像,把其中感兴趣的目标像素作为前景像素,其余部分作为背景像素。实施时可先使用OpenCV的cvSplit函数分割提取Cr通道,再用OpenCV的cvThreshold函数做阈值分割运算,为达到理想的分割效果,实施例将阈值t限制在[135,150]中。由于整体阈值方法得到的图像仍然存在噪声,二值处理后的手势图像的手指区域分割并不彻底,这会导致后续特征值的计算产生一定的偏差从而影响最终的手势识别结果,因此需要把分割得到的图像先进行膨胀运算,去掉分割不理想导致的小的“孔洞”;再进行腐蚀运算得到图像。实施时可使用OpecnCV的cvMorphologyEx函数把2次膨胀-腐蚀集中到一起进行形态操作。步骤3,计算机找出视频帧的所有外轮廓,接着将当前视频帧的外轮廓放入双向轮廓链表,然后遍历链表,排除噪声轮廓。从视频帧中提出各个物体的外轮廓可以采用现有已知的相关图像处理方法,在本实施例中,所述视频帧的所有外轮廓均由OpenCV的cvFindContours 函数找出。步骤4,若外轮廓的边界接近整个视频帧的边界,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤5,继续对 该外轮廓进行手势识别。在本实施例中,检测外轮廓和边界的方法如式(I)所示:Iconi I (Oc-Ov) > (BT, BT)且(Pc-Pv) > (BT, BT)} (I)式(I)中0c、Pc、0v、Pv均为非负整数的二维坐标,其中0c、Pc代表手势轮廓Coni所在矩形框的左上端点坐标和右下端点坐标,0v、Pv代表整个视频的左上端点坐标和右下端点坐标,BT 为视频边框阈值。如 Oc (10,20) ,Pc (30, 30) ,Ov (O, 0) ,Pv (1000, 1000),ΒΤ=20,则Oc-Ov= (10, 20) < (20,20),不满足式(I),此时轮廓Coni不为手势。步骤5,计算外轮廓的面积,若外轮廓的面积与视频区域矩阵面积的比例小于预设的手势特征面积阈值与物距平方的比例时,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤6,继续对该外轮廓进行手势识别。在本实施例中,检测外轮廓凸包总面积符合手势特征的方法如式(2)所示:Iconi I Sc/Sv 彡 ST/ (DXD)} (2)式(2)中Sc、Sv均为非负整数,0〈ST〈1,D为非负实数,表示摄像头与控制者的距离,并且控制在5米之内,且Sc代表手势的轮廓Coni区域内的像素点个数,其面积可由openCV的cvContourArea函数计算求得,Sv代表视频区域内的像素点个数,ST为手势特征面积阈值。Sc=IOO像素,Sv=500*500=250000像素,D=2米,ST=0.00375,代入后不满足公式
(2),此时轮廓Coni不为手势。
步骤6,计算外轮廓最大边框矩形的周长,若外轮廓最大边框矩形的周长与视频区域矩阵周长的比例大于预设的手势特征周长阈值与物距的比例时,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤7,继续对该外轮廓进行手势识别。在本实施例中,检测外轮廓周长符合手势特征的方法如式(3)所示:Iconi I Lc/Lv 彡 LT/D} (3)式(3)中,Lc、Lv均为非负整数,0〈LT〈1,D为非负实数,表示摄像头与控制者的距离,Lc代表手势的轮廓Coni所在矩形的周长,可由openCV的cvArcLength函数计算求得,Lv代表视频区域所在矩形的周长,LT为手势特征周长阈值。步骤7,计算外轮廓的凸包缺陷面积,若外轮廓的凸包缺陷面积小于预设的凸包缺陷面积阈值时,则计算机判定该外轮廓为抱拳手势,此时计算出抱拳手势的中心坐标位置,并重复步骤2-7继续检测下一帧视频帧直至识别出抱拳手势;若外轮廓的凸包缺陷面积大于预设的凸包缺陷面积阈值,则计算机判定该外轮廓为手掌手势,并计算手掌手势的中心坐标位置。在本实施例中,抱拳轮廓特征库由以上公式(I) - (3)决定,其特征库初始值见表I ;手掌轮廓特征库由公式(I) - (4)决定,其特征库初始值见表2。
权利要求
1.基于手轮廓特征的手势识别控制方法,其特征是包括如下步骤: 步骤1,设置系统的初始参数,其中初始参数包括视频边框阈值、手势特征面积阈值、手势特征周长阈值、凸包缺陷面积阈值、物距、以及手势语义上下左右四个方向所对应的控制命令; 步骤2,通过摄像头拍摄人的图像视频流,并将其送入计算机中对图像视频流的视频帧进行图像预处理; 步骤3,计算机找出视频帧的所有外轮廓,接着将当前视频帧的外轮廓放入双向轮廓链表,然后遍历链表,排除噪声轮廓; 步骤4,若外轮廓的边界接近整个视频帧的边界,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤5,继续对该外轮廓进行手势识别; 步骤5,计算外轮廓的面积,若外轮廓的面积与视频区域矩阵面积的比例小于预设的手势特征面积阈值与物距平方的比例时,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤6,继续对该外轮廓进行手势识别; 步骤6,计算外轮廓最大边框矩形的周长,若外轮廓最大边框矩形的周长与视频区域矩阵周长的比例大于预设的手势特征周长阈值与物距的比例时,则计算机判定该外轮廓不为手势,返回步骤3的链表遍历循环操作,继续遍历检测当前视频帧双向轮廓链表里的其他外轮廓;否则进入步骤7,继续对该外轮廓进行手势识别; 步骤7,计算外轮廓的凸包缺陷面积,若外轮廓的凸包缺陷面积小于预设的凸包缺陷面积阈值时,则计算机判定该外轮廓为抱拳手势,此时计算出抱拳手势的中心坐标位置,并重复步骤2-7继续检测下一帧视频帧直至识别出抱拳手势;若外轮廓的凸包缺陷面积大于预设的凸包缺陷面积阈值,则计算机判定该外轮廓为手掌手势,并计算手掌手势的中心坐标位置; 步骤8,对抱拳手势和手掌手势的中心坐标位置作差得到手势偏移向量,根据手势偏移向量所在象限来解析控制者上下左右四个方向的手势语义,解析成相应的控制命令,并对解析出的控制命令进行编号生成命令队列; 步骤9,计算机从命令队列中逐条取出控制命令,并向计算机的待控应用程序发送控制命令所对应的虚拟键盘消息,最终待控应用程序将响应该控制命令。
2.根据权利要求1所述的基于手轮廓特征的手势识别控制方法,其特征是,在步骤2中,计算机中对每一帧视频帧进行图像预处理的过程具体是,首先将视频帧从RGB空间转换成YCbCr空间;然后提取Cb分量进行二值化;最后按照膨胀-腐蚀-膨胀-腐蚀依次进行形态操作,得到每帧视频帧预处理后的图像。
3.根据权利要求1所述的基于手轮廓特征的手势识别控制方法,其特征是,所述视频中贞的所有外轮廓均由OpenCV的cvFindContours函数找出。
4.基于手轮廓特征的手势识别控制系统,其特征是,包括初始设置模块、图像预处理模块、手势识别模块、命令解析模块和待控应用程序控制模块; 初始设置模块,用于设置系统的初始参数,上述初始参数包括视频边框阈值、手势特征面积阈值、手势特征周长阈值、凸包缺陷面积阈值、物距、以及手势语义上下左右四个方向所对应的控制命令; 图像预处理模块,将摄像头拍摄人的图像视频流的每一帧视频帧进行图像预处理;手势识别模块,通过寻找视频帧中的外轮廓来判断预处理后的视频帧中是否有抱拳手势出现,无则继续检测下一帧视频帧是否出现抱拳手势;若识别出抱拳手势,则将抱拳手势的中心坐标位置输入命令解析模块,且对接下来的下一帧视频帧做同样的图像预处理,并寻找下一帧视频帧中是否有手掌手势出现,无则继续检测再下一帧视频帧是否出现手掌手势,若识别出手掌手势,则将手掌手势的中心坐标位置输入命令解析模块; 命令解析模块,对抱拳手势和手掌手势的中心坐标位置作差得到手势偏移向量,根据手势偏移向量所在象限来解析控制者上下左右四个方向的手势语义,解析成相应的控制命令,并对解析出的控制命令进行编号生成命令队列; 待控应用程序控制 模块,从命令队列中逐条取出控制命令,并向待控应用程序发送控制命令所对应的虚拟键盘消息,使得待控应用程序响应该控制命令。
5.根据权利要求4所述的基于手轮廓特征的手势识别控制系统,其特征是,所述图像预处理模块首先将视频帧从RGB空间转换成YCbCr空间;然后提取Cb分量进行二值化 ’最后按照膨胀-腐蚀-膨胀-腐蚀依次进行形态操作,得到每帧视频帧预处理后的图像。
6.根据权利要求4所述的基于手轮廓特征的手势识别控制系统,其特征是,所述手势识别模块通过OpenCV的cvFindContours函数找出视频巾贞的所有外轮廓。
全文摘要
本发明公开一种基于手轮廓特征的手势识别控制方法和系统,其主要有初始设置步骤、图像预处理步骤、手势识别步骤、命令解析步骤和待控应用程序控制步骤构成。本发明通过对视频帧进行外轮廓提取来进行手势识别,利用手势识别过程中手势特征面积和手势特征周长来识别出手势,并以凸包缺陷面积和来刻画抱拳和手掌,从而有效提高了手掌识别的准确度和效率;在手势识别过程中全部采用周长和面积等常用计算判别,而非复杂的图像模式识别样本比对方式,因而不需要添加额外样本库,就可以为其他应用开发服务,比如基于手势控制的图片查看器、音乐播放器、网页浏览器和游戏应用程序。
文档编号G06K9/46GK103208002SQ20131012358
公开日2013年7月17日 申请日期2013年4月10日 优先权日2013年4月10日
发明者徐增敏, 蒋英春, 段雪峰, 关健 申请人:桂林电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1