计 算 机 视 觉 基 础
期 末 大 作 业
题目:基于 matlab 的人脸识别系统设计
物联网工程 学 院 计算机科学与技术 专 业
学
号
学生姓名
任课教师
二〇一六年六月
- 1 -
目录
摘要 .....................................................................................................................................................3
1.概述 ..................................................................................................................................................4
1.1 人脸识别技术 ..................................................................................................................... 4
1.2 人脸识别基本方法 .............................................................................................................. 4
1.2.1 几何特征的人脸识别............................................................................................... 4
1.2.2 基于特征脸(PCA)的人脸识别 ........................................................................... 4
1.2.3 神经网络的人脸识别............................................................................................... 5
1.3 人脸识别新技术 .................................................................................................................. 5
2.人脸识别功能的实现 ..................................................................................................................... 5
2.1 PCA 方法基本原理 ............................................................................................................. 5
2.2 基于主成分分析法的人脸识别......................................................................................... 6
2.2.1 读入人脸库.............................................................................................................. 6
2.2.2 计算 K-L 变换的生成矩阵..................................................................................... 6
2.2.3 求解特征值和特征向量 .......................................................................................... 7
2.2.4 样本投影与识别...................................................................................................... 8
2.3 基于 PCA 算法人脸识别的 matlab 实现 .......................................................................... 8
2.3.1 读取人脸库.............................................................................................................. 8
2.3.2 利用生成矩阵求特征值和特征向量......................................................................9
2.3.3 选取阈值提取训练样本特征 ..................................................................................9
2.3.4 选取测试样本进行识别 .......................................................................................... 9
2.4 人脸识别代码 ................................................................................................................... 10
2.5 实验结果及分析............................................................................................................... 11
3.实验结果及实现功能 ................................................................................................................... 12
3.1 文件部分 ........................................................................................................................... 12
3.2 图像预处理部分............................................................................................................... 12
3.3 训练部分 ........................................................................................................................... 13
3.4 识别部分 ............................................................................................................................ 13
4.总结 ................................................................................................................................................13
4.1 人脸识别的困难性 ............................................................................................................ 13
4.1.1 相似性..................................................................................................................... 14
4.1.2 易变性..................................................................................................................... 14
4.2 实验心得 ........................................................................................................................... 14
参考文献:.............................................................................................................................. 14
摘要
人脸识别系统以人脸识别技术为核心,是一项新兴的生物识别技术,是当今国际科技领
域攻关的高精尖技术。这次设计主要是完成了基于主成分分析(PCA)方法的人脸识别,PCA
方法的基本原理是:利用离散 K-L 变换提取人脸的主要成分,构成特征脸空间,识别时把
测试样本投影到该空间,构成一组投影系数,通过与特征脸的距离比较,距离最小的特征脸
对应的即是识别结果。基于 PCA 的人脸识别其实一种统计性的模板比配方法,原理简单,
易于实现,但也有不足,它的识别率会随着关照,人脸角度,训练样本集的数量而变换,但
仍不失为一种比较好的方法。
关键词:人脸识别、PCA、特征提取
3
1.概述
1.1 人脸识别技术
人脸识别技术是采用某种技术和手段对人的身份进行标识,从而依据该标识对人进行身
份识别,以达到监督、管理和识别目的的一种技术。近年来由于在公安罪犯识别、安全验证、
安全验证系统、信用卡验证等方面的巨大应用前景而越来越成为当前模式识别和人工智能领
域的一个研究热点。
人脸识别基本上可分为两个方面:一是给定一幅待识别人脸图像,判别它是否是某人,
即通常所说的身份验证,这是个“一对一”的两分类问题;另一个是给定一幅待识别人脸图
像,判断它是谁,即通常所说的身份识别,这是一个一对多的问题
基于人脸图像整体特征的人脸识别方法由于不需要提取人脸图像中器官的具体信息,而
且充分利用到人脸图像本身具有的灰度信息,因此可获得更高的识别性能。基于人脸图像整
体特征的人脸识别方法主要有特征脸法,最佳鉴别矢量集法,贝叶斯法,基于傅立叶变换特
征法,弹性图匹配法,相关方法,线性子空间法,可变形模型法和基于人工神经网络的方法
等等。其中弹性图匹配法和傅里叶不变特征法侧重于表述人脸图像;最佳鉴别矢量集法,贝
叶斯法,基于人工神经网络的方法侧重于分类;特征脸法和线性子空间法等侧重于人脸图像
的重构。
1.2 人脸识别基本方法
1.2.1 几何特征的人脸识别
几何特征可以是眼、鼻、嘴等的形状和它们之间的几何关系(如相互之间的距离)。这
些算法识别速度快,需要的内存小,但识别率较低。
1.2.2 基于特征脸(PCA)的人脸识别
特征脸方法是基于 KL 变换的人脸识别方法,KL 变换是图像压缩的一种最优正交变换。
高维的图像空间经过 KL 变换后得到一组新的正交基,保留其中重要的正交基,由这些基可
以张成低维线性空间。如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些
投影用作识别的特征矢量,这就是特征脸方法的基本思想。这些方法需要较多的训练样本,
而且完全是基于图像灰度的统计特性的。目前有一些改进型的特征脸方法,也是本文所要讲
述的的方法。
4
1.2.3 神经网络的人脸识别
神经网络的输入可以是降低分辨率的人脸图像、局部区域的自相关函数、局部纹理的
二阶矩等。这类方法同样需要较多的样本进行训练,而在许多应用中,样本数量是很有限的。
1.3 人脸识别新技术
传统的人脸识别技术主要是基于可见光图像的人脸识别,这也是人们最熟悉的识别方
式,已有 30 多年的研发历史。但这种方式有着难以克服的缺陷,尤其在环境光照发生变化
时,识别效果会急剧下降,无法满足实际系统的需要。解决光照问题的方案有三维图像人脸
识别,和热成像人脸识别。但目前这两种技术还远不成熟,识别效果不尽人意。
最近迅速发展起来的一种解决方案是基于主动近红外图像的多光源人脸识别技术。它可
以克服光线变化的影响,已经取得了卓越的识别性能,在精度、稳定性和速度方面的整体系
统性能超过三维图像人脸识别。这项技术在近两三年发展迅速,使人脸识别技术逐渐走向实
用化。
2.人脸识别功能的实现
2.1 PCA 方法基本原理
设人脸图像 ( ,
I x y 为二维 m n 灰度图像,用 N m n
维列向量 X 表示。人脸图像训练
)
集为{
|
iX i
1,
,其中 M 为训练集中图像总数。根据训练集构造 N N 总体散布矩
M
}
,
阵 tS :
S
t
M
i
1
(
X
i
X
)(
i
T
)
其中为所有训练样本的平均向量:
1 M
M
1
i
X
i
选取一组标准正交且使得准则函数式(3.3)达到极值的向量 1
d 作为投影轴,其物理
意义是使投影后所得特征的总体散布量(类间散布量与类内散布量之和)最大。
J
t
T
S
t
T
1
其等价于:
J
t
T
S
T
t
5
上式即为矩阵的 Rayleig 熵,由 Rayleigh 熵[7]的极值性质,最优投影轴 1
d 个最大的特征值所对应的标准正交的特征向量。
对于 m n 人脸图像,总体散布矩阵 tS 的大小为 N N
的,由奇异值定理,一种取而代之的方法是解 M M 个较小的矩阵。首先计算 M M 矩阵 L
的特征向量 (
矩阵 tS 的特征向量:
lv l
,对它求解特征值和特征向量是很困难
d 可取为 tS 的
1,
:
L A A
X
]
M
A
X
、
)
[
M
,
T
,
,
1
U
[
M
,
,
1
]
[
X
1
,
,
X
M
][
v
1
,
,
v
M
]
AV
(
l l
1,
,
M
)
由 差 值 图 像
X
1
(
l
1,
,
M
)
与 (
lv l
1,
线性组合得到
M
)
,
取 L 的前 d 个最大特征值的特征向量计算特征脸, d 由门限值 确定:
J
min
d
d
M
i
1
1
/
j
i
j
2.2 基于主成分分析法的人脸识别
完整的 PCA 人脸识别的应用包括四个步骤:人脸图像的预处理;读入人脸库,训练形成特
征脸空间;把训练样本和测试样本投影到特征脸空间中;选择一个距离函数按照某种规则进
行识别。下面看一下详细的过程:
2.2.1 读入人脸库
这次设计中选用英国剑桥大学人脸库即 ORL 人脸库,此人脸数据库有 40 人,每人有
10 幅图像。这些图像具有以下特点:有些图像拍摄于不同的时期;人的脸部表情和脸部细节有
着不同程度的变化,比如,笑或不笑,眼睛或睁或闭,戴或不戴眼镜;人脸姿态也有相当程
度的变化,深度旋转和平面旋转可达 20。;人脸的尺度也有多达 10%的变化;图像的分辨率是
112x92。。在 ORL 人脸库中选出每个人的前 5 幅图像作为训练图像,构成一个 200 幅图像的
训练集,剩下的 200 幅图像构成测试集。每幅图像按列相连构成 10304 维列向量,读入的训
练样本集就构成 10304×200 的矩阵。
2.2.2 计算 K-L 变换的生成矩阵
以训练样本集的总体散布矩阵为生成矩阵 tS ,即:
S
t
200
i
1
(
X
i
X
)(
i
)T
其中 iX 为第i 幅训练样本的图像向量,为训练样本集的均值向量,训练样本的总数为 200。
6
为了求的生成矩阵的特征值和正交归一化特征向量,由于矩阵维数过高,计算量太大,可以
引进奇异值分解定理(SVD 定理)。
图2.1 平均脸
2.2.3 求解特征值和特征向量
SVD 定理的定义:若矩阵
m n
A R
,则存在正交矩阵
U
m
,
,
,
1
2
R
m n
,
V
2,
v v
1
,
A UWV
T
v
,
n
m n
R
,使得
T
U AV diag
(
p
,
,
,
1
2
)
W
,
p
min(
, )
m n
,即
,则称 A 为奇异值分解。其中, 1
2
0,
(
i i
p
1,2,
为 A 的
p
)
,
奇异值,是 TAA 或 TA A 的特征值的平方根,即 i
i
。
奇异值向量具有良好的稳定性,所以它对图像噪音、图像光照条件引起的灰度变化具有
不敏感的特性。
计算特征值和特征向量的基本步骤是:(1)创建协方差矩阵;(2)计算协方差矩阵的特征值和
特征向量;(3)按特征值由小到大顺序排列特征值和特征向量。
这些特征向量对应的图像很像人脸,所以被称为“特征脸”。有了这样一个由“特征脸”
组成的降维子空间,任何一幅图像都可以向其投影并获得一组坐标系数,这组坐标系数表明
了该图像在“特征脸”子空间的位置,从而可以作为人脸识别的依据。
选择了其中 30 个特征脸如下图所示
7
图2.2 特征脸
2.2.4 样本投影与识别
得到特征脸子空间以后,就要把训练样本和测试样本都投影到特征脸子空间,每幅图像得到
一组坐标系数,对应子空间中的一个点。任何一幅图像都可以有这组特征脸线性组合,加权
系数就是 K-L 变换的系数。
原 始 图 像
主 成 分 取 20的 重 建 图 主 成 分 取 50的 重 建 图
主 成 分 取 100的 重 建 图 主 成 分 取 150的 重 建 图
完 全 重 建 图
2.3 基于 PCA 算法人脸识别的 matlab 实现
用 matlab 语言仿真 PCA 算法的人脸识别,分为以下几个步骤:
2.3.1 读取人脸库
allsamples=[];
for i=1:40
for j=1:5
% allsample 用于存储读取的人脸图像矩阵
a=imread (strcat ('e: \ORL\s', num2str (i),'\', num2str (j),'.pgm'));
b=a (1:112*92);
b=double (b);
allsamples= [allsamples; b];
end
End
8