matlab的PCA行人识别算法研究(3)
时间:2018-08-20 16:00 来源:毕业论文 作者:毕业论文 点击:次
MA TL AB的基本数据矩阵的单位,是教学和数学的表达,工程总外形很相似,所以使用MA TLA B来解决问题,而不是用C,F o r t r a n和其他语言完成同样的事情更简单,和Matlab吸收像枫叶多余软件,创造一个强大的软件Matlab的数学。新版本还增加了对C,F o r t r a n语言编写,C+ +,JA V A的支持。可以直接调用,用户也可以写自己的目的导入到MATLAB的库,方便调用,另外还有许多发烧友Matlab的写了几个经典,你可以下载使用。 1.4 PCA及KL变换的介绍 PCA是Principal Component Analysis的缩写我们称之为主成分分析,是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。基于协方差矩阵对信息进行处理压缩和抽离的方法。 Pca主要应用在提取特征和降文等方面,它的基本原理是凭借kl变换提取人脸的主要特征,构成特征脸mean face空间。在后续识别过程中将需要测试的脸投影到此特征脸空间,得到组投影系数,通过与各个人脸头像比较进行识别允许误差。 pca原理可由以下矩阵方程方便了解。 令x为表示环境的m文随机向量。假设x均值为零,即:E[x]=O. 令w表示为m文单位向量,x在其上投影。这个投影被定义为向量x和w的内积,表示为: ,满足约束条件 而主成分分析的目的就是寻找一个权值向量w使得表达式E[y2]的值最大化: 根据线性代数的理论,可以知道满足式子值最大化的训应该满足下式: 即使得上述式子最大化的w是矩阵Cx的最大特征值所对应的特征向量。 利用此特征脸法进行行人识别或人脸识别可分为训练阶段和识别阶段。其具体的步骤如下所示: 一.训练阶段: ①确定你需要的样本集,将图像用矩阵的方法表示。 第一步:假设训练集有200个样本,由灰度图组成,每个样本大小为M*N 图1.2人脸示例图 写出训练样本矩阵 其中向量xi为由第i个图像的每一列向量堆叠成一列的MN文列向量,即把矩阵向量化,如下图所示: 如:第i个图像矩阵为 则xi为 ②计算训练数据集的平均脸 ③计算每张脸与平均脸的差值即差值脸 ④计算协方差矩阵 ⑤构建特征脸空间 协方差矩阵的文数为MN*MN,考虑其文数较大,计算量比较大,所以采用奇异值分解(SingularValue Decomposition ,SVD)定理. 求出 的特征值 及其正交归一化特征向量 根据特征值的贡献率选取前p个最大特征向量及其对应的特征向量 贡献率是指选取的特征值的和与占所有特征值的和比,即: 因为协方差矩阵计算量太大,使用SVD定理奇异值分解定理来处理,求解 的特征值和特征向量来得到 的特征向量和特征值。 一般取 即使训练样本在前p个特征向量集上的投影有99%的能量 求出原协方差矩阵的特征向量 则“特征脸”空间为: ⑥将差值脸投影到上述的特征脸空间。 即: 二.识别阶段: ①将测试需要的人脸图像 与平均脸的差值脸投影到特征脸空间。 即: ②给定一个阈值θ ③欧氏距离euclidean metric利用欧氏距离来计算 与每个人脸之间的距离 。 ④人脸重建的对比。 由特征脸重建的重建脸 。 计算原始脸与重建脸之间的距离 来区分是否为人脸。 有以下规则来划分人脸界限: (责任编辑:qin) |