Feature extraction, recognition, and matching of damaged fingerprint: Application of deep learning network(IF:1.831)
摘要:
随着信息化的改善和计算机技术的发展,带有指纹的身份识别已经成为一种增长趋势,但是沾污的指纹将使识别变得困难。为解决上述问题,本文简要介绍了传统的点匹配指纹识别算法和基于卷积神经网络的损伤指纹识别方法。然后在MATLAB软件中对基于CNN的指纹识别方法进行了仿真,并与传统的点匹配识别法和传统的CNN识别方法进行了比较。结果表明,改进的CNN识别方法在训练过程中迭代次数减少,训练误差较小。改进的CNN方法在识别未知指纹方面具有较低的错误识别率和拒绝率。传统的点匹配方法花费最多的时间来识别未知指纹,其次是传统的CNN方法和改进的CNN识别方法。这项研究使用CNN进行指纹识别,并改进了CNN以提高其对受损指纹的识别精度。改进的CNN可以有效提高受损指纹的识别精度,为提高指纹识别系统的准确性和适用性提供有益的参考。这项研究使用CNN进行指纹识别,并改进了CNN以提高其对受损指纹的识别精度。改进的CNN可以有效提高受损指纹的识别精度,为提高指纹识别系统的准确性和适用性提供有益的参考。这项研究使用CNN进行指纹识别,并改进了CNN以提高其对受损指纹的识别精度。改进的CNN可以有效提高受损指纹的识别精度,为提高指纹识别系统的准确性和适用性提供有益的参考。
随着信息时代的到来,人们越来越重视对信息安全的保护。传统的信息安全认证包括密码、身份证等;然而,在上述安全认证法中,密码可能被泄露或被野蛮破解,身份证丢失后可能被盗传统的信息安全认证是“人-密钥-信息”模式。密钥的载体可以是一串密码或身份证;总之,它是独立于人的特定对象。对于要保护的信息,它只识别密钥而不识别人。因此,一旦密钥丢失或被盗,信息安全就无法保证为了更有效地保证秘密信息的安全,人们开始利用生物特征进行身份认证。生物特征作为身份认证的关键,首先具有唯一性(每个人的生物特征都是独一无二的),然后生物特征与人几乎是不可分割的。一般来说,不会有钥匙丢失,或者钥匙不可能与持有者的身份相匹配。可以用作身份验证密钥的生物特征包括声纹、虹膜、指纹等。声纹识别时容易受到噪声的干扰。一旦佩戴者感到不舒服,声纹就会改变。虹膜有一个对相机分辨率要求高。因此,不容易受到外界干扰、对图像要求相对较低的指纹识别得到了最广泛的应用。Zacharias等4提出了一种改进的k-曲率方法来确定指纹脊的高曲率区域,并基于脊弯曲能量定位参考点。他们从仿真结果中发现,该算法可以准确定位各种指纹图像的参考点。Lin等5提出了一种三维指纹识别算法和一种基于三维特征点四面体的匹配算法,用于有效匹配三维空间中的特征点。通过仿真实验验证了该算法的有效性。Tabassum等6利用小波包变换对指纹为生物特征参数的人进行了识别。实验结果表明,该方法在保证识别精度的前提下,大大减少了图像模板的存储容量。本文简要介绍了传统的点匹配指纹识别算法和基于卷积神经网络(CNN)的损伤指纹识别方法。然后,在MATLAB软件中对基于CNN的损伤指纹识别方法进行了仿真。并与传统的点匹配识别方法和传统的CNN识别方法进行了比较。
传统点匹配的步骤如下:
(1)图像预处理:指纹识别设备在采集指纹图像信息时,由于噪声和人体皮肤状态或按压力的差异,图像会产生干扰,因此需要进行预处理:图像增强7的计算公式如下:
式中(i, j)为图像像素坐标,G(i, j)为原始图像的灰度值,G ' (i, j)为增强图像的灰度值,max(i, j)和min(i, j)为图像灰度的上限和下限。二值化是将图像转换为黑白图像。通过Hilditch算法实现细化,即对经过二值化8处理的图像进行反复遍历,逐步去除轮廓像素。
(2)特征点提取:首先计算平均方向场差,计算公式为:
式中,P(i, j)为像素点方向场的平均差值,当P(i, j)为0.5时,像素为中心点,当P(i, j)为−0.5时,像素为三角形点;O’(•)是方向场,是圆的半径,是圆的夹角。通过计算指纹特征点周围两个像素之间灰度差绝对值的和,确定指纹特征点的端点和交叉点。
(3)第一次匹配:首先有用于匹配的指纹X和已知的指纹y, X中有m个特征点,y中有n个特征点,将它们的特征点逐一比较,得到m × n个匹配矩阵。矩阵中的元素是对应两个特征点的匹配摩擦力。计算公式为: 其中a为指纹X中的ath特征点,b为指纹Y中的第bth特征点,Sa × b为ath特征点与第bth特征点的匹配摩擦力,sX a和sY b为a和b两个特征点的类型,类型不同时,匹配摩擦力为0;类型相同时,匹配摩擦为k, k取决于两个特征点的邻域特征点之间的匹配数。邻域特征点由5个距离最近的特征点的距离大于R的特征点组成。
配对比较后,将m × n匹配矩阵中每一行的最大值(不为0)与最大值相加,得到总匹配摩擦g。最后,计算指纹X与Y的相对匹配摩擦:根据阈值的上下限和相对匹配摩擦,确定两个指纹是否匹配。如果相对匹配摩擦力大于阈值的上限,则匹配;若相对匹配摩擦小于阈值的下限,则不匹配;如果相对匹配摩擦在阈值的上下限之间,则进行第二次匹配。
(4)二次匹配:基于特征点将特征点的邻域特征点转换为极坐标;然后在步骤(3)中逐个比较它们的特征点,得到新的m × n匹配矩阵;根据同样的原理,计算匹配程度,根据阈值确定是否匹配。
传统的点匹配指纹识别原理比较简单,应用范围也比较广,但计算量较大,其检测的高精度是建立在高质量指纹图像的基础上的。在日常应用中,由于各种条件的影响,被检测到的指纹往往是不完整的,增加了识别难度。
CNN的组成如图1所示,包括输入层、卷积层、池化层和输出层。输入层输入图像数据,卷积层通过局部连接获取图像的全局信息,然后通过权值共享降低参数量。计算公式为:
图1:CNN结构上述CNN对于图像的智能识别具有相当大的优势。与一般的反向传播神经网络相比,CNN在图像识别方面的优势之一是不需要使用额外的特征提取算法。当对图像进行卷积和池化时,它已经提取了图像的特征,并根据特征对图像进行识别。由于CNN不需要额外的特征提取算法,因此具有更高的训练和识别效率。然而,CNN归根结底是神经网络算法的一个分支,它在训练和应用中的准确性很大程度上依赖于训练样本的质量。在本研究中,使用指纹识别时,必须保证指纹图像纹理清晰。然而,在实际应用中,指纹识别设备识别的指纹图像大多达不到标准的高质量:受各种外界影响(如手汗、手指划痕、设备识别镜面污染等),指纹图像往往不完整、损坏。虽然传统的CNN训练使用高质量的指纹来获得准确的特征,但由于特征不完整,识别精度会降低。如果使用损坏的指纹作为训练样本,由于特征不完整,训练会陷入局部最优,这也会降低准确率。
为了提高CNN识别受损指纹的准确性,本研究对CNN进行了改进。传统CNN难以识别受损指纹的一个主要原因是受损指纹的纹理不清晰,重要特征丢失。因此,即使使用卷积和池化操作进行特征提取,也只能得到不完整的特征。本研究从特征提取的角度对CNN进行了改进。原始CNN经过预处理后直接提取受损指纹图像,改进后的CNN将需要识别的指纹图像替换为另一幅经过特征提取处理的图像,并进行卷积和池化。对应的处理方法如图3所示:“对包含指纹中心点的图像块进行切割”和“对指纹特征点进行模糊处理”。
“指纹特征点模糊处理”是根据上述方法得到受损指纹图像的纹理特征点,将特征点提取为一层,再用高斯滤波进行模糊处理。经过模糊处理后,特征点图像中的噪声大大降低。该步骤的最终目的是对不完整指纹图像中的纹理线进行模糊处理,减少无用线在CNN特征提取中的影响,突出有效特征点和特征点之间的相对位置关系,淡化特征点的具体位置,使指纹特征点图像具有旋转和运动不变性。
“切割包含指纹中心点的图像块”是对上述模糊处理方法的补充。即使采用模糊处理方法减弱丢失特征点的影响,也无法弥补丢失的指纹特征。因此,“切割含有指纹中心点的图像块”操作直接丢弃了大部分损坏的指纹区域,只保留有指纹中心点的指纹图像块。带有中心点的图像块具有指纹的核心特征,丢弃了损坏的部分。该方法保留受损指纹图像的核心特征,并去除受损区域;但是,该方法同时去除了非核心区域的指纹特征,降低了识别精度。
这两种破损指纹处理方法各有优缺点。在本研究中,将这两种方法相结合,即将经过模糊化处理的指纹点图与图像块相结合。图像块提供了模糊图像所不具备的准确核心特征,模糊图像提供了图像块所不具备的非核心区域指纹特征。合并后的图像作为CNN的输入。为了提高cnn对损坏指纹的识别精度,在原有cnn的基础上进行了改进。改进过程如图3所示。
1. 首先对指纹图像进行输入和预处理,与传统的点匹配方法保持一致。
2. 然后截取以指纹图像中心点为中心的图像块,对指纹特征点图像进行模糊处理。本研究采用高斯滤波器12进行模糊处理,其公式为:
图3:基于CNN的破损指纹识别流程
其中x是输入图像,xc是核函数的中心,是表示图像锐度的扩展常数。
1. 将包含中心点的图像块与经过模糊处理的特征点图进行拼接。然后调整到合适的尺寸,去掉空白接头部分。它被用作CNN的输入图像。
2. 根据式(5),对图像进行卷积,然后在池化层对卷积后的特征图像进行压缩。在本研究中,使用了均值池化操作。
3.经过多次卷积和池化,以全连接的方式将计算结果传递到输出层,并确定迭代是否达到终止条件。反之,反向调整神经网络中隐含层的权值参数。当达到终止条件时,确定参数,完成识别模型训练。
4. 将待匹配的指纹图像输入训练好的识别模型,该模型具有图像预处理和损坏图像处理功能。识别后输出识别结果。
本文利用MATLAB软件对基于CNN的损伤指纹识别模型进行了仿真实验在一台配置Windows 7系统、I7处理器、16G内存的实验室服务器上进行。
用于测试的指纹图像来自NIST DB4F数据库,这是一个国际上可用的指纹测试公共数据库。本研究选取了1000张指纹图像进行测试。为了进一步提高识别模式的准确性,本研究从校园中随机选取了40人。他们已被告知使用他们的指纹并同意使用。在实验室中使用指纹输入设备收集指纹。每个人采集25张指纹图像,在采集过程中对指纹进行处理,包括摸水、上色、不均匀按压、在手指上粘贴极薄透明胶带(模拟手指划伤)。除了损坏的指纹图像,还需要高质量、清晰的指纹。破损指纹与完好指纹的比例设定为4:1。然后从每个人身上随机抽取15张指纹图像作为训练集,剩余的指纹图像作为测试集。从公共数据库中获取的指纹图像也按照相应的设定比例进行处理。
CNN设置参数如表1所示。损坏指纹识别的步骤如下:(1)对图像进行预处理;(2)从预处理图像中截取以中心点为中心的图像块,并与经过模糊处理后的指纹特征点图进行拼接;(3)在输入CNN模型前,将关节图像大小调整为250 × 250,最大迭代次数设置为2000次;(4)训练完成后,固定模型参数,将测试集的图像输入模型进行同样的预处理和拼接后进行识别。
表1:设置CNN的参数此外,将该方法与传统的点匹配算法和传统的CNN模型进行了比较,以验证该方法在识别受损指纹方面的优势传统的CNN模型在结构上与本研究提出的CNN模型相同;不同之处在于,传统CNN仅在图像预处理后提取指纹特征点图作为训练和测试样本;如上所述,传统的点匹配算法将训练集作为指纹库,利用特征点进行识别。
判断指纹识别匹配算法性能的指标包括识别率、误接受率、误拒绝率和识别时间。计算公式为:
其中,correct、FRR、FAR分别为识别率、误接受率、误拒收率,ostr为正确识别的指纹图像个数,M为识别的指纹图像总数,NG为类内比较次数,NFR和NFA分别为误接受次数和误拒收次数。
受限于纸张长度,本文只显示了一个损坏的指纹,如图4所示。从图4中可以看出,由于手指被染色,指纹部分缺失。传统点匹配方法的特征点识别结果如图5所示。由于指纹损坏,很难判断缺失部分是否存在特征点,从而降低了点匹配算法对损坏指纹的识别精度。传统的CNN方法将带有特征点的图像作为输入,在卷积层和池化层特征提取后进行识别判断。虽然传统的CNN方法不需要完全依赖特征点,使用卷积核提取细节特征,但受损指纹的缺失部分仍然会对指纹特征提取产生影响。与传统的点匹配方法相比,传统的CNN方法具有一定的优势。本文提出的基于CNN的识别算法处理的特征图如图6所示。截取指纹中心点图像块的目的是为了减少缺失部分的影响,简化指纹修复步骤。指纹特征点模糊处理的目的是淡化特征点的具体位置,重点关注特征点之间的关系。两种图像的结合避免了缺失部分的影响,突出了特征点的分布特征。它们的结合可以提供更精确的特征,提高识别精度。
与CNN相比,传统的点匹配指纹识别算法没有常规的训练过程。在训练集中计算指纹图像的特征点,建立指纹匹配数据库,可视为训练,因此本文仅说明传统CNN与改进CNN在训练过程中误差损失的变化如图7所示。从图7的曲线变化可以看出,随着训练次数的增加,两种模型的误差损失逐渐减小趋于稳定,传统CNN和改进CNN分别在训练1200次和800次后趋于稳定;在两种模型训练误差趋于稳定后,改进的CNN在稳定训练时的误差小于传统CNN。
三种识别算法的识别性能如图8所示。从图8可以看出,CNN模型的识别率显著高于传统点匹配指纹识别算法,而改进的CNN算法的识别率显著高于传统CNN算法;传统点匹配算法的错误接受率明显高于两种CNN识别算法;传统CNN识别算法的错误接受率明显高于本文提出的CNN识别算法;在错误拒绝率方面,传统点匹配算法明显高于两种CNN识别算法,传统CNN识别算法的错误拒绝率明显高于本研究提出的CNN识别算法。
在这三种识别算法中,传统的点匹配识别算法没有一个通用的训练阶段。识别未知指纹时,将未知指纹的特征点与已知指纹库中的指纹特征点进行比较,得到识别结果。因此,可以说识别方法不需要训练,而是需要一个准确的指纹数据库。传统的CNN识别算法和本文提出的CNN识别算法都是深度学习算法;因此他们需要一些时间来训练。在本实验中,传统CNN识别方法和改进CNN识别方法的训练时间分别为60分钟和40分钟。然后,识别测试集的未知指纹。识别单个未知指纹所需的平均时间如图9所示。传统的点匹配算法需要1.87秒,传统的CNN识别方法需要0.62秒,本文提出的CNN识别方法需要0.12秒。从图9可以看出,两种经过训练的CNN识别方法识别未知指纹所需的时间远小于传统的点匹配方法,而本文提出的CNN识别方法识别时间明显短于传统的CNN识别方法。
图4:损坏指纹图5:损坏指纹的特征点
图6:改进后损坏的指纹特征图
图7:本研究中提出的传统CNN和CNN在训练过程中的损失变化
图8:三种识别算法的识别性能
图9:三种识别算法的时间消耗
本文简要介绍了传统点匹配指纹识别算法和基于CNN的损伤指纹识别方法,并在MATLAB软件中对基于CNN的损伤指纹识别方法进行了仿真实验,并与传统点匹配识别方法和传统CNN识别方法进行了对比。结果表明:(1)随着训练量的增加,两种CNN模型的误差损失逐渐减小到稳定水平;经过1200次和800次训练后,传统CNN和改进CNN趋于稳定,稳定后改进CNN的误差损失较小;(2)两种CNN算法均比传统点匹配方法具有更高的识别率、更低的误接受率和拒绝率,而改进的CNN识别方法比传统CNN具有更高的识别率、更低的误接受率和拒绝率;(3)传统点匹配识别方法识别单个未知指纹平均所需时间为1.87秒,传统CNN识别方法平均所需时间为0.62秒,改进CNN识别方法平均所需时间为0.12秒。