指纹识别的方法

文章正文
发布时间:2024-09-13 13:01

  由指纹识别的基本原理可知,指纹识别技术主要经过以下4个步骤:指纹图像的获取、指纹图像的预处理、指纹特征的提取和指纹特征匹配。下面将对指纹识别技术的每个步骤做详细论述。

本文引用地址:https://www.eepw.com.cn/article/201707/361927.htm

1.指纹图像的获取

  获取指纹图像的设备可分成三类:光学、硅晶体传感器和其他。光学取像设备应用的历史最久,它依据的是光的全反射原理。

  应用晶体传感器是最近市场上才出现的,这些含有微型晶体的平面通过多种技术来绘制指纹图像。

  电容传感器就是其中的一种,它通过电子度量来捕获指纹图像。电容设各能结合大约1 00 000导体金属阵列的传感器,其外面是绝缘的表面,当用户的手指放在上面时,皮肤组成了电容阵列的另一面。电容器的电容值由于金属间的距离而变化,这里指的是脊(近的)和谷(远的)之间的距离。除了以上两类,超声波扫描被认为是指纹取像技术中非常好的一类,但价格太高、体积偏大。一般采集到的指纹图像都是存成256级灰度的图像。

2,指纹图像预处理

  为了得到比较准确的指纹特征点,指纹图像预处理一般要经过图像增强(滤波去掉噪声)、计算方向图,二值化和细化等过程。整个过程如图1所示。

  图1 指纹预处理过程

  (1)图像增强

  一般来说,刚获得的指纹图像都有很多噪音,比如,手指被弄脏、手指有疤痕、太干、太湿或撕破等,所以如何在获取指纹图像之后,有效地过滤图像噪音是指纹识别技术中的难题之一。

  通过图像增强可以过滤噪音,增强脊和谷的对比度。图像增强的方法有很多,但大多数是通过过滤图像与脊局部方向相匹配。图像首先被分成几个小区域(窗口),并在每个区域上计算出脊的局部方向来决定方向图,可以由空间域处理,或经过快速二维傅里叶变换后的频域处理来得到每个小窗口上的局部方向。然后设计合适的、相匹配的滤镜,使之适用于图像上所有的像素(空间场是其中的一个)。依据每个像素处脊的局部走向,滤镜应增强在同一方向脊的走向,并且在同一位置,减弱任何不同于脊的方向。后者含有横跨脊的噪音,所以其垂真于脊的局部方向上的那些不正确的“桥”会被滤镜过滤掉。

  (2)计算方向图

  方向图描述了指纹图像中每一像素点所在脊线或谷线在该点的切线方向,作为一种可直接从源灰度图像中得到的有用信息,它的计算一直是指纹识别技术中必不可少的一步。

  方向图也可以看作是原始指纹源图像的一种变换表示方法,即用纹线上某点的方向来表示该纹线的方向。一般有两种方向图:一种是点方向图,表示原始指纹图像中每一像素点脊线的方向;另一种是块方向图,表示原始指纹图像中某点区域所有元素的平均方向。

  计算方向图的基本思想是:在原始灰度指纹图像中计算每一点(或每一块)在各个方向上的某个统计量(如灰度差、梯度等),根据这些统计量在各个方向上的差异,确定该点(该块)的方向。

  在实际处理中,我们往往采用块方向图,因为块方向图常常比点方向图有更强的抗噪性,而且块方向图可以减少计算量,有利于模块化处理。块方向图可以由点方向图得到,也可以用最小均方估计算法求得。

  (3)二值化

  第一,根据指纹的脊线和谷线等宽的假设,再结合局部灰度分布的考察,可以得到具有自适应性的自动门限。自适应阈值的选取方法是先找到该点的法向方向,在理想情况下,法向上的平均值即可作为阈值。然而考虑到噪声的影响,故应该去掉最大、最小值后点的平均值再加上一修正值作为阈值。计算公式如下:

  TT=R-(T-R)/2

  其中:R为法向上去掉最大、最小点后的平均值;T为最大、最小点的平均值;(T-R)/2为修正值;W为阈值。阈值选定后,即可对该点进行二值化,逐点依次处理即可。

  第二,在指纹图像中,考虑同一区域的像元应具有相近的连续变化的灰度,根据“灰度变化平稳”这一假设邻元灰度的变化来进一步确认像元素隶属前景和背景的程度,可以很好地排除不清晰指纹在自动门限附近的分割不一致性。

  第三,为解决二值化在分割图像中视野太小的局限,并同时对模糊区域和孤立噪声进行处理,采用广义的拉普拉斯算法对图像进行滤波。

  实验表明,该算法不但可使纹路突出,而且较好地保留了指纹的细节特征,并且在很大程度上减少了指纹的断缝和粘连等错误信息。

  二值操作使一个灰度图像变成二值图像,图像在强度层次上从原始的256色降为2色。图像二值化后,随后的处理就会比较容易。

  二值化的困难在于,并不是所有的指纹图像都有相同的阈值,所以一般不能从单纯的强度入手。而且单一图像的对照物是变化的,比如,手在中心地带按的比较紧,因此一个叫“局部自适应的阈值”的方法被用来决定局部图像强度的阈值。

  (4)细化

  在提取指纹特征点之前的最后一道工序是“细化”。细化是在不影响原图的拓扑连接关系下,将脊的宽度降为单个像素宽度的处理过程。一个好的细化方法是保持原有脊的连续性,降低由于人为因素所造成的影响。人为因素主要有毛刺和短脊线2这些都造成提取出来的特征中有很多的伪特征。

  细化方法的优点是减少内存空间,它只需要存储图像中必需的结构信息Q这样,在对图像的处理中能简化数据结构。

  根据细化的定义易知细化的关键是如何找到原图像的骨架,通常采用模板匹配方法,这种方法是根据某个像素局部邻域的图像特征对其进行处理.当然也有外轮廓计算)神经网络等细化方法。

3.提取指纹特征点

  如表1所示,特征提取用一个3*3的模板来检测特征点的位置与类型,M是被检测的指纹特征点,N0,…,N7是特征点M的按逆时针方向排列的邻近点。

  表1 特征点的位置与类型

如果

其中N8=N0,则M是终结点,如图2(a)所示;

如果

其中N8=N0,则M是分叉点,如图2(b)所示。

  图2 典型的指纹特征点

  由于图像噪声等因素的影响,从上述算法提取出来∷的特征点申有许多伪特征点有待删除,伪特征点的删除可以分为两个步骤。

  (1)如果脊图中的一段与局部脊方向完全正交,而且其长度小于定值T,那么这段脊就会被消除。如果脊中的一个间断很短,没有其他脊穿过,那么缺的这段脊就应该补上。

  (2)如果一个小区域中的细节形成一簇,那么只留下最靠近中心点的一个;如果两个细节非常接近,而且中间没有脊,那么消除这两个细节。

图3  匹配允许框

  进行特征提取后,对于每个特征应该保留以下的参数:特征点的X坐标和y坐标、特征点的方向即与特征点相连的局部脊方向、特征点的类型即是终结点还是分叉点,以及与特征点相连的脊。与特征点相连的脊是通过沿着脊线方向以脊间距采样来表示。对于分叉的脊线,与特征点相连的脊线是与特征点方向最接近的脊线。

4.比对特征点

  在指纹录入时,即使是同一个手指,两次录入的指纹图像也不完全相同,会产生各种变形,比如平移、旋转等。要进行有效的匹配必须尽量减小各种变形,考虑到指纹的各种

  非线性变形通常是放射性的,可以在极坐标系中进行指纹匹配。另外,由于非线性变形的存在,很难找到与指纹模板中特征点位置完全一致的特征点,因此匹配的算法应该是弹性的,即允许在某个范围内由于非线性变形引起的误差。

  指纹特征匹配采用允许框来实现弹性,允许框是一个在特征点周围的框,如图3所示。

  算法描述如下:

  (1)将特征点坐标转换为极坐标;

  (2)在模板指纹和输入指纹中找两个类型相同的点分别作为参考点;

  (3)将模板和极坐标中输入点作为符号串,按极角递增的顺序连接每个点;

  (4)如果对于模板特征点,输入的特征点在相应的允许框内,则匹配指数加1;

  (5)重复(2)、(3)、(4)步,直到每个可能都被测试;

  (6)对于一个指纹图,如果匹配指数大于定值T,则认为匹配成功,否则失败。