APP下载

基于改进Adaboost算法的人脸识别系统设计

2020-04-08王志磊顾梅花陈文浩

西安工程大学学报 2020年1期
关键词:人脸识别人脸正确率

王志磊,顾梅花,陈文浩

(西安工程大学 电子信息学院,陕西 西安 710048)

0 引 言

随着互联网技术的高速发展,信息扩散速度爆炸式增长,个人信息的安全性和私密性逐渐受到重视[1]。与传统的身份验证方法[2]相比,人脸识别技术具有自然性、非接触性、非强制性和识别精度高的优点,得到专家学者的研究和关注[3]。传统的人脸识别系统大多都是基于PC机的,无法满足日常生活中各个场景的需要。汽车兵培训管理系统就是其中的一个应用场景。较于PC机人脸识别系统,嵌入式人脸识别系统具有价格低廉、占用空间小、扩展能力强、响应速度快和操作简便等优点[4-5],大幅提高汽车兵管理系统的效率。但是由于传统的Adaboost人脸检测算法存在过训练的问题,导致算法性能的下降。本文提出了一种基于改进的Adaboost算法的人脸识别系统,改进的Adaboost算法新的权重更新规则可以有效避免算法性能下降,同时提高检测正确率,满足汽车兵培训管理系统实际需求。

1 系统设计

1.1 模块设计

系统采用JZ2440开发板,是以S3C2440作为微处理器芯片,ARM920T为内核的操作平台[6],由存储器、I/O单元电路、通信模块、人机交互模块、采集模块和外围接口组成,系统总体结构由图1所示。摄像头采集模块:通过预留的20pin插座连接数字摄像头,将采集到的图像画面传输给微处理器进行数据交互;微处理器模块:整个系统的处理中枢;存储模块:闪存256 M NAND 闪存,内存64 M SDRAM;人机交互模块:用户通过LCD触摸屏实现与系统的人机交互,使操作简便。

图 1 系统硬件总体框图Fig.1 General block diagram of system hardware

1.2 嵌入式系统平台搭建

系统进行嵌入式开发步骤:①主机选用Ubuntu12.04操作系统,配置交叉编译环境及移植BootLoader[7],系统中选取U-Boot作为BootLoader的程序,可支持多种操作系统和烧写 YAFFS2、JFFS2根文件系统,同时提供了大量的指令集;②在官网下载 Linux 内核源码[8],进行裁剪和移植;③选择YAFFS2作为根文件系统,并配置编译Busybox[9];④移植系统硬件设备所需的驱动程序,如:USB摄像头驱动、LCD触摸屏驱动、串口驱动和Nand 闪存驱动。

1.3 嵌入式应用程序开发

人机交互界面采用Qt Creator进行开发,QT支持跨平台运行,开发嵌入式产品时更加方便高效。从官网下载Qt Creator的Linux版本安装,搭建ARM版本的编译环境[10]。

系统设计的人机交互界面有注册、训练和识别等3个按钮。注册的信息包括汽车驾驶员的姓名、编号和身份图像,并保存在本地数据库中[11]。训练是调取系统数据库中的所有汽车驾驶员图像信息进行人脸特征提取。识别是将训练过程中提取到的汽车驾驶员的人脸特征与系统数据库中的人脸特征进行比对,同时根据设定的阈值输出比对结果[12]。

2 人脸检测和识别算法

在汽车驾驶员驾驶培训中,首先通过固定在仪表盘上的摄像头拍摄学员照片。接着采用Adaboost人脸检测算法提取输入图像中的人脸,然后再将人脸信息传入VIPLFaceNet做人脸特征提取,最后与本地数据库进行比对,显示对应学员身份;若本地数据库中没有匹配的,重新进行图像采集进行比对[13]。在重复3次身份验证后,若在本地数据库还是没有匹配的学员,退出验证系统并弹出警告窗口通知管理员进行处理。系统算法总流程如图2所示。

图 2 系统算法总流程Fig.2 System algorithm process

2.1 Adaboost人脸检测算法

人脸检测[14]是系统中算法的起始步骤,在输入图像中找出人脸并进行标记。系统中的人脸检测算法是基于Adaboost算法训练出的级联分类器实现的,Adaboost算法是一种自适应的分类方法[15],自适应性在于前一分类器分错的样本会被用来训练下一个分类器[16]。算法的特点是使用“积分图像”快速计算Haar-like特征[17],再由Haar特征组成的弱分类器组合成强分类器,最后将多个强分类器级联形成更强的分类器用于人脸检测。

但是Adaboost算法容易产生过训练的问题,使得算法性能下降。针对这个问题,提出以下的改进办法,对权值的更新设定限制条件,在算法每一轮的更新中都设定一个阈值Wm。

(1)

em=P(Gm(xi)≠yi)=

(2)

式中:Wm,i是算法在进行第m轮迭代运算时的权重值;Wm是设定第m轮的阈值,它的大小为本轮训练全部样本权重的均值(N为样本数)。由式(2)可得,Gm(x)在训练集上的误差em就是被Gm(x)误分类样本总和。

(3)

(4)

式中:β为基本分类器在最终分类器中所占的权重。由式(3)可得,em<1/2时,β>0,β随着em的减小而增大,分类误差越小的基本分类器在最终分类的作用越大。从式(4)可知,当迭代运算得到的权重系数小于本轮设定的阈值时,下一轮迭代的权重才会增加,否则就保持不变。这样就可以在一定程度上避免因样本权重不断增加而造成算法性能退化的现象。

2.2 深度学习的人脸识别

人脸检测算法标记出输入图像的人脸,人脸识别过程就是进行特征提取,与本地数据库中的保存的人脸特征进行比对。通过计算输入图片和数据库中的人脸特征的“距离”比较两者之间的相似度:当两者间的相似度小于设定的阈值时,则是一个人;否则,不是一个人。

系统中选取的人脸识别算法是卷积神经网络VIPLFaceNet[18],包含了7个卷积层和2个全连接层的DCNN。直接修改于Hinton教授的学生Alex Krizhevsky在2012年设计的AlexNet[19]。与 AlexNet 相比,VIPLFaceNet有6个主要特点:

1) 第一层卷积层的卷积核大小由11×11转化为9×9,降低计算量;

2) 由于对初始化参数的帮助有限,移除了局部响应归一化(LRN)层;

3) 将AlxNet第2层 5×5 的卷积核分解成两层3×3的卷积核,增加网络深度的同时没有增加计算量;

4) 移除AlxNet的所有分组结构,利用异步随机梯度下降进行并行训练;

5) 减少了每层的特征图的数量并且增加一个卷积层,增加网络深度[20];

6) 网络结构的末端,全连接层第2层从4 096维降低到2 048维。

3 算法测试与分析

系统应用于汽车驾驶培训管理,而采集图像的摄像头装置固定在汽车仪表盘上,与驾驶员形成一定的夹角,采集的人脸图像不会全是正脸,难免存在侧脸。为了验证系统中算法的正确率和识别率,需要大量的各种形态的人脸进行测试,但是实际汽车驾驶员训练中难以找到大量的人脸图像保证实验效果,所以人脸检测算法实验和系统性能测试实验采用人脸数据库进行测试[16]。

3.1 人脸检测实验

实验中选用CMU_PIE人脸数据库进行检测实验。该数据库是由卡耐基梅隆大学在2000年11月所建立,包括来自68个人的41 368张照片,其中包括了每个人的13种姿态条件,43种光照条件和4种表情下的照片。选取其中的500张照片,实验结果对比如图3~4所示。

图 3 Adaboost算法检测效果图Fig.3 Detection result graph of Adaboost algorithm

图 4 改进的Adaboost算法检测效果图Fig.4 Detection effect of improved Adaboost algorithm

图3中,Adaboost人脸检测算法的正确率为68.4%,漏检率为31.6%;图4中,改进后的Adaboost算法检测正确率为75.2%,漏检率为24.8%。并且2种算法在各个数目实验测试集的正确率保持平稳,说明新提出的权重更新规则可以有效地抑制 Adaboost算法的过训练现象,提高了算法的检测正确率。而出现漏检的图像有共同的特征,即在逆光条件下拍摄,图像存在严重曝光。

为了进一步验证改进的Adaboost算法的性能,实验采用FDDB人脸数据库,此数据库包含了2 845张图像(包含5 171张人脸),选择其中的150张照片,对人脸检测算法进行测试。改进前的Adaboost算法检测效果如图5所示,改进后的Adaboost算法检测效果如图6所示。Adaboost算法和改进的Adaboost算法的检测正确率分别为80.5%和87.1%,漏检率分别为19.5%和12.9%。

图 5 AdaBoost算法检测效果图Fig.5 Detection result graph of Adaboost algorithm

图 6 改进后AdaBoost算法的检测效果图Fig.6 Detection result graph of the improved Adaboost algorithm

改进后的Adaboost算法的检测正确率高于原Adaboost算法,达到87.1%,漏检率低于原Adaboost算法,达到12.9%。说明系统可以从大部分照片中检测到人脸,对于面部表情、人体姿态和是否佩戴眼镜没有严格的要求,并且对于一些偏转角度大的人脸和较小脸也有良好的检测效果,即改进后权重更新规则可以有效抑制算法的过训练现象。实验表明,改进后的Adaboost人脸检测算法可以应用于汽车兵培训管理系统。

3.2 系统性能测试

系统实现后,接下来在ARM平台上测试系统的正确率和实时率。实验中采用IMM人脸数据库,选出左右偏转共计80张图像进行测试。测试结果中,有78张图像比对成功,识别率为97.5%。同时有2张照片比对错误,则是因为人脸的偏转角度过大、表情过于夸张。

分别采用训练8,30,60张图像进行识别响应时间的测试,平均识别响应时间分别为3.26,5.73,11.5 s。可以看出,系统的识别响应时间和训练图像的数目有关,训练的图像数目越多,需要的识别时间就会越长。

采集汽车驾驶员图像的摄像头位于仪表盘,采集到的人脸图像不会存在过大的偏转角度,驾驶训练中,学员需要集中精神完成课程,也不宜做出过于夸张的表情。同时,在同期参加培训的学员数目不会很大,并且在训练过程中,不要求识别的实时性。所以,该系统可以应用于汽车驾驶培训管理系统。

4 结 语

基于ARM9的嵌入式人脸识别系统,经大量实验测试可以保持较高的识别率,可以应用于汽车驾驶培训管理中,有效避免了驾驶训练时虚假身份和虚假学时的问题,保证训练效果。同时因为系统的模块化思想以及系统扩展性,可以根据不同场景的需求在系统上增加更多的模块,丰富系统的功能,满足更多更复杂场景的需求。

猜你喜欢

人脸识别人脸正确率
人脸识别 等
有特点的人脸
门诊分诊服务态度与正确率对护患关系的影响
揭开人脸识别的神秘面纱
三国漫——人脸解锁
生意
品管圈活动在提高介入手术安全核查正确率中的应用
生意
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人