APP下载

基于动态优化PCA人脸识别算法的实现

2014-07-16赵志宏

江苏高职教育 2014年2期
关键词:识别率频域人脸识别

赵志宏

(南京工业职业技术学院 能源与电气工程学院,江苏 南京 210023)

绪论

人脸识别技术一般采用数字算法提取人脸图像中的有效信息实现人脸辨识目的。随着高科技的快速发展,在安全监控、机器视觉、人机交互、数字照相技术和计算机游戏等领域,人脸检测和识别近十年来已经成为重要的研究课题之一。与人脸检测相比较,人脸识别更容易被诸如人脸面部表情、姿势、光照和视角等因素影响,因而成为复杂的技术难题之一。在已出现的人脸识别方法中,研究者们一般选用PCA、LDA[1]和 EGM 等算法,在人脸识别应用中也产生令人满意的结果[2]。PCA算法是基于统计特征分析,通过特征脸从而对面部图像进行描述,大大降低了人脸数据库空间[3-7]。与 PCA相比较,LDA则是另一种通用的线性映射方法,通过将高维样本映射到低维空间从而有效提取面部特征,但算法仅当样本规模小于一定空间维数时才能勉强成功运行[8]。已有研究成果表明,在小的训练集下,PCA算法更具优势,敏感性也较好[9]。但当环境光源和头部姿势稍有变动情况下,此算法运行结果将受到较大影响,提升算法精度受到一定限制[10]。此外,PCA算法可以降低一定变量规模空间的维数,同时可以降低运行耗费并相应提高算法的实时性。

近年来,人脸识别技术已经广泛应用到许多应用领域中,可实现从较大规模数据库中实时辨别人脸图像是否在数据库中。结合前人在PCA算法上的研究成果,本文对实时环境中的人脸图像施以的PCA算法进行改进,并进行一项具有建设意义的尝试,在基于频域分析和动态优化特征值规模的基础上,对人脸数据库进行有效分类,来提高系统算法的实时性,从而为后续研究改进人脸重建算法奠定基础。在对人脸数据库中图像进行重建前,根据人脸数据在频域中的不同特征将数据库分成若干类。然后,与分类前的原始数据库进行比较,在理论上,该算法可以快速降低对数据库中图像的查询时间,提高识别效率。在重建阶段,重建最终结果在一定程度上依赖于所选择特征值向量的规模和质量。在传统的PCA算法中,所选择特征值向量的规模一般是常量,并且最终结果无法受控,在不同条件下很难得以改进或优化。在本文研究中,根据人脸重建实际运算量,动态调整特征值向量规模,可以有效解决此问题。因此,重建结果由原来不可控转化为可控,在一般条件下可以满足用户需求。

1 PCA改进算法

在计算机图形图像领域,研究者对这种基于统计学降维PCA算法进行了改进,并取得较好效果,已经逐渐成为一种经典成功的人脸检测和重建方法。但是,当人脸数据库规模较大时,这种算法运算量较大,且算法复杂度较高[11,12]。国内外有许多研究者在改进传统PCA算法上取得了丰硕的成果。Jian Yang等学者在改进和提高PCA算法精度方面提出了一种二维PCA,即2DPCA算法,可以成功实现人脸面部描述和重建[13]。在他们的算法中,将数据库中每一幅图像均作为原始图像矩阵,并组建协方差矩阵,与传统PCA算法相比较,提高了精度,在一定程度上减少了特征值向量上运算量。但是,这种2DPCA算法在描述人脸图像时所用系数明显多于传统的PCA算法,受存储空间限制,该算法降低空间维数很难达到预定效果。也有学者针对面部姿势和光照条件存在较大变异情况下,提出一种模块PCA算法,即MPCA,可以认为是传统PCA算法的延伸[10]。在该算法中,在施以PCA算法前,每一幅原始图像被细分为更小的子图像。这样,面部姿势或光照发生改变后,仅影响对应的子图像,可以达到预计的识别目标。在面部不同区域之间,以及各区域与整个面部区域之间的信息关联处理方面,该算法没有采用PCA算法而采用其它方法[14]。为了获得较高运行速度,有学者采用快速傅里叶算法FFT,结合PCA算法,对PCA算法进行改,如FFTPCA和二维快速傅里叶PCA算法,即2DFFTPCA。Hmid等学者[15]提出一种PCA+LDA算法,基于FFT切片定理,能够在较小运算量前提下获得较高的识别率,如当特征向量规模为35时,采用ORL数据库,识别率可以达到97.5%。Huang Xiaohui等学者[16]提出一种包括PCA和FFT块相混合算法进而提升系统运算速度。在指纹识别中,也可以采用动态傅里叶DFT算法和非线性辨识算法来提升算法速度,且能获得较高预测精度[17]。Marios Savvides等学者[18]提出一种采用相位和幅度谱FDAR算法,可以获得人脸较高识别率。这些算法结果的可靠性及识别精确性虽然不是很高,但对研究和分析人脸识别均具有一定积极的意义。

所有上述研究工作对提高PCA算法的精度和降低运算量方面均取得了显著的成绩。但是,对于PCA算法预处理阶段的工作报道较少,但这些工作对于整个系统的顺利实现是必不可少且至关重要的,诸如细分数据库为若干子库、动态优化PCA算法特征值规模等主要参数。下面本文对这些问题展开阐述。

2 人脸库分析

2.1 DCT 分析

DFT离散傅里叶算法[19]是通过计算信号频谱的一种数字滤波方法。在本研究中,我们采用一种离散余弦变换算法DCT和逆离散余弦变换算法IDCT,在运算中可以仅使用实数部分,就可以达到DFT算法所具有的对称性和相似性效果,如式(1)所示。

在式(1)中,u,v=0,1,…,N - 1;当 u=v=0时,E(u),E(v)=1/sqrt(2);在 u=1,2,…N - 1,V=1,2,…,N - 1 时,E(u),E(v)=1。其逆变换如式(2)所示。

式(2)中,随着 u和 v的变化,C(u,v)快速衰减。采用上述变化后,数据库中每一幅图像所包含的信息将被均分到低频区域。而且,可以通过提取这些低频区域部分实现特征识别的分类过程。由于DFT和DCT二者之间联系紧密,但DCT更需要设计一种快速有效算法,以符合要求。本文选用两种不同方法选出DCT算法的对应系数,所采取的方法如图1所示。

图1 系数选择的两种方法

为了将C(u,v)从二维转换到一维,在图1所示的两种方法中,我们采取方法(a),转换后的结果如图2所示。

为了达到实际要求,所有DFT的频率之差应变换到预定范围内,如式(3)所示。

图2 DCT变换结果

信号波在频域内进行分析一般要比在时域内分析容易些。而且,信号大多数特征仅在频域内才可以进行描述和清晰观察到。因此,根据项目实际需要,选择从频域到时域或从时域到频域的两种变换是非常有必要的。DCT算法可以将二维图像从时域到频域转换并实现对其有效描述,还可以实现对所处理图像进行有效压缩,便于后续处理过程。DCT变化后,人脸数据库中每幅图像将会呈现一些频域属性。人脸图像中频率分布情况可以用来描述其对应区域灰度值的变化。图3为从ORL数据库采集到的一幅人脸图像,图4为其对应DCT图像。

图3 人脸灰度图(20*20)

图4 图3对应的DCT图

图3中,亮度较大的中间区域,其灰度变化比较慢,频率也低。四个角部区域亮度各有不同,频率也较高,即其灰度变化比中间区域快。通过采用一些算法,可以选出频率最大的三个值,如Max1,、Max2和Max3,将其作为频率分类标准。此外,DCT变换前后,图像大小保持不变,频率分布主要在左上角区域,并呈降序排列顺序。将图像矩阵分割为若干模块,然后选择其中一个模块进行降维操作。为便于分析,本文选取数据库中的图像并将左上角部分分割为6×6个子矩阵。设f(i)为一幅随机从人脸库R中选取的图像,并假设其频域的最大值A(i)为

2.2 人脸数据库分类

根据上述得到的图像分类标准,将DCT变换后的人脸图像分为三个部分,其最大频率为Max1、Max2和 Max3,对其施以不同的权系数 c1、c2和 c3,并计算max(j)

式中,K=3,j∈[1,N*M]。

对数据库中所有图像施以式(4)计算,可以得到与第j幅图像对应的max(j),这样可以得到向量Vector

Vector=(max(1),max(j- 1),max(j))T,j∈[1,N*M]。

向量Vector中的所有元素根据其所属类别按照升序或降序排列,如最大值、中间值、最小值。

2.3 IDCT分析

本节中,将对上节获得的人脸图像施以IDCT变换。DCT和IDCT均可以采用诸如行变化或列变化等方法,实现将二维变换为一维以实现降维。DCT变换的主要优点在于可以消除被研究像素相邻像素冗余量[21]。与DCT相比,IDCT可以实现将一幅图像编码到空间域进行分析,以便于图像的有效压缩。

采用频域分析法分析一幅人脸图像,可以用高频区域来描述这幅图像的分辨率,图像中噪声部分则被分布在低频区域。为了提高输出图像的质量,需要采用一些方法通过滤去低频分量区域实现降噪目的,如采用2.1节中的所提出的A(i)进行降噪处理。通过水平翻转A(i),选择矩阵左上角6×6个子矩阵,得到B(i)。然后,将左下角矩阵中的55个元素进行翻转,并施以IDCT变换,实现降噪处理。

3 PCA动态改进

PCA算法在诸如预测、冗余去除、特征提取和数据压缩等领域都是一种非常有效的方法[20]。本文仅讨论PCA算法的主要成分,详情见文献[22,23,24]。假设数据库中有NUM个二维人脸图像,每个图像有M×N个像素,通过行扫描方法对数据库进行处理,将任意序号x图像作为矩阵A的一个对应列向量 xi,即 A=[x1,x2,x3…,xNUM]。这样,PCA中包括均值向量means、协相关矩阵C可以由公式(5)和(6)计算得到。

通过公式(5)和(6),计算出协方差矩阵C的特征向量及特征脸。找出特征值中最大的M个特征值,即 u=(u1,u2,…,uM)T和对应的特征向量 Z=(z1,z2,…,zM)。通过将所有图像映射到这些M个向量中可以得到一个一维权向量W=(w1,w2,…,wM)。本文中,根据每幅图像相应的特征,动态优化所选择特征值数量M是关键点。设A1是数据库中任意一幅图像,A2是对其施加算法运行后的识别图像。在PCA算法中,为了简化算法且系统运行便捷,需要对矩阵QTA1重排列。定义W为矩阵QTA1中每一列中第M个元素对应的权向量,M是动态变化的,在进行映射操作后需要对其进行适当评估。同时,也需要进行图像重建操作,设定M=9,即权向量 W=(k1,k2,k3,…,k9]。重建后的图像 A2可以表示为

现在计算A1(i)和A2(i)的均方差矩MSE,如果MSE小于阈值k(k随不同条件有所变化),则定义M=9。否则,M=M+1。重复这个过程一直到MSE小于k。

4 实验结果

4.1 测试结果

本算法所选用数据库源于著名的ORL人脸数据库。这个ORL标准库包含有40个人合计400幅照片,人均10幅人脸照片[23]。对数据库中的人脸图像归一化处理为20×20像素。所选系统平台为4核Quad 9550,3 GHz机器,软件为 Matlab,本文算法运行通过。

根据我们的算法,对这些人脸图像上施加DCT变换,并将其分割为三大类。图5所示为这三类图的平均脸图像和未进行分类时平均脸图像。在PCA算法动态优化前,设特征值的个数为9和10。其图像如图6和7所示。

图5 平均脸图像

图6 9幅特征脸

图7 10幅特征脸

在传统的PCA算法中,特征脸的个数一般固定选取为10。但实验说明,在某些情况下这个特征脸的个数可以减少到9或更低。在测试过程中,选取数据库中任意两幅图像,并运行程序,结果如图8所示。

图8 两幅测试图像和其对应算法运行结果

通过计算图8中测试图像和运行结果图像两者的相似度,为96.03%,误差为3.97%,在允许误差范围内(<10%),从而证明算法的有效性。

4.2 与其它PCA算法比较

为了充分说明本算法的有效性,通过调整训练规模和测试样本规模,将本文算法与传统PCA两种算法结果进行比较。将数据库中人脸图像分为两种,即一类(即不进行分类)和分成三类,训练样本规模选取20,对应测试样本分别选取5、10和20。传统PCA算法分别取特征值数量为9和10,对传统PCA算法和本文算法进行分析,在这两种分类情况下,分别比较其识别率和运行时间,比较结果如表1所示。

表1实验结果比较

表1中,分类个数为1的情况下(即不对数据库进行分类),在训练样本规模为20,测试样本规模为5、10、20情况下,采用传统 PCA算法,选取特征值为9和10时,获得的最高识别率分别为100%、90%、100%。在分类个数为3的情况下,对应获得的最高识别率为40%、40%、50%。而在采用本文所提算法后,两种情况下的识别率分别为100%、50%、100%,60%、60%、100%。显然,采用本文算法,在将原始图像数据库分为3类情况下,降低了运行时间,且识别率也能获得一定提高。

5 结论

本文提出一种基于动态优化PCA人脸识别算法,通过分析比较实验数据、结果和与其它PCA算法比较,本算法可从ORL数据库中正确识别出目标图像,但算法仍不够成熟,识别率也不是很高,运算量也未大幅度降低。但算法可以根据实际输出来动态优化所选PCA特征值数量。在后续工作中,需要改进算法进而提升算法的兼容性和准确性,使得算法应用在一些实际环境中。同时,运行速度和识别率仍是有待于提高的问题。此外,后续研究工作还需将算法集成在硬件环境FPGA中,结合FPAG的特性,在Matlab软件中开发基于FPGA人脸识别系统,将算法下载安装到Matlab外的编译器中,使得算法在硬件中得以最终实现。

[1] W.Zhao,R.Chellappa,P.J.Philips,and Rosenfeld.Face recognition:a literature survey[J].ACM Computing Surveys,2003,35(4):399-458.

[2] L.Wiskott,J.M.Fellows,N.Kruger,and C.Vonder Malsburg.Face recognition by elastic bunch graph matching[J].Pattern Anal.And Machine Intell.,1997,19(7):775-779.

[3] L.Sirovich,M.irby.Low-dimentional Procedure for the Characterization of Human Faces[J].Journal of the Optical Society of America A:Optics,Image Science,and Vision,1987,4:519-524.

[4] A.K.Jain,R.C.Dubes.Algorithms for Clustering Data[M].New Jersey:Prentice-Hall,1988:126.

[5] K.Fukunaga.Introduction to Statistical Pattern Recognition[M].MA:Academic Press,1990:65.

[6] M.Turk,A.Pentland.Face Recognition Using Eigenfaces[C].计算机视觉和模式识别会议,1991:586-591.

[7] M.Turk and A.Pentland.Eigenfaces for Recognition[J].认知神经科学,1991(3):71-86.

[8] Li-Fen Chen,Hong-Yuan Mark Liao,Ming-Tat Ko,Ja-Chen Lin,Gwo-Jong Yu.A new LDA-based face recognition system which can solve the small sample size problem[J].模式识别,2000(33):1713-1726.

[9] Rabia Jafri,Hamid R.Arabnia.A Survey of Face Recognition Techniques[J].信息处理系统,2009,5(2):41-68.

[10] Rajkiran Gottumukkal,Vijayan K.Asari.An improved face recognition technique based on modular PCA approach[J].模式识别文摘,2004(25):429-436.

[11] T.Barlas,M.Moallem.Developing FPAG-based Embedded controller using Malab/Simulink[J].Factory Automation,Javier Silvestre-Blanes(Ed.),2010:543-556.

[12] Neerja,Keta Walia.Face recognition using improved fast PCA algorithm[C].国际图像和信号处理会议,2008(1):544-588.

[13] Jian Yang,David Zhang.Two-dimensional PCA:a new approach to appearance-based face representation and recognition[J].IEEE transactions on Pattern analysis and machine intelligence,2004,26(1):131-138.

[14] Jose Francisco Pereira,George D.C.Cavalcanti and Tsang Ing Ren.Modular image principal component analysis for face recognition[C].神经网络国际联合会议,亚特兰大,美国,2009:2481-2486.

[15] Hamid M.Hasan,Prof.Dr.Waleed A.AL.Jouhar & Dr.Majed A.Awan.Face recognition using improved FFT based random by PSO and PCA techniques[J].国际图像处理杂志,2012,6(1):26-37.

猜你喜欢

识别率频域人脸识别
大型起重船在规则波中的频域响应分析
人脸识别 等
揭开人脸识别的神秘面纱
基于类图像处理与向量化的大数据脚本攻击智能检测
人脸识别技术的基本原理与应用
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
提升高速公路MTC二次抓拍车牌识别率方案研究
高速公路机电日常维护中车牌识别率分析系统的应用
基于改进Radon-Wigner变换的目标和拖曳式诱饵频域分离