您好,欢迎访问三七文档
PCA算法•PCA是基于DKLT(离散K-L变换)的人脸识别方法,DKLT变换是图像压缩的一种最优正交变换,其生成矩阵一般为训练样本的总体散布矩阵。•PCA算法实现从高维人脸图像在低维空间的特征描述,实现人脸识别。具体方法•第一步:假设有N个样本,由灰度图组成,每个样本大小为M*N•①写出训练样本矩阵:X=(X1,X2,……,XN)T其中向量Xi为由第i个图像的每一列向量堆叠成一列的MN维列向量,即把矩阵向量化,如下图所示:如:第i个图像矩阵为123456789则Xi为147258369第二步:计算平均脸•计算图片的平均脸:NiXiN11E(x)第三步:计算差值脸计算每一张人脸与平均脸的差值di=Xi-E(x),i=1,2,……,N第四步:构建协方差矩阵TAAN1TdidiN1CN1iA=(d1,d2,……,dN)第五步:求协方差矩阵的特征值和特征向量,构造特征脸空间•①求出ATA的特征值及其正交归一化特征向量Vi•②根据特征值的贡献率选取前p个最大特征向量及其对应的特征向量•③贡献率是指选取的特征值的和与占所有特征值的和比,即:aiiNipii11i•一般取a=99%即使样本在前p个特征向量集上的投影有99%的能量•求出原协方差矩阵的特征向量uivi(i=1,2,……,p)则“特征脸”空间为:w=(u1,u2,……,up)Ai1第六步•将每一幅人脸与平均脸的差值脸矢量投影到“特征脸”空间,即),......,2,1(NidiTwi第七步:将待识别的人脸图像与平均脸的差值脸投影到特征空间,得到其特征向量表示:))((xETw第八步:定义阈值Njijiji,......,2,1,||},{||max21,第九步:采用欧式距离来计算与每个人脸的距离),......,2,1(||||22Niiii为了区分人脸和非人脸,还需要计算原始图像与由特征脸空间重建的图像之间的距离f22||||f其中:)(xEwf根据以下规则对人脸进行分类:1)若≥,则输入图像不是人脸图像;2)若,且,则输入图像包含未知人脸;3)若,且,则输入图像为库中第k个人的人脸。ii,≥ii,人脸识别•库图像识别:识别单幅训练库中的图像•检测识别:对单幅包含人上半身及其背景的大幅图像,先检测图像中包含的人脸,再进行识别•自动识别:从摄像头实时抓取图像,进行识别下一阶段工作安排•先学习掌握opencv编程,争取对opencv有一个大概的了解,方便后续工作的开展.•探索如何将人脸识别所需方法以opencv编程方式编译出来。
本文标题:PCA算法流程
链接地址:https://www.777doc.com/doc-3157832 .html