计算机视觉基础大作业人脸识别_第1页
计算机视觉基础大作业人脸识别_第2页
计算机视觉基础大作业人脸识别_第3页
计算机视觉基础大作业人脸识别_第4页
计算机视觉基础大作业人脸识别_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上计算机视觉基础期末大作业 题目:基于matlab的人脸识别系统设计 物联网工程 学院 计算机科学与技术 专业学 号 学生姓名 任课教师 二一六年六月专心-专注-专业目录 摘要 人脸识别系统以人脸识别技术为核心,是一项新兴的生物识别技术,是当今国际科技领域攻关的高精尖技术。这次设计主要是完成了基于主成分分析(PCA)方法的人脸识别,PCA方法的基本原理是:利用离散K-L变换提取人脸的主要成分,构成特征脸空间,识别时把测试样本投影到该空间,构成一组投影系数,通过与特征脸的距离比较,距离最小的特征脸对应的即是识别结果。基于PCA的人脸识别其实一种统计性的模板比配方法,原理简

2、单,易于实现,但也有不足,它的识别率会随着关照,人脸角度,训练样本集的数量而变换,但仍不失为一种比较好的方法。关键词:人脸识别、PCA、特征提取1.概述1.1 人脸识别技术 人脸识别技术是采用某种技术和手段对人的身份进行标识,从而依据该标识对人进行身份识别,以达到监督、管理和识别目的的一种技术。近年来由于在公安罪犯识别、安全验证、安全验证系统、信用卡验证等方面的巨大应用前景而越来越成为当前模式识别和人工智能领域的一个研究热点。 人脸识别基本上可分为两个方面:一是给定一幅待识别人脸图像,判别它是否是某人,即通常所说的身份验证,这是个“一对一”的两分类问题;另一个是给定一幅待识别人脸图像,判断它是

3、谁,即通常所说的身份识别,这是一个一对多的问题 基于人脸图像整体特征的人脸识别方法由于不需要提取人脸图像中器官的具体信息,而且充分利用到人脸图像本身具有的灰度信息,因此可获得更高的识别性能。基于人脸图像整体特征的人脸识别方法主要有特征脸法,最佳鉴别矢量集法,贝叶斯法,基于傅立叶变换特征法,弹性图匹配法,相关方法,线性子空间法,可变形模型法和基于人工神经网络的方法等等。其中弹性图匹配法和傅里叶不变特征法侧重于表述人脸图像;最佳鉴别矢量集法,贝叶斯法,基于人工神经网络的方法侧重于分类;特征脸法和线性子空间法等侧重于人脸图像的重构。1.2人脸识别基本方法1.2.1几何特征的人脸识别几何特征可以是眼、

4、鼻、嘴等的形状和它们之间的几何关系(如相互之间的距离)。这些算法识别速度快,需要的内存小,但识别率较低。 1.2.2基于特征脸(PCA)的人脸识别特征脸方法是基于KL变换的人脸识别方法,KL变换是图像压缩的一种最优正交变换。的图像空间经过KL变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以低维线性空间。如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想。这些方法需要较多的训练样本,而且完全是基于图像灰度的统计特性的。目前有一些改进型的特征脸方法,也是本文所要讲述的的方法。1.2.3神经网络的人脸识别神经网络的输入可以是降低

5、分辨率的人脸图像、局部区域的自相关函数、局部纹理的二阶矩等。这类方法同样需要较多的样本进行训练,而在许多应用中,样本数量是很有限的。 1.3人脸识别新技术 传统的主要是基于可见光图像的人脸识别,这也是人们最熟悉的识别方式,已有30多年的研发历史。但这种方式有着难以克服的缺陷,尤其在环境光照发生变化时,识别效果会急剧下降,无法满足实际系统的需要。解决光照问题的方案有三维图像人脸识别,和热成像人脸识别。但目前这两种技术还远不成熟,识别效果不尽人意。 最近迅速发展起来的一种解决方案是基于主动近红外图像的多光源人脸识别技术。它可以克服光线变化的影响,已经取得了卓越的识别性能,在精度、稳定性和速度方面的

6、整体系统性能超过三维图像人脸识别。这项技术在近两三年发展迅速,使人脸识别技术逐渐走向实用化。 2.人脸识别功能的实现2.1 PCA方法基本原理设人脸图像为二维灰度图像,用维列向量表示。人脸图像训练集为,其中为训练集中图像总数。根据训练集构造总体散布矩阵:其中为所有训练样本的平均向量:选取一组标准正交且使得准则函数式(3.3)达到极值的向量作为投影轴,其物理意义是使投影后所得特征的总体散布量(类间散布量与类内散布量之和)最大。 其等价于:上式即为矩阵的Rayleig熵,由Rayleigh熵7的极值性质,最优投影轴可取为的个最大的特征值所对应的标准正交的特征向量。对于人脸图像,总体散布矩阵的大小为

7、,对它求解特征值和特征向量是很困难的,由奇异值定理,一种取而代之的方法是解个较小的矩阵。首先计算矩阵的特征向量:、矩阵的特征向量:由差值图像与线性组合得到取的前个最大特征值的特征向量计算特征脸,由门限值确定:2.2 基于主成分分析法的人脸识别完整的PCA人脸识别的应用包括四个步骤:人脸图像的预处理;读入人脸库,训练形成特征脸空间;把训练样本和测试样本投影到特征脸空间中;选择一个距离函数按照某种规则进行识别。下面看一下详细的过程:2.2.1 读入人脸库 这次设计中选用英国剑桥大学人脸库即ORL人脸库,此人脸数据库有40人,每人有10幅图像。这些图像具有以下特点:有些图像拍摄于不同的时期;人的脸部

8、表情和脸部细节有着不同程度的变化,比如,笑或不笑,眼睛或睁或闭,戴或不戴眼镜;人脸姿态也有相当程度的变化,深度旋转和平面旋转可达20。;人脸的尺度也有多达10%的变化;图像的分辨率是 112x92。在ORL人脸库中选出每个人的前5幅图像作为训练图像,构成一个200幅图像的训练集,剩下的200幅图像构成测试集。每幅图像按列相连构成10304维列向量,读入的训练样本集就构成10304×200的矩阵。2.2.2 计算K-L变换的生成矩阵以训练样本集的总体散布矩阵为生成矩阵,即:其中为第幅训练样本的图像向量,为训练样本集的均值向量,训练样本的总数为200。为了求的生成矩阵的特征值和正交归一化

9、特征向量,由于矩阵维数过高,计算量太大,可以引进奇异值分解定理(SVD定理)。图2.1 平均脸2.2.3 求解特征值和特征向量 SVD定理的定义:若矩阵,则存在正交矩阵,使得,即,则称为奇异值分解。其中,为的奇异值,是或的特征值的平方根,即。 奇异值向量具有良好的稳定性,所以它对图像噪音、图像光照条件引起的灰度变化具有不敏感的特性。计算特征值和特征向量的基本步骤是:(1)创建协方差矩阵;(2)计算协方差矩阵的特征值和 特征向量;(3)按特征值由小到大顺序排列特征值和特征向量。 这些特征向量对应的图像很像人脸,所以被称为“特征脸”。有了这样一个由“特征脸”组成的降维子空间,任何一幅图像都可以向其

10、投影并获得一组坐标系数,这组坐标系数表明了该图像在“特征脸”子空间的位置,从而可以作为人脸识别的依据。 选择了其中30个特征脸如下图所示图2.2 特征脸2.2.4 样本投影与识别得到特征脸子空间以后,就要把训练样本和测试样本都投影到特征脸子空间,每幅图像得到一组坐标系数,对应子空间中的一个点。任何一幅图像都可以有这组特征脸线性组合,加权系数就是K-L变换的系数。2.3 基于PCA算法人脸识别的matlab实现用matlab语言仿真PCA算法的人脸识别,分为以下几个步骤:2.3.1 读取人脸库allsamples=; % allsample用于存储读取的人脸图像矩阵for i=1:40 for

11、j=1:5 a=imread (strcat ('e: ORLs', num2str (i),'', num2str (j),'.pgm'); b=a (1:112*92); b=double (b); allsamples= allsamples; b; endEnd2.3.2 利用生成矩阵求特征值和特征向量samplemean=mean (allsamples);for i=1:200 xmean (i, :) =allsamples (i, :)-samplemean;endsigma=xmean*xmean'v d=eig (si

12、gma);2.3.3 选取阈值提取训练样本特征 上面得到的200个特征向量,虽然已经比较小了,但计算量还是比较大。其实不必要保留所有的特征向量,较大特征值对应的特征向量已经能够提供足够多的用于识别的特征。一般是通过计算阈值进一步降低维数,这种方法的具体做法是把特征向量和特征值从大到小排列,选取特征值占总特征值之和的比值大于一定值所对应的特征向量。阈值一般是取0.9。计算公式是。但发现在这里取0.91更好,识别率更高一点。通过程序运行可以发现,阈值选择为0.91时特征值个数减少为75个,就是说很多特征值是很小的,数值小的特征值对应的特征向量对识别只能提供很少的信息。所以通过阈值选择,计算量减少了

13、很多。d1=diag (d);dsort=flipud (d1);vsort=fliplr (v);dsum=sum (dsort);dsum_extract=0;p=0;while (dsum_extract/dsum<0.91) p=p+1; dsum_extract=sum (dsort (1: p);endbase = xmean' * vsort(:,1:p) * diag(dsort(1:p).(-1/2);allcoor=allsamples*base;2.3.4 选取测试样本进行识别 测试样本识别的过程就是把测试图像投影到特征脸子空间,得到一组特征系数,然后按照欧

14、式距离的最小近邻法与训练样本集投影得到的系数匹配,找到距离最小的样本就是识别的结果。但为了克服单个样本的偶然性,这里选择最近的3个样本,然后把待识别人脸判别为这3个样本中同类样本最多的那个类别。a=imread (strcat ('e: ORLs', num2str (i),'', num2str (j),'.pgm');b=a (1:10304);b=double (b);tcoor=b*base; for k=1:200 mdist (k)=norm(tcoor-allcoor(k,:);end;dist, index2=sort (mdis

15、t);class1=floor (index2 (1)-1)/5) +1;class2=floor (index2 (2)-1)/5) +1;class3=floor (index2 (3)-1)/5) +1;if class1=class2 && class2=class3 class=class1;elseif class1=class2 class=class1;elseif class2=class3 class=class2;end;2.4 人脸识别代码clear allclcallsamples=; % the array allsamples is used to

16、 restore all picturesfor i=1:40 for j=1:7 a=imread(strcat('e:ORLs',num2str(i),'',num2str(j),'.pgm'); b=a(1:112*92); b=double(b); allsamples=allsamples;b; endendsamplemean=mean(allsamples); %average the picturesfor i=1:280 xmean(i,:)=allsamples(i,:)-samplemean;endsigma=xmean*x

17、mean' %obtain the M*M arrayv d=eig(sigma);%vproduces a diagonal matrix D of eigenvalues and a % full matrix V whose columns are the corresponding eigenvectors so %that X*V = V*D.d1=diag(d);%obtain the diagonal of the sigmadsort=flipud(d1);vsort=fliplr(v);dsum=sum(dsort);dsum_extract=0;p=0;while(

18、dsum_extract/dsum<0.90) p=p+1; dsum_extract=sum(dsort(1:p);endbase = xmean' * vsort(:,1:p) * diag(dsort(1:p).(-1/2);allcoor=allsamples*base;accu = 0; for i=1:40 for j=8:10 a=imread(strcat('e:ORLs',num2str(i),'',num2str(j),'.pgm'); b=a(1:10304); b=double(b); tcoor=b*bas

19、e; for k=1:280 mdist(k)=norm(tcoor-allcoor(k,:); end;dist,index2=sort(mdist); class1=floor( (index2(1)-1)/7)+1; class2=floor(index2(2)-1)/7)+1; class3=floor(index2(3)-1)/7)+1; if class1=class2 && class2=class3 class=class1; elseif class1=class2 class=class1; elseif class2=class3 class=class2

20、; end; if class=i accu=accu+1; end; end;end;accuracy=accu/120 2.5 实验结果及分析 对于ORL人脸库,选用每人前5幅图像作为训练样本,后5幅图像作为测试样本,训练样本和测试样本总数均为200,阈值选为0.91。程序运行可得识别率为0.885。选取的特征空间的维数是88。PCA算法是基于人脸图像整体特征的人脸识别方法,影响识别率的因素主要有很多,如人脸库的差异,算法的差异,参数的选择,都会产生很大的影响。但现在主要考虑两点因素:(1)阈值的选择,即特征空间的维数;(2)训练样本的数量。下面就看一下选择不同的参数时候他们各自对识别率的

21、影响如表2.1所示。 表2.1 阈值及样本数量对识别率的影响每人7幅每人6幅每人5幅每人4幅每人3幅每人2幅每人1幅0.200.35830.36880.32000.35000.36070.34690.32220.400.65000.63120.61500.56670.57140.53750.42500.600.86670.83130.76500.71670.70360.66560.60830.800.93330.89380.86000.80830.76430.73440.64440.850.94170.88750.86000.83330.78570.73750.66390.880.94170.

22、90630.87000.84170.78930.75000.66390.900.94170.90630.88000.84580.78930.75000.67780.920.93330.89380.88000.83330.79640.76250.68060.940.93330.90000.87500.82920.79640.75310.69720.960.93330.89380.88000.82500.78570.74690.6944从上表可以看出当阈值一定时,训练样本数的增加会使识别率提高,大概每人每增加一幅图像,识别率提高4个百分点。在训练样本数一定时,阈值的改变也相应的影响识别率,阈值太小

23、的时候识别率显然很低,大概阈值到0.8以上时,识别率变化不大,这就说明,降低特征矩阵维数不但可以减少计算量,而且基本上不会影响识别率太多。 3.实验结果及实现功能MATLAB提供了专门的GUI设计工具图形用户界面开发环境(GUIDE),为了便于操作及演示的需要,利用GUIDE设计了可视化界面。3.1 文件部分 “文件”菜单中有“打开”、“保存”、“退出”二级子菜单,分别用于打开,保存处理后的图像和退出界面操作。3.2 图像预处理部分 “图像处理”菜单主要是完成一些基本的图像处理功能主要有两个作用:一个是消除或减少噪声,改善图像质量;另一个是模糊图像,使图像看起来柔和自然。3.3 训练部分3.4识别部分 4.总结4.1人脸识别的困难性 人脸识别被认为是领域甚至领域最困难的研究课题之一。人脸识别的困难主要是人脸作为生物特征的特点所带来的。 4.1.1相似性 不同个体之间的区别不大,所有的人脸的结构都相似,甚至人脸器官的结构外形都很相似。这样的特点对于利用人脸进行定位是有利

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论