徐 飞
(闽西职业技术学院,福建龙岩 364030)
人脸识别是综合模式识别和计算机视觉的识别技术。在识别领域,通常把面部信息作为判别身份依据。尽管人类数目极其庞大,同人的指纹类似,人脸最显著的特性就是具有唯一性,世界上不存在一模一样的脸,因此人脸识别技术对于身份鉴别具有重大的意义〔1〕。人脸识别技术已经渗透在人们出行、办公、生活中。数字化、便捷化和信息化是社会发展的趋势,研究人脸识别技术不仅有利于保障公民信息安全,同时也促进计算机视觉、神经生理学、脑神经学等学科发展〔2〕。目前国际常用的静态人脸图像识别方法有特征脸方法、几何特征分析法、弹性匹配方法、人工神经网络方法、局部特征分析法和柔性形状模型分析法等〔3-4〕。诸多外界因素同时或者单独影响着识别效率和准确度〔5〕。人脸表情识别过程包括图像输入、图像定位、图像匹配。识别工作大部分都会受到光照、表情姿势、尺度大小的影响,因此需要对人脸图像进行归一化、灰度变换和去噪等处理,将外界的影响降至最低〔6〕。设计一个具有鲁棒性的人脸识别系统是最关键的任务。本文采用主成分分析(principal compoent analysis,PCA)、K-L(Karhunen-Loeve)变换和局部二值模式(local binary pattern,LBP)算法提取纹理特征,将局部特征和全局特征融合,实现人脸图像的特征值提取,利用Matlab软件设计图形用户GUI界面,并进行测试,为复杂人脸识别技术的研究与利用提供理论基础。
1.1 PCA特征提取
1.1.1 基于K-L变换的特征值矩阵K-L变换,由Karhunen和Loeve等提出〔7〕,是一种特殊的正交变换,可以将离散或者连续信息变换为一组不相关数列;变换的核心由图像阵列的协方差矩阵的特征值和特征向量决定。假设一幅N×N的图像在传输过程中受到干扰,接收到的图像数字集合为{f(1x,y),f(2x,y),…,f(nx,y) },写成向量形式,令{f(1x,y),f(2x,y),…,f(nx,y) }={X1,X2,…,Xn}。因此X向量的协方差矩阵定义为:
Cf是一个n×n阶实对称矩阵,E为求期望,平均值向量mf=E{X}。对于M幅数字图像,可以采用近似法求取:
定义Cf特性向量正交变换矩阵为A矩阵,得到K-L变换表达式:
可以得到Y向量的协方差矩阵CY:
X-mf得到中心化图像向量,协方差CY矩阵是对角矩阵,对角线上的元素等于Cf的特征值λi;CY非对角线上的元素为0,Cf非对角线上的元素不为0。
1.1.2 PCA提取全局特征PCA提取全局特征〔8〕,理论基础是K-L变换。首先对于一个训练样本,变换图像的矩阵,新矩阵的第一个向量为原矩阵最大特征值对应的特征向量,第二个向量为原矩阵第二大特征值对应的特征向量,按照此规律,可以发现新的矩阵的特征向量按照从大到小的顺序排列,图像的特征脸信息大部分在新矩阵前面几个向量中,越往后的特征向量所含有的信息可以忽略不计。因此选择排列靠前信息量较大的来代表整个图像数据,这就完成了降维处理。运用线性运算,得到了新的特征序列,将原始矩阵和新矩阵转置相乘,得到新方阵,求方阵特征值,得到最大特征值对应的特征向量,叫第一主成分,所包含的图像信息也是最多的;依次定名特征值对应的特征向量为第二主成分、第三主成分直至第N个主成分〔9〕。
1)设d维空间有n个训练样本,由向量构成样本训练集{X1,X2,X3,…,Xn},d=宽×高。假如一幅图像的像素为50×60,那么d=3 000,样本像素点的灰度值可以用d行向量表示,比如一个3×3维向量可以表示成:X=[3 5 2 1 6 7 9 4 8]T。这就是训练图片的原始数据库。
3)求投影矩阵:求S的特征向量λi,特征值αi,大小排序λi、λi{λ1>λ2>λ3>…>λd,(∂1,∂2,∂3,…,∂)n}。选取其中最大k个特征向量作为一个列向量,组成一个新的特征向量矩阵U=(α1,α2,α3,…,αk)。矩阵U为k×d阶,定义为投影矩阵,每一幅样本图像可以投影在矩阵U构成的特征子空间中;特别注意如果图像的维度很大,会导致计算机处理计算量较大,耗时较多,因此可以使用奇异值分解定理,求取BTB的特征值和特征向量来获取BBT的特征值和特征向量。
4)特征矩阵:降维后,B的转置矩阵乘上投影矩阵U得到降维后矩阵V:V=BTU,每一行的k个数据代表一幅图像的主成分特征信息。
5)检测:待识别对象图像的检测,只需要重复步骤1)的过程,得到一个含有图像数据的d×1阶矩阵X,X矩阵减去后用(X-)转置乘上投影矩阵U,求得1×k阶特征矩阵Y:
这时矩阵Y所含有的数据就是训练图像的主要特征,运用分类器,和数据库的特征进行对比输出。
1.2 LBP算法提取局部特征LBP算子是以分割目标图像成局部3×3邻域,以各邻域的中间值为对比参数对象,对比中心的周围8个像素灰度值,如果周围某个像素点的灰度值大于中心点的值,则该像素位置用1进行标记,否则用0进行标记。这样的规律表示,该局部区域3×3邻域生成8位的二进制数,然后将二进制转十进制得到256个灰度值,即可得到该局部区域中心像素的LBP值,可以使用公式表示计算〔10〕:
其中,N为邻域中心相邻的像素个数,X为中心元素,gi为像素中心第i个邻域的灰度值,gX为中心像素的灰度值。S(x)是符号函数:
1.3 实现过程 检测出待识别目标的图像信息,为了达到准确识别的效果,在采样中考虑正面特征和侧面特征,在特征空间内的特征向量会含有很多的人脸信息,因此就需要一些处理提取有用信息,排除掉无用的特征向量。首先,对于训练样本变换图像的矩阵,运用PCA算法语句将按照从大到小排列的K个特征值对应的K个特征向量提取出来,组成一个新的向量矩阵U=(α1,α2,α3,…,αk)。矩阵U为k×d阶,这样完成人脸信息投影在新的特征向量矩阵上,实现全局特征的提取。然后,提取人脸图像的LBP特征。图像分成m×n个小区域,读取每一子块人脸图像的LBP算子,得到1×N维行向量,将各个子块的LBP特征向量按照一定的顺序合并为一个新的特征向量,用它代表人脸的纹理信息。整个图像的LBP特征向量是N个m×n维向量集合。最后,将人脸图像的PCA、LBP特征向量集合成新矩阵,完成融合,用支持向量机(support vector machines,SVM)决策分类识别,输出目标脸身份信息。
2.1 数据来源 本文实验测试基于ORL(olivetti research laboratory)数据库(由英国剑桥大学AT&T实验室创建)进行〔11〕,因为ORL人脸库包含40位志愿者,合计400张人脸图像,每张照片均十分具有代表性,他们来自不同的国家,不同的年龄、性别、表情,部分示例人脸图见图1。在不同姿势角度下采集,并且通过大小归一为92×112。它的维度不高,ORL人脸图是使用最多的人脸数据库,在这个库测试到的识别正确率高,特别适合检验各算法的鲁棒性。本次设计需要提取局部和全局特征融合识别,利用SVM分类器把训练图像和测试图像相结合,进行分类。通过数据分析直观得到单独运行PCA和PCA+LBP算法融合后的特性的提取,最后与测试样本进行匹配输出识别结果。
图1 ORL数据库部分示例人脸图
2.2 识别结果
2.2.1 不同维度下识别结果 从图2可知,PCA算法在低维(维度为30~70)时,识别率在60.0%左右;当图像维度在80以上时,识别率可以达到70.0%乃至以上。可以得出结论:采用PCA算法,维度越大时识别率越高。而采用PCA+LBP提取全局和局部特征在低维时,识别率在70.0%~80.0%;当图像维度在80以上时,识别率可以达到80.0%乃至以上。因此可以得出结论:采用局部和全局特征相融合能够提高识别准确度,维度越高越精确。
图2 不同维度下算法的识别率
2.2.2 不同样本数下识别结果 从表1可以分析得到:采集人脸的全局特征,用SVM也能够识别出来,但是识别率并不是特别高,均在85.0%以下;加入LBP算法后,弥补了PCA不能采集到纹理特征的缺点。PCA降维过后,结合LBP纹理特征,在低维空间用SVM,随着训练样本的增加系统正确性逐渐提高。在样本数为6时,PCA+LBP+SVM算法的识别率达到95.0%。因此在实际应用中,可以通过增加训练样本来提高识别率。但是在训练耗时方面,PCA+LBP+SVM算法比PCA+SVM耗时更长。主要是因为增加LBP算法,从而增加了图像局部特征提取的过程。
表1 不同样本数下算法的识别结果
2.3 构建人脸识别系统 利用Matlab进行人脸识别系统的GUI为图像用户界面设计。用户界面共包括以下几部分:静态文本框中显示用户界面的标题“PCA+LBP+SVM”;轴模块区域显示载入的测试图片、预处理后的图片,界面上分别有训练、测试、打开图片、识别结果4个按键,实现分类器训练,测试,打开待识别对象图像输入显示并输出识别结果。当按钮被点击时,图形会凹陷,执行对应的回调子函数。打开待测目标图像首先训练,读入测试集合,载入训练参数的结果见图3。
图3 示例识别结果
本文结合PCA算法和LBP算法提取局部与全局特征,提高人脸识别的准确率。首先将人脸图像进行预处理。其次通过PCA算法以及K-L变换,将图像信息通过低维的向量集来表达,求取协方差,在特征空间线性提取到能够代表人脸的特征向量。使用PCA算法提取全局特征,在训练样本维数高、数量多的情况下正确率高,但是当人脸表情、姿态、光照度等变化时,对一张人脸图预处理识别,它的局部发生变化而人脸整体并没有变化,这时可能会提取无益特征向量,导致分类器匹配人脸库时所输出的结果不准确。因此需要结合LBP算法局部特征,将人脸图像分割,通过数学的矩阵变换分析得到人脸的纹理等局部特征,有效弥补PCA算法的不足。但PCA加上LBP来识别人脸费时费力,因此就需要更多的线性、非线性算法,提取面部特征和纹理信息,对不同光照、姿态、表情、尺度、图像质量等其他因素干扰下的人脸图像进行有效特征值提取。此外,在训练样本基数较多时,需要考虑改进SVM投票策略或者选择其他分类器。