指纹识别的应用与实现
网络安全
指纹识别的应用与实现
利国烟1 许颖频2
1广东经济管理学院 广东 5102622广州99数码科技有限公司 广东 510620
摘要:本文论述了指纹识别突出特点,指纹采集和指纹密码识别原理,技术实现。指纹识别技术目前已广泛用于金融领域。随着信息化技术的不断发展,计算机安全技术和身份认证对人们越来越重要。关键词:指纹;指纹采集;传感器;指纹图像;指纹识别
0 引言
在银行保险柜里提供指纹识别保险箱、柜给客户使用。银行在经营过程中,进行个人身份验证是一项必不可少的内容。比如客户在办理取款业务时,必须确认其是否为账户存款的合法拥有者,以防止客户存款被他人冒领银行职员进入计算机系统,也要对其身份进行确认,以防止非法操作。指纹识别处理在银行业务验证和安全防范中起到重要的作用,取得了不可估量的经济和社会双重效益。
指纹识别分别有认证和授权两种方式,其实分别对应的是“已知他是谁,验证是不是他”,
“找出他是谁”。在银行保险等业务中,除了指纹往往还有别的辅助手段,比如已经知道柜子的号码,已经使用钥匙或者卡打开第一个开关等,所以仅仅需要验证这个人是不是合法身份。这样我们需要两枚指纹模块进行比较就可以,速度也很快。
作“印章”使用。
2 指纹采集和指纹密码识别原理
指纹识别技术主要有,采集指纹图像、提取特征、保存数据和匹配。
首先,通过指纹读取设备读取人体指纹的图像,取到指纹图像之后,要对原始图像进行预处理。其次,指纹辨识软件建立指纹的数字表示特征数据,是一种单方向的转换,可以从指纹转换成特征数据但不能从特征数据转换成为指纹,而两枚不同的指纹不会产生相同的特征数据。软件从指纹上找到被称为“节点”的数据点,也就是那些指纹纹路的分又、终止或打圈处的坐标位置,这些点同时具有七种以上的惟一性特征。因为通常手指上平均具有70个节点,所以这种方法会产生大约500个数据。
有的算法把节点和方向信息组合产生了更多的数据,这些方向信息表明了各个节点之间的关系,也有的算法还处理整幅指纹图像。总之,这些数据,通常称为模板,保存为1K
1 指纹识别的突出特点
(1)高稳定性。指纹具有很强的稳定性,它们的形成依
赖于胚胎发育时期的环境,从胎儿指纹的完全形成到人死后,大小的记录。最后,通过计算机模糊比较的方法,把两个指纹指纹的纹线类型,结构、统计特征的总体分布始终没有明显的变化。指纹是伴随人一生的最稳定的生物特征之一。
(2)惟一性。科学实验和无数的事实证明,指纹具有明显独特的惟一性,并且纹理本身非常复杂,其复杂程度足以提供用于鉴别的足够证据,包括双胞胎在内都不可能有相同的指纹,任何两个人指纹相同的概率小于十亿分之一。
(3)高可靠性。高稳定性和高惟一性决定了指纹识别的高可靠性。要想再增加指纹识别的可靠性,只需要登记更多的指纹即可满足,而随便一个人都可以毫不费力地提供10个手指的指纹信息。
(4)易采集性。指纹与生俱来,随身携带,不需记忆。扫描指纹的速度非常快,采集指纹时只要将手指平放在指纹识别器上,1,2秒钟即可完成,免去了记忆密码、丢失印章、遗忘密码和印章等烦恼。
(5)伪造难、破译难。由于指纹识别具有上述特点,识别指纹时必须将真正的手指与指纹采集头接触,因此伪造、假冒、攻击、破译指纹的难度就变得相当大。指纹一直被人们用
的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果.
⒉1 指纹图像的采集
指纹识别的第一步自然是先采到指纹。衡量指纹采集端设备的指标有很多个:
采样面积:和手指接触的面积大小,这个不一定很重要的指标,适中就好。
分辨率:衡量采集图像的精细程度,一般以dpi作为单位,如果分辨率低,采样的图像会出现本来密集的脊线连成一大块,像墨汁滴在纸上一样,很难分辨出这原来是一束脊线。但如果分辨率太高,采样的数据太大,处理的速度会变慢,如果先经过缩小处理,往往会变形。
灰度等级:希望得到理想的处理模拟信号。经过AD转换之后的数字,AD转换成几位的深度。其实最好是一个二值的图像就可以了,因为处理这些灰度实在是浪费时间。但也有一些算法是把原始图像先滤波再进行二值化。
采样速率:主要是每秒能采集多少枚指纹,只要他采集
作者简介:利国烟(1949-),男,广东经济管理学院工程师,主要研究方向:计算机应用。许颖频(1972-),男,
广州99数码科技有限公司工程师,主要研究方向:网络安全。
62
网络安全技术与应用2005.8
网络
安全
一枚指纹的时间不慢就行了。
传输速度:一张图像传得快点总是好的。还要视乎我们的处理是PC还是嵌入芯片。
接口:目前的接口有CPU接口,SPI,USB口等。物理形状:这个比较重要,一个易于安装的物理外形,可以省却一笔开模费。
供电:市面上常用的大凡芯片就可以了。
目前指纹识别中,大概有两种采集方案,一种是光学摄像头的,一种是CMOS电容阵列的。
光学摄像头的方案,需要一个全反射棱镜和一组成像镜头,体积比较大。但目前的成像镜头和CCD/CMOS芯片相当成
在人们的心目中指纹是不变的生物标识。但事实是否这么理想呢。除了由于年龄的变化,指纹面积大小变化外,最影响采集的莫过于,这主要由于工作和环境引起的:比如,手指被弄脏,手指有刀伤、疤、痕,干燥、湿润、指纹蜕皮或撕破等。图像增强能减弱噪声,增强脊和谷的对比度。想得到比较干净清晰的图像并不是容易的事情。为这个目标而处理指纹图像所进行的操作是一个适合,匹配的滤镜和恰当的阀值。指纹表面不是平整的,而且皮肤表面是有皱纹的。这些皱纹也是周期性变化的,要求一个算法能解决所有问题似乎不太可能,因为很多的时候自己看到采下来的图形也不太可能辩认准确。有些人指纹间隙很小,如果传感器分辩不够高,将很难分离出
熟,像家庭常用的USB摄像头就可以用。市场上很容易买得到,来。另外,由于传感器的干扰会产生许多意想不到的变化。比所以价格比较低。现在市面上出售的摄像头往往在30万像数以上,所以它的分辨率很高。它的缺点是由于有环境光的影响,而且经过多重反射它的成像有很多的干扰。所以要变成二值图像要经过很多的处理,这样就不适合进行嵌入应用,但我们相信是有办法克服的。其次是,如果手指头非常干燥或者是沾满灰尘,它将只能做到残缺的很厉害的图像。它的原理是如果没有手指的存在,光源的光线通过全反射棱镜照射如CCD镜头,如果手指接触镜头,那么将改变那一点的折射率,光线进入镜头就有变化。这样就能拍摄到一幅指纹图。图1是用市面上出售的USB摄像头拍摄的效果。
CMOS阵列的方案,我们所知道的拥有CMOS芯片的有三家公司的产品,Fujitsu的MBF系列,ATMEL和FingerPrint的线性扫描系列。除此之外还是有很多别的选择,如Security first,但
如CMOS传感器总在秋冬季节,皮肤干燥时往往采下来的图像很淡,但如果手汗很多,采下来又是黑色的一团,但光学传感器就没有那么敏感,实际上光学传感器拍下来的图像相当光滑平整,其实用来处理再好不过,而且价格过低,只是体积太大。所以用于机器识别的算法最好还是采用两个大拇指的指纹,它们的纹理比较明显。如果一个手指头蜕皮,可以使用另一个手指头。
⒉3 图像处理算法步骤
指纹识别算法,分为以下步骤:采集 → 二值化 → 滤波 → 取特征点(以及中心点)→ 编码→指纹特征值对比。这里要提到两枚指纹是怎么认定是同一个指纹,人工识别就是直接蒙印两个图像如果发现吻合。吻合的部分越多自然越匹配。如果图像仅仅是些碎片,那就要计算匹配的特征点,如
都没有接触过。CMOS的传感器分为两大类,一类是面传感器,分叉、端点、浅等。都是特征点,如果吻合特征点超过一定数另一类是线列传感器。面传感器就是以整个面来接触手指,采集的是1:1的图像。线列传感就是分段采集图像再拼接起来的方法,一般呈现为一个条状,把手指在上面主动滑扫然后拼
量(比如6个)那就认定他们是同一个指纹。我采用的方法是把特征点找出来,再把中心点找出来,把特征点位置进行编码,进行匹对。这个算法在采集和二值化的过程依赖于传感
接。CMOS阵列的传感器的原理是每个点都相当于一个电容,器,如果不同的传感器采集部分需要修改,二值化算法仅仅需测量接触点的电荷就知道有没有接触。像大多数半导体传感器那样,它的优点是敏感,体积小。但也如大多数半导体传感器一样存在着温漂和易受电磁干扰,它本身就能产生不少噪声信号。这些噪声信号有些呈现出一个个小黑点或者小白点散落在图像中。而且这种一比一的图像采集,如果分辨率不高,而且手上的脊线比较密集的,那采集出来的图像会连成一块。另外CMOS传感器对接触面的不平整反应得比光学镜头强烈,很多脊线在光学镜头拍下来是连续的,但CMOS传感器反应出来是断断续续的。这样一来如果手指褪皮的话采集的图像比较偏离原来的图像。这些问题只有通过算法来解决它。指纹应用中还有一个经常提到的活体指纹提取,可以检测指纹本身的温度,血液的颜色(光照射)等,其实活体与否的检测相对来说比较简单,但增加检测器件涉及到机具的设计,还需要事先考虑好。图二是采集的指纹图像。
图1 不同的指纹
要修改一些参数。采集的算法我就不描述了,不同的传感器差异很大。
⒉4 图像二值化
由于图像颜色是不纯净的,没有手指在都有些斑纹,而且手指按得轻重不一,间隙问题有汗渍水渍等阴影,如果仅仅把每点的灰度与一阀值对比,大于时则有小于则无是讲不通的。
下面是采集到的一副图像,图2是它某一行的灰度变化图。这是成灰度变化是反向的,高度低的是黑色,高度高是白
2005.8
⒉2 采集指纹图像特点
网络安全技术与应用
63
网络安全
bwf=0;
if (a<=120)//0x78 bwf=1; } }
if (bwf){
SetPixel(hdc,j+300,i,0); } else
SetPixel(hdc,j+300,i,0xffffff); bw[j][i]=bwf; pa=a; } }
色。从图上清楚看出这样的规律,一个山峰对应一个白斑,一个深谷对应一个黑斑。自然我算法是把这个规律反映出来就是了。以下是源代码。
后面的滤波、提取特征点编码等步骤不再详述。
图2某一行的灰度变化图
for (i=0;i<256;i++){ for (j=0;j<=255;j++){ col=GetPixel(hdc,j,i); if (col!=CLR_INVALID) {
a=(col)&0xff; bw[j][i]=a; } else
bw[j][i]=0; } }
for (i=0;i<256;i++){ bwf=0;
sumdelta=0;
for (j=0;j<=255;j++){ a=(bw[j][i]&0xff); if (j==0) { bwf=0; }
else if (j>=1) { deltaa=a-pa;
if (sumdelta*deltaa>=0){//同向 sumdelta+=deltaa; }
else sumdelta=deltaa; if (sumdelta>14) { if (a>128){ bwf=0;
sumdelta=0; } }
else if (sumdelta<-14){ if (a<=160){ bwf=1;
sumdelta=0; } } else{
3 总结及展望
生物特征识别是一个引人注目的问题,它是证明个人身份的根本方法,也被认为是最好的生物认证方法。众所周知.世界上没有两个完全相同特征的人,没有两枚完全相同的指纹。因而,指纹是一种随身携带的特殊“印章”,正因其“人有各异,终身不变,不怕丢失,铭记在身”的特点,被世界公认为个人身份识别中最可靠的依据。指纹识别技术不仅免除了人们记忆密码,预留印鉴的烦恼,而且方便快捷,只须手指轻轻一按,立即便可完成身份鉴别。
自动指纹认证系统是在模式识别的理论基础上,结合数字图像处理技术,应用计算机系统实现。根据现代毒码学技术和指纹识别技术的发展,这种机制完全能够达到网上银行所要求的安全性和有效性。
由于指纹等生物特征的不可复制性,利用指纹等人类自身生理或行为特征进行身份认证的生物识别技术,是最可靠的身份鉴别手段。网上交易需要买卖双方验明正身,特别是网上进行的国际贸易、电子商务,更需要有效的技术来鉴定真伪。在国外,指纹识别技术目前已广泛用于金融领域。随着信息化技术的不断发展,计算机安全技术和身份认证对人们越来越重要。而随着基于个人特征的身份认证技术的不断完善和身份认证设备价格的下降,可以预见,生物特征认证技术将在互联网通信安全、金融证券、政府机构、军事安全、电子商务等领域具有更加广阔的应用前景。参考文献
[1]罗希平,田捷.自动指纹识别中的图像增强与细节匹配软件学报.2002.1.3.
[2]段少雄,田捷,李恒华.高效指纹考勤系统的研究与设计.计算
64
网络安全技术与应用2005.8