- 1 -
基于 Fisher判别法的人脸图像识别
舒予
武汉理工大学信息工程学院,武汉 (430070)
摘 要:文中描述了人脸识别的两大步骤——特征提取和样本分类,介绍了 K-L 变换在人
脸图像特征提取方面的运用,重点讲解了应用广泛的 Fisher判别法在人脸图像样本分类方面
的运用。最后对 Fisher判别法进行仿真,并给出了Matlab源程序。
关键词:人脸识别,K-L变换,Fisher判别法,Foley-Sammon方法
中图分类号:TN391
1. 引言
人脸识别在国民经济、军事公安和日常生活中有着广泛的应用[1],例如:嫌疑犯照片的
识别匹配;信用卡、驾驶执照、护照与个人身份的识别;银行、商场安全系统;公众场合监
视;专家识别系统;基于目击线索的人脸重构;嫌犯电子照片簿;随着年龄增长的人脸推测
等。
与指纹识别、虹膜识别等方式相比,人脸识别更因为其“非接触”性而较易被人接受。所
有这些,使得人脸识别成为近几年来图像处理领域中最活跃的分枝之一。
2. 图像识别的基本步骤
简单的说,图像识别需要两大步骤:特征提取和样本分类。
首先,看一个最简单的例子:某家罐头厂需要自动识别流水线上的鱼是鲈鱼还是鲑鱼,
识别的依据是鱼的长度——大于某个阈值就是鲑鱼,反之则是鲈鱼。
解决方案如下:(1)特征提取。用图像采集设备监控流水线,并用复杂的图像处理手段
计算出每条鱼的长度。(2)样本分类。对(1)中所得结果进行判断:大于某个阈值就是鲑鱼,
反之则是鲈鱼。可以看到,这类似于在 AWGN信道终端对比特流的统计判决。
(1)主要涉及图像处理的相关知识,这里不予讨论。
就(2)来说,问题变成:在一维特征空间(鱼的长度)中,根据某种准则(大于还是小
于某个阈值)对给定的样本进行分类。
然而,为了使分类更准确,可以不仅仅使用长度作为判断依据,还可以使用宽度、光泽
度等特征,再结合水生物学的专业经验,制定某种综合考虑这几个特征的分类准则。
此时问题变为:在高维特征空间(鱼的长度、宽度、光泽度……)中,根据某种准则对
给定的样本进行分类。
更值得一提的是,上述的“某种准则”,完全可以通过观察大量的样本所确定下来(这些
样本成为训练样本,用这些样本通过某种方法确定判别准则的过程叫训练)。在第四部分会
看到这一规程如何操作。
可以看到,以上描述适合于一般的图像识别问题。
3. 人脸特征提取方面的基本方法
. 引言
受鱼分类问题的启发,在人脸识别中,考虑能否用诸如双眼距离、鼻翼宽度等作为特征
- 2 -
呢?事实上,早期的人脸识别研究正是这样做的。但由于它固有的局限性,对这种方法的探
讨已经逐渐冷却。
人们研究得更多的是一种被成为“特征脸”的方法。其核心思想是这样:图像是由像素构
成,每个像素就可以看成一个特征。但这么做特征的维数太高,处理起来不方便。于是可以
K-L变换将维数降下来便于处理。实际上,是为人脸图像重新找到了一组基底。[2][3]
补充一句,在提取“特征脸”之前要先对人脸图像做归一化处理,使人脸能“塞满”图片,
如图 1所示。
图 1 归一化处理
. K-L变换提取特征脸
以归一化后的标准图像作为训练样本集,定义总体散布矩阵为
∑−
=
−−=
−−=∑
1
0
))((1
}))({(
M
i
T
ii
T
xx
M
xxE
µµ
µµ
[3-1]
以该矩阵作为产生矩阵。其中: ix 为第 i个训练样本的图像向量,µ为训练样本集的平均图
像向量,M为训练样本的总数。
为了求 NN ×2 维矩阵∑的特征值和正交归一化的特征向量,直接计算是很困难的。这
就引出了 SVD——奇异值分解[4]。
设 A是一秩为 r的 rn× 维矩阵,则存在两个正交矩阵:
; ],...,[
; ],...,[
110
110
IVVvvvV
IUUuuuU
Trr
r
Trn
r
=ℜ∈=
=ℜ∈=
×
−
×
− [3-2]
以及对角矩阵: nrrdiag ×− ℜ∈=Λ ],...,,[ 110 λλλ [3-3]
且 110 ... −≥≥≥ rλλλ ,满足 TVUA 2/1Λ= 。
其中: )1,...,1,0( −= riiλ 为矩阵 TAA 和 AAT 的非零特征值, iu 和 iv 分别为 TAA 和 AAT 对
应于 iλ 的特征向量。上述分解称为矩阵 A的奇异值分解(Singular Value Decomposition)
由[3-2][3-3]可得推论: TVUA 2/1Λ=
由于Σ可表示为
- 3 -
∑−
=
=−−=Σ
1
0
1))((1
M
i
TT
ii XXM
xx
M
µµ [3-4]
其中: ],...,,[ 110 µµµ −−−= −MxxxX
故,构造矩阵: MMT XXR ×ℜ∈=
容易求出其特征值 iλ 及响应的归一化特征向量 )1,...,1,0( −= Mivi 。上述推论可知,Σ的
正交归一特征向量 iu 为
1,...2,1,0 1 −== MiXvu i
i
i λ [3-5]
这就是图像的特征向量。它是通过计算较低维的矩阵 R的特征值与特征向量而间接求出的。
将特征值从大到小排序: 110 ... −≥≥≥ rλλλ ,其对应的特征向量为 iu 。这样,每一幅
人脸图像都可以投影到由 110 ,..., −Muuu 所张成的子空间中。因此每一幅人脸图像对应于子空
间中的一个点。同样,子空间中的任一点也对应于一幅图像。这些图像很像被烧伤的人脸,
因而叫做“特征脸”,通过 K-L变换进行人脸识别的方法被称为“特征脸”方法。有了这样一个
由“特征脸”张成的降维子空间,任何一幅人脸图像都可以向其做投影并获得一组坐标系数,
这组系数表明了该图像在子空间中的位置,从而可以作为人脸识别的依据。换句话说,任何
一幅人脸图像都可以表示为这组“特征脸”的线性组合。其加权系数即是 K-L 变换的展开系
数, 可以称为该图像的代数特征。
到此,回到了熟悉的“d维空间”的问题。接下来,就可以用统分类别的方法进行处理了。
4. 基于 Fisher的人脸样本分类方法
. 引言
在第 2部分已经看到:如果只在一维特征空间上进行判决,准则只可能有一个——大于
还是小于某个阈值。显然,这种判决方法的计算开销十分小!
那么,对高维特征空间问题,有没有可能把它转化为在低维特征空间上进行判决,以换
取计算开销的减小呢?倘不如此,过度复杂的计算开销会使分类问题变得完全不可行
——Bellman称为“维数灾难”。这正是以下要讨论的问题。
. Fisher判别法——高维特征、两分类问题
考虑把 d维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维。一般
来说,总能找到某个方向,使在这条直线上,样本的投影能分开得最好。Fisher 在 1936 年
的一篇经典论文中解决了这一问题。推导过程用到了矩阵特征值、对向量求微分等矩阵论知
识。[5][6]
假设有一集合 H包含 N个 d维样本 Nxxx ,...,, 21 ,其中 N1个属于 ω1类的样本记为子集
H1,N2个属于 ω2类的样本记为 H2。若对 nx 的分量做线性组合可得标量:
in
T
n Nnxwy ,...,2,1, == [4-1]
这样便得到一个一维样本 ny 组成的集合,并可分为两个子集 Y1与 Y2。从集合上看,如果
||w||=1,则每个 ny 就是相对应的 nx 到方向为 w的直线上的投影。实际上,w的绝对值是无
- 4 -
关紧要的,他仅使 ny 乘上一个比例因子,重要的是选择 w的方向。W的方向不同,将使样
本投影后的可分离程度不同,从而直接影响识别效果。因此,所谓寻找最好投影方向的问题,
在数学上就是寻找最好的变换向量 w*的问题。
下面先定义几个必要的基本参量以方便叙述。
1.在 d维空间
(1)各类样本均值向量 im
2,1,1 == ∑
∈
ix
N
m
iHxi
i [4-2]
(2)样本类内离散度矩阵 iS 和总类内离散度矩阵 wS
1 2
( )( ) , 1,2
i
T
i i i
x H
w
S x m x m i
S S S
∈
= − − =
= +
∑
[4-3]
(3)样本类间离散度矩阵 bS
T
b mmmmS ))(( 2121 −−= [4-4]
其中 wS 是对称半正定矩阵,而且当 N>d 时通常是非奇异的。 bS 也是对称半正定矩阵,在
两类条件下,它的秩大于等于 1。
2.在一维 Y空间
(1)各类样本均值 im~
2,1,1~ == ∑
∈
iy
N
m
iYyi
i [4-5]
(2)样本类内离散度 2~iS 和总类内离散度 wS
~
2
2
2
1
22
~~~
2,1,)~(~
SSS
imyS
w
Yy
ii
i
+=
=−= ∑
∈ [4-6]
现在来定义 Fisher准则函数。为了投影后,在一维 Y空间里各类样本尽可能分得开些,
即希望两类均值之差 )~~( 21 mm − 越大越好;同时希望各类样本内部尽量密集。即希望类内离
散度越小越好。因此,定义 Fisher准则函数:
,~~
)~~()( 2
2
2
1
2
21
SS
mmwJF +
−= [4-7]
显然应该寻找 )(wJF 的分子尽可能大而分母尽可能小,也就是使 )(wJF 尽可能大的 w作为
投影方向。但上式并不显含 w,因此必须设法将 )(wJF 变成 w的显函数。从 im~ 的定义可推
出:
1 1
1( )
i i
i
T
i
y Y y Hi i
T T
i
y Hi
m y w x
N N
w x w m
N
∈ ∈
∈
= =
= =
∑ ∑
∑
�
[4-8]
- 5 -
这样, )(wJF 的分子就变为:
wSwwmmmmw
mwmwmm
b
TTT
TTT
=−−=
−=−
))((
)()~~
2121
21
2
21( [4-9]
现在再来考察 )(wJF 的分母与 w的联系
∑
∑ ∑
∈
∈ ∈
=−−=
−=−=
i
i i
Hx
i
TT
ii
T
Yy Hx
i
TT
ii
wSwwmxmxw
mwxwmyS
]))(([
)()( 222
[4-10]
因此, wSwwSSwSS wTT =+=+ )(~~ 212221
将它们带入[4-7],可得:
wSw
wSwwJ
w
T
b
T
F =)( [4-11]
下面求使 )(wJF 取极大值时的 w*。用 Lagrange乘子法求解。另分母等于非零常数,定
义 Lagrange函数为:
)(),( cwSwwSwwL w
T
B
T −−= λλ [4-12]
式中 λ为 Lagrange乘子。对上式求偏导,得:
wSwS
w
wL
wb λλ −=∂
∂ ),(
[4-13]
令偏导数为零,得:
0** =− wSwS wb λ [4-14]
即: ** wSwS wb λ=
其中 w*就是使 )(wJF 最大的极值解。因为 wS 非奇异,两边同时左乘 1−wS ,可得:
**1 wwSS bw λ=− [4-15]
这实际上是求一般矩阵 bw SS 1− 的特征值问题。利用 bS 的定义,可将上式改写为:
RmmwmmmmwS Tb )(*))((* 212121 −=−−= [4-16]
式中 *)( 21 wmmR T−= 为一标量,所以 *wSb 总是在向量 )( 21 mm − 的方向上。由于本文
的目的是寻找最好的投影方向,w*的比例因子对此并无影响,因此,可得:
RmmSwSSw wbw )(*)(* 21
11 −== −−λ [4-17]
从而可得:
)(* 21
1 mmSRw w −= −λ [4-18]
忽略比例因子 R/λ,得
)(* 21
1 mmSw w −= − [4-19]
w*就是使 Fisher准则函数 )(wJF 取极大值的解,也就是 d维 X空间到一维 Y空间的最好投
影方向。
- 6 -
至此,本文已经漂亮的解决了问题的一大半,最后只剩如何在这个一维空间上确定阈值。
其实这也好办。比如说,如果以知两类的先验概率,则可以根据 Bayes准则;若没有任何先
验知识,可以简单的取阈值
2
~~
21 mm += 。
5. 仿真程序
Matlab源程序如下:
function fisher_test
N = 10; % 个类的样本数
range = 2; % 范围
offset = ; % 偏移:决定了有样本重叠的可能性
while(1)
% 生成属于omega1类的二维样本,范围:[0 2]
x1 = range*rand(2, N);
% 生成属于omega2类的二维样本,范围:[1 3]
x2 = offset + range*rand(2, N);
% 定义几个参量
m1 = (sum(x1')/N)';
m2 = (sum(x2')/N)'; % 样本均值
S1 = zeros(2, 2);
for i = 1 : size(x1, 2)
S1 = S1 + (x1(:, i)-m1)*(x1(:, i)-m1)';
end
S2 = zeros(2, 2);
for i = 1 : size(x2, 2)
S2 = S2 + (x2(:, i)-m2)*(x2(:, i)-m2)';
end
Sw = S1 + S2; % 总的类内离散度矩阵
if ( inv(Sw) < inf ) % 若可逆...
break;
end
end
% 经过长串的公式推导后,最优投影方向如下:
w_ = inv(Sw)*(m1 - m2);
% 画出这些量
figure;
hold on;
delta = ; % 显示时两边留点空白
margin = 1; % 好显示legend
bound = range+offset+delta+margin;
set(gca,...
'XLim', [-delta bound],...
'YLim', [-delta bound]);
plot(x1(1,:), x1(2,:),...
'Marker', 'x',...
'LineStyle', 'none');
plot(x2(1,:), x2(2,:),...
'Marker', 'o',...
'LineStyle', 'none');
legend([{'第一类'},{'第二类'}]);
startX = (range+offset)/2;
startY = startX;
xlen = 1;
endX = startX - xlen;
endY = startY + xlen*w_(1)/w_(2); % 控制绘图的几
个量
annotation('arrow', [startX endX]/, [startY
endY]/);
text(startX, startY,...
'最佳投影方向')
hold off;
% 于是在一维空间上有:
y1 = w_' * x1;
y2 = w_' * x2;
mm1 = sum(y1)/N;
mm2 = sum(y2)/N; % 类均值
% 假设没有任何先验知识:
threshold = (mm1+mm2)/2;
%%%%%%%%%%%%%%%%%%%%%%%%
% 下面开始试验这个阈值
% 和投影方向到底怎样
%%%%%%%%%%%%%%%%%%%%%%%%
correct1 = 0;
correct2 = 0;
for i = 1 : 200
sa1 = range*rand(2,1);
sa2 = offset + range*rand(2, 1);
if ( w_'*sa1>threshold )
correct1 = correct1 + 1;
end
if ( w_'*sa2<threshold )
correct2 = correct2 + 1;
end
end
fprintf('%d个一类样本中,%d个被正确分类\n', i,
correct1);
- 7 -
fprintf('%d个二类样本中,%d个被正确分类\n', i,
correct2);
%EOF
6. 结论
程序先给出十个一类样本和十个二类样本作为训练样本,然后按照 中的方法计算最
佳投影方向。如图 2所示:
图 2 最佳投影
程序中假设没有任何先验知识,因此,直接用类均值计算出阈值。
最后,再分别“制造”两百个一类样本和二类样本,看看按照这个投影方向和阈值工作的怎么
样。如表 1:
表 1 样本分类结果
类型 数量 正确分类数 错误分类数 总错误率
一类样本 200 194 6 3%
二类样本 200 196 4 2%
可见该分类方法工作效果不错,能够达到基本的实用的目的。
参考文献
[1] Chellappa R, Wilson C L, Sirohey S. Human and machine recognition of faces: a survey. Proc. IEEE, 1995,
83(5): 705-740
[2] Tian Q et al, Image classification by the Foley-Sammon transform, Optical Engineering, 1986, Vol. 25, ,
pp. 834-839.
[3] 袁强 , 张正兰. 基于 Fisher的人脸检测与识别. 现代计算机(专业版). 2005, 5: 50~52
[4] 程云鹏. 矩阵论. 西安:西北工业大学出版社, 1999
[5] 陈才扣, 刘永俊, 杨静宇. 二维最大散度差图像投影鉴别分析. 2007, 19(2): 833~835
[6] 边肇祺, 张学工 等. 模式识别. 北京:清华大学出版社, 1999
- 8 -
Human Face Recognition Based on Fisher Decision
Shu Yu
School of Information Engineering,Wuhan University of Technology,Wuhan (430070)
Abstract
As an introductory one, this thesis is intended to explain what basic methods are applied in the whole
process of human-face recognition with most simple and concise words. We depict the two main steps,
characteristics extraction and samples classification, for human-face recognition processing. Following
section are applications of K-L transform in human-face characteristic extraction. In section 4, we
discuss the application of widely-used Fisher Method and its extension in human-face samples
classification. Finally, some subjects are simulated with Matlab. Corresponding source code is also
given.
Keywords:Human-face recognition,Fisher Method,Foley-Sammon Method