- 1 -
中国科技论文在线
基于 KPCA 和 SVM 的人脸识别研究
王本超,马军伟,顾宏*
作者简介:王本超,(1985-),男,硕士研究生,主要研究方向:数据挖掘
(大连理工大学控制科学与工程学院,辽宁 大连 116024)
摘要:为了满足企业管针对人脸识别中遇到的“过学习”与“小样本”问题,以及为了进一
步改善主成分分析(PCA)在处理图像非线性问题上存在的不足,本文将核主成分分析法与
支持向量机(KPCA-SVM)相结合,利用 KPCA 对非线性人脸图像进行特征提取,在保持原图
像信息损失尽量少的原则下,把高维空间的人脸数据投影到低维空间,然后对低维空间人脸
信息数据建立 SVM 的识别模型进行识别,达到 %的识别精度。
关键词:核主成分分析;支持向量机;核函数;人脸识别;模式识别
中图分类号:TP391
Face Recognition Study Based on Kernel Principal
Component Analysis and Support Vector Machine
Wang Benchao, Ma Junwei, Gu Hong
(Control Science and Control Engineering School,Dalian University of Technology,
LiaoNing DaLian 116024)
Abstract: A new approach for face recognition based on kernel principal component analysis (KPCA)
and support vector machine (SVM) is presented to improve the recognition performance of principal
component analysis (PCA), which has shortage in processing nonlinear image problems. Meanwhile,
this method can be applied to solve both overfitting problem and small sample problem. The KPCA
method is performed on every facial image of training set to get kernel facial features of training
samples. Under the principle that the information of image loses as little as possible, the face data of
high dimension feature space is shadowed into low dimensional space. The SVM face recognition
model is established and then the low-dimensional space information data is identified. Experiment
results demonstrate that the approach proposed in this paper is efficient, and recognition accuracy of
the method proposed reaches %.
Keywords:KPCA; SVM; kernel function methods; face recognition; pattern recognition
0 引言
随着科学技术的飞速发展,人们可以借助各种工具方便快捷的获得图像、视频及音频等
数字信息,然后通过各类多媒体软件对信息进行处理,从中提取我们想要的信息。与之相关
的生物特征识别领域也得到了较大的推动,其中利用人脸识别进行身份识别的手段,更是具
有广泛的应用,如门禁系统[1]、人脸登记系统[2]、身份识别[3]、犯罪人脸检测[4]等等,近年
来已逐渐成为国际上的研究热点。目前人脸识别的方法有很多,如特征脸方法[5,6]、弹性图
匹配方法[6]、贝叶斯学习法[7]以及神经网络方法[8]等多种方法。
本文主要介绍 KPCA 的特征提取方法,将主成分分析法与核函数相结合,将每幅图片
非线性映射到低维特征空间,然后利用 SVM 分类器对特征空间的核特征脸进行训练和分类。
由于支持向量机[9]在解决小样本、非线性及过学习问题上表现出许多其它机器学习方法不可
比拟的优势[10],而 KPCA 在损失最少信息的情况下能提取较好的数据特征,因此将 KPCA
特征提取与 SVM 分类法相结合,能较好的处理人脸识别问题,识别过程如图 1 所示。
- 2 -
中国科技论文在线
图 1 人脸识别过程框图
The frame of face recognition
1 核函数
核函数定义 设n维的随机矢量 x是一个非空集合,F 为一个内积空间,φ为 x到 F 的
映射,如果函数K : Rxx →× 满足:对 xxx ji ∈∀ , ,有 ( ) ( ) ( )jiji xxxxK φφ ⋅=, ,则称K为
核函数。
核函数方法是用非线性映射φ将 x映射到高维空间,如图 2 所示
图 2 核函数非线性映射
The mapping of nonlinear kernel function
在高维特征空间F 中设计的线性学习算法,其中各坐标分量间的相互作用仅限于内积,
则不需要知道非线性变换 ( )xφ 的具体形式,只要满足 Mercer 条件的核函数替换线性算法中
的内积,就能得到原输入空间中对应的非线性算法[11]。
常用的核函数主要有以下 3 类:
1. 多项式核函数: ( ) ( )[ ]dbyxyxk +⋅=,
2. 高斯核函数: ( ) ( )cyxyxk /exp, 2−−=
3. Sigmoid 核函数: ( ) ( )[ ]cyxvyxk += ,tanh,
由于在很多非线性数据处理问题中显式或隐式地包含向量的内积运算,因此核方法有着
广泛的应用前景。
2 基于 KPCA 的图像降维
KPCA 就是把输入矩阵 x,通过非线性映射φ映射到高维的特征空间F ,然后在空间F
- 3 -
中国科技论文在线
中实现 PCA 技术。将映射数据做中心化处理,即 ( )∑
=
=
N
i
ix
1
0φ , N 表示输入数据的长度,
即训练样本的个数,则相应的协方差可以写为:
( ) ( )
1
1 N T
i i
i
C x x
N
ϕ ϕ
=
= ∑ ()
其主分量可以通过解决下面特征方程得到:
( )( ) ( )
1
1 N
i i
i
v Cv x v x
N
λ ϕ ϕ
=
= = ⋅∑ ()
其中,λ表示协方差矩阵C的特征值,v为C的特征向量。对于任意 0≠λ 的特征矢量
v可以用 ( )ixφ 线性表示:
( )
1
N
i i
i
v xα ϕ
=
=∑ ()
在式(2)两边同乘以 ( )kxφ 得:
( )( ) ( )( ) 1, 2, ,k kx v x Cv k Nλ ϕ ϕ⋅ = ⋅ = ", ()
定义一个 nn× 维核矩阵 K,其矩阵元素为:
( ) ( )( ) ( ),ij i j i jk x x k x xϕ ϕ= ⋅ = ()
假设 ( ),k 是对称的核函数,则根据 Mercer 定理,点积可以用核函数 ( ),k 来代替,这对
应了用映射函数φ把数据映射到一个高维点积空间F ,可以避免计算非线性映射过程及点
积。与 PCA 算法相似,数据点 ( )( )Nixi ,,2,1 "=φ 需要在特征空间F 中做中心化处理,则中
心化后的核函数K可以定义为:
1 1 1 1N N N NK K K K K= − − + ()
其中
NN
N N ×
⎟⎠
⎞⎜⎝
⎛= 11 ,联立等式() 、式() 、式() 及式()可得:
[ ]1, , , TNN Kλ α α α α α= = " ()
其中α 是相应的特征矢量,计算时需要标准化,并且满足 Nλ /12 =α ,λ表示特征
值,正交变换后有 Nλλλ ≥≥≥ "21 ,即为各主成分的方差,第 i主成分贡献率 ∑
k
ki λλ ,
前 ( )Nnn < 个主成分分量累积贡献率:
n N
i k
i k
ω λ λ=∑ ∑ ()
通常使得累积贡献率ω约为 85%-95%,信息损失很少,并且能够达到大幅度降维目的,
计算得到对应的特征值 ( )1 2' , , , nλ λ λ λ= " 与特征向量 nv 。对于新的采样 newx ,则通过n个
特征空间中的主分量可计算:
( )( ) ( ) ( )( )∑
=
⋅=⋅=
N
i
newi
k
inewkknew xxxvt
1
, φφαφ
- 4 -
中国科技论文在线
( )
1
, , 1, ,
N
k
i i new
i
k x x K pα
=
= =∑ " ()
3 支持向量机(SVM)分类方法
二类问题 SVM 算法
SVM 是在结构风险最小化[12]基础上,对两种不同类别的样本数据找到一个最优分类面
的方法。
SVM 算法的输入是一个集合: ( ) { }{ }NiyRxyx idiii ,,2,1,1,1,, "=−∈∈ 其中 , iy 是
样本 ix 所属类的标签,d 是样本的维数,N 是训练样本的个数。
SVM 首先将输入空间 dR 中的元素 x, 依映射φ投影到一个特征空间 ( )dmRm ≥=Γ ,
对应元素 ( )z xφ= ,使训练样本在特征空间Γ中线性可分。SVM 的目标是在空间Γ中构造
一个超平面 bzw iT + 满足:
1,1 ≥+= bzwy iTi 则若 ; 1,1 ≤+−= bzwy iTi 则若 。
其中 ( )
1
,
N
i i i i i
i
z x w y zφ α
=
= =∑ , ( )NT αααα ,,, 21 "= 可以通过解二次规划(QP)问题
得到:
( ) 11 0, 0
2
T T TW Q yα α α α α α= − ≥ = . ()
( ) ( ) NTNT Ryyyy ∈== 1,,1,11,,,, 21 "" , Q 是个 NN × 半正定矩阵,其元素
j
T
ijiij zzyyQ = , Nji ,,2,1, "= ,为了得到 ijQ ,通常并不需要使用映射φ得到具体的值 iz
和 jz 。 在 Mercer 条 件 [13] 下 , 某 个 特 征空 间 的内 积 可用 一个 核 函数 表示 , 即
( ) ( ) ( ), Ti j i j i jK x x x x z zφ φ= ⋅ = ,与此同时 ( )jijiij xxKyyQ ,= 。对于满足 0>α 的点,根
据 KKT 条件[14],对应的训练样本应该在离分类面最近的各类样本集合的边界上,这些样本
称为支持向量。
对于一个测试样本 dRx∈ ,首先计算:
( ) ( ), ,T i i i
i
x w w z b y K x x bσ α= + = +∑ ()
可得到到对应的类别标志:
( ) ( )1, , 0,
1,
x w
x w
σθ + >⎧⎪= ⎨−⎪⎩ 其他
()
当训练样本在特征空间 Γ中不可分时,SVM 算法引入非负的松弛变量 iξ ,其中
Ni ,,2,1 "= ,这时问题转化为求:
∑
=
+
N
i
iCwMin
1
2
2
1 ξ
( ), 1 , 1, ,. . i i iy x w i NS T σ ξ≥ − = " ()
- 5 -
中国科技论文在线
其中 C 为自定义的参数,用来折中错分样本的比例和算法复杂度。 iξ 度量 ( )wxi ,σ 和 iy
的差异,()可转化为 QP 问题:在 10 C≤≤α 和 0=yTα 的条件下求()的最大值。
多类( n -类)问题 SVM 算法
多类问题的识别系统可以转化为两类问题,从而可以应用 SVM 方法[15],将多类问题看
成一系列两类问题。可作两种考虑,一是“一对一”算法[16],即将每一类和其余的 1n − 类
中的每一类构成两类,显然可以得到 ( )1
2
n n − 个分类面;二是“一对多”算法,即第k 个分
类器的解由第 k 类样本集合和剩下的 1n − 类样本集合全体构成两类问题得到,这样可以得
到 n个分类面。本文所采用就是“一对多”方法,设有 l个样本 ( ) ( )ll yxyx ,,,, 11 " ,其中
{ }, 0, , 1di ix R y n∈ ∈ −" 为 ix 类别标号, 1, ,i l= " 。第 i个 SVM 需要解决下面的最优化
问题:
( ) ( )
( ) ( )
( ) ( )
, , 1
1min ,
2
1 , ,
1 , ,
0, 1, ,
i i
lT Ti i i i
jw b j
Ti i i
i j i
Ti i i
i j i
i
j
w w C w
w x b y i
w x b y i
j l
ε
ε
φ ε
φ ε
ε
=
+
+ ≥ − =
+ ≤ − ≠
≥ =
∑
"
()
求解式()得到n个决策函数: ( ) ( ) ( ) ( )1 1, ,T Tn nw x b w x bφ φ+ +"" 。
可得到多类问题的决策函数 ( )xσ ,对任意一个输入 x属于决策函数 ( )xσ 最大的那一
类:
( ) ( ) ( )( )1, ,arg max Tk kk nx w x bσ φ== +" ()
4 实验及结果分析
为了验证方法的有效性,本文通过 MATLAB 语言实现了 KPCA 的核特征提取算法,实
验人脸图像取自英国剑桥大学 ORL(Olivetti Research laboratory)人脸图像库,是国际上人脸
识别领域常用的人脸图像库(通常用于人脸鉴别方法的测试比较)[17],该数据库由 40 人、
每人 10 幅、大小为 112×92 像素、灰度级为 256、共 400 幅包含不同时期不同表情的人脸
图像组成。其部分图像如图 3 所示。
- 6 -
中国科技论文在线
图 3 ORL 部分人脸样本
Part of the face images
实验一 为了验证样本类数以及贡献率(不同维数)对分类方法的影响,本文分别对 5
类,10 类,20 类以及 40 类人脸图像,每类后 5 幅图像作为训练样本,前 5 幅作为分类样本,
并且在不同贡献率的情况下做了分类,分类结果见表 1,表 2,表 3 与表 4:
表1 5类人脸分类
Five classes for classification
贡献率 特征维数 识别率
70% 8 100%
80% 11 100%
85% 13 100%
90% 16 100%
95% 19 100%
表2 10类人脸分类
Ten classes for classification
贡献率 特征维数 识别率
70% 9 100%
80% 15 100%
85% 19 100%
90% 26 100%
95% 35 100%
表3 20类人脸分类
Twenty classes for classification
贡献率 特征维数 识别率
70% 14 96%
80% 24 97%
85% 33 98%
90% 46 97%
95% 65 97%
表4 40类人脸分类
Forty classes for classification
贡献率 特征维数 识别率
70% 19 %
80% 37 %
85% 53 %
90% 77 %
95% 115 %
从表 1 与 2 可以看出,当训练样本类数较少的情况下,本文提出的方法识别率比较好,
在不同贡献率的情况下,结果都高达 100%,充分说明本方法的有效性。当样本类数增大时,
如表 3 是对 20 类人脸的分类情况,表 4 是对 40 类人脸的分类情况,识别率有所下降。但是
最低识别率仍然达到 %,依然说明本文的方法对较多类别人脸数据有很好的识别性能。
另外,本文的图像特征提取中,原始空间图像维数为 10304,而经过 KPCA 降维后,比
如表 4 中,当贡献率为 70%的时候,维数降到 19 维,精度为 %,当贡献率为 90%的时
- 7 -
中国科技论文在线
候,维数降到 77 维,精度达到最高值 %。可以看出 KPCA 对原始的人脸图像数据有较
好的降维作用,抓住了原始图像数据的主要特征。
实验二 为了充分显示本文所提方法的优越性,我们与已有的结果也进行了对比,比如
PCA+KNN 方法,WT+KPCA+KNN 方法,ICA 方法和 DCT 方法,均以 40 类,每类 5 幅图
像进行训练,其余 5 幅测试,比较结果见表 5,可以看出本文方法的识别精度是最高的。
表 5 不同算法的性能比较
predicting performance comparison for five methods
序号 算法名称 识别率
1 PCA+KNN[18] 87%
2 WT + KPCA + KNN[18] 89%
3 ICA[19] %
4 DCT[20] %
5 KPCA+SVM %
5 结束语
将 KPCA 和 SVM 结合起来用于人脸识别中,利用 KPCA 具有较好的特征提取性能,分
类识别时采用了支持向量机分类方法,减少进入支持向量机的样本维数,实验表明本文所提
方法具有较好的识别性能。由于参数选择对系统性能有一定的影响,今后着重研究核函数及
其参数的选取规则,以便更有效的提高识别率,应用到更多领域。
6 致谢
感谢我的导师顾宏教授对我的悉心指导和督促,他严谨细致作风对我今后工作学习都有
极大地帮助,同时感谢马军伟师兄、田江师兄及其他同窗的帮助和指点。
[参考文献] (References)
[1] Ojala T, Pietikainen M, Maenpaa T. Multi-resolution gray-scale and rotation invariant texture classification
with local binary patterns [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002,
24:971~987.
[2] Li C, Barreto A. Profile-Based 3D Face Registration and Recognition [J]. Lecture Notes on Computer Science,
2005, 35(06):484~494.
[3] Zhang Y,Meratnia N,Havinga P. An online outlier detection technique for wireless sensor networks using
unsupervised quarter-sphere support vector machine [C]. 2008 International conference on Intelligent Sensors,
Sensor Networks and Information Processing, Sydney, Australia, 2008:151~156.
[4] Whitrow C, Hand D J, Juszczak P, Weston D, Adams NM. Transaction aggregation as a strategy for credit
card fraud detection [J]. Data Mining and Knowledge Discovery, 2009, 18(1):30~55.
[5] Gundimada S, Vijayan K. Facial Recognition Using Multisensor Images Based on Localized Kernel Eigen
Spaces[J]. IEEE Transactions On Image Processing, 2009, 18(6).
[6] Zhou M, Wei H. Face verification using Gabor wavelets and adaboost[C]. / / Proceeding of the 18th IEEE
International Conference on Pattern Recognition, Hong Kong, China, 2006: 404~407.
[7] 唐杰,山世光,陈熙霖,高文. 基于非参数技术的贝叶斯人脸识别算法. 计算机应用研究, 2007(27).
[8] Aizenberg I, Aizenberg N, Butakov C, Farberov E. Image recognition on the neural network based on
multi-valued neurons. Neural Networks Technologies Ltd, 2000:993~996.
[9] Cristianini N, Shawe-Taylor J. An Introduction to Support Vector machines and Other Kernel-based Learning
Methods[M]. Cambridge University Press, 2000.
[10] 余辉,赵晖. 支持向量机多类分类算法新研究[J]. 计算机工程与应用, 2008,44(7).
[11] 王国胜. 核函数的性质及其构造方法[J]. 计算机科学, 2006, 33(6):172~178.
[12] Vladimir N, Vapnik. The nature of statistical learning theory[M]. New York, Springer-Verlag, 2004.
[13] 邓乃扬, 田英杰. 数据挖掘中的新方法:支持向量机 [M]. 北京:科学出版社,2004:105~117.
[14] 袁亚湘,孙文瑜. 最优化理论和方法[M]. 科学出版社, 2003:422~431.
[15] Weston J, Watkins C. Support Vector Machines for Multi-class Pattern Recognition[M]. Technical Report,
CSDTR 9804, Department of Computer Science Egham, 1998.
[16] Hsu C W, Lin C J.A comparison of methods for multi-class support vector machines[J].IEEE Transactions on
- 8 -
中国科技论文在线
Neural Networks, 2002, 13(2):415~425.
[17] 卢湖川,杨德礼. 人脸识别中几个关键算法研究[D]. 大连:大连理工大学,2008.
[18] 杨绍华,林盘,潘晨. 利用小波变换提高基于 KPCA 方法的人脸识别性能[J]. 山东大学学报, 2007,
42(9):96~100.
[19] Bartlett M S, Movellan J R, Sejnowski T J.Face Recognition by Independent Component Analysis[J]. IEEE
Trans On Neural Networks,2002,13(6):1450~1464.
[20] 张锦,成奋华,林雪梅,李睿,王实. 基于子图特征组合的人脸识别技术研究[J]. 湖南大学学报, 2007,
34(6):70~73.