模式识别-人脸识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BP神经网络和k-近邻综合决策法的人脸识别matlab实现
高海南3110038011
1 人脸识别原理
人脸识别是目前模式识别领域中被广泛研究的热门课题,它在安全领域以及经济领域都有极其广泛的应用前景。人脸识别就是采集人脸图像进行分析和处理, 从人脸图像中获取有效的识别信息, 用来进行人脸及身份鉴别的一门技术。本文在MATLAB环境下,取ORL人脸数据库的部分人脸样本集,基于PCA方法提取人脸特征,形成特征脸空间,然后将每个人脸样本投影到该空间得到一投影系数向量,该投影系数向量在一个低维空间表述了一个人脸样本,这样就得到了训练样本集。同时将另一部分ORL人脸数据库的人脸作同样处理得到测试样本集。然后基于BP 神经网络算法和k-近邻算法进行综合决策对待识别的人脸进行分类。该方法的识别率比单独的BP神经网络算法和k-近邻法有一定的提高。
1.1 ORL人脸数据库简介
实验时人脸图像取自英国剑桥大学的ORL人脸数据库,ORL数据库由40个人组成,每个人有10幅不同的图像,每幅图像是一个92×112像素、256级的灰度图,他们是在不同时间、光照略有变化、不同表情以及不同脸部细节下获取的。如图1所示。
图1 ORL人脸数据库
1.2 基于PCA 的人脸图像的特征提取
PCA 法是模式识别中的一种行之有效的特征提取方法。在人脸识别研究中, 可以将该方法用于人脸图像的特征提取。
一个m ×n 的二维脸部图片将其按列首位相连,可以看成是m ×n 的一个一维向量。ORL 人脸数据库中每张人脸图片大小是92×112,它可以看成是一个10304维的向量,也可以看成是一个10304维空间中一点。图片映射到这个巨大的空间后,由于人脸的构造相对来说比较接近,因此可以用一个相应的低维子空间来表示。我们把这个子空间叫做“脸空间”。PCA 的主要思想就是找到能够最好地说明图片在图片空间中的分布情况的那些向量,这些向量能够定义“脸空间”。每个向量的长度为m ×n ,描述一张m ×n 的图片,并且是原始脸部图片的一个线性组合,称为“特征脸”。对于一副m ×n 的人脸图像,将其每列相连构成一个大小为D=m ×n 维的列向量。D 就是人脸图像的维数,也即是图像空间的维数。设N 是训练样本的数目;j x 表示第j 幅人脸图像形成的人脸向量;u 为训练样本的平均图像向量,则所需样本的协方差矩阵为:
1()()N
T r j i j S x u x u ==--∑ (1)
1
1
N
j
j u x
N
==
∑ (2)
令[]u x u x u x N ---= 21A ,则有T r AA S =,其维数为D*D 。
根据K-L 变换原理,需要求得的新坐标系由矩阵T AA 的非零特征值所对应得特征向量组成。直接计算的计算量比较大,所以采用奇异值分解(SVD )定理,通过求解A A T 的特征值和特征向量来获得T AA 的特征值和特征向量。依据SVD 定理,
令i l (r i ,,2,1 =)为矩阵T AA 的r 个非零特征值,
i v 为A A T 对应于i l 的特征向量。由于特征值越大,与之对应的特征向量对图像识别的贡献越大,为此将特征值按大小排列,依照公式
⎪⎪⎭⎪
⎪⎬⎫
⎪⎪⎩⎪⎪⎨⎧≤≥=∑∑==r k l l p r i i k i i k
,9.0min 11 (3)
选取前p 个特征值对应的特征向量,构成了降维后的特征脸子空间。则T AA 的正交归一特征向量i u 为:
i i u Av =
(1,2,,i p = ) (4) 则特征脸空间为:
12[,,,]p u u u =W (5)
将训练样本y 投影到“特征脸”空间W ,得到一组投影向量T =Y W y ,构成人脸识别的训练样本数据库。
1.3 k-近邻算法
在识别时,先将每一幅待识别的人脸图像投影到“特征脸”空间,再利用k-近邻分类器,比较其与库中k 个人脸的位置,从而识别出该图像是库中那个人的人脸。本实验令k=3,如果判断得到最短三个距离对应了三个类别(三个人),则取该人脸属于距离最短对应的人脸类别,此时相当于最近邻算法;其他情况按投票法判别,相当于k-近邻算法。
1.4 BP 神经网络法
BP 神经网络的算法又称为误差反向传播算法, BP 神经网络具有良好的自适应性和分类识别等能力。BP 神经网络模型的结构如图2所示。它是由输入层、隐层和输出层所组成的。
图2 BP 网络结构图
对于p 维投影系数,则 BP 网络的输入层需要p 个节点,每一个投影系数对应40个人中某一个,若对应第i 个人,则期望输出向量定义为
[]T
1.01.09.01.01.0140 =⨯t ,9.0]1,[=i t
即第i 行为0.9,其他均为0.1,故输出层需要40个节点,隐层结点个数可根据经验公式获得。将测试样本输入该网络训练,得到训练好的网络后可将测试样本输入网络得到输出值进行判断。
1.5基于BP 神经网络法和k-近邻法的综合决策分类
k-近邻法分类是选择测试样本与样本空间最近的k 个样本的类别而决策分类的;而BP 神经网络法本质上是根据输入输出关系通过学习而确定一个非线性空间映射关系,在此映射关系下对于每个输入得到一个输出,此输出根据网络输出的定义而确定类别。因此考虑将两种方法综合起来进行决策分类。
实际的实验过程中,k-近邻法得到的结果稳定,而BP 网络法是一种次优算法,需要根据经验确定隐层数目、训练算法。当网络比较小时尚可通过不断的实验得到一个较好的结果,而当如本实验的网络,其输入层节点p=71,输出层节点c=40,隐层节点数至少要几十上百个才能得到比较好的结果,因此不适合用试凑法;而直接根据经验公式并不能得到满意的网络,有时网络的识别率甚至不及k-近邻分类法的识别率。经过分析BP 网络法得到的输出结果我们发现,当输出向量140⨯t 满
足{}β>)1,(m ax i t 时,分类正确无误;而{}β<)1,(m ax i t 时,分类会出现错误。我
们对出现{}β<)1,(m ax i t 的所有样本使用k-近邻算法辅助分类,综合得到的结果为最终分类的结果。经实验,该方法分类正确率高于单一的k-近邻法和BP 网络法,且结果比较稳定。
2 算法流程
根据上述实验原理分析,该算法流程如下: (1) 读入人脸库
每个人取前5张作为训练样本,后5张为测试样本,共40人,则训练样本和测试样本数分别200=N 为。人脸图像为92×112维,按列相连就构成
N=10304维矢量j x ,j x 可视为N 维空间中的一个点。
(2) 构造平均脸和偏差矩阵
平均脸11
N
j
j N
==
∑u x
偏差矩阵1
()()N
T T r j i j S x u x u AA ==--=∑,[]u x u x u
x A N ---= 21
(3) 计算通过K-L 变换的特征脸子空间
A 为10304×200矩阵,其自相关矩阵A A R T =⨯200200,计算得到矩阵的特征值i l ,对应于i l 的特征向量为i v ,为。对特征值按大小降序排列,依照公式