2. College of Electromechanical Engineering, Dalian Nationalities University, Dalian 116600, China
生物识别技术种类众多,研究较多的有掌纹、指纹、虹膜、脸型以及手指静脉等[1]。与这些生物特征相比,手形受用户的可接受程度最高, 而且其还有对采集设备要求低、速度快、特征稳定性高的独特优势。手形特征还具有易与其他生物特征相结合的特点,手形和掌纹的特征融合就是目前的研究热点之一, 由此手形生物识别显得更有研究价值。
手形识别[2-4]技术主要是利用手指的长度和宽度、手掌的长度和宽度、手掌的表面积区分不同的个体。手形匹配分为手形轮廓点集匹配和手形特征矢量匹配2种方法。由于手形轮廓点集匹配方法速度慢, 特征矢量匹配速度快, 所以常采用特征矢量匹配的方法。
特征点定位[5-10]的准确性直接影响到识别的精确性,所以特征点的定位在手形识别中就显得尤为重要。目前特征点定位方法主要有圆盘法、曲率法、直线法和直线拟合法[11]等, 针对圆盘算法中存在的可实现性不强、运行速度慢的缺点,在该算法的基础上提出了基于圆盘极值点的特征点定位算法。该算法将圆盘法的主体思想由手形二值图像改用到手形轮廓图像中,并改进定位的方法,实验表明该方法可以快速准确的定位特征点的位置,具有广阔的适用范围。
1 图像预处理及轮廓提取图像预处理是手形特征点定位的前期处理阶段,所用图像为摄像机自行室内无接触式采集图像和香港科技大学手形库图像,处理过程如下。
1) 图像灰度处理。首先,对读取的手形图像进行灰度化处理,绘制灰度图像的直方图,如图 1所示。
找出灰度集中范围,利用式(1)对灰度图像进行灰度增强,使图像更加清晰。
(1) |
式中:a、b分别为灰度图像直方图中灰度值集中分布的左右边界点;x、y分别代表灰度增强前后的灰度值。
2) 确定图像分割阈值,进行二值化。由采集的图像可以看出图像由上向下逐渐变暗,为获得更好的二值化效果采用局部阈值二值化。由式(2)得每一部分的分割阈值tk,其中m1、m2分别代表每一部分图像的起始行和结束行所在行数,n代表图像的总列数。根据各个部分分割阈值,对各个部分进行二值化,二值化公式如式(3)。
(2) |
(3) |
为获得更好的二值图像,对二值化后的图像再采用半径为1的圆盘进行腐蚀膨胀运算,剔除小区域,得到二值化手形图如图 2(a)所示。
3) 边界跟踪。根据8邻域边界跟踪算法获取手形边界轮廓,如图 2(b)所示。
2 特征点定位 2.1 圆盘算法传统圆盘算法是针对二值图像的操作,原理如下:计算以轮廓点为中心、半径为R(待定)的圆盘内,背景区域和目标区域(手形区域)两者的面积,然后通过比较两者面积的大小或者像素个数的多少可以确定手形特征点的位置。圆盘算法原理如图 3所示,一个圆盘在轮廓线上移动,可以看出当圆盘在直线上时,背景区域和目标区域在圆盘上各占一半。当圆盘转到拐点的时候,背景和目标区域总有一个大于圆盘面积的一半。通过该方法能够找到手形图像指尖点和指根点所在区域。
在通过二值化得到的手形图像中,目标区域为白色区域,其像素灰度值为1;背景所在的区域是黑色的,像素灰度值为0。依照该算法的思想,选择一个合理的圆盘遍历手形轮廓边缘点的像素,计算出圆盘内背景和目标区域的像素个数。然后设定一个合理的阈值,通过对比统计的像素个数与阈值的大小来判断手指的指根点和指尖点区域。
根据以上原理做了大量实验,发现效果并不理想,对同一张图像的特征点提取结果如图 4所示,其中,图 4(a)半径偏小,图 4(b)半径偏大。分析原因认为由于每个人的习惯不同,手指分开的角度也不同,圆盘半径R的大小就不易确定,如果确定较大可能就会受相邻手指的影响不能准确的找到特征点的位置,如果较小可能就会造成特征点的丢失。
2.2 圆盘极值算法针对原有圆盘算法的不足,提出了圆盘极值算法,与原有圆盘算法不同的是,新算法是以手形轮廓图像作为操作对象,基本原理如下:通过对图 3的分析,可以看出当圆盘在直线上移动时,在圆盘内有些目标区域和背景区域的点在圆心的上方,有些在圆心的下方;而当圆盘转到上凸区域的拐点时,在圆盘内目标区域的所有点都在圆心点的下方;当圆盘转到下凸区域的拐点时,在圆盘内背景区域的所有点都在圆心点的上方。再通过分析图像的轮廓图(图 2(b))可以看出,假设在某一手指的指峰处有一点T,则在点T的周围很大一个范围内的邻域内的点都在它的下方或者同一行,对于指谷也有着相似的特点,唯一不同的是邻域内的点在指谷点的上方或者同一行,而且只有特征点位置的点有这一特点,基于这一特点提出了圆盘极值算法,具体做法如下。
2.2.1 特征点定位利用圆盘极值算法为准确快速地定位特征点位置同时也为后期确定特征点属于哪根手指做准备,特意将指峰和指谷分别存放。由于大拇指灵活性较大,在无接触采集图像时很容易造成大拇指不与其他手指在同一平面内,因此不对大拇指进行特征点定位,这样也可以减少计算时间。由于图像中符合算法思想的位置数目是确定的,又由图 2的轮廓图像可以看出大拇指的指峰和指谷均是指峰中的最低点和指谷中的最低点。利用此特点就可以轻易地去除大拇指区域。
特征点定位的具体步骤:
1) 创建7个空数组(Si[](i=1, 2, …, 7))用来存放满足条件的属于同一根手指的指峰或指谷的特征点,前4个数组存放指峰点其余存放指谷点。
2) 图像由上向下、由左向右进行扫描,当遇到邻域内轮廓点均不在其上方的点时记录此点行数m。
3) 对第m行扫描得到此行所有满足条件的点,若相邻2点满足式(4)(ni代表第i个点的列坐标),则存入不同的数组,否则存入相同数组。
(4) |
4) 取每个数组的中间值作为特征点,分别定义为点Ti(i=1, 2, …, 7)。其中前4个是指峰后3个是指谷。
5) 将所有指峰点按照列坐标由大到小排列,则分别代表的是食指、中指、无名指和小拇指的指峰点,并用T1、T2、T3、T4对应表示。所有指谷点按照同样方式排列,则分别代表食指中指指谷、中指无名指指谷和无名指小拇指指谷,用T5、T6、T7对应表示。图 5为特征点定位仿真图。
2.2.2 边界点和指根点定位两侧边界点的定位是指食指右侧的边界点T8和小拇指左侧的边界点T9,根据两点间距离公式计算T1和T5的距离|T1T5|,以点T1为圆心,|T1T5|为半径画圆,与手指右侧的交点即为边界点T8,左侧边界点T9的搜索与此相同,以T4为圆心,|T4T7|为半径画圆。
接下来是定位指根点,由前面的工作已确定指根两边的点,根据下面2个中点坐标公式(5)、(6)可分别求得食指、中指、无名指、小拇指的指根点(pi、qi分别为横纵坐标)分别记为C1、C2、C3和C4。
(5) |
(6) |
1) 在上面工作的基础上连接每根手指的指峰和指根点,根据两点间距离公式分别求出4根手指的绝对长度|T1C1|、|T2C2|、|T3C3|、|T4C4|。
2) 对于食指,以点T1为圆心,分别以|T1C1|的1/3和2/3为半径画圆,圆分别在食指两侧交于2点K1、K2、K3、K4。连接两侧相应的点,则两点间的距离就是该位置手指的宽度|K1K2|、|K3K4|,取2个宽度的平均值作为食指的宽度矢量W1,用相同的方法可得到中指、无名指、小拇指的宽度矢量W2、W3、W4。
根据以上得到的手指绝对长度和绝对宽度作为特征矢量,采用欧氏距离作为认证决策。计算待测用户的特征矢量{xi, i=1, 2, …, n}与注册用户之间的特征矢量{xi′, i=1, 2, …, n}的欧氏距离。当得到欧氏距离D小于设定的阈值, 判断为同一人的手, 否则判断为不同人的手。其中N表示特征向量的维数,计算欧式距离的公式为
该距离越小, 表明2个特征向量越贴近, 当该距离小于某一阈值时,即可认为两者达到匹配标准。
4 实验结果与分析分别用2个实验验证算法的可行性和优化效果。
实验1 对算法的可行性验证。为使数据更有说明性,采用香港科技大学手形图像库和自行采集图像,分别进行特征点定位和手形识别实验。从图库中随机抽取50人,每人10张(1张样本图像、9张测试图像),分辨率640×480,共500张图像。每个特征向量共进行C5002=127 245次匹配实验,其中类内匹配5×C102=2 250次,类间匹配127 245-2 250=124 995次,同理从自行采集的图库中取,20人每人5张右手图像,1张样本图像、4张测试图像,共100张图像(图像分辨率524×394)实验在普通个人电脑上,用MATLAB编程仿真,实验结果如表 1。
由表 1可以看出,算法对权威图库特征点定位的成功率为98.80%,在此基础上的匹配率为87.13%;对自行采集图库定位成功率为98.00%,在此基础上的匹配率86.75%。分析部分定位失败的原因是由于图像预处理获得的轮廓不理想;另外由实验可以发现对两种图库(数据库图库和自行采集的图库)进行的实验在运行时间及匹配率上都有细小的差别,通过仿真分析可知这是由于自行采集的图库是在室内运用高精度摄像头无接触式采集的,与数据库图库相比实验设备比较简陋,采集的图像噪声较多,从而降低了图像处理速度和匹配率。同时,自行采集图库的无接触式采集方法增加了手形的灵活性,也对手形匹配率有一定的影响。综上所述该算法的特征点定位具有有效性和可行性。
实验2 验证改进算法的先进性和改进算法对原有算法的改进效果。图库同样采用香港科技大学手形图像库。从图库中选取与实验1同样数量的图像,对实验图库分别进行圆盘算法、改进算法和文献[5]中的直线拟合算法下进行定位实验,实验结果如表 2所示。另外选取手指弯曲图像进行改进算法和直线拟合算法下的定位仿真实验,仿真结果如图 6所示。
由表 2可以看出改进后的算法特征点定位成功率明显提高,且运行时间大幅度减小,这主要是由于算法克服了原有算法受手指张开程度影响太大、半径大小和阈值难以确定的局限性;此外,由图 6可以看出,直线拟合算法在对手指有弯曲或者同一根手指粗细变化明显的手形定位效果较差,而改进型圆盘算法对此种情况下的手形图像依然具有很好的定位效果,表 2中2种方法的特征点定位成功数的差距,也是改进算法先进性的一种反应。实验结果表明算法比原有算法更具有适用性和实用性。
5 结束语文中提出的圆盘极值算法,不仅准确率高、速度快、算法简单而且解决了传统圆盘算法阈值和半径难以确定的难题,特征定位效果显著提高,算法还降低了对图像采集的要求,同时提高了用户的舒适性,对被采集者手指张开程度没有苛刻要求,对手指有缺陷(弯曲、部分缺失)的用户也适合此算法。
[1] | 胡戎翔.基于掌纹和手形的生物特征识别方法[D].合肥:中国科学技术大学, 2012:7-50. http://www.cnki.com.cn/Article/CJFDTotal-ZNGD201603010.htm |
[2] | HU Rongxu, JIA Wei, ZHANG D, et al. Hand shape recognition based on coherent distance shape contexts[J]. Pattern recognition , 2012, 45 (9) : 3348-3359 DOI:10.1016/j.patcog.2012.02.018 |
[3] | 苑玮琦, 汤永华, 荆澜涛. 手三模态融合识别方法[J]. 仪器仪表学报 , 2014, 35 (12) : 2746-2754 |
[4] | 荆澜涛.非理想条件下手形识别方法的研究[D].沈阳:沈阳工业大学, 2014:37-50. |
[5] | 苑玮琦, 李燕. 手形特征点定位方法[J]. 计算机应用 , 2010, 30 (12) : 3311-3313 |
[6] | 桑海峰, 武红娇, 何大阔. 手形、掌纹和掌静脉多特征融合识别[J]. 仪器仪表学报 , 2015, 36 (6) : 1356-1362 |
[7] | XU Shuang, SUO Jidong, ZHAO Jiyin. Research on the location and segmentation technologies in palmprint identification[J]. Key engineering materials , 2011, 474-476 : 782-785 DOI:10.4028/www.scientific.net/KEM.474-476 |
[8] | 闫琳, 史彦龙. 基于手指轮廓的手形验证算法[J]. 计算机安全 , 2009 (1) : 73-76 |
[9] | ZHAO Fuqing, LI Xinying, ZHANG Qiuyu, et al. Polar-radius-invariant-moment based on key-points for hand gesture shape recognition[J]. Journal of software , 2012, 7 (1) : 88-94 |
[10] | XIONG Wei, TOH K A, YAU W Y, et al. Model-guided deformable hand shape recognition without positioning aids[J]. Pattern recognition , 2005, 38 (10) : 1651-1664 DOI:10.1016/j.patcog.2004.07.008 |
[11] | 苑玮琦, 马学亮. 手形特征点定位方法的研究[J]. 机械工程与自动化 , 2012 (6) : 209-211 |