基于密集连接卷积网络的小面积指纹识别方法
2020-05-20陈文燕范文博杨钧宇
陈文燕,范文博,杨钧宇
西安科技大学 电气与控制工程学院,西安 710054
1 引言
如今,智能手机已经成为人们日常生活中最常使用的移动设备,自苹果公司于2013 年将Touch ID 集成到智能手机[1]后,手机的解锁方式跨入一个新的领域,从物理解锁(数字、字母或图案)变成生物特征解锁。短短几年时间,指纹识别技术已经广泛应用到智能手机端,而且功能不仅仅局限于解锁,还应用到其他需要更高级别的应用程序,例如在线支付、应用加密等。指纹识别技术能够快速普及的原因在于,相比其他生物特征(人脸、掌纹和虹膜等),指纹具备唯一性、稳定性和便携性。目前,指纹识别技术是应用在移动终端最成熟的生物特征识别技术。
依赖细节特征(端点和分叉点)的传统指纹识别算法,已证明其在指纹识别中的效率和可靠性。然而,当指纹信息丢失或者不完整时,依赖细节特征的算法识别性能将大大降低[2]。嵌入到智能手机的指纹采集器通常比传统的指纹采集器采集面积小,只能采集到部分指纹,一般只有正常手指面积的20%~40%,采集到的图像所包含的细节特征较少,如图1所示,因此基于细节特征的传统指纹识别方法达不到应用到智能手机端的要求。
图1 小面积指纹图像
现有针对智能手机端的小面积指纹识别算法主要利用指纹图像中特征的详细信息,然后采用特定的相似度计算规则来计算指纹图像之间的相似度,实现指纹识别[3]。这些细节特征通常是指纹图像的纹理、形状和关键点,相应的特征描述符有LBP(Local Binary Pattern)[4]、HOG(Histogram of Oriented Gradient)[5]和 SIFT(Scale-Invariant Feature Transform)[6-7]等。另外还有Shabrina等人[8]利用两幅指纹图像重叠区域的相位差的逆傅里叶变换的峰值作为识别参数,实现基于相位相关的识别。Trunfio等人[9]利用指纹图像的像素信息,计算各个局部重叠的相似性,然后组合成全局分数,实现指纹图像的匹配。
近几年卷积神经网络在图像检索、分割和分类等任务中取得了良好的效果,特别是对于有挑战性的生物识别问题,例如人脸识别[10-11]。基于卷积神经网络的人脸识别相比基于特征点的传统人脸识别算法有着卓越的性能。同时,智能手机作为人们日常生活中最为密切的电子设备,如何将深度学习模型应用到智能手机备受社会和科研工作者的关注。2017 年TensorFlow[12]官网给出将深度学习模型移植到安卓系统,实现行人检测、物体识别和图像风格迁移等示例的具体实现过程,同时有一些平台(如MXNet)也支持将深度学习模型移植到智能手机。基于深度学习实现小面积指纹识别方法的研究有:Joan等人[13]将指纹图像的有效面积比设置为100%、75%、50%、40%和30%,然后比较传统指纹识别算法和基于神经网络识别算法的识别性能,最后实验证明基于神经网络的识别算法随着指纹面积的减少识别性能更为稳健。Zhang等[14]设计了一个38层的卷积神经网络,采用k最邻近方法,并使用两种误差函数Triplet Loss和Softmax Loss 来提高了网络表达指纹图像的能力。Zhang 等人[15]提出了一种基于残差结构的深度学习模型,该模型需要提取以传统特征点为中心的固定大小图像,输入到网络提取二值特征,该方法提取到相对完整的指纹信息,在自建库上达到99.57%的识别率。Zeng等人[3]仍使用残差结构构建深度学习模型,使用交叉熵函数和对比度损失函数进行训练和提取指纹特征,并充分利用从深度学习模型获取到的分类信息和特征向量,来完成指纹识别,使指纹验证具有更好的安全性。
综上所述,针对基于深度学习的小面积指纹识别算法比较少,对小面积的指纹识别进行深入研究,有助于提高基于指纹识别的智能手机身份认证方案的安全性和可靠性[15]。在研究深度学习进行图像识别的文献后,本文提出了一种基于密集连接卷积网络模型,且实现类似智能手机的多张注册模板的小面积指纹识别方法。本文的主要贡献:
(1)利用密集连接卷积网络[16]来提取指纹图像特征,充分利用密集连接卷积网络特征复用的优点,来提高特征表达指纹图像的能力。
(2)使用二值特征和特征向量实现指纹图像的注册和识别,并将二值特征引入深度学习模型,来降低二值特征之间的不相关性。
2 构建密集连接卷积网络
2.1 密集连接卷积网络
密集连接卷积网络受到深度残差网络[17]的启发。深度残差网络在2015年ILSVRC竞赛上斩获图像分类、图像检测和图像定位三项冠军。残差网络结构表明,如果卷积神经网络在靠近输入层和靠近输出层之间包含一个较短的连接,则可以更加准确和有效地进行网络训练。基于残差网络结构,密集连接卷积网络结构建议通过前馈方式,将每一层的输出连接到每个其他层来扩充较短的连接。特征的复用能够增强特征传播,同时减轻梯度消失。如图2所示,展示了4层密集连接块结构。
图2 增长率k=6 的4层密集连接块
若密集连接卷积网络结构层数为L,第n层的输出表示为Xn,则第n层会获取前面所有层的特征,如下式:
式中,[X1,X2,…,Xn-1] 表示由第 0,1,2,…,n-1 层输出的特征图组成的张量。hn是一个复合函数,包括批量归一化(Batch Normalization,BN)、整流线性单元(Rectified Linear Unit,ReLU)、卷积层(Convolutional,Conv)三个操作,即BN-ReLU-Conv(1×1)-BN-ReLUConv(3×3)。其中1×1卷积操作的目的是减少输入的特征数量,优点在于既能降维,减少计算量,又能在降维的过程中融合各个通道的特征。
图3 网络模型结构
2.1.1 增长率
在密集连接卷积网络结构中,每层会产生k个特征图,那么在第n层输入k0+k(n-1)个特征图,其中k0是原始输入图像的特征图,k是网络的增长率。实验数据表明,一个较小的增长率就能够获得相当好的训练效果[16]。
2.1.2 过渡层
当特征图尺寸发生变化时,再使用式(1)显然是不可取的,且密集连接块随着层数的增加,特征数量增长更快,需要间隔一定层数对特征进行降维。在整个网络中,密集连接网络结构被过渡层划分开,过渡层包括批量归一化、整流线性单元、卷积层和池化层(Pooling),表示为BN-ReLU-Conv(1×1)-Pooling。其中1×1卷积操作是为了提高模型的紧凑性和减少特征图数量。如果密集连接卷积网络结构输出m个特征图,经过1×1卷积操作后生成不超过θm的最大整数个输出特征图,其中θ被称为压缩因子,取值范围是0<θ≤1。当θ=1 时,转换过程中的特征映射的数量保持不变。池化层的目的是改变特征图的尺寸大小。本文实验中设定θ=0.5。
2.2 基于密集连接卷积网络训练模型
为了保证提取指纹特征和指纹匹配的速度,本文选择搭建轻量级密集连接卷积网络模型,如图3 所示,增长率k设置为12,网络将经过预处理的96像素×96像素的指纹图像作为输入,经过一个5×5卷积层,3个密集连接卷积块和2 个过渡层运算后,得到384 个12×12 的特征模板,接着提取特征模板的二值特征代替一般网络中的全局池化层输入到全连接层。
2.2.1 指纹图像筛选和预处理
遗漏细节或者虚假细节的问题是降低指纹匹配性能的关键原因,因此恢复指纹的细节特征和删除残缺的指纹是一种提高指纹匹配性能的可靠方法。
(1)指纹图像的筛选
在采集指纹过程中,存在按压未完全或者手指移动过快等情况,导致只采集到部分指纹,如图4 所示。指纹采集器的采集面积比较小,将图4类似图像输入到深度学习模型后,错误识别率会增加,因此有必要对采集到的指纹图像进行筛选。本文采用指纹图像的梯度幅度图像计算其有效面积,从而实现对指纹图像的筛选。方法如下:
首先分别计算指纹图像f(i,j)的水平方向梯度dx和垂直方向梯度dy:
其中,f(i,j)是坐标,(i,j)为像素值。然后计算指纹图像的梯度幅度图像A(i,j):
再次,用边长为m的窗口对梯度幅值图像A(i,j)进行滑动求和:
当H(i,j)大于等于设定阈值Hth,则该点属于有效点。因此指纹图像的有效面积:
其中,M表示H(i,j)大于等于阈值Hth的个数,N是指纹图像的总像素。根据上述有效面积的计算,保留有效面积大于设定阈值Sth的指纹图像,反之删除。
图4 残缺的指纹图像
(2)指纹图像增强
在指纹识别中,存在下列情况可能会把干扰信息误认为特征,影响指纹图像的识别率和计算速度。例如采集指纹图像过程融入的噪声,由于按压过于用力导致平行脊线黏在一起,手指本身存在蜕皮、疤痕和淤青,或者指纹图像中不是严格连续的脊线等。上述情况都在指纹预处理操作过程中得到一定的修复。预处理操作包括归一化和Gabor滤波,从而实现指纹图像增强,如图5所示。
图5 指纹原图和预处理后的指纹图像
(3)训练样本扩充
数据扩充是深度学习中用于增加训练数据量和防止过拟合的常用方法。在采集指纹图像的过程中,指纹角度有较小角度的旋转,因此将增强后的训练样本旋转±8°和±15°,则训练集扩充5倍,并且将训练样本图像进一步旋转将不会明显改善性能。
实验结果表明,指纹图像预处理和数据扩充两个操作提高了指纹识别性能。
2.2.2 特征二值化
本文提取特征图像的二值特征来代替一般网络中的全局池化层,目的是用指纹图像的二值特征和特征向量构建指纹数据库来实现指纹的注册和识别策略。文献[18]设计了5 种低相关性的二值滤波器,如图6 所示。每个二值滤波器包括两个面积大小相等的区域(黑白区域),只需统计每个二值滤波器中两区域中像素强度之和,然后进行比较后产生二进制描述符。二值滤波器公式如下:
其中,Bn表示5 个二值滤波器中的一个,sum(black)表示黑色区域的像素强度之和,sum(white)表示白色区域的像素强度之和。
图6 5种二值滤波器
根据图3可知在第三个密集连接块输出384张像素为12×12的特征图像,此处使用上述二值滤波器提取二值描述子,具体方法如下:
首先将12×12的特征图划分为3×3个子区域,每个子区域边长是4;然后在每个子区域中使用5 个二值滤波器提取二进制描述符,则每张特征图提取45 位二值描述子。经过上述操作,在384 张12×12 特征图中提取一个45 行384 列的二值特征矩阵。为了方便网络训练和提高计算效率,将每个子区域提取5位二进制转换为十进制,即将9 行384 列矩阵输入到全连接层。实验数据说明将二值特征融入训练网络可以使二进制描述符之间的相关性降低,从而降低二进制描述符的错误匹配率。
3 基于注册模板的指纹识别方法
目前,在智能手机中嵌入的指纹采集器采集面积较小,但是理论上指纹信息越完整,识别率越高。因此需要用户在注册指纹模板时进行多次注册,以便能收集完整的指纹信息。基于注册模板的指纹识别方法具体流程如图7所示,在注册阶段采用多次注册的方式提取指纹图像特征信息来构建指纹数据库。在匹配阶段,利用待匹配指纹图像的二值特征和特征向量分别与指纹数据库进行粗匹配和精匹配,并根据设定阈值判别识别结果。具体步骤如下:
设定M为注册指纹图像的数量(M≥15),Ni表示当前第i张注册指纹图像,Fi表示Ni对应的特征向量集合,Bi表示Fi对应的二值特征集合;相关阈值有有效面积阈值Sth,匹配点个数阈值Nmax、Nth且Nmax>Nth,二值特征之间汉明距离阈值φ以及特征向量之间余弦相似度阈值φ。
在注册过程中,需要对每一张指纹图像计算有效面积,当实际有效面积大于等于Sth,则为合格指纹图像,反之为不合格指纹图像,提示用户重新采集。后续提到指纹图像均是合格图像。因为指纹图像面积较小,重复面积较小,所以前5 张指纹图像直接录入,特征向量集合为二值特征集合为后续指纹图像需要与已录入的指纹进行比对,待注册指纹图像与已录入指纹图像匹配点大于等于Nmax,说明待注册指纹图像与已录入指纹图像重合面积过大,提示用户移动手指,并将待注册指纹图像删除,反之录入指纹图像,更新特征向量集合和二值特征集合,注册指纹图像数量加1。当注册指纹图像数量等于M时,完成本手指的录入,得到最终的。
图7 基于注册模板的指纹识别方法流程图
4 实验及结果分析
4.1 数据集构建
目前,小面积指纹暂时没有公开的指纹库,本文构建了一个小面积指纹数据集DB1(Database 1)。DB1采用深圳信炜科技有限公司生产的电容式指纹采集器,指纹采集器与电路转接板连接如图8所示,采集指纹图像大小为96×96。DB1由40名实验室志愿者组成,每个志愿者采集6个手指,每个手指采集40张,总共9 600张指纹图像,有效面积达到设定阈值的图像有9 542 张。为了保证深度学习模型测试结果和使用训练完成的深度学习模型进行注册和识别测试结果的不相关,对DB1进行划分,如表1 所示。在40 名志愿者中随机选取20名志愿者的指纹图像用于深度学习模型的训练和测试,即训练集包含120 个手指,每个手指有20 张指纹图像,剩余指纹图像作为验证集。剩余20名志愿者的指纹图像用作验证注册和识别的测试,注册集包含120 个手指,每个手指有20张指纹图像,剩余指纹图像作为待识别图像,组成测试集。与DB1 对应的数据集DB2,即对DB1 数据集的所有指纹图像经过预处理操作形成的数据集。
图8 硬件连接图
表1 自建数据集指纹图像信息
4.2 实验结果分析
错误拒绝率(False Rejection Rate,FRR)和错误接受率(False Acceptance Rate,FAR)是用来评估指纹识别算法性能的两个主要参数。FRR 是指把应当识别成功的指纹误认为不能识别的指纹的概率。FAR 是指不应当识别的指纹误认为能识别的指纹的概率。与FAR对应的参数是正确接受率(True Acceptance Rate,TAR),即应当识别成功的指纹正确识别的概率。
本文所涉及的实验为基于密集连接卷积网络的算法模型的训练和测试,以及指纹图像的注册和识别,实验模拟环境为Intel CPU i7、8 GB 内存和显卡GTX1060。表2 列出了网络训练模型的参数设置,此外每一卷积层和池化层后紧跟BN 和ReLU 操作,以防止网络过拟合和加快网络训练。误差函数选用Triplet Loss 和Softmax Loss;初始学习率设置为0.1,每10 000次迭代的学习率将减少到当前值的1/10,直到学习率变为0.000 1。
表2 网络训练模型详细设置
本文设计第一组实验用来验证密集连接卷积网络的表达特征能力。实验内容是将DB1和DB2中的训练集和验证集分别在基于密集连接卷积网络模型中进行训练和验证。网络模型参数完全一致,差异就是数据集的不同。测试和验证的实验数据如图9 所示。实验数据表明,两个数据库在训练过程中随着训练步数的增加,损失值越来越小,最后趋近于稳定。在验证过程中,两个数据集准确率分别是96.80%和97.47%。通过两组实验的数据可以得出,基于密集连接卷积网络模型对小面积指纹有着良好的识别性能,即通过网络模型提取的指纹特征有着良好的表征能力,且增强的指纹图像的准确率高于指纹原图的准确率,即指纹预处理操作可以提高指纹识别率。
图9 网络训练和测试曲线
第二组实验是验证将二值特征引入深度学习模型对算法性能的影响。网络模型1为表1中展示的网络模型。网络模型2 为将表1 中二值特征换成全局池化层,模型训练时全连接层输入为1行384列矩阵。实验内容是将DB2中的注册集和测试集,采用注册和识别策略进行测试。指纹识别过程中,匹配特征只选择二值特征,并适当减少阈值φ,测试的ROC(Receiver Operating Characteristic)曲线如图10所示。当错误接受率FAR为20%时,网络模型1 的FRR 为1.35%,比网络模型2 低0.42 个百分点。此外在两条曲线的FAR 减少到一致之前,网络模型1的算法的错误拒绝率FRR总低于网络模型2。实验数据表明,将二值特征引入到深度学习模型能够很好地降低二值特征之间的相关性,提高匹配率。另外二值特征之间的相关性降低,能够直接减少相似特征点的匹配次数,从而提高计算速度。
图10 特征为二值特征的ROC曲线
第三组实验是在DB2 中注册集和测试集上设计了两种指纹识别方法与本文方法进行对比。方法1 是引入二值特征的34层残差网络模型[17],方法2是基于细节特征的传统指纹识别方法[19]。ROC 曲线如图11 所示,本文方法的正确接受率TAR 达到98.57%,且随着错误接受率FAR 的增加,本文方法的正确接受率TAR 一直高于方法1和方法2,说明本文方法优于34层残差网络模型和基于细节特征点的传统指纹识别方法。
图11 DB2的ROC曲线
实验结果表明,本文提出的基于密集连接卷积网络模型的小面积指纹识别算法,在自建库上正确接受率TAR 达到98.57%,即所提取的特征具备良好的表达图像能力,同时基本上满足智能手机小面积指纹识别的应用要求。
5 结束语
随着集成电路的快速发展,廉价、面积较小的电容式指纹采集器广泛应用在智能手机端,采用传统指纹识别算法实现小面积指纹注册和识别时出现识别率低下的问题,本文提出一种基于密集连接卷积网络的小面积指纹识别方法。该方法利用训练好的深度学习模型提取指纹图像的特征向量和二值特征,实现小面积指纹的注册和识别,并在自建库上正确接受率TAR达到98.57%,对小面积指纹有着良好的识别率和鲁棒性。目前,不少平台支持将深度学习模型移植到智能手机端,为拥有高识别率的基于密集连接卷积网络小面积指纹识别算法的广泛应用奠定了基础。