数字图像处理指纹识别系统.docx
《数字图像处理指纹识别系统.docx》由会员分享,可在线阅读,更多相关《数字图像处理指纹识别系统.docx(13页珍藏版)》请在冰豆网上搜索。
数字图像处理指纹识别系统
数字图像处理在指纹识别技术中的应用
摘要
随着信息技术的和网络技术的发展,信息安全越来越引起人们的重视。
为了保护自身的信息、资料以及财产的安全,许多场合都需要对使用者、来访者进行身份识别。
传统的利用密码、证件作为身份识别的方式具有易遗忘、易破解、易丢失、易伪造等特点,已不再符合现代数字社会的需求。
指纹,作为人体独一无二的生理特征,它的纹理复杂度可以提供用于识别的足够特征,具有极高的安全性,并且指纹还具有易获取、无侵犯性、唯一性和不变性等优点,使其成为生物识别技术中的焦点。
基于指纹识别技术的身份识别系统以其独特的技术优势和成本优势正广泛被应用到各个场合。
指纹图像预处理是指纹识别的前提,它的好坏直接影响到指纹识别的成败,但由于指纹图像降质带来的困难,并根据指纹图像的特征提出了合理的假设,再根据假设提出了增强指纹图像的算法,这些算法处理效果好,能有效地解决指纹图像的预处理问题。
关键词:
指纹图像预处理;图像增强;腐蚀;二值化;细化
一、指纹识别技术概述
1.1概述
生物识别技术(BiometricIdentificationTechnology)是利用人体生物特征进行身份认证的一种技术。
由于每个人的生物特征都有与其他人不同的唯一性和在一定时期内不变的稳定性,不易伪造和假冒,所以利用生物识别技术进行身份认定,安全,可靠,准确。
常见的生物识别技术主要有指纹、脸形、虹膜、视网膜、手写体、声音、掌纹、手形和脸部热谱图9种,指纹识别是生物识别技术的一种。
迄今为止,最为人们所关注、最为成熟的生物识别技术就是指纹识别。
1.2指纹识别系统分类
自动指纹识别系统的工作模式可以分为2类:
验证模式(verification)和辨识模式(identification)。
验证就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的比对(onetoonematching),来确认身份的过程。
验证过程如图1所示。
辨识则是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹。
这也叫做“一对多匹配(onetomanymatching)”。
指纹辨识过程如图2所示。
图1指纹验证过程
图2指纹辨识过程
1.3指纹识别研究的目的和意义
每个指纹都是唯一的,不随年龄的增长而发生变化,是终生不变的,依靠这种唯一性和稳定性,可以把一个人同他的指纹对应起来,通过对他的指纹和预先保存的指纹进行比较,就能验证他的真实身份,这就是指纹识别技术。
指纹识别从最根本上来讲,是可以良好的判断和定义一个人的真实生物身份。
从而降低社会活动中的信任成本,从根本上改变经济和社会交往模式改变,提高效率。
指纹识别作为一种生物鉴定技术,为人类的个体的定义提供了一个到目前为止最为快捷和可信的方法。
二、指纹识别系统工作原理
2.1概述
一般来讲,自动指纹识别算法体系大致由指纹图像采集、指纹图像预处理、特征处理、特征提取、指纹分类和指纹比对几个部分组成。
2.2指纹图像采集
光学指纹采集技术是最古老也是目前应用最广泛的指纹采集技术,光学指纹采集设备始于1971年,其原理是光的全反射。
光线照到压有指纹的玻璃表面,反射光线由CCD去获得,反射光的量依赖于压在玻璃表面指纹的脊和谷的深度以及皮肤与玻璃间的油脂和水分。
光线经玻璃照射到谷的地方后在玻璃与空气的界面发生全反射,光线被反射到CCD,而射向脊的光线不发生全反射,而是被脊与玻璃的接触面吸收或者漫反射到别的地方,这样就在CCD上形成了指纹的图像。
如图3所示。
图3光学指纹图像采集原理
2.3预处理
通常,指纹采集器采集到的指纹是低质量的,存在的噪声较多。
通过预处理,将采集到的指纹灰度图像通过预滤波、方向图计算、基于方向图的滤波、二值化、细化等操作转化为单像素宽的脊线线条二值图像,基于此二值图像对指纹的中心参考点,以及细节特征点特征等进行提取。
指纹预处理的一般过程如图4所示。
图4预处理的一般过程
2.4特征提取
指纹的特征点分为全局特征(如奇异点、中心点)和局部特征(指纹细节点)。
在考虑局部特征的情况下,英国的E.R.Herry认为,在比对时只要13个特征点重合,就可以确认是同一个指纹。
指纹的细节特征可以有150种之多,但这些特征出现的概率并不相等,很多特征是极其罕见的。
一般在自动指纹识别技术中只使用两种细节特征:
纹线端点与分叉点。
纹线端点指的是纹线突然结束的位置,而纹线分叉点则是纹线突然一分为二的位置。
大量统计结果和实际应用证明,这两类特征点在指纹中出现的机会最多、最稳定,而且比较容易获取。
2.5指纹分类
指纹分类的主要目的是方便大容量指纹库的管理,减小搜索空间,加速指纹匹配过程。
指纹分类技术越完善,能够划分的类型越细,样本数据库每个类别中所包含的样本数量就会越少,对一次识别任务来讲,需要比对的次数和时间开销就会越少。
在大部分研究中,指纹一般分为漩涡型(whorl)、左环型(leftloop)、右环型(rightloop)、拱型(arch)、尖拱型(tentedarch)5类。
对于要求严格的指纹识别系统,仅按此分类是不够的,还需要进一步更加细致地分类。
环形(loop)弓型(arch)螺旋型(whorl)
2.6指纹比对
指纹比对是通过对2枚指纹的比较确定它们是否同源的过程,即2枚指纹是否来源于同一手指。
指纹比对主要是依靠比较2枚指纹的局部纹线特征和相互关系决定指纹的唯一性。
细节特征的集合形成一个拓扑结构,指纹比对的过程实际就是2个拓扑结构的匹配问题。
由于采集过程中的变形、特征点定位的偏差、真正特征点的缺失和伪特征点的存在等问题,即使是2枚同源的指纹,所获得的特征信息也不可能完全一样,指纹比对的过程必然是一个模糊匹配问题。
2.7可靠性问题
计算机处理指纹图像时,只是涉及了指纹有限的信息,而且比对算法不是精确的匹配,因此其结果不能保证100%准确。
指纹识别系统的重要衡量标志是识别率,它主要由2部分组成:
拒判率(FRR,falserejectrate)和误判率(FAR,falseacceptrate)。
图5的ROC(ReceiverOperatingCurve)曲线给出FAR和FRR之间的关系
图5FAR和FRR之间的关系
三、指纹图像预处理及其实现
3.1图像平滑
1.图像平滑简介
图像平滑的主要目的是减少图像噪声。
图像噪声来自于多方面,有来自于系统外部的干扰(如电磁波或经电源窜进系统内部的外部噪声),也有来自于系统内部的干扰(如摄像机的热噪声、电器机械运动而产生的抖动噪声等内部噪声)。
实际获得的图像都因受到干扰而含有噪声,噪声产生的原因决定了噪声分布的特性及与图像信号的关系。
减少噪声的方法可以在空间域或频率域处理。
在空间域中进行时,基本方法就是求像素的平均值或中值;在频率域中则运用低通滤波技术。
2.中值滤波器
将空间域模板用于图像处理,通常称为空间滤波,而空间域模板称为空间滤波器。
空间域滤波按线性和非线性特点有:
线性、非线性平滑滤波器。
线性平滑滤波器包括领域平均法(均值滤波器),非线性平滑滤波器有中值滤波器。
本文将采用中值滤波对原始图像进行预处理。
中值滤波是一种非线性处理技术,由于它在实际运算过程中并不需要知道图像的统计特性,所以比较方便。
中值滤波最初应用在一维信号处理技术中,后来被二维的图像信号处理技术所引用。
在一定的条件下,中值滤波可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声非常有效;但是,对一些细节多,特点是点、线、尖顶细节较多的图像则不宜采用中值滤波的方法。
中值滤波的目的是在保护图像边缘的同时,去除噪声。
3.中值滤波的过程
利用中值滤波函数去除图像中的噪声过程如下:
(1)使用imread()读入原始的彩色图像;
(2)因为使用中值滤波器只能对灰度图像进行处理,所以利用rgb2gray()将彩色图像转化为灰度图像;
(3)用imnoise()在灰度图像中加入椒盐噪声;
(4)利用medfilt2()函数进行中值滤波,并在MATLAB环境下运行。
相应的MATLAB主程序如下:
I=imread('E:
\各科课件\大三\数字图像处理\指纹识别预处理\1.jpg');
t=rgb2gray(I);
p1=imnoise(t,'salt&pepper',0.02);
p2=medfilt2(p1);
subplot(2,2,1);imshow(I);title('原始图像');
subplot(2,2,2);imshow(I);title('灰度图像');
subplot(2,2,3);imshow(p1);title('加入噪声后图像');
subplot(2,2,4);imshow(p2);title('中值滤波后图像');
程序运行结果如下图所示,由图像的对比可以发现处理后的图像减少了一部分的噪声,使指纹纹路和背景干扰区分出来,对后续的进一步处理做了准备.
中值滤波Matlab仿真结果
3.2图像锐化
1.图像锐化简介
在图像识别中,需要有边缘鲜明的图像,即图像锐化。
图像锐化的目的是为了突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的观察和机器的识别。
然而边缘模糊是图像中常出现的质量问题,由此造成的轮廓不清晰,线条不鲜明,使图像特征提取、识别和理解难以进行。
增强图像边缘和线条,使图像边缘变得清晰的处理称为图像锐化。
图像锐化从图像增强的目的看,它是与图像平滑相反的一类处理。
边缘和轮廓一般都位于灰度突变的地方,由此人们很自然地想起用灰度差分突出其变换。
然而,由于边缘和轮廓在一幅图像中常常具有任意的方向,而一般的差分运算是有方向性的,因此和差分方向一致的边缘、轮廓便检测不出来。
为此,人们希望找到一些各向同性的检测算子,他们对任意方向的边缘、轮廓都有相同的检测能力。
具有这种性质的锐化算子有梯度、拉普拉斯和其他一些相关运算。
如果从数学的观点看,图像模糊的实质就是图像受到平均或者积分运算的影响,因此对其进行逆运算(如微分运算),就可以使图像清晰。
根据微分方法是否线性,可将锐化分为线性锐化和非线性锐化两类。
2.锐化滤波
1.)线性锐化滤波
线性高通滤波器是最常用的线性锐化滤波器,这种滤波器的中心系数都是正的,而周围的系数都是负的。
对3*3的模板来说,典型的系数取值是:
事实上这是拉普拉斯算子,拉普拉斯算子是实线性导数运算,对被运算的图像它满足各向同性的要求,这对于图像增强是非常有利的。
拉氏算子的表达式是
对于离散函数f(i,j),其差分形式是:
这里
和
在x方向和y方向的二阶差分,所以离散函数的拉氏算子的表达式为:
系数取值为:
2.非线性锐化滤波
对一幅图像施加梯度模算子,可以增强灰度变化的幅度,因此我们可以采用梯度模算子作为图像的锐化算子。
此方法也是最常用的非线性锐化滤波方法,而且由数学知识我们知道,梯度模算子具有方法同性和位移不变性,这正是我们所希望的。
对于离散函数f(i,j),利用差分来代替微分。
一阶差分的定义为:
因此,梯度的定义为:
为了运算简便,实际中采用梯度模的近似形式,如
、
、
等。
另外,还有一些常用的算子,如Roberts算子和Sobel算子。
3.图像锐化的Matlab仿真
用Laplacia算子对指纹图像进行锐化,以下是利用Laplacia算子对图像增强的MATLAB实现:
I=imread('E:
\各科课件\大三\数字图像处理\指纹识别预处理\1.jpg');
figure;
subplot(1,3,1);imshow(I);title('原图');
h1=fspecial('Laplacia',0);
MotionBlur1=imfilter(I,h1);
subplot(1,3,3);imshow(MotionBlur1);title('拉普拉斯增强图像');
figure('name','直接输入算子锐化处理','NumberTitle','Off');
subplot(1,3,1);imshow(I);title('原图');
l=[0-10;-14-1;0-10];
MotionBlur2=imfilter(I,l);
subplot(1,3,3);imshow(MotionBlur2);title('拉普拉斯锐化图像');
锐化后的图像如下图所示。
Laplacia算子对图像锐化图增强后的图像
a.Laplacia算子对图像锐化增强的结果
3.3二值化
1.二值化算法
指纹图像二值化作为指纹预处理过程的一部分,是进行指纹图像细化处理的基础。
目前指纹细化方法都是基于二值指纹图像进行的。
对指纹图像二值化的好处在于使得图像的几何性质只于0和1的位置有关,不再涉及像素的灰度值,使处理变得简单,这给存储和处理带来了很大的方便,同时也提高了系统的经济实用。
一个好的算法可以得到一个高质量的二值图像。
反之,如果该阶段引入噪声,就会直接降低图像质量,影响识别精度。
对指纹图像进行二值化,其基本要求就是二值化后的图像能真实地再现原指纹。
具体要求为:
1.脊线中不出现空白。
2.二值化后的脊线基本保持原来指纹的特征。
3.指纹的纹线不应有太多的间断和相连。
4.指纹纹线间的间距应大致相同。
5.由于指纹识别系统的特性,二值化算法的速度也应是一个评价指标。
一般灰度图像二值化的变换函数f(x)可以用下述公式表示:
公式中T为指定的阀值,x为灰度值。
局部自适应阀值算法首先是利用固定阀值算法的思想,然后根据图像中每一部分的明暗度来调整阀值。
首先把图像分为若干个W*W的方块,每一块根据自己的阀值进行二值化。
这种算法充分利用了指纹图中脊线与谷线宽度大致相同的特点,即二值化后黑白像素的个数也应大致相同,首先利用固定阀值算法的特点对指纹图像中的每块确定一个大致的阀值,然后再利用自适应的思想对阀值进行准确的调整,即阀值的取值合适时图像是最光滑的,既没有“黑洞”阀值过大,也没有“白点”阀值过小,所以0-1之间的转换次数最少。
下面为块区域阀值T的选取算法:
1.将指纹图像划分为不重叠的大小为W*W的块,求取该区域内所有像素的灰度平均值。
2.计算区域内的Nk和Nl的值,Nk=灰度值大于等于T的像素点的个数。
Nl=灰度值小于T的像素点的个数;
3.如果
则T为阀值;
4.若
,则T=T+1,否则T=T-1,返回第二步。
2.二值化算法的Matlab仿真
本文用matlab图像处理工具箱提供的im2bw函数实现指纹图像的二值化。
以下是二值化算法的MATLAB实现:
%二值化算法matlab程序
I=imread('E:
\各科课件\大三\数字图像处理\指纹识别预处理\1.jpg');
level=graythresh(I);
J=im2bw(I,level);
imshow(J);title('二值化图像')
通过Matlab进行算法仿真的结果如下图所示。
图指纹图像的二值化结果
通过指纹灰度图像的二值化处理,得到了清晰的二值图像,本文将在下一节中对指纹图像进行细化处理,目的是得到单个像素的指纹纹路,为后续的特征识别做前期准备。
3.4细化
1.细化算法
细化又称骨骼化,是指在不影响图像的拓扑关系的情况下,将图像中宽度大于一个像素的线条转变为只有一个像素宽度的图像的处理过程。
由于在指纹识别的图像处理过程中,指纹的特征,包括方向特征和位置特征,只跟指纹图像的拓扑结构有关系,而跟脊线和脊谷的宽度无关,同时通过细化可以极大地便于后续的提取特征点操作,因此在指纹图像的处理过程中需要对指纹图像进行细化操作。
细化的效果好坏直接关系到指纹特征点是否能够高效的提取。
若细化处理效果不好的话,后续的特征点提取将有可能出现大量的伪特征点,导致最后的匹配无法进行,因此细化操作非常重要。
由于指纹识别与一般其他的图像识别有很大的不同,指纹识别的匹配直接与细化后的指纹的端点(含分叉点、端点)相关,因此细化操作不能对指纹图像的端点位置、方向等产生影响,否则就改变了指纹图像的特征信息。
2细化算法的Matlab仿真
以下是细化算法的MATLAB实现:
I=imread('E:
\各科课件\大三\数字图像处理\指纹识别预处理\erzhihua.jpg');
J=I(:
:
1)>160;
K=bwmorph(~J,'thin','inf');
imshow(~K);title('细化结果')
通过Matlab进行算法仿真的结果如下图所示。
图指纹图像细化的结果
四、指纹特征的提取
4.1指纹图像特征点的提取
特征点提取一般分为两个阶段:
提取特征点和伪特征点的剔除。
最常用的特征点提取算法有两类:
一是从灰度图像直接提取特征点;二是对预处理细化后的图像进行提取特征点(基于细化图像的邻域法)。
下面将第二种方法对进行介绍。
基于细化图像的邻域法,是先将指纹图像经过图像增强、二值化和细化等一系列的预处理得到细化的指纹图像,再通过构建像素的3*3邻域(如图4.1所示)提取指纹图像的特征点。
图中P为待测像素点,P1,P2……P9为P的邻域,Cn(P)为这8个邻域像素的相邻像素的灰度值(此时已二值化,所以灰度值只可能为0或1)从0变为1,或者从1变为0的次数。
Sn(P)为8邻域像素中为1的像素的个数,具体按
(其中P9=P1)
通过分析可知,细化后的指纹图像的邻域状态如图4.2所示。
图4.1领域示意图图4.2细化后的指纹图像
对于脊线上的像素,可根据其邻域的Cn(P)和Sn(P)数值判定此时P像素点的状态。
通过分析可以发现Cn(P)和Sn(P)数值仅存在以下三种情况:
(1)若P点为脊线上的点,且Cn(P)=2,Sn(P)=1,则可判定像素点P为端点,如图3-2中E点。
(2)若P点为脊线上的点,且Cn(P)=4,Sn(P)=2、3或者4,则可判定像素点P为脊线上的连续点,即不是特征点,如图3-2中的C1点、C2点、C3点、C4点。
(3)若P点为脊线上的点,且Cn(P)=6,Sn(P)=3,则可判定像素点P为分叉点,如图3-2中点B点。
对指纹图像中的所有像素进行处理,分别记录下所有检测到的端点和分叉点,即完成了特征提取的第一步——特征的提取。
四、总结与展望
1.总结
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。
近年来,图像处理技术得到了快速发展,呈现出较为明显的发展趋势,了解和掌握这些发展趋势对于做好目前的图像处理工作具有前瞻性的指导意义。
而指纹识别正随着数字图像处理和模式识别等学科的发展而逐步形成一门新兴身份认证技术。
在未来社会中扮演越来越重要的位置。
2.展望
在世界范围内,指纹识别技术正广泛应用于诸多领域,其中部分产品已在美国的司法、移民、医疗、社会福利等政府机构投入使用。
由于我国市场尚属启动阶段,其发展空间更为广阔,在公安、军队、海关、交通、金融、社保、医疗及其他民用安全控制等行业和部门存在着广泛的需求。
指纹识别技术除了以上行业和部门存在着广泛的需求外,在诸如企事业单位或公司的考勤、门卫接待系统、社会医疗、福利和保险行业以及高级轿车防盗等领域也大有用武之地。
参考文献
[1]张德丰MATLAB数字图像处理中机械工业出版社,2009.
[2]玛国进,顾国华,张保民.指纹图像预处理与特征提取[M].计算机应用研究,2004:
183-186.
[3]朱霞辉,罗飞路,钱彦岭.一种有效的指纹图象的纹线细化处理法[J].计算机应用研究,1997.(06).
[4]韩伟红,黄子中,土志英.指纹自动识别系统中的预处理技术[J].计算机研究与发展,1997,(12).
[5]杨若冰.指纹识别的起源[J].中国防伪报道,2006.7,38-40.
[6]韩涛.指纹图像预处理与特征提取算法研究[D].武汉:
华中科技大学,