Fishface算法研究及应用*

2012-07-03 08:26张吉富刘书刚
山西电子技术 2012年1期
关键词:人脸识别人脸嵌入式

张吉富,刘书刚

(华北电力大学,河北 保定 071003)

在新兴的信息安全应用领域,人脸识别技术提供了一种更为安全可靠易用的身份鉴别手段,提升了整个网络信息系统的安全性能。同时,人脸识别技术在传统的安防领域可以便捷地与原有技术实现紧密的结合,大大提升了原有系统的智能化程度、安全性及易用性,拓展了原有系统的应用领域。随着科学技术的发展及各种技术手段的综合应用,人脸识别技术会在越来越多的领域发挥更重要的作用。

人脸识别技术是基于人的脸部特征,对输入的人脸图像或者视频流(截取视频),先判断其是否存在人脸,若存在人脸,则进一步地给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。

1 人脸识别算法

人脸识别技术是将原始数据经过降维后,投影到不同的空间中,然后根据特征向量在空间中的距离比较结果来识别不同的样本。系统采用Fisherface方法,它是PCA方法和FLD方法的结合,具有很高的识别率和效率[3]。

1.1 线性判别(Fisher方法)

基于Fisher 准则的线性判别分析[5]是特征抽取的最有效的方法,其目标是从高维特征空间中提取出最具有判断力的低维特征,这些特征能使同一类别的样本聚集在一起,不同类别的样本尽量分开,即选择使得样本类间离散度和样本类内离散度比值最大的特征。设有c个模式类,样本的类内散布矩阵为Sw,类间散布矩阵为Sb,可分别表示为公式(1)和公式(2)。

Fisher 准则函数定义为式(3)。

Fisher 准则函数将类间离散度和类内离散度巧妙地结合在一起,取极大化目标函数J(W)的矩阵Wfld作为投影方向。

虽然Fisher 线性判别能够很好地对样本进行分类,但是Sw常常是个奇异矩阵,或者接近奇异,这会造成很大的计算误差,因此又提出了Fisherface方法[1,2]。

1.2 Fisherface方法

Fisherface是结合PCA和FLD(Fisher 线性判别)的一种方法。在Fisher 线性判别方法中,利用式(1)和式(2)分别得到Sw和Sb。

对于纯粹的FLD用式(4)计算Wopt。

设Wpca为PCA 得到的Φt,通过式(5)计算得到Wfld。

进而通过式(6)得Wopt。

将Wopt作为新的投影矩阵,并利用Wopt对原始数据进行变换,原始数据为一列向量R,通过Wopt乘以R 即可得到特征向量,即为对应于每个人的特征数据,同该人的其他信息(如名字等)一起存储在人脸数据库中备用。

2 系统结构

构建的系统从功能上划分主要由五部分组成,如图1所示。包括:人脸数据库、嵌入式ARM 处理器、图像采集、出错报警处理、识别信息显示等。

图1 人脸识别系统结构示意图

2.1 图像采集摄像

摄像头负责对人脸图像进行抓拍,抓拍采用视频流的形式,将每一帧图像数据发送到嵌入式ARM 处理器。

系统使用的是采用30 万像素的普通摄像头,拍摄后的头像是640×480的彩色图像,因和识别算法需要的48×48(训练得到的人脸数据库中的人脸数据格式)的灰度图像还有一定的差别,因此须将图像数据进行压缩和灰度处理后,再传给识别算法。

2.2 人脸数据库

系统在运行时,需预先在数据库中存储人脸的特征向量和人的ID 偶对[4],如(ID,feature)。系统在试运行阶段在数据库中存储了一个班级30 名学生的人脸图像信息。

建立数据库是在识别算法的训练阶段,在训练得到变换和降维矩阵后,利用矩阵将人脸库中的人脸提取特征信息,再将特征信息和ID 共同存入数据库。由于人脸数并不是很多,所以并未采用大型的数据库来实现,而是采用MATLAB的mat 文件进行存储,利用MATLAB的库函数save和load来管理数据库。当人脸数据过多时,就应该采用大型数据库来提高效率和安全性,例如SQLServer 或者Oracle 等。

2.3 嵌入式ARM 处理器

采用嵌入式ARM9 处理器实现Fisherface 识别算法,将摄像头采集到的图像进行信息预处理,通过OpenCV 库检测图像中是否有人脸,如果有就将人脸图像截取,并处理成48×48的灰度图像,作为Fisherface算法的样本。

处理器主要完成人脸图像的样本训练和图像识别两个任务。样本训练是在人脸库上运用算法求得变换和降维所需要的矩阵。实验选取的人脸库由一个班级中的30 人组成,每人10张不同形态的48×48(也可以是其他分辨率,但是要在识别时和训练时采用同样的分辨率)的灰度图像,通过Fisherface方法训练即可得到所需的降维和变换矩阵Wopt,Wpca,Wfld。

识别过程则是对摄像头采集到的图像,利用OpenCV 库提取出人脸的48×48 灰度图像,作为样本,利用训练阶段求得的降维矩阵对图像进行降维后得到特征向量,与数据库中的特征向量比对,求的空间最小距离低于阈值,即认为识别成功,如果距离都超过上限则视为识别失败,提示出错信息并产生报警信号。

2.4 识别结果处理

这部分由ARM 嵌入式处理器控制,识别成功则显示图像对应人脸数据库中的信息,而出错报警则用语音提示错误。系统中显示设备使用的是彩色液晶显示器LM057QC1T01,报警电路则采用语音芯片ISD4004 来实现。

系统在成功识别人脸后,则可连接记费系统,若有费用的改动,则记录费用信息传送给记费系统及时修改。

3 系统运行结果

通过在一个班级的30个人进行测试,每个人10张图像,共300张图像,包括不同面部表情、不同光照、不同时间、不同头部角度的人脸图像,图像尺寸为48×48,共300张灰度图的人脸库作为标准人脸库,进行训练得到人脸数据库和变换矩阵Wopt,Wpca,Wfld。

利用已训练好的数据库和变换矩阵,在30个人的实验样本上进行模拟刷卡测试,在不同光照、不同时间、不同地点,共进行了10 次刷卡过程,统计识别率为87.502%,基本达到实用要求。

4 结束语

建立的人脸识别系统逐步取代目前学生使用的刷卡系统,系统在对识别率、效率等因素综合考虑后,采用了Fisherface 识别算法,并利用嵌入式ARM9 实现系统,通过对一个班级的30 名学生进行测试,识别效果好,进一步完善安全性等功能后,可推广应用。

[1]石跃祥,蔡自兴,王学武,等.基于改进的PCA算法和Fisher 线性判别的人脸识别技术[J].小型微型计算机系统,2006,27(9):1731-1736.

[2]李杰,阮秋琦.一种基于加权小波和改进的Fisher 脸的人脸识别方法[A].第十四届全国图象图形学学术会议论文集[C].2008.

[3]Dario Maio,Davide Maltoni.Real-time Face Location on Gray-scale Static Images[J].Pattern Recognition,2000,33(9):1525-1539.

[4]Kah-Kay Sung,Tomaso Pogg io.Example-based Learning for View-based Human Face Detection[J].IEEE Trans.on PAMI,1998,20(1):39-50.

[5]张宇萍.基于Fisher 准则的二次线性特征提取[J].西安工业大学学报,2007,27(5):460-463.

猜你喜欢
人脸识别人脸嵌入式
人脸识别 等
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
三国漫——人脸解锁
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
长得象人脸的十种动物
Altera加入嵌入式视觉联盟