发明内容
本发明公开了一种以现有梯度法为基础的自适应模板大小指纹方向场计算方法,其计算 简单,精确度高,且能极大地减小噪声的干扰,为指纹识别系统提供良好的基础支撑。
本发明的一种自适应模板大小指纹方向场计算方法,包括下列步骤:
步骤一:判断当前输入的指纹图像是否为灰度图像,若是,则执行步骤二;否则将所述 指纹图像转换为灰度图像后执行步骤二;
步骤二:对步骤一输入的灰度图像I(i,j)进行归一化处理,得到指纹灰度图像G(i,j):
其中,预设值M0、VAR0分别为预设期望的均值和方差,M、VAR分别是灰度图像I(i,j)的期望均值和方差;
步骤三:按照w×w块分别计算指纹灰度图像G(i,j)的Gsxx,Gsxy及Gsyy图像:
其中,vx,vy表示指纹灰度图像G(i,j)的横向、纵向梯度图,w为预设的块大小;
步骤四:基于公式计算各指纹块 (i,j)的方向场一致性Coh(i,j);
步骤五:求取指纹图像G(i,j)的奇异点位置:
基于梯度图像vx,vy求取指纹的点方向场:
若P(i,j)<0,则P(i,j)=P(i,j)+π,
再基于Poincare index的奇异点检测方法检测出指纹的奇异点位置S0,S1,…,Sn,下标n 用于标识不同的奇异点位置;
步骤六:计算指纹方向场:
设置用于计算每个指纹块(i,j)的方向场的模板尺寸:
若当前指纹块(i,j)的中点位于指纹图像G(i,j)中部时,则设置对应的模板尺寸为 (w+wth)*(w+wth),其中偏移量wth的取值范围为[2,16];
若当前指纹块(i,j)的中点位于指纹的奇异点附近,则设置对应的模板尺寸为 (w+wth)*(w+wth),其中偏移量wth的取值范围为[-5,0];
否则,设置对应的模板尺寸为(w+wth)*(w+wth),其中偏移量wth的取值为0:
基于各指纹块所对应的模板尺寸,根据公式O(i,j)=π/2-arctg(2*G'sy/G'sx)计算每个指 纹块(i,j)的方向场O(i,j),其中
依据方向场一致性对指纹方向场O(i,j)进行调整:
当坐标点(i,j)的方向致性(Coh(i,j))小于预设阈值TH时,基于调整公式 W(s)=s*(w+wth)对当前设置的模板尺寸进行调整,其中预设阈值TH的取值范围为 [0.4,0.6],W(s)表示调整后的模板大小,s表示调整系数,取值为[2,3]之间的整数;
基于调整后的模板大小W(s),根据公式O(i,j)=π/2-arctg(2*G'sy/G'sx)重新计算当前指 纹块的方向场,同时重新计算坐标点(i,j)所对应的方向场一致性Coh(s):
其中ω(s)为以点(i,j)为中心的(2*s-1)*(2*s-1)的矩形框,num为矩形窗内点的个数;
并将Coh(s)和Coh(s-1)进行比较,若Coh(s)大于Coh(s-1)且小于TH时,则令s=s+1, 并再次根据调整公式对当前设置的模板尺寸进行调整,基于当前调整后的模板大小重新计算 当前指纹块的方向场O(i,j);若Coh(s)小于Coh(s-1),则当前指纹块的方向场为原方向场, 即未进行调整处理时的方向场大小(原模板大小所对应的方向场);
步骤七:对得到的方向场进行均值滤波处理,输出最终指纹方向场。
综上所述,由于采用了上述技术方案,本发明的有益效果是:计算简单,精确度高,且 能极大地减小噪声的干扰,为指纹识别系统提供良好的基础支撑。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式,对本发明作进一步 地详细描述。
为方便对本发明的理解,以下是对本发明中所提到的一些术语的定义:
(1)指纹:手指末端正面皮肤上凹凸不平的纹路。
(2)灰度图像:图像中只包含亮度信息而没有任何其他颜色信息的图像。
(3)一阶灰度差分:在灰度图像中,在某一方向上相邻像素的灰度差作为该处的一阶差 分值。一阶差分能够突出图像的垂直边缘信息,便于边缘提取。
(4)梯度图像:由图像中的每一像素处的梯度所组成的矩阵。梯度反映了图像中像素的 变化程度,通常用于检测图像的边缘。
(5)指纹方向场:用于描述了指纹脊、骨线的方向模式信息,反应了指纹的脊线走向。
(6)方向一致性:用于反应指纹方向场计算结果的质量评估,可以反应其计算的准确性。
(7)均值滤波:均值滤波是典型的线性滤波算法,它是指在图像上对目标像素点给一个 预设模板,该预设模板包括了其周围的临近像素,再用预设模板中的全体像素的平均值来代 替原来像素值。
本发的实现主要是基于传统梯度法进行的,其具体过程如下:
步骤一:首先将输入的彩色指纹图像进行灰度化处理,转换为二维灰度图像,方便后面 的算法处理。处理方法是,设输入图像为三维彩色图像I(i,j,3),则灰度图像为I(i,j,1),即为 灰度图像I(i,j),若输入为灰度图像,则可跳过此步。
步骤二:对处理后得到的灰度图像I(i,j)(待处理图像)进行归一化处理,以减少灰度图 像的脊线和谷线间动态范围,方便方向场和滤波器参数的调节处理。预设值M0、VAR0分别 为预设期望的均值和方差(具体值根据不同的处理环境根据经验设定),M、VAR分别是待 处理图像I(i,j)的期望均值和方差,具体的计算公式为: 其中H为待处理图像的高度,W为宽度。
用G(i,j)表示处理后的指纹灰度图像,其计算公式如下所示:
步骤三:对归一化图像利用Sobel算子求得横向和纵向上的梯度图像vx,vy,然后对梯度图像分别求取及vxvy图像。将及vxvy图像分别按照w×w(通常w的取值 根据不同的处理环境根据经验设定,例如基于指纹图像的高度的一定比例进行对应的设置,取高和宽中较小者的1/8,1/16,1/32等)块大小求取Gsxx,Gsxy及Gsyy图像,计算公式下 所示下:
步骤四:求取各指纹块(按照w×w对指纹图像进行分块后的各指纹块)的方向场一致 性Coh,以用其指导后续步骤的方向场的求取。对于每一个指纹块(i,j)(指纹块的坐标(i,j) 表示各指纹块在当前指纹图像的位置标识。在指纹图像处理中,再将指纹图像分块后,每个 指纹块用一个点来标识)的方向场一致性Coh(i,j)的具体计算方法如下所示:
步骤五:求取指纹图像G(i,j)的奇异点位置。首先利用梯度图像vx,vy求取指纹的点方 向场:
若P(i,j)<0,则P(i,j)=P(i,j)+π,
再利用基于Poincare index的奇异点检测方法检测出指纹的奇异点位置S0,S1,…,Sn,下 标n用于标识不同的奇异点位置。
步骤六:计算指纹方向场。本发明中计算块方向场所使用的模板为一种尺寸大小可变 的模板,即w+wth,其中wth为偏移量,w等于指纹块块的尺寸大小,选择可变尺寸优点是: 在奇异点附近,采用小尺寸的模板计算的方向场更加精确,而在有划痕的非奇异点噪声区域, 采用大尺寸的模板计算的方向场更加精确。因此,相比于固定模板,使用这种可变尺寸模板 可以获得更加精确的指纹方向场信息,具体步骤如下:
(1)对于每个指纹块(i,j),首先判断其位置,若块的中点位于图像中部时(同时满足下 述4个条件则认为块的重点位于图像中部),则选择大尺寸模板(w+wth)计算方向场:
①(min(i,j)*w-w/2)>(w+wth)/2,其中min(i,j)表示取当前指纹块的横坐标i和竖坐 标j的最小值;
②((Len/w-i)*w-w/2)>(w+wth),其中Len表示当前指纹块的高度;
③((Wid/w-j)*w-w/2)>(w+wth),其中Wid表示当前指纹块的宽度;
④当前块的任一点与各奇异点S0,S1,…,Sn的距离大于预设阈值d(d通常设置为[2,4]), 即其中(x,y)为原指纹图中任一点坐标位置,(x0,y0)为 任一奇异点位置。
针对同时满足上述4个条件的点,其模板大小设置为w+wth,其中偏移量wth的取值范 围为[2,16]。
(2)对于奇异点附近的点,即的点,其模板大小设 置为w+wth,其中wth可设置为0或-1,-2,具体值可根据块的大小w而定,通常设置其取值范围为[-5,0];
(3)对于除上述(1)(2)外的其它点,即指纹图像边缘附近点,则模板大小设置为w:
指纹图像边缘附近点具体是指满足下述任一条件的点:
①(min(i,j)*w-w/2)<(w+wth)/2;
((Len/w-i)*w-w/2)<=(w+wth);
((Wid/w-j)*w-w/2)<(w+wth);
(4)确定好模板大小后,依据以下公式计算每块的方向场大小:
O(i,j)=π/2-arctg(2*G'sy/G'sx)
(5)依据方向场一致性对指纹方向场结果进行调整,此处可设置一个方向一致性阈 值TH(TH的取值范围为[0.4,0.6],当坐标点(i,j)的方向致性(Coh(i,j))小于预设阈TH时, 调整模板大小,用W(s)表示调整后的模板大小,则对模板的调整公式为:W(s)=s*(w+wth), 其中s的取值为[2,3]之间的整数。基于调整后的模板大小W(s)重新计算该块方向场大小(如 果使用模板计算超出边界,则不重新计算),然后利用以下公式重新计算方向一致性:
其中ω(s)为以点(i,j)为中心的(2*s-1)*(2*s-1)的矩形框,num为矩形窗内点的个数。 然后将其和Coh(s-1)比较,若大于Coh(s-1),但是小于TH,则令s=s+1,以W(s)为模板 大小重新计算该块方向场大小;如果小于Coh(s-1),方向场为原方向场,继续对下一个坐标 点进行评估和方向场调整,如此下去,直到对所有一致性较差的块方向场完成调整。
步骤七:对得到的方向场进行均值滤波处理,输出最终指纹方向场。该步骤中,可采用 现有的任一惯用处理方式,本具体实施方式中所采用均值滤波处理具体为:
首先将方向场转换为向量场:Sn(i,j)=sin(2*O(i,j)),Cs(i,j)=cos(2*O(i,j)),然后对 其进行均值平滑: 最后得 到新方向场:O'(i,j)=arctg(Sn'(i,j)/Cs'(i,j))/2,即O'(i,j)为所求的最终方向场。