基于几何特征的静态字母手势识别算法
2014-10-20王景中李萌
王景中,李萌
0 引言
手语是聋哑人使用的语言,汉语手指语亦是手语的一种。我国“汉语拼音手指字母图”中,共有30个不同指式,代表着所有的汉字拼音。研究手语识别可以使聋哑人的生活得到改善。随着计算机技术的广泛应用,图像处理及模式识别技术的成熟,人机交互已成为一种发展需要,因此手势识别又成为多领域多学科的综合产物,具有深远的意义及应用前景[1][2]。
由于边缘信息是图像最为重要的特征之一,许多学者都以边缘检测为基础来对手势识别进行研究。在Hausdorff距离变换空间内进行边缘像素点匹配[3],对手势边缘图像进行欧氏距离变换[4]或是计算边缘梯度直方图[5],然后,进行匹配识别,都是直接利用图像边缘信息作为特征,但是,受光照等影响下造成边缘检测效果不好时,直接影响着识别率,因此,只靠图像边缘信息作为特征稳定率不高。结合边缘检测和图像几何矩的方法[6]进行手势识别,几何矩特征具有稳定性,但是,这一过程会损失原始的边缘信息;提取手势轮廓和凸缺陷[7]作为特征,但是,能应用的手势有限且要求手势与屏幕平行。
本文研究的是静态的汉语拼音30个字母手势识别,采用图像处理与识别方法,同时,应用图像的边缘和轮廓信息,计算多特征匹配识别手势。
1 特征的选择
1.1 边缘的检测
根据高斯噪声模型,理想效果的边缘检测算子需要满足3个条件:第一是低失误概率,即真正的边缘点尽可能少丢失,同时尽可能避免保留伪边缘点;第二是高位置精度,检测的边缘尽可能接近真实的边缘;第三是对每一个边缘点为单像素边缘。为此边缘检测应该遵循以下3个准则:
① 信噪比准则
信噪比越大,提取的边缘质量越高。信噪比SNR定义如公式(1):
式中G(x)代表边缘函数;h(x)代表宽度为ω的滤波器的脉冲响应;δ代表高斯噪声的均方差。
② 定位精度准则
边缘定位精度L定义如公式(2):
式中 G’(x)和 h’(x)分别表示 G(x)和 h(x)的导数,L 越大表明定位精度越高。
③ 单边缘响应准则
为了保证单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点的平均距离D(f’)应满足公式(3):
式中h”(x)为h(x)的二阶导数。
Canny设计了一个边缘检测算法,具体步骤如下:
Step1.首先利用2D高斯滤波模板进行卷积以平滑图像。Step2.利用微分算子计算梯度的幅值和方向。
Step3.对梯度幅值进行非极大值抑制。即遍历图像,结合梯度方向和梯度强度去除真实边缘周围的伪边缘点。
Step4.使用双阈值算法检测和连接边缘[8]。通过设定双阈值使边缘连贯。
[9]中提出了采用计算图像边缘梯度的美国手语(ASL)识别算法,它对比了canny算子,Prewitt算子,Sobel算子,Robert算子和Laplace算子5种边缘检测方法,证明了canny算子最适用于手势的边缘检测及识别。
1.2 图像的几何特征
图像的几何特征是图像分析与识别的主要依据之一。基于几何特征的识别方法降低了算法的复杂度,节省了所需要的存储空间与时间消耗。由于二值图像便于获取、存储和处理,因此为方便的提取图像几何特征,通常需要对图像进行二值化处理[10]。通过二值图像可得到图形轮廓信息,进而可以计算出图形的质心、周长、面积等几何特征,最终结合多个特征来有效地提高识别率。
1.2.1 图像质心[11](center of mass)
对一幅2D的连续图像,f(x,y)≥0,p+q阶矩mpq定义为公式(4):
其中pq为非负的整数,对离散化的数字图像,上述变为公式(5):
当阶数p + q ≤ 3时,mpq存在着实际物理意义:0阶矩(m00)为物体的质量;1阶矩(m10, m01)表示物体的质心;2阶矩(m20, m02 , m11)表示旋转半径;3阶矩(m30,m03, m12, m21)描述物体的方位和斜度。这些矩具有平移、旋转、缩放不变的特性,因此在图像的特征提取和识别上有广泛的应用。利用图像0阶矩和1阶矩可得到图像的质心坐标(ic, jc)为公式(6):
1.2.2 面积
面积是图像总尺寸的度量,是描述图像区域大小的最基本的特征,且只与区域的边缘有关,与其内部灰度值的变化没有关系。对于二值图像,区域面积最简单的度量方法是统计目标轮廓中的像素点数。假设目标区域f(x,y)的大小为M*N,用逻辑1表示目标部分,逻辑0表示背景部分,则面积的计算公式如公式(7):
2 手势识别系统的设计
手势识别系统实现框架流程如图1所示:
图1 手势识别系统实现框架流程图
如图1所示,手语识别系统设计主要分为两大部分。第一部分:首先是创建手势样本集,对样本集进行图像处理,特征提取,最后构建手势特征库。
第二部分是建立在第一部分基础之上的,针对的是测试集的单张手势图像。手势图像经过同样的图像预处理与特征提取,将得到的手势特征与手势库进行对比计算,从而得到识别结果。
2.1 图像预处理
图像预处理包括肤色检测、二值化、轮廓提取、去除非目标区域、图像缩放等处理,可以有效的截取图像中的手型区域。
Step1.肤色分割。把RGB空间转换为HSV空间,分别设置HSV参数范围[12],进行肤色检测与分割。
Step2.图像二值化。把肤色区域置为白色,非肤色区域置为黑色,从而得到二值图像。
Step3.形态学膨胀运算。消除噪声干扰,平滑图像。膨胀运算在计算机上的实现可以看成是一种向量运算,即将集合X和集合B都看成向量,则公式如公式(8):
Step4.最大轮廓检测。根据得到的二值图像得到轮廓信息,比较每个轮廓包含形状的面积,选出具有最大面积的轮廓,记录下轮廓及其边界信息。
Step5.得到目标区域。根据上一步的记录的边界条件,把边界以外的区域去除,从而得到手型区域。对于原图与二值化过后的手势图像都进行区域分割。如果手型区域不是图像中最大的部分,即在复杂背景下还需要考虑其它方法。
Step6.图像缩小归一化。由于每幅图像的手型区域大小并不相同,因此要把得到的图像进行归一化,把其缩放成64*64大小的位图,可以减少图像的数据量与冗余度,增强它的平滑度和清晰度,以便进一步处理。
Step7.图像灰度化。经过上述图像预处理后,可以得到d大小64*64的灰度图像。
经过图像预处理这一过程,可以分别得到大小 64*64的手型区域的灰度图像与二值图像。其中灰度图像用于后续特征提取的边缘检测,二值图像用于提取轮廓计算几何特征。
2.2 特征的提取
本文研究的特征以边缘信息与轮廓信息特征为基础,计算样本图像的特征值生成相应的特征库,即边缘特征库(记为SL1)与几何特征库(记为SL2),具体计算方法如下:
2.2.1 应用边缘信息
将图像预处理过后的64*64大小的灰度图像进行canny边缘检测,然后进行2次3*3区域模板的膨胀运算,使得边界点扩散至邻域里。得到膨胀后的图像作为边缘模板,是手势特征库中的边缘特征库SL1。
测试集图像经过边缘检测后的图像 ftest(x,y),与特征库中的边缘模板图像f (x,y)进行逻辑与运算如公式(9):
式中g(x,y)为运算结果图像的二维函数。
通过逻辑与运算可以得到两个子图像的相交子图像,计算测试集图像与样本集图像边缘重合比例,作为特征feature1(记为f1),其公式形式如公式(10):
2.2.2 应用几何信息
Step1.将图像预处理过后的64*64大小的二值化图像提取轮廓。
Step2.计算图像的几何特征值集合 S,包括:轮廓所包区域的面积area1,纵向中线右边的面积area2,图像的质心点坐标pc(x, y),质心点与轮廓上点的最远距离作为半径r,质心点与轮廓的水平割线的长度 d1,质心点到左轮廓等高点的距离d2,质心点到上轮廓纵向距离d3。上述步骤以手势u为例,如图2所示:
图2 几何特征提取过程
依照以上步骤将所有样本的几何特征集合S写到XML文件中,作为各种手势图像的几何特征库(SL2),对于测试集图像按同样的过程进行计算,得到几何特征值集合(记为Stest),然后将Stest与SL2中各个手势特征集合中特征值逐一计算距离,其整体空间距离为特征feature2(记为f2),公式形式如公式(11)~(18):
其中,
在计算过程中已将所得特征各值进行归一化至0~1区间内,使得特征值标准化,影响率减小。
2.3 特征匹配识别
本手势识别系统针对汉语拼音30个字母手势采集了3套手势库(3套分别为不同人的手),每套手势中每个字母手势录5张,3套手势库共450张手势图。图像格式为BMP图像,大小为640*480。第一套手势作为样本集,其余两套手势作为测试集。
在手势识别系统中,测试集中任意一张图像按2.2中介绍的特征提取与计算方法,与特征库中的对于值进行运算,得到 N(特征库中样本数量)个匹配值(match),定义公式如公式(19):
上式中w1与w2为边缘特征与几何特征的权值,且需要满足|w1|+|w2|=1。由于边缘重合率f1越大,说明该测试图像越接近样本,与样本几何特征的空间距离f2越小,说明该测试图像越接近样本,故参数还应满足w1>0,w2<0。
得到的 N个匹配值中,最大值的样本序号所的对应的字母手势即为识别结果。
3 实验结果
根据本文算法,针对汉语拼音30个字母手势做了大量实验来测试其对识别率的影响。部分字母手势经过图像预处理后,得到的手型区域灰度图像如图3所示:
图3 图像预处理之后的手势图像
3.1 边缘逻辑运算
对于用图像边缘作为特征来讲,无论是将边缘进行曲线拟合或是计算欧氏距离等,都损失了原始的边缘信息。本文提出手势边缘图像与样本边缘图像进行逻辑与运算,直接利用了边缘信息且没有任何损失。通过与运算得到两个手势边缘的相交子图像,可以直观的反应出手势的重合情况。部分边缘特征库SL1中的图像如图4所示:
图4 部分边缘特征库中的手势图像
将测试集图像进行图像预处理,特征提取后,得到其边缘图像作为原图,将样本集的边缘特征库中边缘图像作为背景图像,让原图分别与每个背景图像做与运算。以手势 G为例,运算效果如图5所示:
图5 边缘图像与运算的运行结果
经过试验计算,测试集的手势 G与样本特征库对应的手势G的模板边缘重合率为80%,对于与G相近的手势F,其边缘重合率为 73.16%。因此,边缘运算可以识别出一定的手势。对于边缘相近的图像可能会出现重合率相近的情况,因此同时计算了图像的几何特征来辅助识别。
3.2 手势识别
在实验结果中发现当同一手势的测试图像与样本图像特征对比时,f1会比f2大一个数量级,为了平衡两个特征值之间的数值差距的产生的影响,所以公式(19)中相应的权值需要满足|w1|<|w2|。权值w1与w2取不同的值,对识别率影响较大,因此,需要确定最佳权值。最佳权值通过实验进行确定。不同权值下测试集中字母手势识别率如表1所示:
表1 不同权值下测试集中字母手势识别结果比较分析
从表1可以看出,当权值w1与w2分别为0.3和-0.7时,识别率最佳,达到93.33%。对于测试集2而言,识别率达94.0%。
参考文献[6]中提到的应用几何矩和边缘直方图作为特征来识别30个字母手势,识别率达到90%。相较而言,本文算法有效的提高了手势识别率。
4 总 结
本文针对汉语拼音30个字母手势识别进行研究,提出了基于多特征匹配的识别算法,通过一系列的数字图像处理的方法来进行图像特征提取和分类。实验证明该方法充分利用了图像的边缘和轮廓信息,可以简单高效地进行手势识别,对图像的平移缩放具有稳定性。对于光照及手势过度旋转对识别存在着一定的影响,后续研究的重点将放在自适应的手势识别系统上。
参考文献
[1]高伟, 郭瑾, 曾碚凯.手语研究的方向与现状[J].电子技术应用, 2002, 11: 000.
[2]武霞, 张崎, 许艳旭.手势识别研究发展现状综述[J].电子科技, 2013, 26(6): 171-174.
[3]张良国, 吴江琴, 高文, 等.基于 Hausdorff 距离的手势识别[J].中国图像图形学报 (A 辑), 2002, 7(11).
[4]杨全, 王民.基于 Euclidean 距离的手势识别[J].微计算机信息, 2007, 9: 265-266.
[5]孙丽娟, 张立材.基于边缘梯度方向直方图的静态手语识别[J].微电子学与计算机, 2010, 27(3).
[6]何阳清, 葛元, 王林泉.应用几何矩和边缘检测的手势识别算法[J].计算机工程, 2005, 31(15): 165-166.
[7]翁汉良, 战荫伟.基于视觉的多特征手势识别[J].计算机工程与科学, 2012, 34(2): 123-127.
[8]Canny J.A computational approach to edge detection [J].Pattern Analysis and Machine Intelligence, IEEE Transactions on, 1986 (6): 679-698.
[9]Thepade S D, Kulkarni G, Narkhede A, et al.Sign Language Recognition using Color Means of Gradient Slope Magnitude Edge Images [J].Intelligent Systems and Signal Processing (ISSP), 2013, 216 – 220.
[10]冯伟兴, 唐墨, 贺波.Visual C++ 数字图像模式识别技术详解[M].机械工业出版社, 2010.
[11]王冰, 职秦川, 张仲选, 等.灰度图像质心快速算法[J].计算机辅助设计与图形学学报, 2004, 16(10):1360-1365.
[12]Zhang X N, Jiang J, Liang Z H, et al.Skin color enhancement based on favorite skin color in HSV color space [J].Consumer Electronics, IEEE Transactions on,2010, 56(3): 1789-1793.