基于Adaboost和PCA的嵌入式人脸识别方法*
2017-06-09王鸿雁孟祥印
王鸿雁, 孟祥印, 赵 阳, 陶 涛
(西南交通大学 机械工程学院,四川 成都 610031)
基于Adaboost和PCA的嵌入式人脸识别方法*
王鸿雁, 孟祥印, 赵 阳, 陶 涛
(西南交通大学 机械工程学院,四川 成都 610031)
针对传统的Adaboost算法和主成分分析(PCA)算法用于人脸识别时在环境与姿态等非约束性条件下识别率大大降低以及要求训练样本符合高斯分布的缺陷,提出了一种融合Adaboost和PCA的与或关联决策方法。一方面,在需要安防模式时开启或决策,拒绝近似全部负样本的请求,最大限度保证识别的正确率;另一方面,在需要访客模式时开启与决策,以减少正样本的丢失。在Samsung 2440嵌入式Linux平台上采用该方法进行人脸检测时,基于2种决策方法,分别满足各自阈值。实验结果表明:该方法在嵌入式平台运行稳定,适合推广于智能家居控制与楼宇自动化控制。
Adaboost; 主成分分析;人脸检测
0 引 言
人脸识别一直是人工智能领域研究的热点,在计算机应用、数学、自动化、图像识别与处理等方向都有广泛研究,同时在航空航天、刑事侦查、机场检查、小区物业、消费电子等领域也有重要的价值。人脸识别算法经过多年的研究与实践,在简单环境上已经能够取得较好的效果。但由于人脸识别过程中采集的数据量大,需要较大的存储空间和较强的处理能力,因此,目前大多数人脸识别系统均基于PC构架[1]。已广泛应用的人脸识别门禁系统、考勤系统等也是使用可便携移动的前端视觉图像采集系统,传输图像到后端,由PC端服务器完成人脸识别过程,但这种方法依赖于后端,受限于网络,不属于完全嵌入式人脸识别系统。
板级嵌入式人脸识别系统虽然能够实现简单的人脸识别,但受限于处理器能力和视频采集环境,依然不能与PC级系统相提并论,并且在单独采用Adaboost算法和主成分分析(principal component analysis,PCA)算法时的识别率并不理想。基于此,本文提出了融合Adaboost和PCA的与或关联决策的方法,方法能够在2种不同模式下分别处理2种算法结果,在不同环境模式时加以决策。环境模式分2种:访客模式与安防模式。访客模式能最大限度限制对正确样本(即存在人脸)的过滤,安防模式能最大限度限制对错误样本(即不存在人脸)的通过。
1 人脸识别原理
人脸识别过程分为2个阶段:训练阶段和识别阶段。
如图1所示,训练过程的识别阶段是基于人的脸部特征,对系统输入的图像 ,首先判断该图像中是否存在人脸 , 如果存在人脸,则进一步给出脸的位置、大小和各主要面部器官位置等信息[2]。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,将其特征提取为特征脸,并存放于库中。当需要进行人脸识别时,将获取图像进行定位、预处理、特征提取等过程,与库中的已存特征人脸进行对比,从而识别每个人脸的身份。其识别原理如图1所示。
图1 人脸识别原理
2 主要算法与改进
2.1 Adaboost算法
2.1.1 类Haar特征
AdaBoost算法的实现,采用的是输入图像的矩形特征,即类Haar特征。类Haar特征反映了图像的局部灰度化。如图2所示,每个特征由2个或3个矩形区域组成,用以检测边界特征、细线特征、中心特征等[3]。Haar特征值由白色矩形像素和乘以白色矩形权值,加上黑色矩形像素之和乘以黑色矩形权值,如下式所示
(1)
式中 n为矩形的个数;wi为矩形的权值;rect(si)为矩形ri所围成区域的灰度积分。白色区域权值为正,黑色区域权值为负。
图2 Haar特征分类图
2.1.2 Adaboost训练强分类器
对于每一个弱的分类器,实际上就是在数量庞大的特征中选取一个特征,然后利用这个特征区分人脸与非人脸,以达到错误率最低[4]
(2)
式中 f为训练特征;θ为训练阈值;p为指示不等号的方向;x为一个检测子窗口。
经过T次迭代后,获得T个最佳弱分类器h1x,…,hTx,将这些最优弱分类器进行叠加,形成一个强分类器
(3)
式中 T为强分类器中的最优弱分类器的数目
(4)
式中 εt为第T个弱分类器的错误率。
2.1.3 筛选式级联
类Haar特征的特点为其在检测时与检测窗口大小无关。在检测的最初,检测窗口和样本大小一致,按照一定的尺度参数进行移动,对检测窗口放大以实现对检测图像的遍历,当检测窗口超过原图像的50 %以后,即停止遍历。然后处理检测到的重叠人脸区域,进行合并操作。
2.2PCA算法
PCA算法是一种常用的基于变量协方差矩阵对信息进行处理的方法,它的基础是Karhunen-Loeve(KL)[5]。该方法主要抽取人脸的主成分特征以构成特征脸空间,识别过程时将测试图像投影到此空间得到一组投影系数,然后通过对各人脸图像的比较进行人脸识别。PCA算法识别过程:
1)假设训练集有m类样本,每类样本有n个图像,这样,每个样本大小为m×n维。将样本集矩阵化
X=[x11,x12,…,xij]T
(5)
式中i∈{1,2,…,m},j∈{1,2,…,n}。
2)训练样本图片的平均脸
(6)
3)计算每一张脸与平均脸的差值
dij=xij-μ
(7)
式中i∈{1,2,…,m},j∈{1,2,…,n}。
4)构建协方差矩阵
(8)
式中A=[d11,d12,…,dij]。
5)采用奇异值分解定理(SVD)获取AAT的特征值和特征向量以构造特征空间,然后根据特征值的贡献率选取前P个最大特征值和最大特征向量。贡献率为选取特征值的和与所有特征值和的比
(9)
式中 a一般选取0.99。
求出之前协方差矩阵的特征向量
(10)
特征脸空间为
W=[μ1,μ2,…,μp]
(11)
通过
y=WTx
(12)
将原始的m×n维数据转为p维的数据。
6)通过式(12)的步骤,将每个训练样本对应一个特征向量,即
yij=WTxij
(13)
再利用余弦分类器
(14)
如果满足
d(yij,y)=max{d(yij,y)}
(15)
式中i∈{1,2,…,m},j∈{1,2,…,n},则X与Xij同类。
2.3 与或关联决策方法
传统Adaboost算法和PCA算法在低样本率时识别率保持在0.4~0.8之间,且需要大量的运算与样本训练。将算法融合到嵌入式系统中时识别率更低且不便于操作。在嵌入式人脸识别开发过程中,提出了一种基于2种算法的与或关联决策方法,并提出了2种工作模式以对应2种决策方法:会客模式和安防模式。
会客模式: 在满足与关联决策时,最大限度减少正样本丢失。举例来说,当房间内有人时,系统需要识别访客,此时尽量让更多可能重要的人进入房间,以免错过重要访客。安防模式:在满足或关联决策时,最大限度减少负样本丢失。举例来说:当房间内无人时,尽量保证进入房间内的人准确无误的存在于样本中。与或关联决策理论在实际生活中存在众多应用,算法的融合也最大限度地保证系统准确运行。其实现过程软件流程图如图3所示。
图3 系统软件流程
经过Matlab和OpenCV的联合仿真,在单独使用Adaboost算法时,随着样本数量的增加,识别准确率保持在0.4~0.8之间,使用PCA算法时,其准确率与Adaboost算法相当。融合2种算法后,准确率明显提高。即使在低样本率的情况下,也能达到0.7以上。考虑到嵌入式设备的性能和使用环境,使用混合算法对结果的影响明显。
图4 不同算法对比
3 系统构建与测试
3.1 总体构架
选择使用Samsung2440芯片的嵌入式平台,具有低功耗,高性能的优点。以嵌入式Linux作为操作系统,具有多任务并行处理的能力。在选择Samsung2440作嵌入式平台开发人脸识别系统时,视频采集部分采用Linux下的V412接口,摄像头设备文件在根文件系统/dev目录下的Video0中。视频处理部分采用OpenCV视觉库实现算法[6]。系统硬件结构图如图5所示。
图5 系统硬件结构
3.2 识别过程
人脸检测阶段:搜索视频接口采集的一副图像,寻找人脸区域,对人脸图像进行灰度化处理、边缘捕捉、直方图均衡化等处理,以增加图像对比度。然后将图像加入训练集,使用不同算法对图像进行处理,生成数据库文件。图6所示为人脸图像处理阶段部分截图。
人脸识别阶段:系统上电后,打开摄像头,系统进入识别状态。摄像头获取1帧数据后将采集到的图片显示在嵌入式设备屏幕上,同时采用2种算法分别对图像进行处理,将处理后得到的人脸图像与数据库中训练好的人脸进行对比,从而判定是否对应此人。根据设定模式的不同,权衡不同算法结果,给出与或逻辑结果。若识别成功且满足设定条件后,打开对应的继电器;若识别未成功,图片闪烁3s,退出系统[7]。
图6 图像处理过程
3.3 系统测试
系统对2种模式均进行了10次测试,当设定为安防模式时,系统识别成功5次,当设置为访客模式时,系统识别成功9次。故该系统及决策方法满足设定要求。图7左图为嵌入式人脸识别总体系统,右图为嵌入式设备上屏幕显示图像。
图7 训练与识别系统
4 结束语
采用2种算法的与或关联决策方法,在实际使用中有重要的应用。提出基于Samsung2440嵌入式平台的人脸识别方法,充分利用了Adaboost和PCA算法的优势,训练成本低、识别速度快、识别率高。
在Samsung2440嵌入式平台上开发人脸识别系统,充分利用了硬件系统的性能,搭建小型化的人脸识别系统为未来智能家居、物联网、安防系统提供了模块化的解决方案,可广泛应用于需要身份认证的物联网等系统中[8]。
[1] 赵 宏,梁喜军,杨玉东,等.嵌入式人脸识别系统的开发[J].长安大学学报:自然科学版,2015(S1):293-297.
[2]LiuS.AnovelfacedetectionalgorithmbasedonPCAandadaboost[C]∥SixthInternationalConferenceonMeasuringTechno-logyandMechatronicsAutomation,2014:641-649.
[3] 孔令钊,唐文静.基于PCA的人脸识别系统的研究与实现[J].计算机仿真,2012(6):27-29.
[4] 杨本娟,黎小平.基于核主成分分析的图像模糊篡改检测算法[J].传感器与微系统,2015,34(11):137-139.
[5]XiaoJ,GaoG,HuC,etal.Anovelframeworkforfastembeddedfacedetectionsystem[C]∥InternationalConferenceonASIC,IEEE,2007:32-35.
[6]YangM,CrenshawJ,AugustineB,etal.Adaboost-basedfacedetectionforembeddedsystems[J].ComputerVision&ImageUnderstanding,2010,114(11):1116-1125.
[7] 刘耀庭.基于ARM9的人脸识别门禁系统设计[D].南京:南京航空航天大学,2011.
[8] 沈千里,陈 晓,支亚京,等.一种新的人脸图像去噪算法[J].传感器与微系统,2015,34(11):133-136.
孟祥印,男,博士,副教授,主要从事嵌入式系统开发,网络控制系统工作。
Research and implementation of embedded face recognition based on Adaboost and PCA*
WANG Hong-yan, MENG Xiang-yin, ZHAO Yang, TAO Tao
(School of Mechanical Engineering,Southwest Jiaotong University,Chengdu 610031,China)
Aiming at defects of traditional Adaboost algorithm and principal component analysis(PCA) algorithm for face recognition in environment and pose and other nonbinding condition recognition rate is greatly reduced and the requirements of training samples in accordance with the Gauss distribution,a fusion of Adaboost and PCA and or related decision-making method is proposed.On the one hand,when the security mode is needed,the request of the whole negative sample is rejected,and the correct rate of recognition is guaranteed.On the other hand,face recognition in the need to open the visitor mode and decision-making,to reduce the loss of positive samples.On Sumsung 2440 embedded Linux platform,using the method of face detection,based on two decision-making methods,respectively meet the respective threshold.Experimental results show that the method works on embedded platform stably,suitable for promotion in intelligent home control and building automation and control.
Adaboost; principal component analysis(PCA);face detection
2016—06—12
四川省科技支撑计划资助项目(2016GZ0194)
10.13873/J.1000—9787(2017)06—0059—04
TP 274
A
1000—9787(2017)06—0059—04
王鸿雁(1991-),男,硕士,研究方向为嵌入式与智能控制,E—mail:946227679@qq.com。