基于人脸识别的移动终端身份认证系统的设计与实现

2018-09-10 03:54韦智勇曹之浩覃颖忠
企业科技与发展 2018年6期
关键词:身份认证人脸识别

韦智勇 曹之浩 覃颖忠

【摘 要】传统的人脸识别技术已在各类应用系统身份验证中得到广泛应用,由于移动智能终端的计算及存储资源有限,不适合大规模的运算,基于深度学习的人脸识别技术在移动终端的应用还不够成熟。文章通过分析人脸识别的关键技术,通过合理分布身份认证系统的计算资源,在移动客户端采用Adaboost算法完成人脸的检测、预处理和CNN卷积神经网络提取人脸特征,在服务端上采用CNN完成人脸模型训练,在移动客户端加载模型并提取人脸特征比对识别任务,测试证明系统具有良好的实时性能和较高的识别率。

【关键词】人脸识别;身份认证;移动智能终端;CNN卷积神经网络;人脸模型训练

【中图分类号】TP391.41 【文獻标识码】A 【文章编号】1674-0688(2018)06-0042-04

0 引言

人脸识别技术主要利用人脸的特征进行身份识别,传统的人脸识别技术主要是提取图像的表面特征进行匹配,人脸图像的识别率容易受到图像质量的影响。基于深度学习的人脸识别已在很多领域得到广泛的应用,更是推动了人脸识别在移动信息安全领域的发展。本文设计基于CNN卷积神经网络人脸识别的移动终端身份认证系统,用卷积神经网络提取人脸特征取代传统的特征提取算法,获得更好的识别性能。

1 人脸识别关键技术相关工作

人脸识别的特征提取算法目前主要有基于子空间映射和基于深度学习的特征提取算法。基于子空间映射方法尝试将高维度的人脸特征映射到一个低维子空间去,然后尝试在子空间中完成人脸特征匹配,利用部分子空间映射方法具有相对平移、尺寸等不变性,然后经过降维操作和分类器设计进行人脸识别,优点是人脸认证的精度有所提高,缺点是对人脸变化的抑制性不高且提取的特征不具备普适性。常见的基于子空间映射的方法有特征脸法、LBP特征法、Garbor特征法和HOG特征法。基于深度学习的人脸特征提取方法是通过搭建具有一定深度的网络结构和海量的训练数据,将人脸图片经过多层的卷积和非线性映射操作,可以模仿人脑的多级信息提取过程和视觉感知机制提取出有效的特征信息。实验证明,基于深度学习的人脸识别在各类人脸识别测试集合上取得识别率大大优于传统的基于子空间映射的人脸识别技术。学者孙祎等人通过CNN学习出人脸特征[1],汤晓鸥教授等人提出了Deep ID[2]网络模型,Facebook公司提出了一种叫Deep Face的网络结构[3],“谷歌”提出了一个Face Net网络结构及相关的算法[4],VGG小组提出了一个人脸识别的CNN网络结构[5],Qiao等人提出多任务级联卷积神经网络算法(Multi-task Cascaded Convolutional Networks,MTCNN)[6]。

2 人脸识别算法设计

2.1 基于Adaboost算法与Haar特征的人脸图像检测

2.2 基于CNN网络提取人脸图像特征

2.2.1 CNN卷积网络结构

卷积神经网络是一种深层的神经网络模型,基本结构都是在 LnetNet-5的基础上改进而来的,通常包含输入层、卷积层C、池化层S和全连接层,以及在全连接层里面的隐藏层(如图1所示)。输入层用来接收经预处理后的人脸图像,并且在该网络中只有一个输入层。在卷积和池化的过程中嵌套了人脸特征的提取过程,实现分类的过程主要是在全连接层。

在输入层里,我们可以将经过预处理的人脸图像输入到网络当中,除去人脸图像的噪声,提高识别率。在卷积层里,将输入的人脸图像经过滤波器进行卷积,在C1层生成3个特征的映射图,用神经元的激活函数sigmoid来提取人脸图像局部特征。经过C1层后,得到3个S2层的特征映射图,对每个特征映射图中的4个像素的值求和、加上权值及偏置,最后对神经元的激活函数sigmoid进行计算,特征映射图像经过滤波器得到C3卷积层和C5卷积层,S2池化层产生S4池化层。在全连接层里面,最终会将C5层输出的特征图拉成一条向量X,并于全连接层进行全连接,最后在输出层输出结果。

2.2.2 人脸图像特征训练

卷积神经网络的训练过程主要包括2个部分、前向传播和反向传播。前向的特征提取、分类计算的过程是前向传播过程主要完成的任务,而误差的反馈和权值的更新是反向传播主要完成的任务(如图2所示)。

(1)向前传播阶段。①从样本集中取人脸图像样本输入CNN卷积神经网络,人脸图像样本要经过预处理,并初始化CNN网络参数,采用多个卷积和下采样提取人脸图像中的特征信息,然后采用前向反馈提取的人脸特征信息进入全连接层;②在全连接层经过变换计算相应的实际输出值,对输出层的数据进行逻辑回归分类,若符合预期的结果(精度控制内)则输入对应结果。

(2)向后传播阶段。①将相应的期望输出值与计算出来的实际输出值的差进行比较,判断是否在网络的精度阈值范围内,若不符合期望输出则进行向后的传播过程;②按极小化误差的方法调整权矩阵,即将权值和偏差反向传播回去,从输出层反向依次传递到全连接层和卷积抽样层,直至每一个网络层都最终得到自己相应的梯度才开始新的一轮的训练。

3 身份验证系统的总体设计

3.1 身份验证系统架构设计

由于移动智能终端的计算及存储资源有限,在身份验证系统中采用C/S架构,在设计架构时,将比较耗时的模型训练和检索操作放在服务端,而将简单的人脸采集、人脸检测、预处理等模块放在移动客户端,本系统的架构图如图3所示。

3.2 功能模块设计

基于人脸识别的身份验证系统分为智能移动客户端和服务器端2个部分,智能移动客户端包含人员信息录入模块、图像采集模块和人脸检测模块,服务端包含图像预处理、特征提取与检索和人脸数据存储等模块(如图4所示)。

3.2.1 图像采集模块

智能移动客户端人脸图像采集模块是整个身份验证系统的入口,需要使用客户端的人脸图像采集模块采集人脸样本库,在本系统中主要通过OpenCV调用移动终端摄像头拍照采集人脸样本和Android SDK读取本地相册中的人脸图像样本。为保证人脸图像样本的质量和后续检测模块的通过率,在采集人脸图像时应调整屏幕并尽可能确保整个面部区域在摄像头的有效范围内。通过摄像头采集的人脸图像样本利用SQLite嵌入式数据库保存至本地。

3.2.2 人脸库录入模块

当人脸识别不成功时,系统需提示用户输入个人信息建立个人人脸样本库,并将样本库被持久化存储到本地SQLite数据库的人员信息表中及服务端的人脸数据库。

3.2.3 人脸检测模块

移动客户端的人脸检测模块是检测图像中是否存在人脸区域,如果在规定时间内未检测到人脸区域则转到图像采集模块并提示用户重新采集人脸图像,如果检测到人脸区域则用标注框标注,为减少后台数据传输量,并将只有人脸的区域图片进行剪裁保存到本地后,传输到服务端用于后续的验证,这些保存与获取的函数直接可以通过SQLite提供的API调用接口进行调用处理。作为人脸预处理和特征提取的先前模块,人脸检测中人脸图像的大小、姿态、清晰程度及位置会影响到验证的识别率。本文系统是基于OpenCV的Adaboost算法与haar特征的级联分类器实现人脸检测,在移动客户端上的运算效率和检测效果上取得了良好的效果。

3.2.4 图像预处理模块

预处理模块是服务端接收来自移动客户端经过人脸检测处理后的图片,预处理是尽量减小姿态、角度及光照等外在因素影响采集人脸图像的质量。整个流程主要分为关键特征点的标注、人脸图像的对齐及灰度处理3个过程,最后将经过预处理模块的人脸图像直接输入CNN卷积神经网络模型进行人脸特征的提取。

3.2.5 特征提取模块

本文采用CNN卷积神经网络模型提取人脸特征及训练人脸模型。模块分为2个过程,首先加载调用CNN模型对经过人脸采集、检测、预处理后的人脸图像作为人脸特征向量。其次,由于人脸特征提取的CNN模型涉及大量的矩阵预算,对实时性要求高,本模块的技术实现是采用C/C++程序实现CNN模型,然后利用NDK工具在Windows平台下开发CNN模型的C/C++动态链接库,将CNN模型的特征提取組件转化成Android的动态链接库.so文件,实现C/C++链接库在Android平台下的直接调用,从而提升CNN模型的实时运算性能。

3.2.6 检索模块

检索模块是通过计算特征向量的余弦相似度判断人脸特征向量之间的相似度。本模块的技术实现也是基于C++实现,与特征提取模块类似,将相似度判断的组件转化成Android的动态链接库.so文件,实现C/C++链接库在Android平台下的直接调用。

3.2.7 数据存储模块

数据存储模块的本地存储使用嵌入式SQLite关系数据库,服务端使用MYSQL关系数据库,用来存储人员信息和人脸图像样本信息,人脸图像样本信息主要存储经人脸检测及预处理后裁剪的人脸图像的信息、未经处理的人脸图像存储路径和经CNN模型提取的人脸特征向量文件存储路径。

4 移动终端身份验证系统的测试与分析

4.1 测试环境

实验所用的测试移动终端为“华为”P9手机,型号是EVA-AL00,处理器为Hisilicon Kirin955,Android 版本是6.0,Opencv2.4.11,NDK采用android-ndk-r10,JNI,数

据库使用SQLlite。服务端使用windows2008R2,Opencv

2.4.11,Android studio,MYSQL。

4.2 系统测试与分析

本文采用移动智能终端进行系统的功能测试,首先通过人脸图像采集模块采集初始的人脸图像样本,经过人脸区域检测及裁剪保存只有人脸区域的图像,将只有人脸区域的图像进行预处理,然后通过CNN卷积神经网络进行人脸特征提取,得到采集人脸图像的人脸特征向量文件,最后与本地的特征向量文件匹配,经测试人脸识别时间在毫秒级。如图5所示,通过功能和性能的测试,系统的功能和运算效率达到预期目标。

5 结语

本文提出以成熟的Adaboost人脸检测算法和CNN卷积神经网络人脸特征提取算法完成系统的核心设计,通过在移动客户端和服务端分布身份认证系统各个模块的计算资源,在移动客户端加载调用CNN模型并提取人脸特征完成识别任务,经系统测试证明具有一定的实时性能,该人脸采集、检测、预处理、特征提取、模型训练、检索等模块可以成为独立组件,为其他应用系统利用人脸识别实现身份验证应用提供可靠的应用程序接口。

参 考 文 献

[1]SUN Y,WANG X,TANG X.Hybrid deep learning for face verification[C].Proceedings of theIEEE International Conference on Computer Vision,2013:1489-1496.

[2]TAIGMAN Y,YANG M,RANZATO M,et al.Deep-face:Closing the gap to human-level per-formancein face verification[C].Proceedings of the IEEE C-

onference on Computer Vision and Pattern Recognition,2014:1701-1708.

[3]SUN Y,WANG X,TANG X.Deep learning face re-presentation from predicting 10,000 classes[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2014:1891-1898.

[4]SCHROFF F,KALENICHENKO D,PHILBIN J.Facenet:A unified embedding for face recognition and clustering[C].Proceedings of the IEEE Conferenceon Computer Vision and PatternRecognition,2015:815-823.

[5]PARKHI O M,VEDALDI A,ZISSERMAN A.Deep Face Recognition[C].BMVC :Vol 1,2015:6.

[6]Zhang K,ZhangZ,LiZ,et al.Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks[C].In IEEE International Conferen-ce on Computer Vision and Pattern Recognition(CVPR),2016.

[责任编辑:钟声贤]

猜你喜欢
身份认证人脸识别
人脸识别的“国标”来了
中科视拓开放商业版本人脸识别算法
人脸识别好用但不能滥用
荣耀畅玩7C:人脸识别
iPhoneX来了!
云电子身份管理与认证系统中的关键技术优化改进
校园网云盘系统存在的安全问题及对策
基于指纹身份认证的固定通信台站干部跟班管理系统设计
基于PKI与基于IBC的认证技术比较
Kerberos身份认证协议的改进