基于像素聚类的指纹分割算法
2008-06-10
作者:楚亚蕴,詹小四,陈 蕴,陈
摘 要:为准确提取有效指纹区域,提高自动指纹识别系统的准确率,降低后继处理算法的时间消耗,以像素点为考察对象,将条件概率事件模型引入到指纹图像" title="指纹图像">指纹图像分割方法中,在研究指纹图像所固有的纹理特征后,提出了指纹条件概率模型,根据有效指纹脊线与背景区域的差异,结合指纹脊线的相关特征,将指纹图像上的像素点分为有效指纹区域内的像素点和背景像素点两大类,为指纹图像的分割处理提供了一种有效的方法。
关键词:指纹 指纹识别图像分割" title="图像分割">图像分割像素分类 条件概率
近年来,自动指纹识别技术引起了广泛关注[1]。作为指纹识别技术中的关键步骤之一,指纹分割的效果直接影响后期处理的效率和准确率,是当前自动指纹识别领域的一个研究重点。现有的指纹图像与背景区域的分割方法主要可以归结为以下两类:一类是基于块水平的分割方法[2,3],另一类是基于像素水平的分割方法[4,5]。二者大都根据指纹图像灰度的统计特征(如方差、均值)设计算法的。这些方法对于一些干扰强烈的指纹图像,其分割效果并不理想。但是,由于方差等统计特性并不能很好地体现指纹的特性,不能充分利用指纹图像所携带的信息,因此以方差为指标进行指纹图像分割不能很好地适应各种情况。
对于指纹图像而言,指纹图像中的谷线连同背景区可以被看作指纹图像的背景。从像素分类的角度来看,可将脊线上的像素点看作有效的指纹区域点,而将其他像素点看作背景点。本文提出了像素分类的条件概率模型,充分利用指纹图像的信息,结合像素的性质,根据有效指纹脊线上像素点与背景像素点在该模型下条件概率分布的明显差异,实现对指纹图像的有效分割。
1 特征空间聚类" title="聚类">聚类方法
根据特征进行模式分类是指将一组目标根据测得的特征值划分到各类中。特征空间聚类方法将图像空间中的元素用对应的特征空间点表示,通过对特征空间的点聚集成团,然后映射回原图像空间以得到分割的结果。一般的阈值分割可以看作以像素的灰度为特征,用灰度直方图代表特征空间,用阈值将特征空间划分开,把得到的特征类映射回图像空间,不同灰度的像素构成不同的区域。除了像素灰度外,其他图像特征也可用于聚类。
在根据特征进行分类的方法中,将像素看作待分类的目标点,则分类就是分割。在指纹图像中,像素点一般分为两类:一类为有效指纹像素点,另一类为背景区域像素点。如果能够选择一种合适的特征,则可以通过特征聚类的方法对指纹图像进行有效的分割处理。
假设令x代表这种特征的值,x属于指纹背景和指纹前景的概率密度函数分别记为p(x|bk)和p(x|fk),再令两类的先验概率分别为p(bk)和p(fk),则有p(bk)+p(fk)=1。整幅指纹图的概率密度为:
p(x)=p(bk)p(x|bk)+p(fk)p(x|fk)
如果给定一个阈值T,把x<T的像素划分为第一类,把x>T的像素划分为第二类,则使得误分概率最小的阈值为:
如果已知p(x|bk)、p(x|fk)、p(bk)和p(fk),则对给定的特征值x,将可以确定它所对应的像素更可能是背景像素点还是前景像素点。因为联合概率可以定义为:
p(bk,x)=p(bk)p(x|bk)=p(bk|x)p(x)
p(fk,x)=p(fk)p(x|fk)=p(fk|x)p(x)
所以可以通过比较以下两式来确定所需判定像素的类别:
p(bk|x)=p(bk)p(x|bk)/p(x)
p(fk|x)=p(fk)p(x|fk)/p(x)
但是,在实际的处理过程中,由于无法预先知道先验概率p(bk)和p(fk),因此期望寻求一种方法,以获得任一像素点分属两类图像区域的条件概率,以实现对指纹图像的有效分割,提取有效的指纹图像区域。为此,文中在仔细分析了指纹图像的内在特征后,给出了指纹图像的条件概率模型,并在此基础上实现了对像素点的分类,从而最终实现了对指纹图像的分割处理。
2 指纹图像的条件概率模型
作为一种特殊的纹理图像,可以认为指纹图像中的谷线和背景的灰度值大致相等。反映在灰度直方图上,存在两个脉冲状尖峰,一个是由于脊线的灰度值集中所形成的峰值,另一个则是由于谷线和背景的灰度值集中所形成的峰值,如图1所示。
在理论上,如果去除噪声影响,则灰度值总是在这两个区域相对集中,一个是脊线区,一个是谷线和背景区,反映在灰度直方图上就是两个峰值。根据这两个峰值对应的理论灰度值,可以确定指纹图像灰度分布的概率密度函数。在实际中,由于受到噪声等因素的影响,在灰度直方图上可能不会出现如图1所示两个的脉冲状的尖峰,但是仍然可以认为,脊线的灰度值服从一个以脊线峰值所对应的灰度值(下文中均称为脊线中心灰度值)为中心的正态分布" title="正态分布">正态分布,同样谷线的灰度值也服从以谷线中心灰度值为中心的正态分布。从而,指纹区每一点像素的灰度值一定服从两个不同中心的正态分布中的一个。假设指纹区的每一点属于脊线区或者谷线区概率是一样的,即均为1/2,则容易确定图像中任一点属于指纹区的条件概率。
如果基于灰度条件概率对指纹图像进行分割,就能够充分体现指纹图像自身的特点,分割的精度应该更高。指纹区和背景区的类条件概率密度函数如图2所示。其中,虚线是背景的类条件概率,实线是指纹的类条件概率。根据模式识别贝叶斯决策理论,为了尽可能减少风险错误率P(e),两个类条件概率密度函数图像应该尽可能地分开。但是指纹和背景的类条件概率密度函数显然做不到这一点。为了解决该矛盾,本文引入了加窗的方法,在求取指纹图像中像素点i(x,y)属于指纹区的概率时,以i(x,y)为中心构造窗口w(x,y),通过计算该窗属于指纹区的概率pw(w(x,y)|fk)来确定像素点i(x,y)属于有效指纹区的条件概率p(i(x,y)|fk)。构造窗概率密度函数pw(w(x,y)|fk)基于以下两个假设:
假设1:在指纹区,窗w(x,y)内脊线或" title="线或">线或者谷线的灰度值以脊线或者谷线中心灰度为中心服从正态分布。
假设2:在指纹区的每一点属于脊线或者谷线的概率相等,即p=1/2。如果i(x,y)属于指纹区,窗w(x,y)内脊线的像素个数与谷线的像素个数大致相等,近似都为N/2。其中,N为窗w(x,y)内的像素点的总数。
基于以上假设,构造如下函数:
其中,k为窗w(x,y)内灰度值小于的像素个数,即属于脊线区的像素个数,N为窗w(x,y)内的像素点的总数,C是常数,gm是窗w(x,y)内灰度值小于的像素的灰度值。
由窗概率密度函数pw(w(x,y)|fp)的构造方法可以看出,对于指纹区任一点i(x,y)和背景区任一点i(x′,y′)而言,有pw(w(x,y)|fk)>>pw(w(x′,y′)|fk)。因此,在指纹区和背景区,窗概率密度函数pw(w(x,y)|fk)的值相差非常明显。
3 基于像素分类的指纹分割算法
由前所述的条件概率模型可知,对指纹图像中每一点i(x,y),可以通过计算窗概率密度函数pw(w(x,y)|fk)实现对像素的分类,从而实现对指纹图像的有效分割处理。如果pw(w(x,y)|fk)<T,则认为该像素点i(x,y)为背景区域中的点,将该点置为背景;否则,认为该像素点i(x,y)为有效指纹区域中的点,将该点置为指纹区,其中T为分割阈值。根据条件概率的计算过程,本文所提出的指纹分割算法可以分为以下三步:指纹图像的脊线和谷线的中心灰度值的获取;每个像素点条件概率的求取;基于像素分类的图像分割的实现。
3.1 脊线(谷线)中心灰度的计算
由前所述,准确地计算出脊线中心灰度和谷线中心灰度,以其为参数,以每一点i(x,y)为中心选取合适的邻域构造窗w(x,y),计算每一点i(x,y)的窗概率密度函数pw(w(x,y)|fk),根据每一点的窗概率密度将像素点i(x,y)分为两类:有效指纹区域内的像素点和背景区域内的像素点,从而实现对指纹图像的分割处理。
在此过程中,所求取的脊线中心灰度值和谷线中心灰度值准确性将直接影响到对像素点分类的准确程度。对于质量良好的指纹图像而言,灰度直方图上的两个峰值比较明显,此时两个峰值所对应的灰度值即为所求的脊线中心灰度和谷线中心灰度。然而对于一些低质量的指纹图像而言,灰度直方图上的如图1脉冲状的两个峰值并不明显,甚至只呈现一个峰值。经过仔细分析后,仍然认为存在两个峰值,只是由于脊线中心灰度值与谷线中心灰度值非常接近,相互干扰叠加,造成了直方图上只出现一个峰值。反之,如果能把直方图分解为两个正态分布的叠加,则两个峰值也就容易求得。利用正态分布函数的对称性,在干扰区,直方图上的统计值减去谷线中心灰度右边的统计值,剩下的就是脊线灰度的统计值。为了确保能准确地计算出脊线(谷线)中心灰度,通过以下步骤实现:
(1)计算整体的峰值,即谷线或者背景的中心灰度。假设灰度i对应的统计值为f(i),谷线中心灰度μh,其中,μh满足。
(2)由上述思想,在干扰区,以μh为对称轴,直方图统计值减去谷线灰度的干扰,其中有:g(i)=f(i)-2f(2μh-i),i<μh。
(3)从0点开始向右,寻找直方图g(i)上第一个为负值的灰度in,定义:in=min{i|g(i)<0}。
(4)计算指纹图像的脊线中心灰度μl,同时要求μl满足g(μl)=max g(i),且i<in。
一般情况下,上述算法均能保证准确地求出脊线和谷线的中心灰度值。
3.2 窗概率密度函数的近似计算
在实际计算中,为了尽可能地减少噪声对计算窗概率密度函数pw(w(x,y)|fk)的影响,同时加快算法的运行速度,本文中用以下公式来近似计算:
3.3 像素分类
在求取每一像素点i(x,y)的窗概率密度pw(w(x,y)|fk)后,文中以该窗概率密度函数值作为判断条件,如果近似的窗概率密度pw(w(x,y)|fk)<T,则认为点i(x,y)为背景区域,否则认为像素点i(x,y)在有效指纹区域。此处,阈值的选取是关键。选择一个合适的阈值可以有效地提高像素分类的准确性。一般而言,T取值在3/8~5/8范围内,本文中T取值为0.5,这里总结公式如下:
通过以上步骤,本文准确地实现了对像素点的分类,将指纹图像中所有像素点划分为两大类:位于有效指纹区的指纹图像像素点和位于背景区的背景像素点。在对每个像素进行分类后,本文将指纹图像划分为不重叠的K×K的指纹图像块,然后统计每个区域中属于有效指纹区域的像素数目sum。如果有sum>Threshold,则认为该区域为前景区域,否则判定为背景区域,将该区域置为白背景(像素灰度值为255)。这样,本文算法就实现了对指纹图像的分割处理,将有效指纹区域从背景区域中分割开来。
4 实验结果及讨论
为了验证本文所提出的分割算法的实际性能,选取公开数据库BVC2004公认较难分割的B库做分割处理,图3为从BVC-2004库中随机选取的几幅典型指纹图像及用本文算法分割的效果。其中,图3(a)、(b)、(e)、(f)为原图,图3(c)、(d)、(g)、(h)分别为其对应的分割后的效果。
初步的实验结果表明,与传统的基于灰度方差的指纹分割方法相比较,本文提出的基于条件概率模型下的像素分类指纹图像分割方法能够有效地实现指纹的分割。对于背景条件比较复杂的指纹图像,具有较好的鲁棒性。
针对本文的实际处理结果可以发现,在实际的处理结果中,对于强噪声区域而言,由于受严重干扰的影响,直方图上两个峰值非常不明显。虽然文中给出了一种分解的方法以便提取直方图上的两个峰值,且同时定义了窗概率密度函数,以便更准确地求取任意一点的概率密度值,但对于强噪声区域仍然存在一定的像素错误分类。然而,与传统的基于灰度方差指纹图像分割算法的实际性能相比,该算法仍然表现出良好的适应能力和抗噪声干扰能力。
在实际处理过程中,发现该算法仍有很大的提升空间。本文所提出的分类指标是单一的,同时完全没有考虑到传统的分割指标以及作为纹理图像的一个重要特征:方向场信息。除了模式区以外,指纹图像方向信息都具有缓慢变化这一共性,因此完全可以结合方向场信息以及其他分割指标来实现对像素点的分类,从而实现对指纹图像更精确的分割处理。
参考文献
1 Jain A K,Uludag U,Hsu R L.Hiding a Face in a Finger-print Image.In:Proc ICPR,Quebec City,2002:756~759
2 詹小四.验证模式下的自动指纹识别系统中若干关键问题的研究.南京大学博士学位论文,2003
3 Jain A K,Hong L,Bolle R.On-line fingerprint verification.IEEE Transactions on Pattern Analysis and MachineIntelli-gence,1997;19(4):302~314
4 Mehtre B M,Murthy N,Kapoor S et al.Segmentation of fin-gerprint images using the directional images.Pattern Recogni-tion,1987;20(4):429~435
5 Mehtre B M,Chatterjee B.Segmentation of fingerprint images-a composite method.Pattern Recognition,1995;28(11):1657~1672