基于光流法的手势运动方向识别方法

文档序号:6629934阅读:605来源:国知局
基于光流法的手势运动方向识别方法
【专利摘要】基于光流法的手势运动方向识别方法,通过VGA分辨率的普通摄像头获取计算机前的图像序列并进行预处理;肤色样本在CbCr平面上较为集中地分布在近似椭圆的区域中,通过像素点在CbCr平面上是否落在此椭圆域来确定是否肤色;对肤色检测后的二值图像进行形态学重建,采用形态学中的闭运算;对各个白色连通区域进行标记并求面积,然后按照面积从大到小排列,保留三个最大的连通区域;降低图像的分辨率,并使用金字塔LK光流法获取肤色区域的光流运动矢量;对光流运动矢量做方向判断;每隔两帧判断一次方向,两次一致才给出结果;在熟悉并掌握本发明的手势运动操作规律后,在摄像头前进行手势的上下左右四个方向的运动,本发明可以完成实时交互并且手势运动方向识别正确率可在95%以上。
【专利说明】基于光流法的手势运动方向识别方法

【技术领域】
[0001] 本发明涉及一种基于光流法的手势运动方向识别方法,属于计算机视觉领域。

【背景技术】
[0002] 鼠标、键盘、手写板等简单的机械设备是目前人们最常用的人机交互方式,但是这 些人机交互方式都是以计算机为中心,不够人性化并具有很大的局限性,不足以满足人们 的需要。手是人最灵活的部位之一,手势在日常的交流与操作中使用非常广泛,方便快捷。 手势以人为中心,符合人们的生活习惯,所以手势作为一种新型的人机交互方式非常具有 研究价值。
[0003] 现有的基于计算机视觉的手势识别研究一般是识别手势的不同姿态来赋予不同 的意义,比如采用隐马尔可夫模型、形状纹理特征等方法识别手势姿态,或利用特殊的深度 摄像头如微软Kinect体感设备等获取深度图像来跟踪识别手势等。但前者的缺点是计算 机需要处理的数据复杂,容易存在响应时间长、识别率低等问题,很难在实时交互的前提下 达到满意的识别率,而后者采用特殊摄像头,存在价格昂贵、难以普及的问题。
[0004] 手势的不同姿态可以表现众多不同的意思,而手势的不同的运动方向也可以表现 少量不同的意思,但它如果用以控制不需要太多指令的计算机程序是足够胜任的,如播放 器的播放、快进、快退等指令。研究手势的运动方向识别可以减少计算机需要处理的数据, 不像手势姿态研究那样过于复杂,但目前很少有对手势运动方向的识别展开研究。


【发明内容】

[0005] 本发明的主要目的是在使用普通摄像头的前提下提供一种手势运动方向的识别 方法,以动态手势运动方向作为计算机识别的目标,使计算机可以针对不同的手势运动方 向做出不同的反应,如利用本发明的成果来控制视频播放器的播放暂停、快进快退等操作, 提高人机交互的灵活性。
[0006] 为实现上述目的,本发明采用的技术方案为基于光流法的手势运动方向识别方 法,该方法的流程图如图1所示,实施流程如下:
[0007] 步骤1、通过VGA分辨率的普通摄像头获取计算机前的图像序列并进行预处理,包 含GrayWor1d彩色均衡处理与高斯平滑操作。GrayWor1d彩色均衡处理的作用是:消除彩色 偏移,图像更加接近于实际颜色,且高光阴影部分会显著减少,使步骤2的肤色检测能够适 应不同的光照与光源的变化。先计算图像的R、G、B三分量各自的平均值avgR、avgG、avgB, 获得图像的平均灰度值avgGray= (avgR+avgG+avgB)/3,然后对于图像中的每个像素,调 整其R、G、B分量成为R=R?avgGray/avglG=G.avgGray/avgG,!? =B*avgGray/avgB, 最后将各像素的R、G、B值调整到可显示范围,若分量值大于255,调整为255。在GrayWorld 处理后,对图像进行高斯平滑操作来消除摄像头采集过程中产生的随机噪声。
[0008] 步骤2、YCbCr域椭圆肤色检测。肤色样本在CbCr平面上较为集中地分布在近似椭 圆的区域中,所以可以通过像素点在CbCr平面上是否落在此椭圆域来确定是否肤色。肤色 椭圆区域由式(1)表示,其中cx = 109. 83,cy = 152. 02, = 2. 53,ecx = 1. 60,ecy = 2. 41,a= 25. 39,b= 14. 03,x与y的取值由式(2)所示。

【权利要求】
1.基于光流法的手势运动方向识别方法,其特征在于该方法的实施流程如下: 步骤1、通过VGA分辨率的普通摄像头获取计算机前的图像序列并进行预处理,包 含GrayWorld彩色均衡处理与高斯平滑操作;先计算图像的R、G、B三分量各自的平均值 avgR、avgG、avgB,获得图像的平均灰度值avgGray = (avgR+avgG+avgB)/3,然后对于图像 中的每个像素,调整其 R、G、B 分量成为 R = R ? avgGray/avgR,G = G ? avgGray/avgG,B = B -aVgGrayAiVgB,最后将各像素的R、G、B值调整到可显示范围,若分量值大于255,调整为 255 ;在GrayWorld处理后,对图像进行高斯平滑操作来消除摄像头采集过程中产生的随机 噪声; 步骤2、YCbCr域椭圆肤色检测;肤色样本在CbCr平面上较为集中地分布在近似椭圆的 区域中,所以可以通过像素点在CbCr平面上是否落在此椭圆域来确定是否肤色;肤色椭圆 区域由式(1)表示,其中 cx = 109. 83, cy = 152. 02, = 2. 53, ecx = 1. 60, ecy = 2. 41,a = 25. 39, b = 14. 03, x与y的取值由式⑵所示;
在计算过程中,由图像像素点的Cb、Cr值算出X与y值,当X与y值落在式(1)所表示 的椭圆区域,则令图像像素值为1,否则为〇,这样可以得到肤色像素点为白色,非肤色像素 点为黑色的二值图; 步骤3、对肤色检测后的二值图像进行形态学重建,采用形态学中的闭运算;在数学形 态学中,腐蚀是将边界的像素点缩小至目标物体内部的一个像素点子集,消除图像中目标 物体的边界;膨胀是将图像中的目标物体的像素点扩大至周围的一个像素点子集,使周围 的像素点的值与该像素点保持一致;单独对图像膨胀或者腐蚀都或多或少对图像造成损 害,将膨胀和腐蚀结合在一起可以降低对图像造成的损害,闭运算是对图像进行先膨胀后 腐蚀,可以填补图像中的空洞,连接细小的挨在一起的物体;对步骤2得到的二值图像进行 闭运算可以得到人脸与人手是两个白色清晰连通区域的图像; 步骤4、对各个白色连通区域进行标记并求面积,即计算各个白色连通区域含有多少个 像素点,然后按照面积从大到小排列;如果画面中有较大的类肤色物体,例如与黄种人肤色 几乎一致的棕黄色家具,也会形成一个较大的连通区域且其像素数量未知,所以需要保留 像素数量排行前三位的连通区域,代表着人脸、人手与面积未知的干扰区域,其余所有连通 区域全部作为无关信息进行剔除; 步骤5、降低图像的分辨率,并使用金字塔LK光流法获取肤色区域的光流运动矢量; Lucas-Kanade光流法的公式如式(3)所示:
其中,W(x)表示窗口权重函数,它使邻域中心部分对光流约束产生的影响比外 围部分更大,V = (u, V)T是要求解的光流运动信息,I (X,y, t)是图像点(X,y)在 时刻t的照度,u和V是该点光流的水平和垂直分量,代表着运动信息,

金字塔Lucas-Kanade光流法采用常用的LK光流法算法加入高斯金字塔迭代方法,即 构造图像序列的一个金字塔,高层是低层图像的下采样形式,图像分解到一定层数时,相邻 帧之间的运动量就会变得足够小,满足LK光流法的局部约束条件;在金字塔的最高层计算 光流,然后将得到的运动估计结果作为下一层金字塔的起始点,重复迭代这个过程一直到 金字塔的底层,即具有原始分辨率的图像,这样可以实现对更快更长的运动跟踪; 步骤6、对光流运动矢量做方向判断;光流运动矢量可以分为水平运动分量u和垂直运 动分量V ;对相邻两帧图像做光流法操作获得的各像素的u与V值做这样的判定:式(4)? (7)分别表示像素点向右、左、上、下运动;当运动方向一致的像素数量超过一定的阈值,则 可以判定手部的运动方向; u>10 & -10〈v〈10 (3) u〈-10 & -10〈v〈10 (4) v>10 & -10〈u〈l (5) v〈-10 & -10〈u〈10 (6) 将运动方向一致的像素数的阈值设定为图像像素总数的二十分之一,在QVGA分辨率 下这个阈值为3840,例如运动方向判定为向左的像素数超过了 3840,而其他方向的像素数 远少于3840,则判定手部运动方向为左移; 步骤7、每隔两帧判断一次方向,两次一致才给出结果。
2. 根据权利要求1所述的基于光流法的手势运动方向识别方法,其特征在于:本方法 使用层数为4层的金字塔LK光流法,将金字塔底层图像的分辨率从VGA级别降低至QVGA 级别,可以非常有效的缩短光流法耗时,因为步骤4得到的肤色分割图具有非常好的效果, 所以图像分辨率降低一倍不会使光流法运动分析的效果变差;对相邻两帧肤色分割图的连 通域像素作为特征点使用金字塔LK光流法,可以得到运动物体的光流运动矢量。
3. 根据权利要求1所述的基于光流法的手势运动方向识别方法,其特征在于:人手在 摄像头前做出一个方向的运动,一般会经历5帧以上,当每隔两帧进行一次光流法判定,t匕 如第1、2帧给出结果A,第3、4帧给出结果B,当A与B代表的方向一致时,才给出最终结果, 当A与B不一样时,则表示手部没有进行一次完整的固定方向的运动。
4. 根据权利要求1所述的基于光流法的手势运动方向识别方法,其特征在于:本发明 的手势运动方向判断基本流程具体包括以下步骤, 1) 通过VGA分辨率的普通摄像头获取计算机前的图像序列并进行预处理,先对图像进 行GrayWorld彩色均衡处理,再进行高斯平滑操作来消除摄像头采集过程中产生的随机噪 声; 2) 对图像进行YCbCr域椭圆肤色检测;位于CbCr域的像素点的像素值设置为1,否则 为0,这样得到二值图像,白色为具有肤色特征的像素点,黑色为非肤色像素; 3) 对肤色检测后的二值图像进行形态学重建,采用形态学中的闭运算; 4) 对各个白色连通区域进行标记并求面积,即计算各个白色连通区域含有多少个像素 点,然后按照面积从大到小排列,如果画面中有较大的类肤色物体,例如与黄种人肤色几乎 一致的棕黄色家具,也会形成一个较大的连通区域且其像素数量未知,所以需要保留像素 数量排行前三位的连通区域,代表着人脸、人手与面积未知的干扰区域,其余所有连通区域 全部作为无关信息进行剔除; 5) 降低图像的分辨率,并使用金字塔LK光流法获取肤色区域的光流运动矢量;本发明 使用层数为4层的金字塔LK光流法,将金字塔底层图像的分辨率从VGA级别降低至QVGA 级别,可以非常有效的缩短光流法耗时,因为步骤4得到的肤色分割图具有非常好的效果, 所以图像分辨率降低一倍不会使光流法运动分析的效果变差;对相邻两帧肤色分割图的连 通域像素作为特征点使用金字塔LK光流法,可以得到运动物体的光流运动矢量; 6) 对光流运动矢量做方向判断;光流运动矢量可以分为水平位移分量u和垂直位移分 量V ;对相邻两帧图像做光流法操作获得的各像素的u与V值做这样的判定:式⑷?(7) 分别表示像素点向右、左、上、下运动;当运动方向一致的像素数量超过一定的阈值,则可以 判定手部的运动方向; u>10 & -10〈v〈10 (3) u〈-10 & -10〈v〈10 (4) v>10 & -10〈u〈l (5) v〈-10 & -10〈u〈10 (6) 将运动方向一致的像素数的阈值设定为图像像素总数的二十分之一,在QVGA分辨率 下这个阈值为3840,例如运动方向判定为向左的像素数超过了 3840,而其他方向的像素数 远少于3840,则判定手部运动方向为左移; 7) 每隔两帧判断一次方向,两次一致才给出结果;如果在摄像头开启后每帧都进行光 流法判定,那么不仅不会满足实时,而且由于手部完成一次具有固定方向的运动,一般运动 距离远且耗时不短,每帧都给出运动判断结果是不可靠的;人手在摄像头前做出一个方向 的运动,一般会经历5帧以上,当每隔两帧进行一次光流法判定,比如第1、2帧给出结果A, 第3、4帧给出结果B,当A与B代表的方向一致时,才给出最终结果,当A与B不一样时,则 表示手部没有进行一次完整的固定方向的运动; 8) 利用MFC制作Windows Media Player的视频播放器,将步骤7方向判断的四种结果 分别赋予不同的命令,可以实现这样的效果:当手势向上运动,视频播放器执行暂停命令, 当手势向下运动,视频播放器执行播放命令,当手势向左运动,视频播放器执行快退命令, 当手势向右运动,视频播放器执行快进命令。
【文档编号】G06F3/01GK104331151SQ201410535947
【公开日】2015年2月4日 申请日期:2014年10月11日 优先权日:2014年10月11日
【发明者】杨盈昀, 茹家馨, 姜秀华 申请人:中国传媒大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1