PCA算法在人脸识别中的应用研究
2016-03-30王志杨刘金龙唐子贤
王志杨 刘金龙 唐子贤
【摘 要】特征脸方法是从主成分分析导出的一种人脸识别技术。本文首先介绍K-L变换和PCA的原理,然后描述特征脸的方法的流程及分类判别方法,最后介绍了提高PCA算法效率的分组PCA算法。这些算法为结合支持向量机进行人脸识别提供了依据。
【关键词】人脸识别;特征脸;特征向量;主成分分析;K-L变换
【Abstract】The method of eigen face is a face recognition technology derived from principal component analysis. This paper first introduces K-L transform and the principle of PCA, then describes the flow of the method of eigen face and the method of classification and discrimination, finally introduces the packet PCA algorithm to improve efficiency of PCA algorithm. The algorithms provide evidence for face recognition combined with support vector machine.
【Key words】Face Recognition; Eigen Face; Eigenvector; Principal Component Analysis; K-L Transform
0 引言
主成分分析PCA(Principal Component Analysis)实质上是K-L展开的网络递推实现。K-L变换用于人脸识别的思想:高维图像空间经过K-L变换后,成为低维线性空间,计算后得到一组新的正交基,通过保留部分正交基得到正交K-L基底,再将子空间对应特征值较大的基底按照图像整列排列,最后由这些正交基的线性组合呈现出人脸的形状,因此这些正交基也称为特征脸。当PCA应用在人脸识别领域时,称为特征脸方法[1-2]。本课题拟采用特征脸方法进行人脸识别。
1 K-L变换
K-L变换是图像压缩技术中的一种最优正交变换,用于统计特征提取,是空间法模式识别的基础。K-L变换实质是建立了一个新的坐标系,将一个物体主轴沿特征矢量对齐的旋转变换,这个变换解除了原有数据向量的各个分量之间相关性,从而有可能去掉那些带有较少信息的坐标系以达到降低维数的目的[3]。
1.1 正交变换
变换是一种工具,它是用来描述事物,特别是描述信号。描述事物的基本方法之一是将复杂的事物化成简单事物的组合,或对其进行分解,分析其组成的成分。
设V是n维欧式空间,A是V内一个线性变换。如果对任意?琢,?茁∈V都有(A?琢,A?茁)=(?琢,?茁),则称A是V内的一个正交变换。
用变换对信号进行分析,所使用的数学工具是点积。点积的实质就是两个信号中相同成分之间乘积之总和。对于两个随时间连续变化的信号F(t),G(t),它们之间的点积运算定义为:
点积运算的结果是一个数值,或大于零,小于零或等于零,等于零的情况在两个向量夹角为90°的情况下出现,此种情况就称为相互正交。由此作为一种变换,如果这种变换中的每一种成分与其它成分都正交时,它们之间的关系就相互独立了,每一种成分的作用是其它成分所不能代替的[4]。
综合以上分析,可以将对这种变换的定义归纳为:
1.2 K-L分解概述
K-L变换的复杂之处在于需要求解信号相关矩阵的特征向量,而这样的相关矩阵往往维数很高,导致运算量很大。Castrillon-Candas和Amaratunga注意到对于较光滑信号,小波分解的系数具有稀疏性,于是通过选取数目较少的正交小波基进行K-L分解的估算,从而降低了相关矩阵的维数,减少了运算量。
K-L分解目的是查找信息分布的数据集合的主分量,使原始数据集变换到分量空间时,单一数据样本的相关性降低到最低。这样只需提取出少数几个与样本数据相关性最好的分量,就可以很好地表达原来任一样本数据。所以K-L变换是图像分析与模式识别中的重要工具,用来特征抽取及降低特征数据的维数[5]。
如果样本为图像这样的二维数据,可以对其进行二维小波变换。二维小波函数和尺度函数是通过一维小波函数和尺度函数经过张量积变换得到,二维小波分解把尺度为j的低频部分分解四个部分:尺度j+1的低频部分和三个方向(水平,垂直,对角)的高频部分[6]。
为了可以降低矩阵的维数,就需要减少所选择保留的正交基的个数。而为了减小K-L分解的估算误差,则希望信号尽可能准确地由所选择的正交基所表示。所以希望小波分解系数能足够稀疏,当选择少数较大规模的系数对应的正交基,就可以获得较好的准确度。
2 基于PCA的人脸识别
将主成分分析法用于人脸识别,其实是假设所有的人脸都处于一个低维线性空间,而且不同的人脸在这个空间中具有可分性[7]。
2.1 PCA算法流程
(1)首先应将图像库读入系统,在读入过程中的同时将二维的图片降维到一维的向量。每一幅图像都要选择一定数量的图像构成训练集,其余的构成测试集。假设图像的大小w×h(w和h分别为图像的宽度和高度),整个人脸库中图像个数是n,用于训练的人脸个数是n1,测试图像的人脸个数是n2,令m=w×h,则训练集是一个m×n1的矩阵,测试集是m×n2的矩阵。第i幅人脸可以表示为:
(3)计算生成矩阵∑的特征值和特征向量,构造子空间。首先把特征值从大到小进行排序,同时其对应的特征向量的顺序也作相应的调整。然后选择其中的一部分构造特征子空间。
(4)把训练图像和测试图像投影到特征空间中。每一幅人脸图像投影到子空间以后,就对应于子空间中的一个点。同样,子空间中的任一点也对应于一幅图像。
(5)把投影到子空间中的所有测试图像和训练图像进行比较,确定待识别样本所属的类别。这里可以采用多种不同的分类器进行分类:如曼哈顿距离、最近邻分类器、最小距离分类器、贝叶斯分类器等。
2.2 特征向量的选取
由于图像是由特征向量和特征系数的线性组合表示的,所以特征向量的选取非常关键,通过计算由K-L变换得到矩阵的特征值和特征向量,选取特征值大的前N个特征向量作为主向量并将它们保留,以达到节省时间的目的。
有几种不同的特征值选择方法:
(1)丢弃最后40%的特征向量:因为特征向量是按照特征值降序来排列的,该方法丢弃了反映最少的40%图像间差异的特征向量[8]。
(2)保持前面的C-1个特征向量:将特征值按照降序排列,同时只保留最前面的C-1个特征向量。其中C为训练图像的类别数。
(3)按照计算信息量来确定维数:该方法采用保证剩余的特征向量包含的信息与总的信息量相比大于一定的阈值e,e的值通常取为0.85。
(4)丢弃最前面的三个特征向量:同样将特征值按照降序排列,经查阅资料知对应于最大三个特征值的特征向量有可能反映了图像间由于光线不同而造成的差异,丢弃前面的三个特征向量会提高识别率。
2.3 距离函数的选取
一旦图像被投影到特征空间中,得出其特征系数,剩下的任务就是如何判别这些图像的相似性。通常有两种方法来判别图像间的相似性:一种是计算在N维空间中图像间的距离,另一种方式是测量图像间的相似性。当测量距离时,我们希望距离尽可能的小,一般选择距离测试图像最近的训练图像作为它所属的类别。而测量相似性的时候,我们则希望图像尽可能地相似,也就是说具有最大相似性地训练图像类别被认为是测试图像所属的类别[9]。
有许多种计算方法:
L1范式:L1范式也称为和范式,它将像素间的绝对值的差值相加。L1范式距离公式为:
L2范式(最近邻法):L2范式也称欧几里德距离或者是欧几里德距离的平方根。它将像素的平方差异相加。L2范式距离公式为:
最小距离式:首先计算各类训练样本的平均值,接下来的距离比较和上面L2范式完全相同。这样分类时每类只需比较一次,减少了计算量。样本x与第i类的距离定义如下:
角度:角度测量也就是协方差,它计算两个规一化以后的向量间的角度。角度测量属于相似性测量,通过求反,可以看成是距离测量[10]。
3 提高PCA的效率
PCA是用于人脸识别的基本算法,它的效率直接影响整个系统的性能。虽然它已经得到了很大的发展,但是仍然存在一些问题:
(1)由于人脸空间分布近似高斯分布,普通的人脸位于均值附近,而特殊人脸位于分布的边缘,特征脸法易造成不同类人脸之间较大的混叠,不利于人脸的分类。
(2)计算量很大。
为了克服以上问题,提出了分组PCA算法。
3.1 分组PCA算法
在传统的特征脸方法的基础上,人们注意到特征值最大的特征向量(即特征脸)并不一定是分类性能最好的方向,而且对K-L变换而言,外在因素带来的图像差异和人脸本身带来的差异是无法区分的。特征脸在很大程度上反映了光照等差异。同时当原始图像数目较多时,则需要花费较多的时间,当系统增加人脸图像时,则需要重新训练所有的样本。同时研究表明,特征脸方法随着光线、角度和人脸尺寸等因素的引入,识别率急剧下降,因此特征脸方法用于人脸识别还存在理论的缺陷。近年来,据此发展了许多对特征脸的改进方法。基于缩小训练图像的数目和次数的思想,可以采用将人脸模式分组的方法,这样在有新人脸模式需要增加时,已经训练完毕的分组无须重新训练,只需训练较少的分组,并且各个分组的训练可以分布并行计算,极大地缩短训练时间[11]。模式分组同时减小了特征脸法中协方差矩阵的大小,避免了求大尺寸矩阵的特征值和特征向量,减小了计算量。基于分组思想的改进的特征脸算法如下所示:
(1)分组结合方法较为直观的一种是将原始人脸模式分为互不相交的m组,对各个分组分别用特征脸方法进行训练,在对各个分组用特征脸法训练后,m组参数对未知图像得到距离。
(2)分组结合方法的另一种表示形式是将人脸模式分为部分相交的m组。对各个分组分别用特征脸法进行训练,在用特征脸法对各个分组训练完后,m组参数对未知图像得到距离,用距离来估计后验概率,再采用基于贝叶斯理论和结合规则处理相交部分[12]。
4 结论
本文分析了PCA算法的原理及流程,介绍了由其推广出的特征脸方法。针对特征脸方法存在的问题,给出了改进的思路。以上研究结论对于课题下一阶段的进行有指导意义,课题下一阶段将在以上各种方案的基础上选择最佳的算法结合支持向量机进行人脸识别。
【参考文献】
[1]刘青山,卢汉清,马颂德.综述人脸识别中的子空间方法[J].自动化学报,2006, 29(6):900-911.
[2]周杰,卢春雨,等.人脸自动识别方法综述[J].电子学报,2000,28(4):102-106.
[3]Grudin M.A. On internal representations in face recognition systems[J].Pattern Recognition,2011,33:1161-1177.
[4]Daugman J. Face and gesture recognition: overview[J].IEEE PAMI,2007,19(7): 675-676.
[5]陶亮,庄镇泉.一种基于个人身份认证的正面人脸识别算法[J].中国图像图形学报:A辑,2003,8(8):860-865.
[6]杨颖娴.基于PCA算法和小波包变换的人脸识别技术[J].微电子学和计算机,2011,24(1):52-54.
[7]Li Dihua, Podolak I T, Lee S W. Facial component extraction and face recognition with support vector machines[J].Proceedings of Automatic Face and Gesture Recognition, 2012,30: 76-81.
[8]范燕,吴小俊,惠长坤,刘同明.人脸图像特征抽取与识别的一种混合方法研究[J].华东船舶工业学院学报,2008,17(2):50-53.
[9]郑岚.支持向量机在人脸识别中的应用研究[J].计算机仿真,2010,35(12):62-65.
[10]边肇祺,张学工,等.模式识别(第二版)[M].北京:清华大学出版社,2000, 15-60.
[11]王宏漫,欧宗瑛.采用PCA/ICA特征和SVM分类的人脸识别[J].计算机辅助设计与图形学报,2013,15(4):416-420.
[12]苏中,张宏江,马少平.基于贝叶斯分类器的图像检索反馈算法[J].软件学报,2011,12(3):6.
[责任编辑:王楠]