刘建明, 王 亮
(泉州师范学院 数学与计算机科学学院,福建 泉州 362000)
人脸识别系统的算法研究与仿真实验
刘建明, 王亮
(泉州师范学院 数学与计算机科学学院,福建 泉州 362000)
摘要:基于MATLAB编译平台下,通过对人脸识别系统门禁系统进行充分的理论研究后,设计相关人脸识别算法,并对主成分分析法( PCA) 人脸识别算法和Adaboost识别算法进行了设计实现,经过比对后选择了其中有较高识别率的算法设计进行人脸识别系统的仿真实验,并可以尝试应用于现代门禁系统中.
关键词:MATLAB;人脸识别;仿真实验
当代计算机技术和生物技术的发展突飞猛进,利用人体特征来识别人们身份的生物识别技术正逐渐成为门禁系统进行安全验证备受欢迎的方式.生物特征识别技术是一种将信息技术与生物特征识别技术相结合的新型识别技术,它通过将计算机技术、声学、光学、生物传感器和生物统计学等高科技技术手段进行密切结合利用人体生理特征(如指纹、人脸、虹膜等)或行为特征(如笔迹、步态、语音等)来对人们身份进行鉴别.人脸识别技术正是利用计算机来编制的一套识别软件来分析人脸图像,并从中提取出人脸特征的有效的识别信息,用来“辨认”被识别对象的身份的一门技术.人脸识别技术现如今应用非常广泛,应用前景广阔,如人脸识别技术可用于档案管理、金融行业、安全验证系统、和海关的监控系统以及自动门禁系统等等.正是因为其巨大的应用前景,人脸识别具有简单方便、友好易于接受,防欺骗性和安全性高等特点,人脸识别技术越来越成为当前模式识别和人工智能领域的一大研究热点[1].
1人脸识别系统分析
1.1人脸识别系统技术环节
一般情况下一个可行的人脸识别系统主要包括以下四个主要技术环节: 人脸检测、人脸特征提取、人脸识别、提交识别结果.如下图1所示.
图1 人脸识别系统的主要识别过程
1.2人脸识别系统结构分析
人脸识别门禁系统的主要结构如图2所示.首先通过摄像头照相建立一个人脸数据库,通过人脸检测算法对人脸图像去除背景取出人脸部分并进行预处理 ,提取特征,训练形成一个特征库用于人脸识别.将待识别人脸图像输入系统,同样也需经过人脸图像检测、人脸图像特征定位与提取,利用训练得到特征库进行识别比对,输出相应的识别结果.
图2 人脸识别主要框架结构图
2人脸识别系统的算法设计与研究
2.1PCA识别算法的设计
2.1.1PCA识别算法的理论基础
人脸识别的方法会因为侧重的方面不同而会有大量不同的人脸识别算法.例如侧重分类的则有最佳鉴别矢量集法、贝叶斯法和基于人工神经网络的相关方法,而对于侧重于表述人脸图像的方法则有傅里叶变换特征法和弹性图匹配法.本文中所使用的PCA 方法[2]则是侧重于人脸图像的重构.PCA识别算法方法在数据表示、模式识别、图像信息压缩、人工智能等领域一直是一个热点研究问题.PCA人脸识别算法就是将训练过程重构而获得的用于识别的样本称为“特征脸”,是一种通过降低人脸图像的来维数提取人脸特征的统计性模板比配方法对人脸进行识别的过程.PCA算法首先提取人脸的主要成分构成特征脸库,然后在识别过程中将测试样本投影到该特征脸库中构成一组投影系数,通过与特征脸进行距离比较,距离最小的特征脸对应的即是识别结果.
2.1.2PCA识别算法的设计
对于d维空间中的n个样本x1,x2,x3……xn,现在要考虑如何可以在低维空间中最好的表示它们.
首先考虑在一维情况下,以e表示通过这n个点的均值m的单位方向向量,那么直线的方程可以表示为x=m+ae,a为一个实数标量,表示直线上某个点离开m的距离.
现在的关键问题是如何确定e的最优方向使E(e)得平方误差最小.
(1)
=e·(x-m)=eT(xi-m).
(2)
将公式(2)代入公式(1)可得
(3)
其中,d×d矩阵,称为散布矩阵.公式(3)中,第二项与e无关,显然若要使最小,就要使eTSe最大.
令y=eTSe-λ(eTe-1),其中,λ为拉格朗日乘数,通过对e求偏导数,使其为0,得
(4)
从而有
Se=λe.
两边同时左乘eT有
eTSe=λ.
(5)
这样,我们可以得出这样的结论,为了使eTSe最大,应当选取散布矩阵S的最大特征值所对应的特征向量作为投影直线e的方向.
所有样本投影到直线e之后,在新的一维空间中,单位矢量e成为了唯一的一个基,在这个空间中的某个样本x同样可以由这个基向量x表示为x=m+ae.
利用上述理论我们可以推广至d1维(d1≤d)空间,则超平面方程为,则误差准则函数为
(6)
同理可以得出e1,e2……,ed1也为散布矩阵S的前d1个特征值对应的特征向量.然后这些特征向量就构成了低维空间的一组向量基,属于此空间的向量可以由这组基则可以表示如下:
(7)
在本文的人脸识别系统中,每一幅人脸图像都可以可以作为一个样本,维数则为92*112=10 304,如果要使用PCA识别算法进行降维处理,接着取前20个特征向量,总共40*5=200个样本,这就需要计算10 304*10 304大小的散布矩阵,这是一个很大的开销.如果使用matlab的princomp命令计算PCA则就会发生内存溢出错误.本文使用了快速PCA算法,则只需要计算200*200的矩阵的特征值对应的特征向量,则大大减小了计算的开销.
2.1.3快速PCA识别算法设计
设Zn×d样本矩阵X中的每个样本减去样本平均值m后的矩阵,则散布矩阵S为(ZTZ)d×d.现在则考虑矩阵R=(ZZT)n×n,在本文中的人脸识别系统中n=200,d=10 304,而d则远远大于n,所以R的尺寸远远小于S,但他们有相同的特征值.
设n是列向量v为R的特征值λ对应的特征向量,则有:
(ZZT)v=λv.
(8)
对上述公式(8)两边同时左乘ZT,并应用矩阵乘法结合律可得:
(ZTZ)(ZTv)=λ(ZTv).
(9)
由公式(9)可说明ZTv为散布矩阵S=(ZTZ)d×d的特征值λ对应的特征向量.因此,我们可以计算小矩阵R=(ZZT)n×n的特征向量v,之后左乘ZT得到散布矩阵S=(ZTZ)d×d的特征向量ZTv.
在PCA人脸识别算法中主要的是要求出使得方差最大的转化方向,下图3是对200幅图片提取的PCA主成分特征脸脸,使用20维特征,共20个脸.
图3 训练样本的主成分脸
2.2Adaboost算法研究
Adaboost算法可以将一组弱分类器自适应地提升为强分类器,由于弱分类器的输出是+1和-1,所以又称为离散的Adaboost识别算法.Adaboost算法为每个训练引入一个权重wi,从而使得下次迭代的弱分类器的选择更加注重错误样本.主要步骤如下:
f(xj)=aj·I(xj≤θj)+bj·I(xj>θj).
(10)
给定特征的阈值θj,aj与bj的取值通过最小化样本的加权分类错误率得到,取值为1或者-1,即
(11)
(12)
此时的错误率为
(13)
特征j的最佳分割阈值θj可以通过穷举的方式得到,由于样本的数目为N个,所以每个特征最优的的搜索复杂度为O(N).Adaboost算法每次选择最佳的弱分类器,等价于选择最佳的特征.假设共有M个特征,从中选择错误率最小的特征,每次迭代的计算复杂度为当算法执行了T次迭代时,整个训练流程的计算复杂度为O(TMN).
3人脸识别系统算法的仿真实验
本文采用基于MATLAB编译平台进行了上述的人脸识别算法的仿真实验[3-6].
3.1人脸识别系统运行情况
基于上述算法的人脸识别系统仿真实验的运行界面如下图4所示.
图4 人脸识别门禁系统运行界面
3.2仿真实验结果分析
Adaboost训练样本比较慢,大概需要2分钟左右时间,但是识别测试样本速度较快,这是他的一个优点.PCA+Adaboost一对一投票策略对200个测试样本进行身份识别,仅用20秒,识别较快,识别率达到75%.SVM训练样本速度较快,仅仅用30多秒,但是识别样本,没有Adaboost速度快,SVM分类器需要保存的分类器信息较多,达到4 M之多.PCA+SVM一对一投票策略识别样本速度较慢,测试200个样本需要40秒左右的时间,但识别率较高,达到86%.
4结语
(1)计算机技术和生物技术的兴起与流行已经是势不可挡的成为定局,新的更实用的安全系统已经成为趋势,因此此次选题对今后社会发展意义重大.
(2)人脸识别系统的应用对于完善公共服务体系、改善公共服务水平、增加公共服务产品、提高公共服务质量具有重要意义.
(3)提供安全可靠地识别率,这是人脸识别系统的要求,有利于保护人民群众的生命财产安全不受侵害,提高人们的生活水平.
参考文献:
[1]王映辉.人脸识别原理方法技术[M].北京:科学出版社,2010.
[2]李盛文,鲍苏苏.基于PCA+AdaBoost 算法的人脸识别技术[J].计算机工程与应用,2010,46(4):170-173.
[3]王敏,段黎明,朱国涛,等.基于MATLAB 7.0的人脸识别仿真系统研究[J].科学技术与工程,2009,9(20):6224-6226.
[4]李盛文,鲍苏苏.基于PCA+AdaBoost 算法的人脸识别技术[J].计算机工程与应用,2010,46(4):170-173.
[5]张雷刚,张勇东,张冬明.基于GPU 并行加速的改进分块PCA人脸识别算法[C].北京:第五届图像图形技术与应用学术会议,2010.
[6]董火明,高隽,汪荣贵.多分类器融合的人脸识别与身份认证[J].系统仿真学报,2004,16(8):1849-1853.
Algorithm Research and Simulation Experiment
of Face Recognition System
LIU Jian-ming, WANG Liang
(SchoolofMathematicsandComputerScience,QuanzhouNormanUniversity,Quanzhou362000,China)
Abstract:Based on MATLAB platform and thorough theoretical research of the face recognition access control system, the design of face recognition algorithm is formulated. After a comparative study of the design of PCA face recognition algorithm and that of Adaboost recognition algorithm, the design with higher recognition rate is selected to carry out simulation experiments. The results can be applied to modern access control system.
Key words:MATLAB; face recognition, simulation experiment
责任编辑:赵秋宇
中图分类号:TP391.4
文献标识码:A
文章编号:1671-9824(2015)02-0070-05
作者简介:刘建明(1982—)男,福建惠安人,讲师,硕士,研究方向:计算数学及应用软件.
基金项目:泉州师范学院校级自选项目(2014KJ15)
收稿日期:2014-03-17