基于多图融合和改进Xception网络的跨设备手背静脉识别研究
2021-06-30王一丁曹晓彤
王一丁,曹晓彤
(北方工业大学 信息学院,北京 100144)
0 引言
当今社会是信息化社会,信息安全问题越来越受到人们的关注。身份识别技术是目前研究的热点。身份识别技术主要包括传统身份标识识别(如证件和密码等)和基于生物特征的身份识别两大类。基于生物特征的身份识别具有永久性、普遍性、可采集性、可接受性以及安全保密性强等特点。目前主流的生物特征识别技术主要包括指纹、虹膜、人脸、指静脉以及手背静脉等。
近年来,手背静脉识别以其鲜明优势从众多基于生物特征的身份识别技术中脱颖而出。相比于人脸识别,手背静脉具有唯一性和稳定性[1],即使是拥有相似脸的双胞胎的手背静脉也是不同的,并且随着年龄的增长,拓扑结构基本保持不变。相比于指纹识别,手背静脉位于皮下组织,具有更好的防伪造性和活体检测性。相比于虹膜识别,手背静脉不需要被采集者近距离采集,采集方式简单,更易被接受,具有友好性。
手背静脉的识别分为强约束条件下和弱约束条件下两种情况。强约束条件下,即训练集数据和测试集数据来自同一个采集设备。弱约束条件下,即跨设备条件下,训练集和测试集来自不同的设备。跨设备条件下采集到的手背静脉图像存在光照对比度、位移、尺寸大小、角度旋转等差异。传统算法中以改进型SIFT(Scale-invariant Feature Transform)算法的识别率最高[2],单库识别率达99.40%. 但是在跨设备条件下,图像差异较大,原始SIFT算法识别率仅为73.48%,改进型SIFT识别率为90.80%,仍需进一步研究手背静脉识别算法以提高跨设备条件下的识别率。
利用神经网络进行图像处理是目前的研究趋势。神经网络(neual networks)是人工智能研究领域的一部分,是对生物神经网络的数学建模,当前最流行的神经网络是深度卷积神经网络(CNNs,deep convolutional neural networks)。卷积神经网络是一种特殊的深度前馈神经网络。卷积神经网络目前已广泛应用于图像分类、图像分割、语音识别等领域。
针对手背静脉样本类别较多,每类样本的数量过少的问题,本文采用Xception网络[3]进行跨设备手背静脉识别算法研究。Xception模块采用深度可分离卷积代替了Inception模块。深度可分离卷积是将一个完整的卷积分解为两步,即Depthwise卷积和Pointwise卷积。深度可分离卷积的参数量和运算量低于普通卷积,适用于Xception这种轻量级的网络模型。由于Xception网络将空间特征与通道特征完全分开提取,我们将手背静脉二值图像、距离图像与骨架图像融合为三通道的融合图像。改进Xception网络的激活函数,使模型的非线性更佳,迫使网络学习更稀疏的特征,实验证明跨设备条件下的最高识别率达93.54%。
1 手背静脉图像采集和预处理
1.1 手背静脉灰度图像库
手背静脉存在于皮下脂肪之下,肉眼观察到的手背静脉脉络分布并不清晰。这说明使用普通摄像头或者在可见光下采集手背静脉图像并不理想。静脉血管内含有大量的血红蛋白,血红蛋白比血管以外的皮下组织更容易吸收700~1 000 nm波段的近红外光[4]。基于此,本实验采用850 nm的红外光波采集手背静脉图像。图像采集设备如图1所示。
图1 手背静脉图像采集设备
本实验对49位性别不同、年龄分布在20~25岁之间的被采集者进行手背静脉图像采集,左右手各十张,使用两个相同的设备共计采集98个类别的1 960张静脉图像。由此我们建立两个手背静脉灰度图像库:1库和2库。图2是采集到的原始手背静脉灰度图像。
图2 手背静脉原始图像
1.2 手背静脉图像预处理
原始手背静脉图像存在手柄等背景区域噪声,因此需要提取感兴趣区域(ROI)。同时由于采集设备的不同以及采集时手背静脉摆放位置的不同和环境噪声的干扰,同类别手背静脉图像的ROI在尺寸和亮度等方面存在很大差异,这会对识别结果造成影响。本文采用质心自适应方法提取ROI,由手背静脉区域的长宽比例得出图像ROI的质心C(x0,y0),以此质心为圆心,得出静脉区域的最大内接圆。以最大内接圆的半径作为标准,大小归一化后截取ROI的大小为400×400,如图3所示。
图3 获取手背静脉感兴趣区域
截取感兴趣区域后,对手背静脉图像进行灰度归一化处理以减少图像的灰度差异。这种灰度差异是由采集过程中光照强度不同和脂肪厚度不同带来的。本文采用式(1)对手背静脉图像ROI进行灰度归一化处理,处理后的图像如图4所示。
图4 灰度归一化图像
(1)
2 不同手背静脉图像的融合
2.1 二值图、距离图和骨架图的生成
灰度归一化后的图像依然有噪声,并且静脉区域与其他区域的对比度较低。为提取静脉部分的轮廓,本文采用基于检测边缘性能的梯度分割方法[5]。图5为分割得到的二值手背静脉图像。
图5 手背静脉二值图像
描述静脉图像的特征,不仅可以从纹理方面入手,还可以从形状角度。分割后的手背静脉图像具有完整的拓扑结构,且不同类别的静脉脉络分布对应于不同的拓扑结构,可以用于对图像的描述。本文通过距离变换[6]将二值图像转化为距离图像来描述静脉的形状特征。
距离图包含静脉区域每一个像素与静脉轮廓的距离信息。对于静脉区域的每一个像素,以此像素点为中心画圆,增大内接圆直径直到圆与静脉边缘相切,然后以内接圆的最大半径作为该点的像素值,那么静脉的中心像素就对应静脉的宽度。按此步骤遍历静脉区域的所有像素,就由二值图像得到包含形状信息的距离图像。手背静脉距离图像如图6所示。距离图像在静脉中心轴的像素值较高,并朝着边缘方向像素值逐渐降低。
图6 手背静脉距离图像
可以利用骨架描述图像的形状特征。此处我们所指的并不是解剖学上的骨骼,而是指形状的中心轴。对二值图像进行细化操作,细化后的图像保持原始二值图的结构特征。手背静脉骨架图如图7所示。细化得到的骨架具有1像素宽和一条静脉的骨架线条是连接的的特点。
图7 手背静脉骨架图像
2.2 融合图
为充分利用手背静脉的纹理特征和形状特征,我们将单通道的二值图、距离图和骨架图叠加,得到三通道的融合图,手背静脉融合图如图8所示。灰度图是单通道图像,不仅含有静脉信息,而且含有过多的背景信息,造成信息冗余且跨设备条件下亮度差异较大,不利于匹配识别。而融合图是三通道特征图,既含有静脉纹理特征,又含有距离、骨架的形状特征,静脉区域与背景区域对比强烈,静脉信息丰富且没有冗余,有利于匹配识别。
图8 手背静脉融合图
3 基于Xception网络的实验分析
3.1 Xception网络及改进
卷积神经网络(CNN)的基础模块是卷积流,包括卷积层、激活层、池化层以及全连接层[7]。卷积神经网络能够有效地处理具有清楚的网格结构拓扑的数据,尤其是对于二维图像拓扑,卷积神经网络最初就是为了解决图像分类识别的问题而设计的。
Inception网络[8]中的Inception模块如图9所示,将大滤波卷积分解为小滤波卷积,减少了参数量和计算量,同时不会降低网络的表征能力。全连接层被全局平均池化层[9]所代替。全局平均池化,将最后一层的特征图的所有像素值相加求平均,得到一个数值,即形成一个特征点,这些特征点组成最后的特征向量。全局平均池化的目的是替代全连接层,以减少参数量、计算量和减少过拟合。通过全局平均池化操作,可以对整个网络从结构上进行正则化以防止过拟合,以此剔除全连接层的黑箱子操作的特征。
图9 Inception模块
Xception模型是InceptionV3模型的极端情况。Xception模块采用深度可分离卷积代替了Inception模块。Xception结构是由36个卷积层构成网络的特征提取基础。36个卷积层被构造成14个模块,除了第一个和最后一个模块,其余模块的深度可分离卷积都有线性残差连接。深度可分离卷积彻底将通道特征提取和空间特征提取分开。Xception模型基本模块[3]如图10所示,将深度可分离卷积的1×1卷积与3×3卷积的顺序换了,首先通过1×1卷积进行通道分离,然后通过3×3卷积对每个通道的空间信息进行独立提取,最后合并。
图10 Xception模型的基本模块
激活函数的作用是加入非线性因素,提高神经网络对模型的表达能力。Xception网络使用的激活函数都是ReLU函数,如图11(a)所示。它的数学表达式是:
f(x)=max(0,x)
(2)
ReLU只需要一个阈值就可以得到激活值,收敛速度比sigmoid函数和tanh函数快,可以增大网络的稀疏性,提高网络的泛化性能。但是随着训练的进行,使用ReLU激活函数,负的特征值为0,可能会出现神经死亡,权重无法更新的情况。在MobileNetV3[10]一文中,作者表示swish激活函数能够替代ReLU函数,减少梯度消失的同时能够有效提高网络的精度,但是swish的计算量太大。为此,在MobileNetV3中提出一种新的激活函数h-swish,如图11(b)所示,其数学表达式是:
图11 ReLU激活函数和h-swish激活函数
(3)
h-swish在对模型精度没有明显影响的情况下,具有诸多显著优势:几乎所有的软硬件框架都提供了ReLU6的优化实现;在量化模式下,减轻了不同实现下sigmoid引起的精度误差。
为减少参数增长,本文只把Xception结构的第一个模块和Middle flow部分的ReLU激活函数改为h-swish激活函数。改进后的Xception网络结构如图12所示。
图12 改进后的Xception网络结构示意图
3.2 硬件平台及框架
实验使用的电脑操作系统为Windows 10,电脑是16 G内存、i7-7700K CPU、GTX 1080Ti显卡。Python版本为3.6.8,深度学习框架使用2.0.0版本的TensorFlow.为方便以曲线和图形形式展现数据,安装TensorBoard可视化工具。
3.3 实验结果及分析
实验在由实验室自建的1库和2库两个数据库上进行,每个库都包含相同的98个类别,每个类别10张图像,共1 960张手背静脉图像。首先以灰度图为数据集进行单库手背静脉识别,训练集、验证集、测试集比例按照6:2:2划分。使用目前较新颖的分类网络EfficientNet_b0、DenseNet_121和MobilenetV3_small进行实验,识别率均在10%以下,说明这些网络不适用于手背静脉图像。而使用Xception网络进行手背静脉分类实验,1库识别率为98.47%,2库识别率为100.00%. 因此本文选用Xception网络进行跨库手背静脉识别研究。
对于每一类手背静脉图像,实验以1库的10张图像为训练集,从2库中随机选取4张作为验证集,3张作为测试集。设置batch_size=2,EPOCHS=50,以灰度图为数据集,跨库识别率仅为4.42%,这是因为灰度图含有过多的冗余信息,不利于网络学习静脉特征。因此,我们分别以二值图、距离图、骨架图和融合图为数据集,进行基于Xception网络的跨库手背静脉识别研究,实验结果如表1所示。不同图像类型的验证集的精度曲线如图13所示,可以看出融合图的验证集精确度曲线明显高于其他数据类型的。
表1是以不同图像类型为数据集的基于Xception网络的跨库识别率的对比结果。由表1可知,使用融合图作为数据集的识别率最高,为93.20%。由图13可知,融合图验证集的精确度相对较高,证明了前文多图融合工作的必要性和有效性。Xception网络将空间信息和通道信息完全解耦。融合图的3个通道含有不同的图像信息。以融合图为数据集,能够充分利用手背静脉图像的纹理特征和形状特征,实验也证明在这种情况下的识别率是较高的。
图13 基于Xception网络的不同图像类型的验证集精确度曲线
表1 不同图像类型基于Xception网络
为进一步提高跨设备条件下手背静脉的识别率,我们把Xception网络的第一个模块和Middle flow部分的ReLU激活函数改为h-swish激活函数,进一步增加模型的非线性,使网络学习更稀疏的特征。改进Xception网络后,我们同样以1库为训练集,2库为验证集和测试集进行跨库手背静脉识别实验,实验结果如表2所示。Xception网络结构改进后,不同图像类型的验证集的精确度曲线如图14所示,以融合图为数据集的验证集精确度曲线依然是最高的。对比表1和表2,可以看出,无论是哪一种图像类型,改进Xception网络后对应的识别率均有提升,说明改进后的Xception更适用于手背静脉图像的分类识别。其中使用融合图作为数据集的识别率依然是最高的,为93.54%,进一步说明了多图融合对识别率提升的有效性。
表2 不同图像类型基于改进Xception网络的跨库识别率对比
图14 改进Xception网络后不同图像类型的验证集精确度曲线
4 结束语
本文提出了一种基于多图融合和Xception分类网络的跨设备手背静脉身份识别算法。为充分利用手背静脉的纹理特征和形状特征,同时减少背景部分的干扰,本文分别以二值图、距离图、骨架图和融合图为数据集进行实验。实验结果证明以三通道的融合图为数据集进行训练得到的模型是最优的,识别率达到93.20%。为进一步提高跨设备条件下的识别率,将Xception网络的第一个模块和Middle flow部分的激活函数改为比ReLU非线性更佳的激活函数h-swish,进一步防止梯度消失,使网络能学习到更稀疏的特征。改进Xception网络后,二值图、距离图、骨架图和融合图的识别率均有提升。融合图的识别率依然最高,达93.54%,验证了本文所提方法的有效性。