Research on partial fingerprint recognition algorithm based on deep learning

Neural Computing and Applications( IF 5.102 )

摘要:

指纹识别技术被广泛用作各种移动设备上一种功能强大且有效的身份验证方法。但是,大多数移动设备使用小面积的指纹扫描仪,并且这些指纹扫描仪只能获取用户指纹信息的一部分。此外,传统的指纹识别算法过分地依赖于指纹的细节,并且其识别性能在移动设备中存在很大的局限性,由于移动设备只能通过指纹扫描仪获得部分指纹图像。提出了一种基于深度学习的局部指纹识别算法。它可以改善卷积神经网络的结构,利用两种损失函数进行网络训练和特征提取,最终提高部分指纹图像的识别性能。实验结果表明,本文的指纹识别算法比基于深度学习的现有指纹识别算法在公共数据集NIST-DB4和自建数据集NCUT-FR中的部分指纹分类和指纹识别问题上具有更好的性能。

1、介绍

近年来,指纹识别技术越来越广泛地应用于日常生活的各个领域,如电子商务、在线支付、门禁系统等。与其他基于生物特征的身份认证技术如掌纹、人脸、虹膜[1]相比,指纹识别技术使用更方便,安全性更高。此外,在众多用于身份认证的生物特征中,指纹也被认为是最理想的生物特征[2],而使用指纹进行身份认证的优势在于指纹具有较高的唯一性、稳定性和性能[3]。

独特性:指纹是唯一的;没有两个人的指纹是一样的;

稳定性:指纹非常稳定,不会轻易随时间和年龄变化;

性能:采用基于指纹的识别技术可以满足识别精度、识别速度和识别鲁棒性的要求,且存储和计算开销较小。

现有的指纹识别算法大多利用指纹图像的详细信息来提取指纹图像的特征,然后采用特定的相似度计算规则来测量指纹图像的相似度来实现指纹识别过程。这些细节通常是指纹图像的纹理、形状和关键点。对应的特征描述符为LBP[4,5]、HOG[6,7]和SIFT[7 - 10]。同时,也有研究人员将这些指纹图像的信息进行了分类三个层次[11,12]来指导指纹图像特征提取过程。

第一级特征关注脊的方向和关键区域,如脊的方向形成的线和三角形的格局,主要用于分类问题,而不是个体的唯一性;

二级特征侧重于山脊路径,如分叉和结束脊,可用于具有个体唯一性的问题分类和识别;

第三级特征侧重于脊的特征,如边缘形状和宽度,可用于分类和识别具有个体唯一性的问题。

但是,这些指纹识别算法过于依赖指纹图像的详细信息,在完整的指纹图像上可以获得相当好的识别性能,而当指纹信息缺失[13]时,其识别性能会大大降低。与此同时,使用小面积指纹扫描仪越来越受欢迎,因为它可以节省空间,特别是在一些空间相当有限的情况下。一个典型的例子是苹果Touch ID指纹扫描仪的尺寸,它只有6.35 mm 9 6.35 mm[14]。这种小面积指纹扫描仪只能获取用户的部分指纹信息。当指纹图像只有一部分时,指纹图像的部分细节会发生相应的变化。例如,指纹图案的变化如图1所示。

Research on partial fingerprint recognition algorithm based on deep learning_第1张图片 图1:指纹a、b属于同一用户,指纹a、c属于不同用户,但指纹模式上a、c与b更相似

 针对上述情况,本文提出了一种基于卷积神经网络的指纹识别算法。我们的工作主要有以下几点贡献:

1. 提出了一种利用残差网络提取部分指纹图像特征的方法。利用交叉熵函数和对比损失函数对所设计的残差网络进行训练,然后通过k-means++算法得到稳定特征。

2. 提出了一种新的相似度指纹验证方法。在指纹验证阶段,充分利用了从神经网络中获得的分类信息和特征向量,因此指纹验证具有更好的安全性。

2、相关工作

Wonjune等[15]提出了一种同时使用详细信息和脊特征的部分指纹识别算法。他们对特定边缘形状的小脊段进行特征提取,并使用这些脊段特征来指导指纹细节的提取。在山脊特征的相似度计算阶段,只包含相似指纹重叠部分的特征,这有助于提高指纹识别的准确性。Radu et al.[16]假设在用户注册阶段可以获得用户高质量完整的指纹信息,提出了一种基于策略的部分指纹识别算法。在部分指纹图像的匹配阶段,如果能获得足够多的指纹细节信息,则采用传统的基于细节的指纹识别算法;将基于相关性的指纹识别算法和基于细节的指纹识别算法相结合,得到最终的识别结果。Omid等[17]提出了一种基于区域相似度的部分指纹识别算法。他们没有按照传统的指纹识别算法提取指纹图像的详细特征,而是计算指纹图像上区域与区域之间的相似度。这种变化的好处是,与细节信息相比,部分指纹图像丢失对区域的影响相对较小。Alice等人[18]提出了一种基于脊重建的部分指纹识别算法。他们利用部分指纹图像的剩余信息重构了指纹图像的全局拓扑表示,实现了指纹图像信息的扩展。该方法可以有效缓解部分指纹图像信息丢失的问题,从而在一定程度上将部分指纹识别问题转化为全指纹识别问题。

与此同时,随着深度卷积神经网络在图像检索、目标检测、图像语义分割、图像分类等任务中得到广泛应用,并取得较好的效果[19-23],一些使用卷积神经网络进行指纹识别的算法也出现了。这些算法依靠卷积神经网络强大的特征提取能力来实现良好的指纹识别。Zhang等人[24]使用KNN算法改进了基于Triplet-Loss函数的样本选择问题,并使用SoftMax-Loss进行卷积神经网络训练,有效提高了网络表达指纹图像的能力。Zhang等人[25]提出了一种基于配准模板的部分指纹匹配方法。在指纹配准阶段,指纹图像的质量受到限制,如果指纹图像区域和特征点不符合要求,则需要重新配准,以确保已配准的指纹图像具有完整的指纹信息。在指纹识别阶段,由于对比使用的模板信息相对完整,指纹识别性能有所提高。Wu等[26]以毁损的指纹图像为中心截取关键信息,利用Kriging径向基函数对指纹特征点进行模糊处理,弱化特定的指纹线条,突出特征点与特征点之间的相互性,减少指纹质量差对指纹识别的影响。

然而,无论是现有的基于传统手工特征的部分指纹识别算法,还是深度学习指纹识别算法,都存在一定的局限性。对于部分指纹的识别问题,核心问题是如何在指纹图像中缺少部分信息的情况下,找到两幅图像之间剩余的相关性,并用合适的特征描述符来表达。使用手工特征设计很难捕捉到这些关联,因为手工特征的设计通常是基于人眼的视觉观察,有时人眼无法捕捉到这些信息,特别是在相关性较低的情况下。Joan et al.[27]通过实验验证了这一点。他们将指纹图像有效面积的比例分别设置为100、75、50、40和30%,对比传统基于细节的指纹识别算法和基于深度学习的指纹识别算法对识别性能的影响,最终发现深度学习算法对指纹面积的减小更具鲁棒性。此外,随着硬件设备的发展,一些先进的指纹采集设备可以捕捉到非常细微的指纹信息,比如人体皮肤的汗腺,而手工制作的特征本身很难描述这些指纹图像的细微差别。现有的深度学习指纹算法,大多使用单一损失函数来训练神经网络。虽然Ref.[24]使用了两种损失函数进行训练,但是没有充分利用神经网络提供的信息,忽略了神经网络提供的分类信息,使得指纹识别效果有一定的局限性。

3、方法

3.1、问题描述

指纹识别任务一般可分为指纹验证和指纹识别。指纹验证是指根据用户的指纹信息,验证用户是否与其声称的身份一致;指纹识别是指从指纹信息判断用户是否是合法用户,如果用户是合法用户,则会指示用户的具体身份。无论是指纹验证还是指纹识别,在算法阶段都可以转化为指纹信息的一对一匹配问题,即计算两个相似指纹之间的距离或相似度,并设置一些约束来判断这两个指纹图像是否属于同一用户。

3.2、算法描述

3.2.1、残差网络

[28]等人带领微软亚洲研究院团队参加了顶级计算机视觉竞赛LSVRC(大规模视觉识别挑战赛,LSVRC),并最终获得冠军,因为他们的网络ResNet (Residual network, ResNet)在各种计算机视觉任务中表现出色。此后,ResNet也出现了各种改进版本[28-30]。ResNet的网络结构简单,解决了深度卷积神经网络在网络深化过程中性能下降的问题。此外,Li et al.[31]认为用于图像检索的哈希编码在基于深度哈希的图像检索任务中也应该具有更好的图像分类特征,他们用两种损失函数训练了他们的网络,并在图像检索任务中获得了很好的表现。

基于以上两种思路,本文提出了一种新的基于深度学习的部分指纹识别算法。在指纹图像的训练过程中,采用交叉熵函数和对比损失函数,网络输出为并行结构,直接作为两个损失函数的输入。换句话说,损失函数的两个直接训练的节点之间没有过度的影响。此外,这样做有两个好处。一是采用两种损失函数同时训练神经网络,具有较强的图像特征表达能力;二是采用并行训练方法,减少了后用于指纹识别的两种特征之间的依赖性和相关性。本文设计的残差网络结构如图2所示。

Research on partial fingerprint recognition algorithm based on deep learning_第2张图片 图2:网络结构

 3.2.2、损失函数

本文采用交叉熵函数和对比损失函数对所设计的网络进行训练。CrossEntropy函数使网络具有很强的分类能力,而Contrast-Loss函数使网络可以显示两个指纹之间的差异;这样,经过训练的网络将具有更强的指纹信息表示能力。本文使用的Contrast-Loss函数是一种离散损失函数[32],它可以将输出节点的值限制在[- 1,1],因此在后续的特征计算过程中,可以避免对特征向量进行归一化操作。在神经网络的训练过程中,本文采用小批量训练的方法,每次只取一部分训练集图像进行神经网络学习。

Cross-Entropy函数Lcross为:

Research on partial fingerprint recognition algorithm based on deep learning_第3张图片

其中n为输入图像数,m为Fc层节点数,yi;j和zi;j为Fc层第j个节点第i张图像的实际输出值和期望输出值,Fc为交叉熵的输入层。

对于任意指纹图像对,对比度损失函数Lpairs如下:

Research on partial fingerprint recognition algorithm based on deep learning_第4张图片 其中I1和I2为一对指纹图像,e为误差边缘阈值,a为松弛系数,:k k2为L2范式和rðI1;I2Þ, I1 I2和I1 j j 1定义如下:

Research on partial fingerprint recognition algorithm based on deep learning_第5张图片

上式中,F0 c层为对比度- loss函数的输入层,m0、y0、z0分别为F0 c层的节点、实际输出值和期望输出值。因此8Ii 2i,指纹图像对Lcon的总损耗如下:

Research on partial fingerprint recognition algorithm based on deep learning_第6张图片 

此外,对各参数层采用了权值衰减的正则化方法。对于参数层中的参数,有减重Ldw:

Research on partial fingerprint recognition algorithm based on deep learning_第7张图片 

其中m”为参数层数。因此,总L为:

 其中入为权重系数。结合方程。(1) (5) (6), L可以改写为:

 Research on partial fingerprint recognition algorithm based on deep learning_第8张图片

3.2.3、指纹识别

指纹识别任务可分为注册和识别两个阶段。指纹注册阶段主要用于提取已注册的指纹信息,用于后续识别阶段进行特征比较;指纹识别阶段是识别用户指纹的过程。

在注册阶段,假设系统注册了几个合法用户。对每一类训练好的指纹图像,应用对比度损失输入的节点作为指纹图像的特征向量,然后用k-means??通过算法得到每个类的k个聚类中心作为最终特征。事实上,k的值取决于每个注册的指纹图像的数量;指纹图像越多,k的值就越大,得到指纹图像的稳定特征向量。然后,利用训练后的指纹图像采集的特征向量建立特征库。指纹配准过程如图3所示。

Research on partial fingerprint recognition algorithm based on deep learning_第9张图片 图3:指纹注册

 在识别阶段,本文重点研究了指纹验证的细节。在指纹验证过程中,给出用户的指纹图像I和对应的需要验证的指纹ID。将指纹图像放入设计的残差网络中,得到其交叉熵损失Lcross、预测值IDcross和特征向量y0。计算y0与特征库中各类特征向量之间的欧氏距离,然后按照从小到大的距离排序,得到与y0距离最小的类IDmin Dis。并设置非负系数a和阈值t,有一个验证函数F:

Research on partial fingerprint recognition algorithm based on deep learning_第10张图片

如果F值为真,则接受此验证,反之亦然。指纹验证流程如图4所示。 

Research on partial fingerprint recognition algorithm based on deep learning_第11张图片 图4:算法流程图

4、实验

4.1、数据集

目前,部分指纹识别领域还没有发表的数据集。本文构建了部分指纹数据集NCUT-FR(华北工业大学手指识别,NCUT-FR)。本数据集采用触摸式指纹扫描仪,其实际传感面积为7.2 mm 9 3.6 mm,可获得尺寸为103 9 52的指纹图像。触控指纹扫描仪如图5所示。在这个数据集中,我们实验室从志愿者那里收集了47类指纹图像,最终的指纹图像总数为5070张,也就是说每个类别大约有100张图像。此外,指纹采集过程中还存在一定程度的旋转。NCUT-FR指纹图像如图6所示。

Research on partial fingerprint recognition algorithm based on deep learning_第12张图片 图5:指纹扫描仪 Research on partial fingerprint recognition algorithm based on deep learning_第13张图片 图6:来自不同用户的各种指纹图像

为了进一步验证算法的有效性,还使用了公共数据集NIST-DB4[33]进行实验。NIST-DB4是一个广泛应用于指纹分类识别领域的公共数据集。该数据集收集了2000对指纹图像,共计4000张图像。这些指纹图像根据指纹图案可分为五类,即分别是弓形、左旋、旋转、右旋和弓形。事实上,在NIST-DB4中采集的指纹图像质量不是很好,并且存在是图像中的一些人工标记信息和污点,可能会影响指纹识别或分类的性能。此外,许多研究人员在使用时将数据集再次划分为两个子集。即每个指纹图像的第一印象为NIST-DB4-F,第二印象为NIST-DB4-S。我们的实验也采用了这种策略,NIST-DB4数据集的部分指纹图像如图7所示。

Research on partial fingerprint recognition algorithm based on deep learning_第14张图片 图7:不同种类的指纹图案

 4.2、实现细节

网络结构:本文设计的残差网络主要由串联的残差单元组成,网络的输出为并行的双边结构。所有使用的激活函数都是ReLu函数和权值衰减,适用于所有参数层,以防止网络过拟合。此外,本文还使用批归一化[34]来加快各层输入节点的网络训练过程。用于比较的网络Net-Our和传统网络Net-Tradition的详细情况见表1。

Research on partial fingerprint recognition algorithm based on deep learning_第15张图片 表1:Net_Our和Net_Tradition的详细信息

 数据预处理:在NCUT-FR数据集上,将原始图像缩放到64 9 64,并填充8个像素的长宽,然后对图像进行随机切割图像中心尺寸为64 9 64,相当于将单个指纹图像展开为64;在NIST-DB4数据集上,直接在指纹图像的中央截取64 9 64的大小,并按照与NCUT-FR数据集相同的方式进行数据扩展,以丰富样本数量。

训练:在网络训练过程中,两个数据集都使用动量方法来优化神经网络,动量值设置为0.9。培训批次大小设置为100个;初始学习率设置为0.1,每10,000次迭代的学习率将降低到当前值的十分之一,直到学习率为0.0001。

4.3、评价指标

在指纹识别算法的评价标准中,拒收率FRR (FRR, False rejection rate)和错误接受率FAR (FAR, False acceptance rate)是两个常用的指标。FRR是指纹识别错误地拒绝授权用户访问尝试的可能性的度量。FAR是生物识别安全系统错误接受未经授权用户访问尝试的可能性的度量。FAR和FRR的数学定义如式(9)所示。

在上面的公式中,NGRA是类内的测试总数,NIRA是类间的测试总数。NFR和NFA是错误拒绝和错误接受的数量。

5、结果分析

5.1、NCUT-FR评价

 本文在部分指纹数据集NCUT-FR上进行了四组实验。本文在NCUT-FR上的测试配置和网络训练细节见表1和表2。

Research on partial fingerprint recognition algorithm based on deep learning_第16张图片 表2:NCUT-FR实验配置

 第一组和第二组用于比较传统的基于深度学习的指纹识别算法,该算法只使用单个交叉熵损失函数来训练神经网络。第一组和第二组实验的区别第二组中用于验证FRR的指纹图像类别与训练集没有交集。因此,与第一组相比,第二组是一个更严格的识别测试。他们的ROC曲线分别如图8a、b所示。从实验结果来看,无论是第一组实验还是第二组实验,我们算法的ROC曲线始终处于传统算法之下。在第一组控制实验中,当FAR为0时,我们算法的FRR约为3.6%,比传统算法低1.0%。在第二组控制实验中,当FRR为20%时,我们算法的FAR为0.0154%,约为传统算法的二十分之一。我们的算法在指纹识别问题中具有较好的性能,原因是用两种损失函数训练的网络具有较强的指纹图像信息表示能力。此外,对比两组实验也可以得出一个明显的结论,基于深度学习的指纹识别算法在这些训练过的指纹上的识别性能要优于其他算法。

Research on partial fingerprint recognition algorithm based on deep learning_第17张图片 图8:a-d分别为第一、二、三、四次实验的ROC曲线

 第三组实验用于对比我们的算法与现有的基于深度学习并使用两种损失函数的传统指纹识别算法的指纹识别性能。该结果的ROC曲线如图8c所示。当FAR约为0时,我们算法的FRR约为12.3%,低于现有算法的20%。此外,在两条曲线与FAR的增加重合之前,我们算法的FRR始终低于传统算法。这说明我们的算法对于一些安全性比较重要的应用场景更有用。该算法的部分指纹识别性能优于传统算法的原因是利用了来自网络的特征向量。这些特征向量是一种限制,可以拒绝更多的假指纹图像,从而获得更好的性能。第四组实验研究了每一类训练使用的指纹图像数量和验证函数F的参数a对指纹识别的影响。结果如图8d和表3所示。在图8d中,当精度为80%时,每类设置指纹图像数量大于30张进行训练的所有曲线的FRR集中在一起,FRR的中心值约为0.036%。随着训练图像数量的增加,指纹识别的性能越来越好。然而,当每类训练图像数量为30张时,即使再次增加识别性能的收益也会变得很小。这有两个原因。一是用于训练网络的指纹数量越多,适应的指纹图像越丰富,鲁棒性越强;另一种是每个部分指纹图像只有指纹图像的部分信息,当用于训练的每一类指纹图像数量达到一定数量时,网络最终可以获得指纹的完整信息。在这种情况下,增加训练图像的数量已经没有意义了。因此,为了获得更好的识别性能,丰富的指纹图像训练对于部分指纹图像识别问题是非常重要的。而商用移动指纹识别算法往往需要注册25张左右的指纹图像才能保证安全性[15]。此外,还有一种方法可以有效地降低对指纹图像数量的需求,即在对指纹图像进行配准的过程中获取用户完整的指纹图像。然后利用这些完整的指纹图像进行相应的数据增强操作,以获得更好的识别性能。在表3中,当FRR相同时,将a设置为0.5,FAR更好。事实上,如果a的值小于1.0,分类信息的比例就会更大,最终的验证效果也会提高。因此,根据实验结果,a的可取范围为(0.0,1.0]。

Research on partial fingerprint recognition algorithm based on deep learning_第18张图片 表3:a对识别性能的影响

 5.2 NIST-DB4评估

指纹分类问题与指纹识别问题有很大的相似性。如果一种指纹分类算法不仅能达到很好的分类效果,而且对未知类别有很好的拒绝能力,那么该分类算法在实际应用中可以认为是一种识别算法。也就是说,指纹登记后,已登记的指纹被正确分类,未登记的指纹被正确拒绝。

本文的部分指纹图像识别算法同时采用了神经网络中指纹图像的分类信息和特征向量,可以认为是一种鲁棒指纹分类算法。因此,本文也将本文算法的指纹分类性能与现有的先进指纹分类算法进行了比较。为了比较的公正性,试验数据直接引用自Ref.[35]。NIST-DB4-F和NIST-DB4-S的分类精度如表4所示。从实验结果来看,本文算法在NISTDB4-F和NIST-DB4-S数据集上优于Ref.[35]中提出的基于深度学习的指纹分类算法,特别是在NISTDB4-S数据集上准确率提高了4.09%。

Research on partial fingerprint recognition algorithm based on deep learning_第19张图片 表4:分类结果

 6、结论

提出了一种新的指纹部分识别算法,利用CrossEntropy函数和Contrast-Loss函数对设计的ResNet进行训练,然后充分利用神经网络中指纹图像的分类信息和特征向量,对指纹部分图像的识别问题取得了较好的识别性能。实验结果表明,该算法比现有的部分指纹识别算法具有更好的识别性能。

你可能感兴趣的:(指纹,识别文章,深度学习,人工智能)