1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码

【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码

时间:2020-08-03 22:43:33

相关推荐

【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码

基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)

大家好,今天给大家介绍基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)。

对于一幅图像可以看作一个由像素值组成的矩阵,也可以扩展开,看成一个矢量,如一幅N*N 象素的图像可以视为长度为N2 的矢量,这样就认为这幅图像是位于N2 维空间中的一个点,这种图像的矢量表示就是原始的图像空间,但是这个空间仅是可以表示或者检测图像的许多个空间中的一个。不管子空间的具体形式如何,这种方法用于图像识别的基本思想都是一样的,首先选择一个合适的子空间,图像将被投影到这个子空间上,然后利用对图像的这种投影间的某种度量来确定图像间的相似度,最常见的就是各种距离度量。因此,本项目采用PCA算法并利用GUI实现人脸识别。

文章目录:

基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)1、项目简介2、难度指数3、运行环境:4、项目详解:5、源码下载:

1、项目简介

主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。

在统计学中,主成分分析(principal components analysis,PCA)是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征.这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面.


2、难度指数

本项目难度:中等难度

适用场景:相关题目的毕业设计及相关领域的应用研究


3、运行环境:

环境配置:

本项目所使用的MATLAB版本为MATLAB 7.8.0(Ra)

注:可适配绝大部分matlab版本

项目技术:

PCA+主成分分析法+图像处理技术+人脸识别算法等等


4、项目详解:

提示:以下为项目的详细介绍,项目源码及项目设计文档下载地址见文末。

4.1主成分分析法算法原理

主成分分析法是一种降维的统计方法,它借助于一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机向量,这在代数上表现为将原随机向量的协方差阵变换成对角形阵,在几何上表现为将原坐标系变换成新的正交坐标系,使之指向样本点散布最开的p 个正交方向,然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统,再通过构造适当的价值函数,进一步把低维系统转化成一维系统。

4.1.1主成分分析的基本思想

在实证问题研究中,为了全面、系统地分析问题,我们必须考虑众多影响因素。这些涉及的因素一般称为指标,在多元统计分析中也称为变量。因为每个变量都在不同程度上反映了所研究问题的某些信息,并且指标之间彼此有一定的相关性,因而所得的统计数据反映的信息在一定程度上有重叠。在用统计方法研究多变量问题时,变量太 多会增加计算量和增加分析问题的复杂性,人们希望在进行定量分析的过程中,涉及的变量较少,得到的信息量较多。主成分分析正是适应这一要求产生的,是解决这类题的理想工具。

同样,在科普效果评估的过程中也存在着这样的问题。科普效果是很难具体量化的。在实际评估工作中,我们常常会选用几个有代表性的综合指标,采用打分的方法来进行评估,故综合指标的选取是个重点和难点。如上所述,主成分分析法正是解决这一问题的理想工具。因为评估所涉及的众多变量之间既然有一定的相关性,就必然存在着起支配作用的因素。根据这一点,通过对原始变量相关矩阵内部结构 的关系研究,找出影响科普效果某一要素的几个综合指标,使综合指标为原来变量的线 性拟合。这样,综合指标不仅保留了原始变量的主要信息,且彼此间不相关,又比原始 变量具有某些更优越的性质,就使我们在研究复杂的科普效果评估问题时,容易抓住主 要矛盾。

上述想法可进一步概述为:设某科普效果评估要素涉及个指标,这指标构 成的维随机向量为。对作正交变换,令,其中为正交阵,的各分量是不相关的,使得的各分量在某个评估要素中的作用容易解释,这就使得我们有可能从主分量中选择主要成分,削除对这一要素影响微弱的部分,通过 对主分量的重点分析,达到对原始变量进行分析的目的。的各分量是原始变量线性组合,不同的分量表示原始变量之间不同的影响关系。由于这些基本关系很可能与特定的作用过程相联系,主成分分析使我们能从错综复杂的科普评估要素的众多指标中,找出一些主要成分,以便有效地利用大量统计数据,进行科普效果评估分析,使我们在研究科普效果评估问题中,可能得到深层次的一些启发,把科普效果评估研究引向深入。

例如,在对科普产品开发和利用这一要素的评估中,涉及科普创作人数百万人、科 普作品发行量百万人、科普产业化(科普示范基地数百万人)等多项指标。经过主成分分析计算,最后确定个或个主成分作为综合评价科普产品利用和开发的综合指标,变量数减少,并达到一定的可信度,就容易进行科普效果的评估。

4.1.2主成分分析的主要作用

概括起来说,主成分分析主要由以下几个方面的作用。

(1)主成分分析能降低所研究的数据空间的维数。即用研究维的空间代替维的空间,而低维的空间代替高维的空间所损失的信息很少。即使只有一个主成分,这个成分仍是使用全部变量(个)得到的。例如要计算的均值也得使用全部的均值。在所选的前个主成分中,如果某个的系数都近似于零,就可以把这个删除,这也是一种删除多余变量的方法。 有时可通过因子负荷的结论,弄清变量间的某些关系。

(2)主成分分析法是多维数据的一种图形表示方法。我们知道,当维数大于时便不能画出几何图形,多元统计研究的问题大都多于个变量。要把研究的问题用图形表示出来,就要使变量少于个,也就是维数小于。这样,就要经过主成分分析,选取前两个主成分或其中某两个主成分,画出样本在二维平面上的分布情况,由图形可直观地看出各样本在主分量中的地位,进而还可以对样本进行分类处理,可以由图形发现远离大多数样本点的离群点。由主成分分析法构造回归模型,即把各主成分作为新的自变量代替原来自变量作回归分析。

(3)用主成分分析筛选回归变量。回归变量的选择有着重大的实际意义,为了使模型本身易于作结构分析、控制和预报,最好从原始变量所构成的子集合中选择最佳变量,构成最佳变量子集合。用主成分分析筛选变量,可以用较少的计算量来选择变量,获得选择最佳变量子集合的效果。

4.1.2主成分分析法的计算步骤

1、原始指标数据的标准化采集p 维随机向量x = (x1,X2,…,Xp)T)n 个样品xi = (xi1,xi2,…,xip)T ,i=1,2,…,n,

n>p,构造样本阵,对样本阵元进行如下标准化变换:

其中

得标准化阵Z。

2、对标准化阵Z 求相关系数矩阵

其中,

3、解样本相关矩阵R 的特征方程得p 个特征根,确定主成分 ,按

确定m 值,使信息的利用率达85%以上,对每个λj, j=1,2,…,m, 解方程组Rb = λjb得单位特征向量 。

4、将标准化后的指标变量转换为主成分

U1称为第一主成分,U2 称为第二主成分,…,Up 称为第p 主成分。

5 、对m 个主成分进行综合评价

对m 个主成分进行加权求和,即得最终评价值,权数为每个主成分的方差贡献率。

4.2 PCA算法的功能实现

4.2.1人脸空间的建立

假设一幅人脸图像包含N个像素点,它可以用一个N维向量Γ表示。这样,训练样本库就可以用Γi(i=1,…,M)表示。 协方差矩阵C的正交特征向量就是组成人脸空间的基向量,即特征脸。

将特征值由大到小排列:λ1≥λ2≥…≥λr,其对应的特征向量为μk。这样每一幅人脸图像都可以投影到由u1,u2,…,ur张成的子空间中。因此,每一幅人脸图像对应于子空间中的一点。同样,子空间的任意一点也对应于一幅图像。

4.2.2特征向量的选取

虽然协方差矩阵Ω最多有对应于非零特征值的k(k远小于M)个特征向量,但是通常情况下,k仍然很大,而事实上,根据应用的要求,并非所有的特征向量都有需要保留,而特征空间投影的计算速度是直接与创建子空间所用的特征向量的数目相关,若考虑到计算时间的因素,可以适当的减去一些信息量少的特征向量,而且,去掉这些特征向量之后不一定不利于分类结果,有的情况下反而能够提高识别性能。

4.2.3人脸识别

有了这样一个由"特征脸"张成的降维子空间,任何一幅人脸图像都可以向其投影得到一组坐标系数,这组系数表明了该图像在子空间中的位置,从而可以作为人脸识别的依据。换句话说,任何一幅人脸图像都可以表示为这组"特征脸"的线性组合,其加权系数即是K-L变换的展开系数,也可以称为该图像的代数特征。因此,在获得特征脸之后,就可以对每一类别的典型样本进行投影,由此得到每个人脸的投影特征从而构成人脸特征向量,作为下一步识别匹配的搜索空间。

输入图像及其在人脸空间上的投影(重构图像),人脸图像在人脸空间中的投影变化不明显而非人脸图像的投影变化明显。因此,检测一幅图像中是否存在人脸的基本思想是,计算该图像中任意位置处的局部图像与人脸空间之间的距离ε。其中,ε是局部图像是否为人脸的度量。因此,计算给定图像任意一点上的ε,就可以得到一映射图ε(x,y)。

4.3 实验及结果分析

实验在两个图库上测试,一个是自建人脸库,该库包含10个不同人物,每人有5张不同表情和姿态下的图片,总共50幅。另一个是ORL人脸库,该库包含40个不同人物,每人有10张图片,共400幅。用训练样本进行测试,识别率为100%。而随着训练样本的增加,识别率会有所提升,由于标准人脸库在采集时考虑了多种因素,人脸图像比较标准,所以识别率较自建的人脸库识别率高,另外因为自建人连库的图片太少,即训练样本太少,也会对结果产生影响,效果不是很好。进行直方图均衡化比灰度归一化的识别率高,预处理对识别的效果起着至关重要的作用。而此次实验的预处理还比较粗糙,PCA也只是起到了简单的特征脸降维的作用,要有更好的效果,还必须寻找更好的特征表达,使得可以尽量消除光照、表情、遮掩和姿势的影响。

图2 训练样本在坐标系下的投影矩阵

下图为测试流程截图:

图3 用户使用界面

图4 选择图片

图5 图片选择后

图6 查找后

4.4 总结

本项目采用了Matlab中的GUI(图形用户界面)为主要表现形式,GUI比单纯的M文件会有更强的应用、测试及表现效果,从使用的角度考虑,为库中的每个人取了一个名字,最终查找到时会在标题处显示其名字,下方显示库中与测试图片最接近的库图片。因为是利用了标准人脸库,并且识别的人数不是很多,所以最终的结果还是非常不错的,识别率可达100%。

4.5部分程序源码

%% PCA人脸识别global im;%使用全局变量imgdata=[];%训练图像矩阵for i=1:10for j=1:5a=imread(strcat('C:\Users\dell\Desktop\ORL\s',num2str(i),'\',num2str(j),'.bmp'));b=a(1:112*92); % b是行矢量 1×N,其中N=10304b=double(b);imgdata=[imgdata; b]; % imgdata 是一个M * N 矩阵,imgdata中每一行数据一张图片,M=50end;end;imgdata=imgdata'; %每一列为一张图片imgmean=mean(imgdata,2); % 平均图片,N维列向量for i=1:50 minus(:,i) = imgdata(:,i)-imgmean; % minus是一个N*M矩阵,是训练图和平均图之间的差值end;covx=minus'* minus; % M * M 阶协方差矩阵[COEFF, latent,explained] = pcacov(covx'); %PCA,用协方差矩阵的转置来计算以减小计算量% 选择构成95%的能量的特征值i=1;proportion=0;while(proportion < 95)proportion=proportion+explained(i);i=i+1;end;p=i-1;% 训练得到特征脸坐标系i=1;while (i<=p && latent(i)>0)base(:,i) = latent(i)^(-1/2)*minus * COEFF(:,i); % base是N×p阶矩阵,用来进行投影,除以latent(i)^(1/2)是对人脸图像的标准化i = i + 1;end% 将训练样本对坐标系上进行投影,得到一个 p*M 阶矩阵为参考reference = base'*minus;%% 测试过程——在测试图片文件夹中选择图片,进行查找测试a=im;b=a(1:10304);b=double(b);b=b';object = base'*(b-imgmean);distance=100000;%最小距离法,寻找和待识别图片最为接近的训练图片for k=1:50 temp= norm(object - reference(:,k));if (distance > temp)which = k;distance = temp;end;end;%找出距离最近的图片所在的位置num1 = ceil(which/5);%第num1个文件夹num2 = mod(which,5);%第num2个图片文件if (num2 == 0)num2 = 5;end;I=imread(strcat('C:\Users\dell\Desktop\Face\s',num2str(num1),'\',num2str(num2),'.bmp'));%读取该图片axes( handles.axes2);%使用第2个axes


5、源码下载:

本项目及一些精选的matlab人脸识别项目源码如下,有需要的朋友可以点击进行下载

【老生谈算法】基于主成分分析PCA的matlab人脸识别系统设计与算法原理(论文+程序源码)——人脸识别算法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。