余弦相似度保持的掌纹识别算法
2022-05-26丘展春费伦科滕少华
丘展春,费伦科,滕少华,张 巍
(广东工业大学 计算机学院, 广东 广州 510006)
随着社会的飞速发展,如何高效、准确地进行身份认证变得越来越重要。和传统的身份识别技术相比,基于生物特征[1]的识别技术由于具有方便、安全、可靠等优点而受到广泛关注。过去的十几年里,掌纹、人脸、字迹、步态、指纹、DNA和声音等[1-6]生物识别技术已在民用领域中广泛使用。和其他生物特征识别技术相比,掌纹[7-11]主要有以下优势:(1) 稳定的特征:掌纹不会像人脸一样随着年龄的变化而变化,也不会像指纹一样被磨损;(2) 识别率高:掌纹不仅包含主线、褶皱和纹理特征等特征,还包含手型特征和静脉特征;(3) 唯一性:研究人员在研究双胞胎的掌纹特征时,发现掌纹可以将双胞胎100%区分开来。
图1为掌纹识别系统的工作流程,主要包含4个部分。(1) 掌纹图像采集:掌纹采集设备用于采集掌纹图像,以便构建掌纹图像数据库。不同的掌纹采集设备可以采集到不同类型的掌纹图像:二维掌纹图像[10-11]、多光谱掌纹图像[12-14]和三维掌纹图像[15-16]。(2) 掌纹图像预处理:在提取掌纹特征和识别之前需要对掌纹进行中心区域[17](region of interest)提取。原始掌纹图像包含很多不必要信息,如背景区域和手指。除了将无用信息去除外,提取掌纹中心区域有利于掌纹对齐,以便后续的特征提取。(3) 掌纹特征提取:掌纹图像除了包含掌纹的特征信息外,还包含遮挡和光照变化等噪音。如何将掌纹特征从掌纹图像中分离出来对后续掌纹分类的准确性有很大影响。(4) 掌纹分类:大部分掌纹数据库提供的掌纹图像都进行了预处理,本文将注意力集中在掌纹特征提取和分类上。
图1 掌纹识别系统的工作流程Fig.1 Work flow of palmprint recognition system
过去的20年来,很多学者提出了多种有效的掌纹识别算法。大致可以把这些算法分为2大类:手工提取图像特征的掌纹识别算法和基于学习的掌纹识别算法。
手工提取掌纹图像特征的算法利用先验知识设计一个效果良好的特征提取模型。掌纹图像中最显著的特征就是3条主线,即生命线,智慧线,感情线。因此基于手工提取特征的掌纹识别算法旨在通过边缘检测算子来提取掌纹主线特征。如Huang等[18]提出了一种基于掌纹主线的掌纹识别算法。特征提取阶段,采用改进的有限Radon变换(Modified Finite Radon Transform, MFRT)来提取掌纹的主线特征并使用一种新的掌纹匹配算法(pixel-to-area)来计算2个掌纹之间的相似度。然而掌纹主线特征单一且在数据量大的时候容易出现主线特征相似的2个不同掌纹。因此,近期许多工作专注于提取掌纹的褶皱和纹理特征。如,Sun等[19]使用Gabor滤波器来提取相交2条线的响应值并使用序数的方法对其进行编码。Kong等[20]提出竞争编码算法,即用6个方向的Gabor滤波器去提取掌纹中每一个点的方向,将响应最大的方向设为该点主方向。由于竞争编码采取赢者通吃的方法,使得它不能准确地提取到线特征的主方向。针对这个问题,Xu等[21]提出了区分性和鲁棒性竞争编码(Discriminative and Robust Competitive Code,DRCC),使得提取的掌纹方向特征更加准确。Guo等[22]提出二进制方向向量(Binary Orientation Cooccurrence Vector, BOCV)算法来改进算法的性能。Zheng等[23]从二维掌纹图像中提取三维特征来用于掌纹识别。Fei等[24]提出显性和隐性方向编码(Apparent and Latent Direction Code, ALDC)提取掌纹的双层方向信息。后来,Jia等[25]提出线方向直方图(Histogram of Oriented Lines,HOL)算法将提取到的掌纹线特征转换成直方图描述子用于掌纹的识别。
虽然手工提取的掌纹特征取得了很好效果,但是它不具备可扩展性。这些手工的图像特征一般是由数据科学家根据特定的机器学习任务进行设计,这就要求数据科学家必须具有丰富的领域知识。手工提取特征是人去寻找特征,而基于学习的掌纹识别算法是让机器从训练样本中学习数据的内在特征。Zhao等[26]从掌纹中提取局部方向特征(Complete Local Direction Feature, CLDF)和卷积差异特征(Salient Convolution Difference Feature, SCDF),并从CLDF和SCDF中学习掌纹的判别性特征。Fei等[27]通过最大化类间距离和最小化类内距离,从掌纹的方向特征和纹理特征中学习判别性特征。一些子空间的方法,比如说独立主成分分析[28-29]和局部保留映射[30]等也被用于掌纹识别中。得益于计算能力的飞速进步,近年来神经网络算法得到了快速的发展。深度学习也被用于掌纹识别的任务中[31-32]。神经网络虽然在人脸识别,图像检索、自然语言处理中取得很好的效果,然而神经网络的效果依赖于数据库的大小和图像分辨率。而现有的掌纹数据库的数据量都比较小且分辨率低,是一个典型的小样本问题,因此神经网络并不能取得最好的效果。
本文提出了一种基于余弦相似度保留的掌纹识别算法。图2给出了算法的流程。对于训练过程,首先提取掌纹的PDV (Pixel Different Vector)特征,然后通过余弦相似度保持模型(Cosine Similarity Preserving Learning, CSPL)同时学习PDV特征的二进制表示及其映射函数以减少PDV特征中的信息冗余。为了处理掌纹位置偏移和光照变化等噪音,将学习得到的二进制特征编码成直方图描述子。对于测试过程,利用学习到的映射函数将测试掌纹图像的PDV特征快速编码成二进制特征编码,并将其转化成直方图描述子。通过比较训练样本和测试样本的直方图描述子可以识别相似的掌纹图像。
图2 算法流程Fig.2 Flowchart of algorithm
1 算法设计与分析
本节先介绍提取PDV[33]特征的方法,然后介绍如何通过余弦相似度保持模型将PDV特征映射为二进制特征,最后给出了将二进制特征编码成直方图描述子的过程。
1.1 PDV特征学习
PDV特征可以很好地刻画图像的局部特征,被广泛应用于计算机视觉算法中。
本文用X=[x1,x2,···,xn]∈Rn×d(其中d=w×h,w和h分别表示掌纹图像的长和宽) 表示掌纹图像的训练集,其中d表示训练样本的维度,n表 示训练样本数,U表示最后提取到的PDV特征。PDV特征可以通过如下步骤计算所得:
(1) 对于训练样本的每个像素点,先计算该像素和周围正方形区域像素的差值,接着以左上角为起点,以顺时针的方向将像素差值连接起来形成PDV特征。图3是提取像素I的PDV特征过程。
图3 PDV的提取过程Fig.3 PDV extraction process
(2) 对于一个维度为d,样本数为n的训练集,首先将计算所得到的所有像素的PDV特征级联在一起形成PDVs特征。记为U=[u1,u2,···,un×d]T∈R(n×d)×l,l表示PDV特征向量的长度。
1.2 二进制特征学习
和实值特征(real-valued feature)相比,二进制特征对光照变化具有鲁棒性。为了去除PDV特征中的冗余信息并获得更加鲁棒性的特征,本文将实值的PDV特征转化为二进制特征b∈{-1,1}k。
式中:ui表示PDV特征向量,bi表示二进制特征向量,W表示的是投影矩阵,r表示二进制编码的长度。函数 sgn(v) 是一个逐个元素求值函数,当v≥0的时候, sgn(v) =1,反之s gn(v)=-1。式(1)第一项计算任意2个PDV特征向量之间的余弦相似度,第二项计算任意2个二进制特征向量之间的余弦相似度。通过最小化2个余弦相似度之间的欧氏距离,可以在二进制空间中保持原始空间的特征结构。由于ui是归一化特征,bi是二进制特征,因此可以将式(1)简化成如式(2)所示。
式中:U=[u1,u2,···,un×d]T∈R(n×d)×l表示的是PDVs特征矩阵,l表示PDV特征向量的长度。B=[b1,b2,···,bn×d]T∈{-1,1}(n×d)×k表示的是映射后的二进制特征矩阵,k表示二进制特征向量的长度。由于式(2)求解困难,通过放松其中一个二进制特征B成为连续特征UW来简化目标函数优化过程。因此式(2)可以改写成如式(3)所示。
式中: λ1和 λ2表示平衡性参数。从式(3)的第一项可以看出,原始空间的特征结构可以同时嵌入到二进制空间和映射函数中,使得学习到的二进制特征保留原始特征的空间结构。式(3)的第二项通过最小化二进制特征和映射特征之间的欧氏距离,可以最小化投射特征和二进制特征之间的量化损失,减少放松二进制特征B的影响。
1.3 优化算法
在这个部分,主要介绍对目标函数求解的优化算法。首先对变量W和B进行随机初始化,然后将目标函数分解为2个问题(W子问题和B子问题)进行交替迭代求解。
W子问题:固定等式(3)中的二进制特征矩阵B,投影矩阵W可以用式(4)计算得到。
使式(4)的导数为零,可以得到投影矩阵的解为
B子问题:对于式(3),固定投影矩阵W,求解问题可以写成如下形式。
为了求解离散编码B,本文使用离散循环坐标下降的方法[34]求解式(7)。将式(7)改写成式(8)形式。
式中:V=UW,Q=λ1UUTV+λ2V。
这 里 分 别 用bT表 示 矩 阵B的 第l行 向 量(l=1,2,···,k),而用B′表 示矩阵B除 去向量bT后的矩阵。同 样 的,使 用qT表 示 矩 阵Q的 第l行 向 量(l=1,2,···,k),而用Q′表 示矩阵Q除 去向量qT后的矩阵,用wT表示矩阵W的第l行 向量(l=1,2,···,k),而用W′表示矩阵W除去向量wT后的矩阵。然后,可以将||BVT||2写成如式(9)的形式,其中const表示常量。
1.4 直方图描述子学习
直方图是一个统计学上的概念,反映了相应变量的分布情况,所以变量的微小变化对直方图的影响微乎其微。一些掌纹识别算法,比如ALDC[24]和HOL[25]使用直方图描述子来处理掌纹图像中光照,平移和旋转等噪音。为了提高算法的鲁棒性,本文将学习到的二进制特征编码成直方图描述子,相应的计算过程包括:
(1) 将掌纹图像分成m×m块不重叠的区域(称之为block),每个block包含p×p个像素。
(2) 对于每个block,使用K-means聚类算法将学习到的二进制特征聚类成N个簇。用F N1表示第一个聚类中心的二进制特征的数量(Feature Number,FN),每个block的直方图描述子(Histogram of Block,HB)可以表示为
(3) 将每个block的直方图连接起来为最终的直方图描述子(Histogram of Graph, HG)。
2 实验结果与分析
在这一节中,使用3个掌纹数据库:polyU接触式掌纹数据库,ITTD非接触式掌纹数据库和CASIA非接触式掌纹数据库对本文提出的算法进行有效性验证。在实验中使用余弦相似度来进行识别。
2.1 掌纹数据库
polyU掌纹数据集包含193名师生(每名师生提供左右手,即一共386个不同的掌纹)的7 752张掌纹图像。掌纹的采集过程分为2个阶段,每个阶段对每个志愿者的左右手分别采集10张掌纹图像。经过ROI图像裁剪后,每张掌纹图像的分辨率为64×64。
ITTD掌纹数据库包含2 601张掌纹图像。对于每个手掌,分别收集5~7张不同手部姿势变化的掌纹图像。并且这些掌纹图像的ROI(150×150分辨率掌纹图像)以位图的格式提供给大众。
CASIA非接触式掌纹数据库是由中国科学院自动化研究所收集的。所有掌纹图像均使用研究中心开发的掌纹识别系统采集,每个手掌分别采集6~18张掌纹图像。CASIA掌纹数据库一共包含5 501张来自310名志愿者的掌纹图像(128×128分辨率掌纹图像)。
图4中从左到右的掌纹分别来自polyU、IITD和CASIA掌纹数据库。从图中可以看出polyU数据库中的掌纹线特征清晰且表面没有干扰的噪点。IITD中的掌纹虽然线特征清晰,但是从图4(b)中红框处可看出IITD掌纹表面有明显阴影。CASIA数据库中的掌纹图像则是整体偏白,线特征不够清晰。图5为接触式掌纹采集设备,在采集掌纹的时候需要用户将手掌和采集设备接触。接触式的掌纹采集设备可以很方便地获得清晰的掌纹图像,但是对用户不友好。图6为非接触式掌纹采集设备,在采集过程中,用户只需将手掌对着采集设备即可。由于非接触式的掌纹采集设备具有携带方便、对用户友好等优点,成为近年来研究的一个热点。但受到光照和手掌位置偏移的影响,采集到的掌纹图像常常出现偏移、噪音污染等情况。
图4 来自不同掌纹数据库的掌纹图像Fig.4 Palmprint images from different palmprint databases
图5 接触式掌纹采集设备Fig.5 Contact palmprint collection device
图6 非接触式掌纹采集设备Fig.6 Contactless palmprint collection device
2.2 掌纹识别
掌纹识别是将一个待查询的图像与训练集中的其他图像进行比较,并确定该图像与数据库中的哪一类图像最接近。实验过程中,随机选取每个掌纹的3张图像作为训练集,其余的图像作为测试集。即在polyU掌纹数据库中选取1 158张掌纹图像作为训练集,6 594张掌纹图像作为测试集。IITD掌纹数据库中选取1 380张掌纹图像作为训练集,1 221张掌纹图像作为测试集。CASIA掌纹数据库中选取1 860张掌纹图像作为训练集,3 641张掌纹图像作为测试集。在实验中,使用DRCC[21],DoN[23], ALDC[24],HOL[25],Ordinal[19]和VGG-F[35]6种比较有代表性的算法来进行对比实验。表1给出了本文算法和其他算法在polyU,IITD和CASIA 3个掌纹数据库中的实验结果。
表1 算法识别率Table 1 Algorithm recognition rate %
由于polyU接触式掌纹数据库中的掌纹图像清晰,受到的噪声干扰小。所有的算法都实现了较高的识别率,其中本文算法和ALDC的准确率最高。
同时,在非接触式掌纹数据库(IITD掌纹数据库和CASIA掌纹数据库)中,除了HOL算法、ALDC算法和本文的算法外,其他掌纹识别算法的表现大大不如在接触式掌纹数据库中的表现。即使在polyU数据库中表现优异的DRCC算法,在这两个数据库中的识别率下降了20%左右。由图4可以看出,IITD和CASIA数据库中普遍出现噪音干扰和线特征不清晰等问题[36],所以在接触式掌纹数据库上表现优秀的算法在非接触式掌纹数据库中不一定能取得一样的效果。而本文的算法在得到掌纹的二进制的特征的时候将其编码成直方图特征,和没有使用直方图特征的DRCC、DoN和Ordinal算法相比具有更好的抗干扰性。和同样使用了直方图的HOL和ALDC算法相比,本文的算法在提取了PDV特征后,通过学习将PDV特征的冗余信息去除后得到二进制特征,而HOL和ALDC是直接使用手工提取的特征。这表明本文的算法和手工提取特征的算法相比有更好的表现。
2.3 掌纹认证
掌纹认证(Palmprint Verification)是通过比较来确定两张掌纹图像是否属于同一个人。通常先设定一个阈值,如果两张图片的相似度大于这个阈值则将判断这两张图片来自同一个个体,否则将这两张图片判断为来自不同个体。
图7~9分别表示在3个数据库中不同算法的表现。横坐标表示错误接受率(False Accept Rate, FAR),纵坐标表示错误拒绝率(False Reject Rate, FRR)。表2中给出的是等错误率(Equal Error Rate, EER)。从图7~9和表2中可看出,在polyU数据库中所有的算法的表现都非常接近。而在非接触式数据库(IITD和CASIA掌纹数据库)中,本文提出的算法取得最好的性能。
表2 等错误率Table 2 Equal error rate
图 7 算法在CASIA数据集上的ROC曲线Fig.7 ROC curves on the CASIA database
图 8 算法在IITD数据集上的ROC曲线Fig.8 ROC curves on the IITD database
图9 算法在polyU数据集上的ROC曲线Fig.9 ROC curves on the polyU database
2.4 消融实验
本文所提算法首先提取了掌纹的PDV特征,然后使用余弦相似度保持模型(CSPL)将学习到的PDV特征映射为二进制特征,最后将其计算为直方图特征。为了验证余弦相似度保持模型(CSPL)的有效性,将使用局部二进制编码[37](Local Binary Pattern,LBP)处理PDV特征、直接使用PDV向量作为特征表示与使用余弦相似度保持模型(CSPL)三者进行对比。
(1) LBP:对掌纹图像提取了PDV特征后,使用LBP将其映射为二进制特征,最后将二进制特征计算为直方图特征。
(2) PDV:对掌纹图像提取了PDV特征后,直接将其计算成直方图特征。
(3) CSPL:对掌纹图像提取了PDV特征后,使用余弦相似度保持模型将其映射为二进制特征,最后将学习到的二进制特征计算为直方图特征。
相关的实验结果如表3所示。
表3 算法识别率Table 3 Algorithm recognition rate %
从表3可知,相对于使用LBP将PDV特征映射为二进制特征和不将PDV特征映射为二进制特征,使用余弦相似度保持模型(CSPL)比前两者效果更好。
2.5 特征长度的敏感性
余弦相似度保持模型(CSPL)将PDV特征映射为二进制特征,不同长度的二进制特征包含不同的信息量。为了测试不同长度的二进制特征对算法准确率的影响,在IITD掌纹数据库中测试了5,10,15,20,25这5种不同长度的二进制编码对算法识别率的影响。图10显示了不同的二进制特征长度对算法准确率的影响。
图10 二进制编码长度对实验结果的影响Fig.10 Influence of binary coding length
从图10可以看出,将二进制编码的长度设置为5的时候,算法的准确率可以达到84.3%。当二进制编码的长度大于等于10的时候,算法的准确率呈缓慢上升的趋势。但是二进制编码的长度增加意味着训练时间的增加,且当二进制编码长度大于15的时候,准确率变化不大。综合性能和时间成本,将最优的二进制编码的长度设置为15。
3 结论
本文设计了一种基于余弦相似度保持的掌纹识别算法。主要贡献可以总结如下:
(1) 通过让学习到的二进制特征的余弦值和原始特征的余弦值保持一致,使得学习得到的二进制特征保留原始空间结构。
(2) 在3个广泛使用的掌纹数据库上进行了大量实验,结果表明:和其他掌纹识别算法相比,本文提出的算法能更好地挖掘掌纹的潜在信息,体现了更高的精度和抗干扰性,验证了本文算法的优越性和有效性。