刘玉珍,范湘冀*,林 森,陶志勇
(1. 辽宁工程技术大学 电子与信息工程学院,辽宁 葫芦岛 125105;2. 沈阳理工大学 自动化与电气工程学院,辽宁 沈阳 110159)
随着社会科技水平的发展,信息安全已是当今社会面临的一个重大难题。在银行、刑侦、门禁、商场、车站和机场安检等应用场景中,基于生物特征的模式识别由于其可靠性和准确性受到越来越多的关注[1]。其中掌纹识别[2]不仅包含丰富的识别特征(主线、纹线端点、纹线分叉、褶皱等),而且受外界干扰小,非常稳定。与虹膜识别[3]相比,掌纹图像的采集设备要求较低,且对用户友好;伴随着硅胶指纹套的出现,指纹识别[4]身份认证变得不再可靠;而步态识别[5]容易受到情绪和年龄的影响,造成识别效果不佳。所以,掌纹识别目前已经成为生物特征识别方面极其重要的研究内容,具有广阔的发展空间和极大的社会应用价值。
目前掌纹识别方法主要包括2D 和3D 掌纹识别。在2D 掌纹识别方面,Zhang 等人[6]首先采用Gabor 滤波器提取掌纹的方向特征,并通过汉明距离进行识别。在此基础上,又有许多通过方向特征进 行 识 别 的 方 法 被 提 出,如 竞 争 编 码[7]、BOCV[8]等。此外,基于机器学习的方法也已经应用于掌纹识别,如子空间方法[9]、深度学习方法[10]等。2D 掌纹识别虽然准确率较高,但也存在一些缺点。首先,2D 图像无法完全体现掌纹图像的三维信息;其次,光照的变化会明显影响掌纹的图像质量,造成识别精度的下降;最后,2D 掌纹图像安全性能差,容易被窃取,不利于个人隐私的保护。
与2D 掌纹识别相比,3D 掌纹识别解决了上述问题,还包括更丰富的特征信息。在目前流行的3D 掌纹识别方法中,文献[11]依据高斯曲率、均值曲率与零值之间的关系进行识别分类;文献[12]通过对表面类型直方图进行均匀分块,再连接成3D 掌纹描述符,并通过协同表示的方法进行特征识别;文献[7]提出融合曲面的几何特征和方向特征进行掌纹识别;文献[13]基于两个主方向提取精确方向编码特征,结合紧凑表面类型完成识别过程。然而,3D 掌纹的特征是多方向的,在考虑表征几何信息的同时,也要求方向信息的完整性和准确性。
为了解决上述问题,充分利用掌纹的特征信息,本文采用形状指数来描述3D 掌纹的几何结构,采用表面类型编码来表征3D 掌纹的几何特征。另外,提出一种局部方向二值模式(Local Orientation Binary Pattern,LOBP)以提取掌纹的主方向和方向置信度[14],进而表征3D 掌纹的方向特征,在决策层将上述特征进行结合。为了提高掌纹识别中的时效性,在识别分类的算法中采用协同表示(Collaborative Representation,CR)的方法[15],可以在保证较快识别速度的同时实现较高的准确性。
3D 掌纹感兴趣区域(Region of Interest,ROI)可以清楚表达掌纹图像的特征信息,如图1 所示。其中上面2 张分别属于两个不同个体,其ROI 具有明显区别,下面2 张则是其对应手掌第二次采集时的ROI 图像。
图1 3D 掌纹图像ROI 图像Fig.1 ROI 3D palmprints
在信息采集过程中,掌纹图像往往会受到噪声的干扰而发生形变。均值曲率(Mean Curvature,MC)和高斯曲率(Gaussian Curvature,GC)作为描述曲面特征的内在几何不变量,其值与手掌在3D 空间的位置、姿态等因素无关,只与手掌局部的固有形状相关。因此,通常用曲率来刻画3D 掌纹图像的曲面特征。对于任意曲面,其高斯曲率GC 和均值曲率MC 都可定义如下:
式 中:Hx、Hy是H(x,y)的 一 阶 偏 导,Hxx、Hyy是H(x,y)的 二 阶 偏 导,Hxy则 是H(x,y)的 混 合偏导。
为了将3D 掌纹的曲面特性描述得更加具体,根据掌纹表面的凹凸性将手掌中的点分成不同的类型,即将一个曲面划分为8 种基本类型[11],这些类型被称为表面类型(Surface Type,ST)。并且为了表述的完整性,提出一种特殊的表面类型,即MC=0 且GC>0 的情况,此类型称为最小表面,在实际应用中并不存在。因此,通过表面类型编码(Surface Type Code,STC)的方式可以将3D 掌纹的表面类型定义为9 种基本表面类型中的一种,表1 列出了9 种基本ST 类型及其具体划分方法。
表1 表面类型Tab.1 Surface type
最小表面的判定定义了趋于零值的区间域ε。对处于[-ε,+ε]范围内的值,认为其GC 或MC等于零值。
因此,通过上述步骤,每个3D 掌纹ROI 都可以获得其对应的ST 图。作为一种3D 特征,表面类型映射具有很强的分辨力,但对测试图像和训练图像之间的少量配准误差敏感,而基于分块的ST 特征提取方法则解决了这一问题。如图2 所示,上面两张是不同手掌采集的ROI 区域,下面两张是其相对应的ST 图像。对于一个3D 掌纹的ROI,经过计算可以得到其对应的ST 特征图,然后将其均匀的划分成块,每个块都可以计算出基于ST 特征的直方图,将每个直方图表示为hi。然后将所有分块直方图的hi进行级联,形成总ST 特征直方图h用来描述掌纹的几何特征。
图2 不同掌纹ROI 及其对应的ST 图像Fig.2 Different palmprint ROI and its corresponding ST images
为了更加完整地描述3D 的细节信息,提出了形状指数[16](Shape Index,SI)这一概念,其不仅比曲率更直观地表现了掌纹的局部特性,而且具有尺度、平移以及旋转不变性。假设F 为曲面S 上的一个点,Ci为曲面S 经过点F 的所有曲线,设所有曲线Ci在点F 处的曲率为Ki。令k1为曲率值Ki中的最大值,k2为Ki中的最小值,k1和k2可以视作点F处的决定性曲率,计算公式如式(3)、(4)所示:
同时根据形状指数SSI的取值范围,掌纹曲面可转化为8 bit 的灰度图像,即为形状指数图像,具体公式见式(6):
由图3 形状指数图及特征直方图可以发现,不同个体间的掌纹特征存在明显差异,可以准确识别不同的身份;而同一个体虽然是在一定时间间隔下采集的,其特征信息却高度稳定。
图3 3D 掌纹的形状指数图及其特征直方图Fig.3 Shape index diagram and characteristic histogram of three-dimensional palmprint
3.1.1 掌纹的主方向和方向置信度
在提取掌纹方向特征方面,通常是利用几组不同方向的直线检测器。本文利用Gabor 滤波器来检测掌纹的主方向,该方法的公式如式(7)所示:式 中:Gr j表 示 方 向 为(j-1)π/6 的Gabor 滤 波 器的实部,“⊗”是卷积算子,I表示输入的掌纹图像,c是Gabor 模板和输入掌纹图像之间的对应卷积。所以定义掌纹的主方向为:
式中:oc代表中心像素的主方向,oi表示其相邻像素的主方向。e()代表对中心像素的主方向与邻域进行比较。将周围域定义为(8,1)个域集,即将中心点与周围8 个点进行比较。当u等于v时,e(u,v)为1,否则为0。基于掌纹主方向上卷积的最大卷响应,即co(x,y)。因此方向置信度的差(Confidence Binary Pattern,CBP)可以定义为:
式中:co,c和co,i分别表示中心像素和相应相邻点的方向置信度。当u>0 时,s(u)为1,否则为0。与传统的局部二值模式(Local Binary Pattern,LBP)相比,CBP 是卷积响应的结果,其结果更稳定,抗噪能力强。
由于掌纹的主方向和方向置信度具有高度相关的信息,因此将两者结合。具体来说给定一张掌纹图像,将其均匀地划分为一组不重叠的块,块的大小设置为16像素×16像素。对于每个块分别提取主方向和相应的置信度,进而分别计算特征直方图。然后,将基于块统计的OBP和CBP直方图结合,得到掌纹的全局直方图,定义为基于3D 掌纹图像的LOBP 特征。图4显示了提取LOBP特征的基本思想。
图4 LOBP 方法基本思想Fig. 4 Basic idea of LOBP method
3.2.1 基于稀疏表示的分类方法
稀疏表示的思想[15](Spare Representation For Classification,SRC)是将测试集样本的特征表示为训练集字典中元素的线性组合,并且通过字典的最小残差来判断测试图像的类别。假设训练集的样本数量足够多,当判断与测试样本不属于同一类别时,其线性系数即视作非零值;当判断与测试样本属于同一类别时,其线性系数视作零值。
SRC 算法的具体步骤如下:
Step1:对训练集样本和测试集样本提取特征向量并对提取到的特征向量进行归一化操作,用1代替l2范数,同时获取训练集的字典矩阵A和测试集的特征向量y。
Step2:求解最小l1范数问题。
式中:ε表示y与γ之间的编码误差。
Step3:计算类别残差。
式中:γ̂i为第i类的编码系数矢量。Step4:计算测试样本类别。identity(y)=argmini{ }ei(y) , (15)将使ei(y)最小的i所对应的类别作为测试集样本的类别,用identity(y)表示。
3.2.2 基于协同表示的分类方法
协同表示[18](Collaborative Representation,CR)这一分类思想,是用l2范数来替代SRC 分类方法中的l1范数。基于稀疏表示的分类方法中,一要求测试集特征向量y的编码系数矢量呈稀疏分布,二要求测试集特征向量y的稀疏编码是基于所有训练集样本协同表示的结果。基于l1范数的稀疏表示计算复杂度高,且无法体现协同表示的重要作用,而基于l2范数的协同表示则解决了这一问题,这种方法称为基于协同表示和规则最小二乘法的分类方法(Classification Based On Collabora⁃tive Representation And Rule Least Square Method,CRC_RLS)。
CRC_RLS 算法的具体步骤如下:Step1:用A=[A1,A2,...,AK]表示第K类掌纹的训练样本集A,则第i类训练样本可以定义为:
Step4:与稀疏表示的方法相比,解式(17)所示的基于规则化最小二乘的问题比直接求解基于l1范数的最优解问题降低很多难度,公式如下:式 中:I∈Rn×n代 表 单 位 矩 阵,令P=(ATA+λI)-1AT,则可以看出,P与y是相互独立的,P相当于一个投影矩阵。
在对测试样本y进行识别过程中,只需要将y投影到P上,就可以直接计算系数向量,进而得到py,这种方法可以明显降低计算复杂度,从而缩短计算时间。
3.2.3 本文方法
局部方向二值模式结合协同表示的3D 掌纹识别算法流程图如图5 所示,详细步骤如下:
图5 本文算法流程图Fig.5 Algorithm flow chart of this paper
Step1:将训练集和测试集3D 掌纹感兴趣区域映射成SI 图像,并且根据曲率特征得到ST 图像。
Step2:将各个样本的ST 和SI 图像进行均匀分块,分别提取ST 特征和LOBP 特征直方图。
Step3:将提取的特征直方图进行级联,形成特征向量矩阵。
Step4:将各个样本的特征做归一化处理,计算得到训练字典A与y。
Step5:通过式(18)使用规则最小二乘法替换成l2范数。
Step6:计算规则化残差e,在决策层进行结合。
Step7:计算测试样本的类别。
本文的所有实验均是在香港理工大学3D 掌纹库(Hong Kong Polytechnic University 3D palm⁃print database)上进行的。该掌纹数据库采集了200 名志愿者的掌纹信息,包含男性136 名,女性64 名,年龄在10~55 岁之间。共采集到8 000 张3D 掌纹图像,每名志愿者分别采集左、右两只不同手掌各10 张掌纹图像,共计采集两次,期间间隔为30天。在图像预处理以后,目前每张3D 掌纹图像的ROI 大小为128像素×128 像素。本实验平台的硬件规格为Windows 10 系统,中央处理器为AMD Ryzen 3 4300U,主频为2.7 GHz,运行内存为8 GB。
本文在进行掌纹的特征提取过程中,对掌纹的表面类型图像进行分块处理来提高识别率,图像被分成了若干个大小相同的子块,但是不同的分块方式对识别率有着不同的影响。为探究分块方式的有效性,将分块方式作为变量进行实验。实验处理过程参照图5,将3D 掌纹图像库里第1 次采集的10 张掌纹图像作为训练集样本,第2 次采集的10 张掌纹图像则作为测试集样本,按照分块方式的不同,每种分块方式都重复10 次,取结果的平均值作为记录结果,实验结果如表2 所示。
表2 分块方式实验Tab.2 Experiment of block partitioning method
实验结果表明,当不对图像进行分块处理,即采用1×1 的分块方式时,识别率为76.69%;随着分块数量的不断增加,识别率呈现上升趋势,当采用8×8 的分块方式时,识别率最高可达到99.29%;而当分块继续增加时,识别率则呈现下降趋势,当采用10×10 的分块方式时,识别率下降到98.74%。由此可见,当分块数量较大时,无法精确反映3D 掌纹的纹理特征,故而有碍于识别过程;而当分块数量较小时,局部区域内包含的特征信息则会受限,不能表征掌纹图像的细节信息,造成识别效果不佳。因此,本文在综合考虑识别效果的情况下,选择8×8 作为最佳分块方式。
为验证本文提出的ST 和LOBP 特征的有效性,以下实验均采用分块统计和基于协同表示的分类算法。当训练集样本个数从1 增加到10 时,分别提取OBP、CBP 以及LOBP 作为掌纹特征,图6 展示了3 种特征识别率的变化趋势,而后则分别比较了ST、LOBP 特征以及将ST 和LOBP结合(图中记录为Proposed)的识别率,如图7所示。
图6 OBP、CBP 和LOBP 的识别率。Fig.6 Accuracy of OBP,CBP and LOBP,respectively.
图6 显示,在将OBP 和CBP 结合以后,掌纹的方向特征表达得更加准确,表明本文利用LOBP描述3D 掌纹方向信息的方法是有效的。LOBP 特征利用了多个方向的信息获取掌纹方向的变化趋势,再通过卷积编码可以有效提高方向特征的稳定性。
图7 表明,本文使用ST 描述掌纹的几何特征,LOBP 描述掌纹的方向特征,两者的结合有效地提高了掌纹识别的准确性,说明两者结合具有使用价值和现实意义,有利于识别工作的研究。
图7 ST 和LOBP 结合的识别率Fig.7 Accuracy combination of ST and LOBP
为了验证方法的有效性,实验中分别选择各个 类 别 样 本 数N为1,2,3,4 作 为 训 练 集,其 余图像作为测试集。 当选择每类样本数为N时,则在掌纹图像中随机选择训练样本,不同样本数各运行10 次并计算平均值。将本文方法与 当 前MCI_Comp[19]、MCI_Ordinal[20]、MCI_GCI_ST[21]、SI_Comp_LTP[22]、ST_CR[12]、ST_PCA[23]以及PDC[13]等3D 掌纹识别方法进行了比较。实验结果见表3,当选择不同样本数的掌纹图像作为训练样本时,本文方法比其他7 种方法的识别率的平均值分别提高约7.99%,3.89%,2.66%,1.14%。
表3 不同掌纹识别方法识别率比较Tab.3 Comparison of accuracy of different palmprint recognition methods (%)
为了验证CRC_RLS 分类方法的优越性能,在解决基于l1范数最小化问题和协同框架的基础上,将本文方法与目前较为流行的分类方法进行比较,如SpaRSA、DALM、Homotopy,分别记作CR_L1_SpaRSA、CR_L1_DALM、CR_L1_Homoto⁃py。将第1 次采集到的10 张掌纹图像作为训练集,第2 次采集的10 张掌纹图像作为测试集,在相同设备环境下,将3 种对比方法和本文方法分别运行10 次,并计算识别率及识别时间(包括训练和分类识别)的平均值列为表4。
从表4 可见,本文平均识别时间为0.874 9 s,与其他3 种方法相比分别降低了52,18,0.45 s,且识别率相比CR_L1_SpaRSA、CR_L1_DALM 以及CR_L1_Homotopy 分别提高了0.35%,0.12%,0.07%。因此,本文CRC_RLS 的分类方法具有比其他3 种方法更加出色的分类性能和分类效率。
表4 基于协同表示的方法比较Tab.4 Comparison of methods based on collaborative rep⁃resentation
本文提出的局部方向二值模式结合协同表示的3D 掌纹识别方法,不仅可以实现更高的识别精度,而且具有出色的识别效率。在特征提取方面,本文用ST 来描述3D 掌纹的几何特征,以满足几何特征表达的确定性和稳定性。本文提出局部方向二值模式的编码算法,用掌纹图像的主方向和方向置信度表达掌纹的方向特征,可以在最大程度上反映掌纹的方向及其变化趋势。通过CRC_RLS的分类方法,将ST 和LOBP 特征进行结合,有效地提高了算法的识别精度,降低了识别时间。在香港理工大学3D 掌纹库上的实验结果表明:获得的平均识别率最高可达99.55%,平均识别时间为0.874 9 s。