资源描述:
《基于matlab的人脸识别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、青岛大学电信互认课程设计本科课程设计题目:人脸识别算法的设计与实现学院:自动化工程学院专业:电子信息工程班级:01班学号:200740600129姓名:段宏儒指导教师:余俊2011年3月11日1青岛大学专业课程设计目录一、设计任务与要求…………………………………………………1二、主成分分析与人脸识别原理……………………………………1三、人脸识别系统设计与编程………………………………………2四、程序运行实例……………………………………………………5五、参考文献………………………………………………………61青岛大学专业课程设计一、设计任务与要求理解主成分分析方法的原理和基于主成分分析
2、方法的人脸识别方法。在同学间采集一定数量的人脸正面图像样本,运用MATLAB编程,设计人脸识别程序并使用采集样本检验程序的识别正确率。二、主成分分析与人脸识别原理人脸识别是一个活跃的研究领域,是人类视觉最杰出的能力之一。虽然人脸识别的准确性要低于虹膜、指纹的识别,但由于它的无侵害性和对用户最自然、最直观的方式,使人脸识别成为最容易被接受的生物特征识别方式。本征脸(eigenface)方法这种方法是人脸识别的基准技术,并已成为事实上的工业标准该方法基于主成分分析(PCA)PCA是将分散在一组变量上的信息集中到某几个综合指标(主成分)上的数学方法,实际上起着数据降维的作用,并保证降维
3、过程最大化保留原数据的差异这对最大化类间差异(即不同人之间的差异)并最小化类内差异(即同一人的不同图像间的差异)很有效用PCA将2维数据降到1维的例子,绿色点表示二维数据,PCA的目标就是找到这样一条直线,使得所有点在这条直线上的投影点之间的平均距离最大。也就是最大化地保留了原数据的差异性直接计算C的本征值和本征向量是困难的,可以通过对矩阵做奇异值分解间接求出m值的选择:7青岛大学专业课程设计三、人脸识别系统设计与编程Ⅰ、程序原理图Ⅱ、实验程序程序1功能:加载样本图片并处理function[X,W]=ImgLoad(dirName,peopleNum,photoNum);LONG
4、TH=112*92;%图片大小X=[];%声明fori=0:peopleNum-1forj=1:photoNum%photoName:照片名photoName=strcat(dirName,num2str(i),'',num2str(j),'.jpg');%以矩阵形式读入文件photo=imread(photoName);%生成列矩阵photoMatrix=reshape(photo,LONGTH,1);photoMatrix=double(photoMatrix);%存储列矩阵X=[X,photoMatrix];7青岛大学专业课程设计endend%清除无用变量clearpho
5、toNamephotophotoMatrix;averX=mean(X);%求均值averX=repmat(averX,LONGTH,1);%矩阵扩展X=X-averX;%每行减去均值clearaverX;[V,E]=eig(X'*X);%求特征向量W=X*V;%求特征矩阵W程序2功能:加载text文件函数functionTestMatrix=TestImgLoad(photoName);LONGTH=112*92;%图片大小photo=imread(photoName);TestMatrix=reshape(photo,LONGTH,1);TestMatrix=double(T
6、estMatrix);程序3功能:求距离functionD=getDistance(X,Y);D=X-Y;D=D'*D;程序4功能:求最小距离(即最匹配)functionI=getMinIndex(Y,Ytest);D=[];fori=1:100d=getDistance(Y(:,i),Ytest);D=[D,d];end[xI]=min(D);程序5主程序%样本存放目录IMGDIR='D:xiangcetrainumstr';7青岛大学专业课程设计%待测文件名(含目录)TESTFILE='D:xiangcetest1.jpg';%加载样本图片并处理[X,W]=Im
7、gLoad(IMGDIR,10,10);%获得样本数据库Y=W'*X;%加载待测数据Xtest=TestImgLoad(TESTFILE);%获得待测图像特征向量Ytest=W'*Xtest;%对比并获得最相近的标号Index=getMinIndex(Y,Ytest);clearYYtestWXXtest;%获取图像位置i=mod(Index,10);ifi==0i=10;endj=(Index-i)/10;%获取匹配文件名(含目录)name=strcat(IMGDIR,num2