APP下载

基于卷积神经网络的人脸识别系统

2018-07-04长沙理工大学段杨杨郑立阳张雪冰

电子世界 2018年12期
关键词:人脸识别人脸特征提取

长沙理工大学 白 创 段杨杨 王 坤 郑立阳 彭 港 张雪冰

1 引言

人脸识别技术作为生物特征识别技术的一种,与指纹识别、视网膜识别、虹膜识别等技术相比,具有特有的稳定性、唯一性和方便性,所以它被广泛地被应用在身份识别领域[2]。人脸识别技术分为四类:基于几何特征的方法、基于代数特征的方法、基于模板的方法、基于深度学习的方法。基于几何的特征提取方法对于质量较好的人脸图像有良好的分类和识别效果,对某些或是质量较差的图像,人脸轮廓线的提取效果不太理想[3];基于代数特征的方法因有着相对较低的计算复杂度而引起广泛关注,但不足之处在于受表情变化、光照角度强度变化和视角变化等影响严重,而且鲁棒性较差[4];基于模板匹配的方法优点是容易实现,缺点是很难有效处理姿势和尺度变化问题[5];基于深度学习的人脸识别算法对光照、姿势和复杂背景有更好的鲁棒性,能较大幅度地提高识别准确率;但深度学习同样面临着一些挑战,如大数据训练问题,现今的深度学习算法的训练数据量已经达到了数百万和数千万,甚至是更大的规模量,现有的一些技术对大数据的处理已经不太适用[6]。

本文主要从深度学习对大数据的处理效率出发,采用卷积神经网络解决了深度学习对大数据处理效率不高的问题,并基于此点设计了卷积神经网络人脸识别系统,经测试该系统有较好的鲁棒性,且识别率较高。

2 人脸识别核心算法设计

本文设计的人脸识别系统的核心算法主要由两部分组成,分别是基于Adaboost人脸检测算法和基于卷积神经网络的人脸特征提取算法。

2.1 人脸检测算法设计

人脸检测采用的是基于一种Adaboost算法的Viola人脸检测方法[7],Adaboost 算法是一种用来分类的方法,它把一些比较弱的分类方法合在一起,组合成新的很强的分类方法。训练过程就是挑选最优弱分类器,并赋予权重过程。具体训练过程如图1所示。

(1)使用 Harr-like 特征表示人脸,计算出 Haar 特征位置参数,并根据特征位置参数求出各弱分类器的阈值参数;

(2)使用 Adaboost 算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器;

(3)将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,级联结构能有效地提高分类器的检测速度,然后经过大量的人脸训练,从而达到检测人脸的效果[8]。

图1 Adaboost算法的训练过程

2.2 人脸特征提取算法设计

我们采用的是基于卷积神经网络的特征提取方法(Convolutional Neural Networks-简称CNN)。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,由于卷积神经网络具有强大的特征抽取能力,能够逐层对复杂数据进行特征抽取,最终形成适合模式分类的较理想特征[9]。

2.2.1 本文卷积神经网络的具体结构

卷积神经网络的输入层为:68×68大小的图片,单通道。

第一层卷积:2×2大小的卷积核32个。

第一层max-pooling:2×2的核。

第二层卷积:2×2卷积核64个。

第二层max-pooling:2×2的核。

第三层卷积:与上一层是全连接,2×2的卷积核96个。

全连接输入层:输入是将第三层max-pooling的输出连接成为一个7776(9×9×96)维的一维向量,作为该层的输入,输出为1024维。

全连接 Softmax 输出层:输入1024维,输出为67,输出的每一维都是图片属于该类别的概率,Softmax输出层的主要结构见文献[10]。

2.2.2 卷积神经网络的训练及训练结果

使用谷歌第二代机器学习系统—TensorFlow训练卷积神经网络。TensorFlow有高度的灵活性,真正的可移植性(Portability),自动求微分,多语言支持等特点。

训练中使用的人脸库是CMU_PIE人脸库,它包括来自68个人的40000张照片,其中包括了每个人的13种姿态条件,43种光照条件和4种表情下的照片,我们选取一个训练效果较好的模型,将卷积神经网络中实现提取人脸特征的结构以及其参数保存下来,用来设计特征提取模块。

训练过程中的损失函数是交叉熵损失函数,优化器是tensorflow中的AdamOptimizer, 学习速度为0.0001,训练方法是批量梯度下降法,训练次数为4000次,每次输入训练数据中的随机2000张图片,训练每隔50次打印当前误差;我们使用tensorflow中的tensoboard工具对网络进行可视化,得出识别准确率随训练次数增加而不断增加,训练次数在4K左右逐渐趋于稳定,而误差随训练次数增加也逐渐降低,训练次数在4K左右也逐渐趋于稳定,最终训练准确率为99.06%。

3 人脸识别系统实现

人脸识别系统实现主要包括软件实现和硬件实现两部分,下面分别介绍。

3.1 系统软件实现

系统软件实现可以分两个部分阐述。第一部分是人脸检测,人脸检测开发环境采用的是由 Willow Garage 提供支持的开源计算机视觉库OpenCV(Open Source Computer Vision Library)。在Open CV中,对于人脸检测的模型已经建立为一个XML文件,其中包含了Harr特征的分类器的训练结果,我们通过加载这个文件而省略掉自己建立级联表的过程。有了级联表,我们只需要将待检测图片和级联表一同传递给Open CV的目标检测算法即可得到一个检测到的人脸的集合,从而达到检测人脸的目的。第二部分是人脸特征提取及识别,首先基于tensorflow利用CMU_PIE人脸库对卷积神经网络进行训练,选取最优训练模型并通过编写python构建特征提取器,接着输入标准人脸形成人脸特征库;当待测人脸图像进入系统,通过特征提取器提取待测人脸特征,接着通过对比待测人脸特征和标准人脸特征的欧式距离完成识别。最后在c++程序中调用python脚本,在Qt界面显示识别结果,从而完成整个人脸识别过程。

3.2 系统硬件实现

我们主要是使用Altera DE1_SOC开发板;开发板内ARM核的主频:1G;运行内存:1G的DDR3 SDRAM;存储空间:8G的MicroSD卡。

系统的硬件实现框图如图2所示。

图2 系统硬件设计

从图像中可以看出,首先由USB摄像头通过UVC驱动和V4L2接口采集图像。图像在ARM核中,输入给嵌入到ARM核中的人脸识别程序。通过VGA接口连接的显示屏在显示屏显示人机交互界面以及相关的功能按键,通过点击按键实现人脸识别系统的相关功能。

4 系统测试

测试结果如图3所示。

如图3所示的人脸识别操作界面,首先点击录入按钮,系统显示拍照录入的人脸图像,并提示要求输入姓名完成整个录入过程;接着点击开始识别,系统采集当前摄像头图像并与录入的人脸图像进行识别,最后把识别结果在显示界面显示出来。

以实验室现有人员为测试对象,经过一个初步测试发现:本系统完全实现了人脸识别功能,有一个比较好的识别准确率。对人脸的姿态和光照等,表现出了较好的鲁棒性。可以加入新的人员进入系统而无需进行训练。另外,人机交互界面也比较完备。

图3 测试结果

5 总结

本文采用了人脸定位与检测算法,可以从复杂场景中提取人脸图像,通过使用深度学习中的卷积神经网络算法,提高了人脸识别系统在人脸姿态、光照等发生变化时的识别率。然后采用高性能机器训练卷积特征提取层,低性能机器加载卷积特征提取层的方式,避免了新加入人脸的重新训练的过程。最后使用嵌入式的技术将整个人脸识别系统载入到SOC片上系统中,提高了系统的实用性。当然系统也存在一些问题,比如说我们的卷积神经网络需要进行大量的卷积运算,运算时间较久,导致系统在硬件性能不够的情况下识别速率较慢,在以后的工作中还需要不断改进神经网络算法,从而提高识别速率。

[1]刘欢喜.人体生物特征的综合分析与应用[D].上海交通大学,2010.

[2]李武军,王崇骏,张炜,陈世福.人脸识别研究综述[J].模式识别与人工智能,2006,19(01):58-66.

[3]夏海英.基于纹理和几何特征的表情分类研究[D].华中科技大学,2011.

[4]江兴斌.基于代数特征的人脸识别算法研究[D].兰州理工大学,2014.

[5]谢毓湘,王卫威,栾悉道,吴玲达,老松杨.基于肤色与模板匹配的人脸识别[J].计算机工程与科学,2008(06):54-56+59.

[6]严严,陈日伟,王菡子.基于深度学习的人脸分析研究进展[J].厦门大学学报(自然科学版),2017,56(01):13-24.

[7]S.Yin,P.Ouyang,X.Dai,L.Liu and S.Wei,”An AdaBoost-Based Face Detection System Using Parallel Configurable Architecture With Optimized Computation,”in IEEE Systems Journal,vol.11,no.1,pp.260-271,March 2017.

[8]刘远志,潘宏侠,赵润鹏.基于OpenCV和Adaboost算法的人脸检测[J].机械管理开发,2012(01):185-186+188.

[9]于达岭,黄洪琼.一种基于卷积神经网络的人脸识别方法[J].微型机与应用,2017,36(14):49-51+56.

[10]李倩玉,蒋建国,齐美彬.基于改进深层网络的人脸识别算法[J].电子学报,2017,45(03):619-625.

猜你喜欢

人脸识别人脸特征提取
人脸识别 等
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
基于Daubechies(dbN)的飞行器音频特征提取
三国漫——人脸解锁
基于MED和循环域解调的多故障特征提取
长得象人脸的十种动物
基于K-L变换和平均近邻法的人脸识别