一种基于结构张量的指纹方向场获取方法
技术领域
本发明属于图像处理技术领域,特别涉及指纹识别技术中的指纹图像处理技术。
背景技术
生物特征识别技术是为了进行身份验证而采用自动技术测量其身体的特征或是个人的行为特点,并将这些特征或特点与数据库的模板数据进行比较,完成身份认证的一种解决方案。作为生物识别技术中最为成熟和方便的成员,指纹识别技术已成功应用于社会的各个领域。如:门禁、考勤系统、电子商务、ATM自动提款机以及罪犯身份鉴定系统等。依赖指纹识别技术建立的指纹自动识别系统作为一种安全可靠的身份识别方法,随着光学扫描技术和RFID技术的发展,个人的指纹信息能够潜入到IC中,使得指纹识别可以在更广泛的领域中得以发展。
在指纹自动识别系统中,指纹方向场的计算是一个重要的环节。所谓方向场是这样一种图像:在图像上的每一点的数值都是原始指纹图像在该对应点的局部脊线方向,从视觉上看,它描述了指纹图像中指纹的大致形状,同时图像方向场的好坏也是衡量一副指纹图像好坏的重要标准之一。而指纹方向场的获取通常是指纹识别算法的基础。它能够真实的反映指纹图像的整体纹理走势,再现指纹的中心花纹以及脊线和外围包络线的走势与形状,为后续的指纹图像处理算法奠定基础。例如不少后续的滤波增强算法需要用到方向信息才能对各个方向进行滤波,二值化时比必须根据方向信息来决定该像素点为0还是1,提取到的细节点特征更是需要保存其方向信息,以便后续匹配算法使用。因此正确高效的计算指纹方向场对整个指纹识别算法十分重要。
目前常用的使用指纹方向场获取方法有:
(1)掩模法。参见文献田捷,杨鑫.生物特征识别技术理论与应用.电子工业出版社,2005:42-43
(2)结构张量法。参见文献程建刚,田捷,何余良.基于非线性扩散滤波的指纹增强算法.自动化学报,2004,30(6):854-862
(3)傅里叶变换法。参见文献陈建新,田捷,何余良.基于频域滤波的低质量指纹增强算法.第4届生物特征识别研讨会论文集,北京,2003.12
(4)傅里叶展开法。参见文献Yi Wang,Jiankun Hu,and Damien Phillips.A FingerprintOrientation Model Based on 2D Fourier Expansion(FOMFE)and Its Application to Singular-PointDetection and Fingerprint Indexing.IEEE Transactions on PAMI,2007,29(4):573-585
总体来说,上述的一些常用的方向场的计算方法主要分为掩膜法和公式法两大类。掩膜法的特点是计算速度较快,因为不涉及浮点滤波等运算,但精度较低,因为通常只能得出8个方向。相比之下公式法得到的方向场准确率较高,不过缺点是计算量巨大,在很多具体应用中的速度表现上不够理想。
发明内容
本发明所要解决的技术问题是,提供一种基于改进的结构张量的,在较短的时间内有效计算出指纹方向场的方法。
本发明所解决上述技术问题所采样的技术方案是,一种基于结构张量的指纹方向场获取方法,包括以下步骤:
步骤1、对指纹图像进行直方图均衡化;
步骤2、计算指纹图像的结构张量:
2-1利用索贝尔Sobel算子求得指纹图像的一阶横向梯度图像vx和一阶纵向梯度图像vy,;
2-2计算横向梯度平方图像
纵向梯度平方图像
以及横向梯度与纵向梯度乘积图像v
xv
y;
2-3分别对图像
及v
xv
y进行9×9均值滤波分别得到滤波后的横向梯度平方图像
纵向梯度平方图像
以及横向梯度与纵向梯度乘积图像W
XW
y;所述9×9均值滤波通过以下串行化方式实现:
2-3-1)在待滤波图像G中依次取像素点的像素值G(i,j),先计算其滤波掩膜邻域的纵向累加值
再以此计算出整个滤波掩膜邻域的累加值
u,v均表示中间变量;
2-3-3)判断图像中所有像素点是否处理完毕,如是,进入步骤2-4,否则更新Ri(j)=Ri(j)+G(i+5,j)-G(i-4,j);S(i,j)=S(i+1,j)+Ri+1(j+5)-Ri+1(j-4);返回步骤2-3-2);
2-4利用9×9均值滤波后的图像
和W
XW
y得到结构张量ST(i,j)为:
步骤3、计算结构张量ST(i,j)的特征值λ2以及特征值λ2所对应的特征向量w2;
其中,中间量a、b、c分别对应一部分结构张量ST(i,j):
步骤4:用反正切公式得到指纹图像中各像素点(i,j)处的点方向场O(i,j):
本发明首先对图像进行了直方图均衡化,比起原有的一些平滑滤波过程,更能突出图像的对比度,为后续计算做准备。采用结构张量能够比较准确地计算出指纹图像的点方向场。在求结构张量时,需要对每个方向的梯度进行平滑滤波,现有方法中通常用ρ取0.5的9*9的高斯算子gρ来进行平滑操作,效果虽然不错,但是由于涉及到大量复杂的浮点运算以至于速度很慢,尤其对嵌入式的指纹系统运行时间影响极大,本发明使用均值滤波取代了原有的高斯滤波,并使用串行化的计算方法来实现均值滤波操作,这在不影响效果的情况下大幅提高了运算速度,使其能够应用与嵌入式等对准确率和时间都要求严格的场合中。
进一步的,为了节约时间,本发明提供一种简化的直方图均衡化方法:
1-1通过求出指纹图像中各个灰度值下的像素点个数,得到每一级灰度所占的比例p(k),
k表示灰度值,n
k为灰度值k下的像素点个数,N为指纹图像中像素点总数;
1-2计算累计直方图T,k=0,1,...255,r表示新的灰度级;
1-3最后利用直方图T计算出均衡化后的图像v:v(i,j)=T(I(i,j))*255;v(i,j)为直方图均衡化后的图像像素值,I(i,j)为指纹图像的像素值。
这样,经过简化后的直方图均衡化既能提高图像对比度且不占用太多时间。
本发明的有益效果是,能够在较短的时间内有效计算出指纹的点方向场,且精度和准确度也较高。
具体实施方式
为了方便地描述本发明内容,首先对一些现有技术术语进行描述:
指纹:手指末端正面皮肤上凹凸不平的纹路。
灰度图像:图像中只包含亮度信息而没有任何其他颜色信息的图像。
一阶灰度差分:在灰度图像中,在某一方向上的相邻像素的灰度差作为该处的一阶差分值;一阶差分能够突出图像的垂直边缘信息,便于边缘提取。
梯度图像:由图像中的每一像素处的梯度所组成的矩阵;梯度反映了图像中像素的变化程度,通常用于检测图像的边缘。
结构张量:结构张量来是一个对称的二维正定矩阵,它来自于非线性扩散滤波模型的解析解,其性质类似于海塞Hessian矩阵,能很好的反应指纹的局部结构。
直方图均衡:是图像处理领域中利用图像直方图对对比度进行调整的方法,常用于提高图像对比度,增强图像。
高斯滤波:高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
均值滤波:均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素,再用模板中的全体像素的平均值来代替原来像素值。
本实施例基于改进的结构张量的指纹方向场计算方法,包含以下步骤:
步骤1、对指纹图像进行直方图均衡化,增强对比度。为了节约时间,该均衡化方法做了一些简化:
1-1通过求出指纹图像中各个灰度值下的像素点个数,得到每一级灰度所占的比例p(k),
k表示灰度值,n
k为灰度值k下的像素点个数,N为指纹图像中像素点总数;
1-2计算累计直方图T,
k=0,1,...255,r表示新的灰度级;
1-3最后利用直方图T计算出均衡化后的图像v:v(i,j)=T(I(i,j))*255;v(i,j)为直方图均衡化后的图像像素值,I(i,j)为指纹图像的像素值。
步骤1对图像进行了直方图均衡化,比起现有的一些平滑滤波过程,更能突出图像的对比度,为后续计算做准备,且经过简化后过程简单速度较快,对总体时间影响较小。
步骤2、计算指纹图像的结构张量:
2-1利用索贝尔Sobel算子求得指纹图像的一阶横向梯度图像vx和一阶纵向梯度图像vy;
2-2计算横向梯度平方图像
纵向梯度平方图像
以及横向梯度与纵向梯度乘积图像v
xv
y;
2-3分别对图像
及v
xv
y进行9×9均值滤波分别得到滤波后的横向梯度平方图像
纵向梯度平方图像
以及横向梯度与纵向梯度乘积图像W
XW
y;所述9×9均值滤波通过以下串行化方式实现:
2-3-1)在待滤波图像G中依次取像素点的像素值G(i,j),先计算其滤波掩膜邻域的纵向累加值
再以此计算出整个滤波掩膜邻域的累加值
u,v均表示中间变量;
2-3-3)判断图像中所有像素点是否处理完毕,如是,进入步骤2-4,否则更新Ri(j)=Ri(j)+G(i+5,j)-G(i-4,j);S(i,j)=S(i+1,j)+Ri+1(j+5)-Ri+1(j-4);返回步骤2-3-2);
2-4利用9×9均值滤波后的图像和WXWy得到结构张量ST(i,j)为:
步骤3、结构张量有两个特征向量,对应着较小的特征值的特征向量反应了指纹脊线的方向,而对应着较大特征值的特征向量则反应了垂直指纹脊线的方向,计算结构张量ST(i,j)的特征值λ1、λ2以及它们所对应的特征向量w1、w2如下;
其中,中间量a、b、c分别对应一部分结构张量ST(i,j): 本发明只需要用到反应了指纹脊线的方向的特征向量w2;
步骤4:用反正切公式得到指纹图像中各像素点(i,j)处的点方向场O(i,j):
进一步的,为了节约时间,本发明提供一种简化的直方图均衡化方法:
步骤3中,计算特征向量的公式虽然看着复杂,但实际上因为最终求的是反正切值,因此公式中的分母并不需要计算。
将实施例的方法在基于BF512的嵌入式系统中进行了实现,而指纹图像则由FPC1011F指纹传感器获得。系统在芯片频率为400MHZ下,完成一幅152*200的指纹图像方向场的计算的平均时间为0.25s。