利用双目视觉视频的实时三维裸手手势识别

2014-07-11 01:16公衍超杨楷芳
西安电子科技大学学报 2014年4期
关键词:肤色手势摄像机

公衍超, 万 帅, 杨楷芳, 陈 浩, 李 波

(西北工业大学 电子信息学院,陕西 西安 710072)

手势作为一种符合人类行为习惯的交互方式,以其直观、生动、形象的特点,被认为是自然人机交互技术中非常重要的一部分[1].传统的手势识别技术是基于数据手套的方法[2].这种方法通过多个传感器可以准确获得手指或手臂的关节角度及空间运动轨迹等信息,但其设备昂贵,佩戴数据手套的交互方式也极大地限制了交互自由性.近年来,一些研究者基于计算机视觉研究了一些基于标记的方法[3].这些方法的思路是在人手上贴上不同颜色或形状的标记,通过摄像头来捕获这些标记,从而获得手势的相关特征信息.相比数据手套,这种方法成本更低且在操作上少了一些限制,但同样限制了人机交互的自由性.

目前基于裸手的手势识别技术得到广泛研究.这种方法不需要额外的传感器或标记,完全释放了人机交互的自由性,是最贴近人类感知最简单直接的一种交互方式.与二维裸手手势识别技术[4-7]相比,三维裸手手势识别技术[8-9]考虑了手势深度的影响,所以,目前三维裸手手势识别技术以其更自然的交互方式得到越来越广泛的关注.文献[8]用一个kinect深度摄像机获取手势的三维信息并通过K-NN分类器实现了对三维手势的识别.但这种基于商用深度摄像机的三维手势识别系统一般成本较高.Sato等[9]提出用2个普通摄像机获取人手位置及运动方向,最后通过一种神经网络识别三维手势.但这种方法的手势识别率较低,并且此方法对手势区域进行分割时基于两个假设:环境亮度基本不变;识别场景不存在比人手更大的类肤色物体.这些假设限制了此方法的广泛应用.综上,目前急需开发成本低、识别率高、鲁棒性强的三维裸手手势识别方法.

手势面积作为一种简单的手势特征信息,不仅可以区分不同的手势,同时在三维空间中其与手势深度有直接的关系,即深度越大,面积越小,所以基于手势深度与手势面积的关系可以有效地在三维空间中进行手势识别.笔者首先依据双目视觉原理分析了手势深度与手势面积的关系,依据此关系提出三维裸手手势识别算法.为进一步降低算法复杂度,提出了一种基于极线约束规则[10]的简单的图像立体匹配算法.

1 双目立体视觉系统中手势面积与手势深度的数学关系

图1 双目视觉原理

图1所示为双目视觉原理,Π1、Π2、Π3、Π4分别表示物体平面、相机平面、左相机成像平面、右相机成像平面.ab为物体,其长度为L;albl为物体在左相机上成的像,长度为Ll;arbr为物体在右相机上成的像,长度为Lr;u表示物距,vl、vr分别表示左、右相机的像距;两个相机的焦距分别为fl、fr.

由相似三角形原理,可得

Ll/vl=L/u.

(1)

同时,焦距、物距、像距满足

1/fl=1/u+1/vl.

(2)

所以,由式(1)和式(2),可得

Ll=L/(flu)-L/u2.

(3)

假设L足够小,则物体ab可以看做一个点,Ll即表示点的面积,而手势可以近似看做有限多个点的集合,所以手势在左相机上的成像面积Al可以表示为

Al=∑ (L/(flu)-L/u2)=∑ (L/fl)(1/u)-(∑L)(1/u2) .

(4)

同理,手势在右相机上的成像面积Ar为

Ar=∑ (L/fr)(1/u)-(∑L)(1/u2) .

(5)

这里,定义手势面积A为Al与Ar的均值,即

(6)

当手势在相机前方运动时,手势大小与相机焦距都是不变的.若左右相机型号相同,焦距大小一样,则式(6)可以被简化为

A=[∑ (L/fl)] (1/u)-(∑L)(1/u2)=α(1/u)+β(1/u2) ,

(7)

其中,参数α、β为固定值.最终得到手势深度u与手势面积A满足式(7)所示的关系.

下文详细描述基于式(7)的关系提出的三维裸手手势识别算法的具体实现.

2 利用双目视觉视频的实时三维裸手手势识别算法框架及其实现

图2为笔者提出的算法框架.首先对两个摄像机进行标定[11],获取标定后的参数.视频采集模块负责获取两个摄像机的图像,将左右图像对传输给图像预处理模块.图像预处理模块[12]分别分割左右图像对中的手势区域及区域的质心点.立体匹配模块依据极线约束规则找到质心的匹配点,再由匹配点得到视差.三维信息获取模块结合视差与摄像机标定后的参数,依据双目视觉原理,计算质心点的深度.手势区域经过面积计算模块获得手势的面积.三维手势识别模块根据手势深度与手势面积的关系对手势进行识别.下面描述各模块的具体实现.

图2 利用双目视觉视频的实时三维裸手手势识别算法框架

2.1 摄像机标定与图像预处理

选用平面模板两步标定法[13]进行摄像机标定.该方法的标定精度较高,同时避免了传统方法设备要求高、操作繁琐等缺点.左右摄像机输出的图像经过图像预处理模块后得到分割的手势区域及区域的质心点.为了保证算法的实时性,采用基于肤色分割的手势识别算法.基于肤色分割的手势识别算法的缺点是易受环境亮度及类肤色物体的影响.笔者首先对左右图像对进行色彩均衡[14]以减小环境亮度对手势识别的影响.均衡后的图像通过类肤色分割模块进行手势区域分割.RGB颜色空间对光照十分敏感,且R、G、B这3个通道的相关性较强,所以类肤色分割算法一般在YCrCb或HSV颜色空间中进行.按照下面规则进行类肤色分割:当像素点的Cr、Cb分量分别在133~166、79~129之间时,其被认为处在肤色区域.将肤色区域及其他区域像素点的Y分量分别置为255、0,得到二值化图像.在获得二值化图像过程中,不可避免地会受到噪声的干扰,导致图像中存在不连续区域及粗糙的区域边缘,这里采用形态学滤波器来消除不连续区域,选用canny算子检测算法平滑区域边缘.最后采用文献[15]中的8邻域搜索法提取手势轮廓.

2.2 立体匹配与三维信息获取

针对立体匹配,国内外学者提出了很多算法[16].这些算法要将较多的特征点进行匹配,算法复杂度过高且容易出现误匹配.笔者将面积作为手势识别的特征信息,不同面积对应不同手势,而面积可以认为是手势在与摄像机成像平面平行的平面上的投影,此平面上的所有点的深度都是一样的,所以只需计算一点的深度即可确定手势的深度.综上,针对传统立体匹配方法的缺点,结合笔者提出算法的特点,提出一种应用极线约束规则只对手势质心点进行匹配的立体匹配算法,在大大降低了复杂度的同时,算法引入了极线约束规则与均值统计量计算过程,保证匹配的准确性.

在双目视觉系统中,根据极线约束定义,左图像上pl点在右图像上的匹配点pr一定位于右图像的极线上,同时对于平行摄像机模型,极线与图像的行平行.笔者使用平行摄像机模型,且2个摄像机的型号相同,所以经过摄像机标定模块后,输出的左右图像在同一个平面上且是行对准的,所以pl与pr点的纵坐标是相等的.基于以上理论,算法的具体步骤如下:

(1) 假设手势质心点坐标为(xc,yc),应用图像预处理算法,求得(xc,yc)在左右图像对的对应点分别为(xl,c,yl,c)、(xr,c,yr,c).

(2) 理论上,yl,c与yr,c应该是相等的,但由于相机存在标定误差,两值通常存在差别.所以在实际匹配中,通常在一个包括极线的带状区域内搜索匹配点.基于以上分析,应用极线约束规则:若 |yl,c-yr,c|≤ 10,则记下此时左右质心点坐标作为有效数据,并对下一幅图像继续执行(1);若不满足,则舍弃该数据,并对下一幅图像继续执行(1);当已处理的图像达到5幅时,执行(3).

(8)

同时将已处理的图像数清零.

图3 手势面积与手势深度的关系

结合立体匹配求得的视差及相机标定参数,根据文献[17]的方法得到手势质心点的深度.

2.3 基于手势面积与手势深度关系的三维手势识别

由2.2节已经得到手势深度,下面说明手势面积的获取过程.在第1节推导过程中将手势面积看做是有限多个点的集合,所以这里定义手势面积为手势区域内包含的像素点总数.设计对3种手势进行识别,分别是手掌、剪刀、锤头.选择20个年龄段为20~40岁的成年人作为测试者,其中男性15人,女性5人.每个测试者分别做出3种手势并距摄像头由远到近移动,移动中手势可以有水平与垂直运动.在移动过程中提取手势及人脸的面积及深度.

由第1节得出手势面积与手势深度应满足式(7)所示的二次多项式的形式,图3为提取的数据,也完全验证了这一结论.图中人脸与手掌、手掌与剪刀、剪刀与拳头、拳头以下共4条分界线用实线表示.3种手势及人脸的面积之间具有明显的界限,所以通过面积可以简单有效地识别3种手势,同时消除人脸的影响.用式(7)所示的式子对4条边界线模型化,得到

A=αD1+βD2,

(9)

表1 参数列表

最终提出的手势识别方法的基本步骤如下:

(1) 计算手势质心点深度u,分别计算左右图像中手势面积Al、Ar,取均值作为当前手势的面积A.

(2) 按照式(9)计算得到人脸及3种手势边界线的分界点A1、A2、A3、A4,此时,u1=u2=u3=u4=u.在实际手势识别场景中,图像中可能存在除手势本身之外的多个类肤色物体,例如同时出现人手及人脸.在识别中,笔者将每一个类肤色物体都看做是待识别手势,对类肤色物体同样经过步骤(1)~(2)得到其深度、面积及分界点.

(3) 最终根据表2对手势进行识别.

表2 手势识别

以上提出的算法将面积作为手势识别的特征信息,其计算十分简单,同时面积与深度具有的良好的对应关系,决定了提出算法可以快速有效的在三维空间中识别面积具有明显差别的手势.手势的面积差别越大,图3中分界线之间的距离越大,则手势识别的准确率会更高.这里说明,当存在其他类肤色物体,距摄像头距离与人手近似,且面积也近似时,提出的算法易出现误判.但在实际的手势识别应用中,一般人脸及人手通常出现在摄像头的前景区域,背景区域存在的类肤色物体的面积相对较小[9],所以本算法在实际应用中的识别准确率可以保证.

3 算法性能

搭建三维手势识别系统测试所提算法的性能,如图4所示.系统使用的摄像头为2个普通网络摄像头,分辨率为 640×480.双目摄像头采集的图像传给计算机进行处理,使用的计算机为普通计算机,主要配置为:CPU频率为 2.67 GHz,内存为 4.00 GB.选择未参加图3数据提取的5人作为测试者,包括4名男性,1名女性,年龄段在25~35岁.每个测试者分别做3种手势并距摄像头由远到近移动,在10个不同位置采样.在每个采样位置,手在平行于摄像头成像平面的平面上分别垂直向上、向左倾斜、向右倾斜放置.每种手势可以得到150个测试数据.这里特别说明实验中手势识别背景的选择,对于手势识别来说,复杂的背景应包括两方面的特征:一是背景中包括各种颜色各种形状的物体,而不能只有单色单一物体;二是背景中有类肤色的物体,例如人脸.算法在复杂背景下的识别效率是检验算法性能的标尺,所提算法在图5和图6所示的复杂背景下进行性能验证.下面分别从处理速度、手势识别准确率、鲁棒性这3个方面说明所提算法的性能.

图4 笔者提出算法的性能

首先对算法速度进行说明,图4(a)为算法中每个模块的平均运行时间.这里运行时间不包括摄像机标定模块.因为摄像机标定需要人的操作,其处理时间受人的主观影响较大,并且摄像机一旦标定完成,在以后的手势识别过程中其参数是固定不变的,不受测试环境的影响.系统总运行时间为 29.149 ms,所以对于两路输入分辨率 640×480 的视频,算法处理速度可达 34.31帧/秒,完全满足实时性的要求.三维手势识别部分的耗时很少,立体匹配、三维信息获取、面积计算及三维手势识别模块共占总运行时间的9%.预处理模块占总运行时间的86%,若对此模块进行优化,可进一步提高系统的速度.表3为几种基于裸手的手势识别算法的性能比较.由表3可以看出,笔者所提算法处理速度是最快的,针对 640×480 的图像,平均处理一帧耗时 0.014 6 ms.

表3 基于裸手的手势识别算法性能比较

由表3可以看出,目前大部分算法是二维的,只有很少算法实现了三维手势识别.与仅有的三维手势识别方法相比,笔者所提算法的识别率较高.图4(b)为统计的3种手势的识别准确率,平均识别率达到92.70%.图3中的数据决定了不同手势具有不同的识别准确率,一种手势的面积与其他手势面积差别越大,其识别准确率越高.手势识别错误通常由以下原因造成:一是摄像机有一定的有效成像范围,超过了此范围手势面积的计算就会出现误差;二是虽然算法中用了色彩均衡来减小环境亮度对手势识别的影响,但较恶劣的环境亮度仍会导致手势面积计算不准确.这里需要说明,笔者提出的算法具有很强的开放性,手势识别数目可以通过两种方式简单添加:一是添加面积与本文识别的手势有较明显差别的手势;二是添加与深度有关的其他手势特征信息,例如手势周长.此种方法可以明显提高手势识别准确率.上面两种方式仅需修改图2中的面积计算模块及三维手势识别模块即可.

笔者提出算法的另一个明显优点是手势识别性能具有较强的鲁棒性.图5和图6为一测试者的手势识别实验结果.图中上方的字表示是哪个摄像机拍摄的图像,“×”表示质心点.图5和图6分别验证了笔者所提算法在手的深度变化及手在平行于成像平面的平面上旋转时都能准确地识别相应手势并同时消除类肤色物体的影响,例如人脸,人脸是在手势识别中最常见、影响最大的类肤色干扰噪声.

图5 手的深度变化时笔者提出算法的性能图6 手不同旋转角度时笔者提出算法的性能

4 总 结

笔者提出了一个利用双目视觉视频的快速三维裸手手势识别算法.基于双目视觉原理,手势面积与手势深度的关系首先被分析,利用此关系及提出的基于极限约束规则的快速立体匹配算法,最终实现了快速的三维手势识别.笔者所提算法具有成本低、识别率高、速度快、鲁棒性强、开放的特点.后续工作是,首先继续提高笔者提出算法的识别性能,包括增加识别的手势数目及提高手势识别准确率;其次是将所提算法应用于人工智能等领域,例如沉浸式虚拟环境体验、机器人交互、家电遥控等.

[1] 马英红, 杨家玮, 惠雷放, 等. 一种新颖的手部运动跟踪系统 [J]. 西安电子科技大学学报, 2012, 39 (1): 79-85.

Ma Yinghong, Yang Jiawei, Hui Leifang, et al. Novel Hand Motion Tracking System [J]. Journal of Xidian University, 2012, 39 (1): 79-85.

[2] Kumar P, Rautaray S S, Agrawal A. Hand Data Glove: a New Generation Real-time Mouse for Human-computer Interaction [C]//Proceedings of IEEE International Conference on Recent Advances in Information Technology. Piscataway: IEEE, 2012: 750-755.

[3] Han Y M. A Low-cost Visual Motion Data Glove as an Input Device to Interpret Human Hand Gestures [J]. IEEE Transactions on Consumer Electronics, 2010, 56(2): 501-509.

[4] Murthy G R S, Jadon R S. Hand Gesture Recognition Using Neural Network [C]//Proceedings of 2010 IEEE 2nd International Advance Computing Conference. Piscataway: IEEE, 2010: 134-138.

[5] Varkonyi K A R, Tusor B. Human-computer Interaction for Smart Environment Applications Using Fuzzy Hand Posture and Gesture Models [J]. IEEE Transactions on Instrumentation and Measurement, 2011, 60(5): 1505-1514.

[6] Yun L, Peng Z. An Automatic Hand Gesture Recognition System Based on Viola-jones Method and SVMs [C]//Proceedings of International Workshop on Computer Science and Engineering. Piscataway: IEEE, 2009: 72-76.

[7] Qing C, Georganas N D, Petriu E M. Real-time Vision-based Hand Gesture Recognition Using Haar-like Features [C]//Proceedings of IEEE International Conference on Instrumentation and Measurement Technology. Piscataway: IEEE, 2007: 1-6.

[8] Sohn M K, Lee S H, Kim D J, et al. 3D Hand Gesture Recognition from One Example [C]//Proceedings of IEEE International Conference on Consumer Electronics. Piscataway: IEEE, 2013: 171-172.

[9] Sato Y, Saito M, Koike H. Real-time Input of 3D Pose and Gestures of a User’s Hand and Its Applications for HCI [C]//Proceedings of Virtual Reality Annual International Sympoisium. Piscataway: IEEE, 2001: 79-86.

[10] 向登宁, 邓文怡. 利用极线约束方法实现图像特征点的匹配 [J]. 北京机械工业学院学报, 2002, 17(4): 21-25.

Xiang Dengning, Deng Wenyi. Image Feature Points Matching Using the Epipolar Line Constraint [J]. Journal of Beijing Institute of Machinery, 2002, 17(4): 21-25.

[11] 贾静, 吴成柯. 秩1约束下基于圆球的相机标定算法 [J]. 西安电子科技大学学报, 2013, 40(2): 1-4.

Jia Jing, Wu Chengke. Rank-1 Constraint for Camera Calibration Based on Spheres [J]. Journal of Xidian University, 2013, 40(2): 1-4.

[12] 汪云飞, 毕笃彦, 黄飞. 一种用于图像分割的等周算法改进 [J]. 西安电子科技大学学报, 2012, 39(2): 87-94.

Wang Yunfei, Bi Duyan, Huang Fei. Improved Isoperimetric Algorithm for Image Segmentation [J]. Journal of Xidian University, 2012, 39(2): 87-94.

[13] Zhang Z Y. Camera Calibration with One-dimensional Objects [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2004, 26(7): 892-899.

[14] Cai J, Goshtasby A. Detecting Human Faces in Color Images [J]. Image and Vision Computing, 1999, 18(1): 63-75.

[15] 陈忠碧, 张启衡. 一种适合于多目标检测的图像分割方法 [J]. 光电工程, 2004, 31(5): 34-37.

Chen Zhongbi, Zhang Qiheng. An Image Segmentation Algorithm Suitable for Multi-object Detection [J]. Opto-Electronic Engineering, 2004, 31(5): 34-37.

[16] 刘焕云, 王军宁, 何迪, 等. 仿生模式识别目标自适应跟踪算法 [J]. 西安电子科技大学学报, 2013, 40(4): 142-148.

Liu Huanyun, Wang Junning, He Di, et al. Research on Biomimetic Pattern Recognition for Object Adaptive Tracking Algorithm [J]. Journal of Xidian University, 2013, 40(4): 142-148.

[17] Bradski G, Kaehler A. Learning OpenCV: Computer Vision with the OpenCV Library [M]. Sebastopol: O’Reilly Media Incorporated, 2008: 405-458.

猜你喜欢
肤色手势摄像机
肤色(外一首)
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
挑战!神秘手势
V字手势的由来
胜利的手势
摄像机低照成像的前世今生
新安讯士Q6155-E PTZ摄像机
如何消除和缓解“摄像机恐惧症”