APP下载

基于点模式特征提取的指纹匹配技术

2023-10-08宗兆星刘光宇张令通赵继强

枣庄学院学报 2023年5期
关键词:指纹图特征提取方差

宗兆星,刘光宇,2,刘 彪,程 远,张令通,赵继强

(1.大理大学 工程学院,云南 大理 671003;2.上海交通大学 海洋智能装备与系统教育部实验室,上海 200030;3.中国人民解放军32268部队信息科,云南 大理 671003)

0 引言

随着人们生活中应用指纹的场景越来越多,更快捷高效的指纹识别系统受到了越来越多的关注。一个准确的指纹匹配方法可以大大提高指纹识别系统的安全性和可靠性[1]。刘汉英等[2]基于线模式的指纹匹配算法在处理纹线时过程较复杂,在非线性形变的影响下,纹线的严格匹配关系难以准确建立,少数区域的脊线结构不够准确;SOHN B J等[3]基于纹理模式的匹配方法每次与数据库中的指纹匹配时都要计算一次纹理,算法比较耗时;基于整体图像的匹配方法未经大规模试验证实,基于纹理和串匹配的混合算法计算复杂度较高,基于细节点的匹配方法的纹理特征可区分性不强,基于三角形和动态规划的匹配方法的特征提取难度较大。

本设计选取FVC2002指纹库中的指纹,采用基于点模式特征提取的指纹匹配技术。首先,将指纹图像进行归一化、分割、二值化、细化等预处理,在预处理中采用灰度方差阈值分割算法,通过局部灰度特性对指纹图像进行分割;其次,进行端点、分叉点等特征点的提取,通过8邻域法对指纹图像进行特征提取,并去除其中的指纹边缘点、断点等伪特征点;最后,采用基于点模式的匹配算法进行指纹匹配。试验结果表明该算法复杂度低,识别率较好,有较强实用价值。

1 指纹图像预处理

1.1 基于分块的归一化

指纹图像归一化是一个像素级的操作,主要是减少灰度的变化,将灰度均值和方差调为统一的数值,保持脊线和谷线结构清晰,避免图像出现亮度不均匀现象,同时还可以消除仿射变换,增强图像的稳定性[4]。在指纹图像分割之前,先对图像进行归一化处理,将原始指纹图像和指纹库中的图像进行对比和灰度调节,使其达到一个相对一致的标准。

为确保分布的指纹纹线强度一样,采用基于分块的归一化算法:首先,确定指纹图像上每个像素点的方向信息;其次,将指纹区域划分成若干个H×L的子区域,对子区域进行灰度分析;最后,利用归一化公式处理。

设图像像素点的灰度为I(x,y),归一化处理之后的图像为G(x,y)。归一化处理公式如下:

(1)

式中:AVE0和VAR0为期望的灰度均值和灰度方差。

1.2 灰度方差阈值分割

指纹图像分割是将待处理的原始图像划分为特征不同的多个子区域,通常用于辨别每个指纹图像目标区域的是呈现在图像中的直线和曲线[5]。指纹分割算法通常从以下两个方面研究:基于图像方向信息的分割(梯度法)和灰度方差阈值的分割(方差法),二者从不同的角度对图像进行分割操作。梯度法通过计算像素方向信息,读取方向直方图,根据方向阈值实现图像分割。该方法需要大量的特征信息作为方向信息的支撑。方差法是根据指纹图像具有背景区的灰度方差小于前景区的特点,通过灰度方差的阈值实现图像分割,该方法计算简单、应用更广泛。本设计采用灰度方差阈值分割算法。

指纹脊线和谷线交叉分布在前景区域中的灰度相差较大,这个区域计算的方差较大;而在背景区域中,没有脊线,灰度相对接近,计算的方差相对较小。利用局部灰度特性对指纹图像进行分割,过程如下:

(1)将指纹图像I(x,y)分割成大小为M×M的互不交叠的子区域,一谷一脊的区域大小较为合适,本设计截取的大小为3×3的子区域;

(2)计算每一块图像的灰度

(2)

式中:I(x,y)表示子区域内部H×L个像素点的灰度值。

(3)计算每一块图像的灰度方差

(3)

(4)采用多区域阈值分割算法,多次对指纹区域求均值和方差,将划分出的每一块子区域与整个区域相比。若所求的方差近似为0,可视为背景;若所求的均值小于全局均值,则视为前景。然后求得背景色的均值和方差,增加可信度,保存结果在构建的矩阵c中。

(5)背景和前景的分离是通过设定一个标准来实现的,即首先确定c矩阵中位置值为1的点的8邻域点之和小于4,将该点设为0,然后将有用的前景色转换成白色,灰度图的背景值转换为子区域的总和及均值。

1.3 二值化处理

在指纹识别过程中,关键步骤是将采集的指纹图像进行二值化处理,在保留前景指纹和背景部分前提下消除灰度噪声,提高指纹信息的识别配对。目前指纹图像的二值化处理主要有固定阈值法、迭代法、动态阈值法等,基本思路都是通过图像的灰度信息确定阈值和指纹图像直方图来选择合适阈值[6]。灰度图像二值化的关键是选择合适的阈值处理方式,主要有全局和局部这两种阈值算法。其中全局阈值算法使用一个阈值就可以处理整个图像的区域,无需再将图像分为若干个子区域。由于指纹图像的亮暗程度和对比度因区域而异,故采用全局阈值算法是不合理的,因此,本设计采用动态局部阈值算法。局部阈值算法不再选用统一的阈值,而是将每个点与其局部邻域的其他像素点进行比较,根据局部邻域像素灰度分布特性自适应调节阈值,每个像素点依据局部阈值进行二值化处理[7]。

为了使二值化后的图像变得更加平滑,应当做出如下修改:当某个像素点的数值为1,且旁边的点不超过3个时,将其更改为0;当某个像素点的数值为0,且旁边的点不小于7个时,将其更改为1。

1.4 图像细化

二值化处理之后的指纹脊线还会有少许宽度,需要进一步细化处理图像,执行数学形态学中的膨胀、腐蚀以及开运算和闭运算,使边缘平滑,避免出现微小的尖刺,在不对线条连通性造成“误伤”的情况下,将边缘像素移除后,得到细化效果图,并保留其连贯性、拓扑性和特征点。

膨胀是将指纹上触及到的全部背景点融入指纹区域,让边界向外扩展的过程;腐蚀是将边缘的点消去并向内收缩图像范围,使二值图像缩减一圈的过程[8]。符号“⊕”和“⊖”分别表示结构元素b(i′,j′)对图像I(i,j)的膨胀和腐蚀运算,如下式所示:

(I⊕b)(i,j)=max{I(i-i′,j-j′)+b(i′,j′)|(i′,j′)∈Db},

(4)

(I⊖b)(i,j)=min{I(i+i′,j+j′)-b(i′,j′)|(i′,j′)∈Db},

(5)

式中:Db是结构元素b(i′,j′)的定义域。

膨胀算法主要操作与腐蚀算法相似,但是在进行“与”操作之后,更改条件与腐蚀算法相反[9],如果相“与”后皆为0,则细化图像的该像素点设为0,反之设为1。

开运算是先进行腐蚀运算,再进行膨胀运算,I∘b描述为结构元素b(i′,j′)对图像I(i,j)的开运算,如下式所示:

I∘b=(I⊖b)⊕b

(6)

闭运算是先进行膨胀运算,再进行腐蚀运算,I·b描述为结构元素b(i′,j′)对图像I(i,j)的闭运算,如下式所示:

I·b=(I⊕b)⊖b

(7)

开闭运算将指纹图像与细小的点分离开来,然后去除微小的尖刺部分,填充指纹内的小缝隙,连接周围指纹并使较大的指纹纹线的边缘变得平整光滑,且几乎不改变其区域大小[10]。利用细化函数处理二值化指纹图像。

2 指纹特征提取及匹配

2.1 特征提取和去伪特征

特征提取是显示指纹图像关键信息的过程,常用的提取特征点的方法有两种:一种是直接在灰度处理后的指纹图像中提取特征点,该方法省略了对指纹图像的预处理,但需要极为清晰的指纹图像,在现实生活中很难有这样完美的指纹图像供提取特征点,所以很少采用这种方法。另一种则是在经过二值细化后的指纹图像中提取特征点,虽然经过归一化、分割、二值化、细化等预处理,但是最终提取到的特征信息点会比较精确。在得到准确的细化二值化图像后,创建一个3×3的模板,就可以提取出端点、分叉点等特征点。在提取指纹图像的细节特征时,由于受图像质量和处理不当的影响,指纹图像存在着大量的指纹边缘点、断点等伪特征点,这些伪特征点会使指纹识别性能急剧下降,因此在指纹匹配之前,应对细节特征进行验证,将伪特征点去除。在特征提取后将指纹图像的细节点作为起始点,逐步搜索周围的区域,并判断这些特征点的真伪,其中分叉点不能和其他分叉点或者端点相连,端点也不能和其他的细节点相对,在判别特征点的真伪性之后将指纹数字图像中的所有伪特征点去除,并保留真特征点[11]。

2.2 8邻域特征提取

在细化二值化指纹图像中提取端点信息、分叉点等细节特征多是采用8领域法,8领域模型如图1所示。为存储提取的特征,首先要预设3个数组,用2组保存分叉点和端点,另外1组保存无用的伪特征点。

图1 8领域模型

(1)端点是在符合8个领域分别相邻且存在两个不一样的数值时,将点的数量记录于数组2中,并记录该点为数值0,相邻的8领域点记录为数值1。

(2)分叉点是在符合8个领域分别相邻且存在6个不一样的数值时,也将点的数量记录在数组2中,并记录该点为数值0,相邻的8领域点记录为数值1。

(3)指纹边缘点大部分处于图像边缘,可以通过分割图像来去除边缘点。

(4)特征值为2的点,将范围向上、向下延展,特征若还为2的点则是断点,将它和旁边8点置0,以此为基准去除2倍的断点。

在特征提取后,应对含有伪特征点的图像加以鉴别和处理,进一步提升匹配的准确率。

2.3 点模式匹配算法

指纹匹配的目的是比对指纹图像的特征模式,以判定它们是否源于同一人的相同指纹。个别指纹匹配算法只针对灰度指纹映射而开发,大部分指纹匹配算法在归一化、分割、二值化、细化等预处理指纹图像后从二值图或细化图映射中提取指纹特征进行对应的处理[12]。本设计采用基于点模式的指纹匹配算法。

基于点模式的指纹匹配算法是从指纹图像中提取出特征点,再输入待匹配的指纹图像,将两者的特征点集通过旋转、拉伸、平移等变换进行匹配[13]。基于点模式的匹配算法过程,首先,要除去手指按压造成的指纹图像变形影响;其次,对齐两个指纹的特征点;然后,统计两个特征点模式之间相对应的特征点的个数,这种对应只能是一种近似对应;最后,根据对应特征点的数目得到一个衡量相似性的匹配分值,通过匹配分值与预先设定的阈值进行比较来判断这两个特征点模式是否相同。根据映射关系寻找匹配点,最后得出匹配结果,以此实现指纹的识别[14]。

根据指纹特征将信息点分为识别点(P点集)和待识点(Q点集),通过翻折、旋转等操作使这两个点集尽可能对应。从模板指纹和输入指纹中,选择某相似节点看作一对参考点,先将指纹与参考点对齐,再评估其余节点的匹配度。

3 试验分析

首先,对指纹图像进行预处理,包括基于分块的归一化处理、灰度方差阈值分割、选择动态局部阈值的二值化处理、细化,通过执行膨胀、腐蚀以及开运算、闭运算来细化图像;其次,对指纹图像进行特征提取和去伪特征,提取出端点、分叉点等特征点,通过8邻域法对指纹图像进行特征提取,并尽量地去除指纹边缘点、断点等伪特征点;最后,进行指纹匹配,采用基于点模式的指纹匹配算法,流程如图2所示。

图2 试验流程图

选取来自FVC2002指纹库中的指纹构建数据集,数据集包含170张指纹图像(指纹1~指纹170),其中包括10枚指纹,每枚指纹有17幅(不同图像质量的指纹图像),图像尺寸为388×374,其计量单位为像素点数目,通过基于点模式特征提取的指纹匹配技术,在MATLAB2021b上运行,试验结果如图3~5所示。

图3 指纹9的试验处理图

图4 指纹26的试验处理图

图5 指纹43的试验处理图

对指纹图像执行归一化、分割、二值化、细化、特征提取等操作,同数据集中的指纹进行匹配,根据特征信息匹配度来评估匹配结果。选取指纹1为测试指纹,选取数据集中的指纹1、2、3、4为匹配指纹,建立直角坐标系表示指纹特征信息点的分布,水平方向为X轴,竖直方向为Y轴,匹配结果如图6所示。

图6特征信息匹配度

图6为指纹1同指纹1、2、3、4的特征信息匹配度,点线段代表测试指纹1,叉线段代表匹配指纹1、2、3、4,根据特征信息点的重合度评估匹配结果。由图6可知,a)图特征信息点基本重合,b)、c)、d)图部分重合,由此得到匹配结果,如表1所示。

表1 匹配结果

在FVC2002指纹库中,指纹1~17为来自同一个手指但图像质量不同的指纹,指纹18以及之后的指纹图像为不同的指纹,由表1可知指纹11识别错误,匹配率为94.12%。通过仿真试验,结果表明此方法具有较好的识别精度,根据试验结果可知匹配率为99.41%。

4 结语

本设计采用一种基于点模式的指纹匹配方法。首先,介绍了指纹特征提取的设计步骤,利用灰度均值和方差统一指纹图像规格;然后采用基于灰度方差阈值的分割算法处理图像,结合局部阈值等算法实现图像预处理操作,鉴别特征点和伪特征点的方式是将端点、分叉点等常见的特征点辨别提取,再去除指纹边缘点、断点等伪特征点;最后,进行基于点模式的指纹匹配。点模式匹配算法复杂度低,试验结果表明该方法具有较好的识别精度。

猜你喜欢

指纹图特征提取方差
方差怎么算
概率与统计(2)——离散型随机变量的期望与方差
计算方差用哪个公式
基于Daubechies(dbN)的飞行器音频特征提取
指纹图像传感器技术与后续发展研究
方差生活秀
Bagging RCSP脑电特征提取算法
沉香GC-MS指纹图谱分析
基于模板检测法的指纹图像的细节特征提取
基于MED和循环域解调的多故障特征提取