基于CapsuleNet架构的模糊指纹图像识别

2020-10-09 11:01袁颖李论杨英仓
软件 2020年8期
关键词:指纹识别深度学习

袁颖 李论 杨英仓

摘  要: 指纹识别是目前应用最广泛的生物特征识别技术之一,传统指纹识别技术中为了使原始指纹图像特征更易于被当前的计算方法处理,需要对指纹图像特征点标画,为输入数据设计好表示层,再仿射变换到另一个表示空间,难以得到模糊指纹图像所需要的精确表示。本文采用胶囊神经网络,使用端到端的深度学习模型来完成模糊指纹图像的识别,克服了传统机器学习算法对于感知问题不敏感,以及卷积神经网络缺乏整体特征的明确信息和最大池化中丢失了有价值的特征信息等劣势。实验结果表明,胶囊神经网络在模糊指纹图像处理中具有较高的识别精度。

关键词: 指纹识别;胶囊神经网络;深度学习

中图分类号: TP391. 41    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.08.015

本文著录格式:袁颖,李论,杨英仓. 基于Capsule Net架构的模糊指纹图像识别[J]. 软件,2020,41(08):48-51

【Abstract】: Fingerprint identification is currently the most widely used biological characteristic. In traditional fingerprint identification technology, in order to make the fingerprint image feature calculate more easier, method have to sign the fingerprint image feature points, input data design good presentation layer, and affine transformation to another representation space to realize recognition. However this method is hard to get the precise fuzzy fingerprint image features.Capsule neural network in this paper use end-to-end deep learning model to match the fuzzy identification of fingerprint image. This method overcomes the unsensitive problems to perceptual features which is a common problems in the traditional machine learning algorithm. This method also overcomes the lack of clear information and the lost of characteristics of the information in integral pooling in the convolutional neural network. The experimental results show that the capsule neural network has high recognition accuracy in fuzzy fingerprint image processing.

【Key words】: Fingerprint identification; Capsule net; Deep learning

0  引言

指纹识别技术在20世纪60年代初兴起,近年已在民事、司法、安全等领域得到了普遍应用,毋庸置疑已经成为了目前使用最广泛的生物特征识别技术。然而,面临徒增的模糊指纹图像,传统指纹识别技术的浅层学习难以得到模糊指纹识别所需的精确表示,无法满足实际需求。2010年以后,非定制CPU的速度提高了约5000倍[1],互联网高速发展高性能图形芯片诞生,大数据、计算机视觉技术、深度学习技术的出现,为指纹识别的发展奠定了硬件、算法、数据集等各方面的基础。自此,基于深度学习的指纹识别技术逐渐兴起, Wang Yani等人[2]、L. N. Darlow[3]、D. E. Hamdi[4]等大批研究者开始采用深度识别算法对图像进行识别,包括CNN、MENet、CRT等,结合深度学习技术来解决指纹分类任务,基于深度学习的研究还包括Artificial neural network (ANN)神经网络[5]、nonlinear back propagation neural network (BPNN)反向神经网络[6]、linear vector quantization(LVQ) 线性矢量量化[7]、extreme learning machine (ELM)极限学习机[8]等。

广泛研究证明以上神经网络在计算机视觉方面有显著成绩,但具备缺乏整体特征的明确信息和最大池化中会丢失有价值的特征信息等劣势,例如CNN。2017年Geoffrey E. Hinton使用經过分别训练的多层胶囊系统在MNIST上达到了最好的性能,并且在识别高度重叠的数字方面比卷积神经网络要好得多,训练精确度为99.23%,在Affinist测试集的精确度达到了79%,远远超过了CNN的66%[9]。在这之后,相继有学者使用胶囊网络对不同的研究对象做了新尝试,例如,C. Xiang[10]、Z. Zhang[11]、Y. Xiong[12]、Yi S[13]、T. Zhao[14]等人都陆续使用胶囊网络对不同图像进行了识别,其中包括虹膜、步态、车辆图片等,并取得了良好的效果。

1  关键算法原理

胶囊神经网络自2017年由Google Brain的Geoffrey E. Hinton提出[9],近年来胶囊网络被看作是一种能克服CNN缺点的深度学习神经网络,胶囊网络是经过分别训练的多层胶囊神经系统,胶囊就是一组神经元,胶囊网络是由这些神经元构成的神经网络,和其他神经网络不同得是,胶囊网络在特征之间的空间关系上取得了一些突破,它使原来只能用标量来表示的输入、输出特征用向量来表示,向量的模的大小来表示特征出现的概率。向量的方向表示特征的位置,这就使得原始特征中涉及的位置信息不容易丢失。

1.1  网络架构

胶囊网络的架构如图1所示,一层网络被激活时通过转换矩阵对更高级别的胶囊参数进行预测,当多个预测一致时,一个更高水平的胶囊层开始活跃。在胶囊网络中基础单元是胶囊,就是一系列的神经元图2所示[15],神经元的活跃程度被封装在了激活的胶囊中,代表某个特定实体的不同属性。胶囊的长度表示这个特定实体的存在概率,胶囊的方向表示了这个实体的属性。输出向量的长度表示了实体存在的可能,输出的胶囊用一个非线性的压缩函数计算如公式1[9]所示。

图1所示的胶囊网络中第一层是二维卷积层,作用是对输入图像进行空间卷积。用滤波器对输入图像进行滑动窗卷积,卷积核的数目为256,卷积核的宽度和长度为9,卷积的步长为1,“valid”指只进行有效的卷积,即对边界不进行数据填充,激活函数为relu。第二层为PrimaryCaps即主胶囊层,使用squash函数作为激活函数,该层接受卷积层检测到的基本特征,用于生成特征组合。该层共有32个主胶囊,步长为2,每个主胶囊由8个卷积核组成。第三层DigitCaps层即数字胶囊层,实际上是全连接层,“in_num”为输入,每个输入都是一个标量,是前一层神经元的输出,它有“out_num”为输出神经元。胶囊层是将神经元的输出从标量扩展到向量。第四层是一个辅助层,用它的长度来代替每个胶囊,为了匹配真实的标签形状。

1.2  向量神经元

在胶囊网络中神经元结构如图2所示[9],第一层神经元在接收到信号以后,通过连接链路参数进行修改加总,b为偏差,σ(z)为激活函数,最后得出一个输出值。胶囊网络和其他神经网络的不同之处在于,a1到ak都是有大小和方向的向量,σ(z)为squashing的压缩函数作为激活函数,输出的值也为向量,一个运算单元为一个胶囊。每一层中都由很多个胶囊构成,将输入数值一层一层向后传播。

1.3  压缩函数

在CapsNets中需用到squashing 函数即压缩函数,表达式如公式(1)[9]所示, 该函数是一个非线性的“压缩”函数,作用是确保短向量被压缩到几乎零的长度,长向量被压缩到略小于等于1的长度。公式(1)表示第j个胶囊的输出向量的运算规则, 为这个胶囊的总输入向量值, 是总输入向量的模长,模长只有大小没有方向。由公式(1)可以看到左边的第一部函数的作用是当 输出向量很大的时候,第一部分的值能无限趋近于1,如果 输出向量的值很小,第一部分的值会约等于0,这样可以将输入值压缩在0-1之间。公式(1)的右边部分函数保留了输入向量的方向,向量的模的大小衡量某个实体出现的概率,模值越大,概率越大。当 很小的时候, 的值就等于  ,当 很大的时候, 的值就等于 。

在每一个胶囊网络层里的胶囊都会向上述层中的每个不同胶囊中输出一个向量的局部网格,之后每个网格成员和每个胶囊的变换矩阵被用来组成数量相同的类,动态路由就这样在这个过程反复循环。

1.4  损失函数

当网络在训练时,输入的特征没有对应的标签,需要把特征值对应向量最大的值输出给全连接层,网络就会根据标签决定输出值对应的向量。底层的胶囊将其输出传输给高层的胶囊,高层的胶囊的向量由底层胶囊预测出的大量的标量信息,输出的向量的长度表示了预测的概率。此时就必须定义损失函数,对于k行向量做如下运算如公式(4)[9]所示。

默认 的值为1或0,损失希望正例样本 预测在0.9,负例样本值 在0.1,该函数的意义在于如果k行向量属于当前的分类k,就使 大于0.9,否在小于0.1。神经网络以此来辨别输入的图像是否属于图片所属的标签。

2  实验分析

2.1  实验环境

实验环境为Window10 64位系统,中央处理器(CPU) 为Intel(R)Core(TM) i7-8550U 1.80 GHz,内存为16 GB,显卡UDH Graphics 620,实验工具为VS Code、Jupyter Notebook,编程环境为Python3.0,开发平台为Keras框架 。

2.2  指纹数据库构建

本数据库名为索科托考文垂数据库(SOCO-Fing)[16],由来自英国考文垂大学的Yahaya Isah Shehu和Ariel Ruiz-Garcia等人构建,该指纹库是使用韩国 Secugen HSDU03指纹采集仪收集的图像。SOCOFing总共包含55273张指纹图像。所有文件图像的分辨率为1×96×103(灰度×寬度×高度)。

SOCOFing数据集包含了600名非洲被测者的6000个指纹。每个被测者年龄都在18岁以上,每人采集了10个手指的10枚指纹,每张指纹图像为500dbi分辨率,SOCOFing数据库的标签包含了受测者的具体属性标签,例如性别、手位和手指名称等信息。将指纹图像进行Z-cut、模糊和中心旋转,以此来对指纹库进行模糊处理,并根据变换的大小将数据分为简单(easy)、中等(medium)和复杂(hard)三个等级,如图3所示为指纹库中同一人的同一枚指纹经过同一类变换得到的容易、中等、困难指纹图。

在对每张原始指纹图像进行模糊、中心旋转和z切割3次变换以后,去除所有低质量或不可读的指纹图像以进行质量控制,最后我们总共得到了17,934张参数设置简单(easy)的变换图片,17,067张参数设置中等(medium)的变换图片,14,272张参数设复杂(hard)的变换图片。之后每张指纹图以如下的命名规则进行编辑。识别被测者编号分别为:001到600。表示被测者的性别:M -男,F -女。表示手位:左Left或右Right。表示手指的名称:小指Little,环指Ring,中指Middle,食指Index,拇指Thumb。指示变换的类型:Obl -模糊、CR -中心旋转或Zcut。文件扩展名:“bmp”为所有图像的扩展名。

2.3  实验结果分析

使用imgaug从数量较少的图像库中创造出丰富的数据集,imgaug是一个用于机器学习实验中图像增强的库,它支持广泛的增强技术,允许轻松地结合各种增强技术,并在随机顺序或在多个CPU核心上执行,有一个简单而强大的随机接口,可以增强图像增强鲁棒性较少过拟合,使用了iaa.Affine代码对图像进行仿射变换,对图像进行缩放、平移、旋转、剪切等操作。对神经网络进行训练,载入测试图像,得到如图4所示的匹配结果。

图4中左侧是从hard库进行变换以后的模糊指纹,其中Input Key是该指纹的标签,该指纹图片的具体属性为321__M_Right_index_finger_Obl.BMP,標签为321011,根据图5的命名规则,男性(M)0,女性(F)1,左手(L)是0,右手(R)是1,拇指(Thumb)编码0 食指(Index)编码1 中指(Middle)编码2环指(Ring)编码3 小指(Little)编码4。标签为321011即第321个人的指纹男性右手食指,由以上编码规则可以看出input和key值时对应的,都是321011,两张图的匹配值为99.59%。

神经网络精度和损失值如图5所示,横坐标为训练次数,纵坐标为训练损失值和精度,从图像可以看出测试集精度开始为0.82,经过不断训练最后达到0.993,损失值最终数值为0.023。

3  结语

胶囊网络在此次用的数据库基础上表现良好,但在选择较难(Hard)扩增指纹库中,有些指纹图像会出现比不中的情况,这说明网络的精度还需要进一步提高,此外,胶囊网络的运行速度比较慢,网络在训练过程中需要好几个小时,因为其动态路由是需要在两个胶囊层之间进行信息传递,这是一个非常复杂的过程。然而优点是,胶囊网络对于特征密集的图像有出色的表现,对于表征指纹这类高级图像确实具有显著的优势,并且可以使用较少的数据集训练出良好的精度,胶囊网络的动态路由可以实时根据预测结果调整权重,以此来调整选取的识别图像的特征。

参考文献

[1] 弗朗索瓦. 肖莱, 张亮译. PYTHON 深度学习[M]. 人民邮电出版社, 2019(9): 3-15.

[2] Wang Yani, Wu Zhendong, Zhang Jianwu, Chen Hongli. A robust damaged fingerprint identification algorithm based on deep learning[C]. IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC), 2016: 1048-1052.

[3] L. N. Darlow, B. Rosman. Fingerprint minutiae extraction using deep learning[C]. IEEE International Joint Conference on Biometrics (IJCB). Denver, CO, 2017: 22-30.

[4] D E. Hamdi, I. Elouedi, A. Fathallah, M. K. Nguyuen, A. Hamouda. Combining Fingerprints and their Radon Transform as Input to Deep Learning for a Fingerprint Classification Task[C]. 15th International Conference on Control. Automation, Robotics and Vision (ICARCV), 2018: 1448-1453.

[5] Yang J C, Park D S. Fingerprint Verification Based on Invariant Moment Features and Nonlinear BPNN[J]. International Journal of Control, 2008, 6(6): 800-808.

[6] Yang J, Xie S , Yoon S. el at. Fingerprint Matching Based on Extreme Learning Machine[J]. Neural Computing & Applications. 2013, 22(34): 435-445.

[7] Kumar, R. Fingerprint Matching Using Rotational Invariant Orientation Local Binary Pattern Descriptor and Machine Learning Techniques[J]. International Journal of Computer Vision and Image Processing. 2017, 7(4): 51-67.

[8] Adjimi A, Hacine-Gharbi A, Ravier P, el at. Extraction and Selection of Binarised Statistical Image Features for Fingerprint Recognition[J]. International Journal of Biometrics. 2017, 9(1): 67-80.

[9] Sabour, Sara, Frosst, Nicholas, Hinton, Geoffrey E. Dynamic routing between capsules[J]. Advances in Neural Information Processing Systems. USA. 2017: 3857-3867.

[10] C. Xiang, L. Zhang, Y. Tang, W. Zou and C. Xu. MS-CapsNet: A Novel Multi-Scale Capsule Network[J]. IEEE Signal Processing Letters, 2018, 25(12): 1850-1854.

[11] Z. Zhang, D. Zhang and H. Wei. Vehicle Type Recognition using Capsule Network[C]. Chinese Control And Decision Conference (CCDC), China, 2019: 2944-2948.

[12] Y Xiong, G Su, S Ye, Y Sun, Y Sun. Deeper Capsule Network For Complex Data[C]. International Joint Conference on Neural Networks (IJCNN). Budapest, Hungary, 2019: 1-8.

[13] Ye J, Chang Q, Jia X. Research on Image-to-Image Translation with Capsule Network[C]. Artificial Neural Networks and Machine Learning, Lecture Notes in Computer Science, 2019: 11727.

[14] T Zhao, Y Liu, G Huo and X Zhu. A Deep Learning Iris Recognition Method Based on Capsule Network Architecture[J]. IEEE Access, 2019(7): 49691-49701.

[15] 陳屹. 神经网络与深度学习实战[M]. 机械工业出版社, 2019(08): 266-270.

[16] Yahaya Isah Shehu, Ariel Ruiz-Garcia, Vasile Palade, Anne James. Sokoto Coventry Fingerprint Dataset. Kaggle. [EB/OL] (2018-7-23)[2020-2-29].

猜你喜欢
指纹识别深度学习
基于单片机指纹识别电子寄存柜设计
指纹识别
有体验的学习才是有意义的学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
指纹识别技术综述
指纹挂锁
基于大容量指纹识别的实时身份认证系统
基于线阵CCD的指纹识别实验