1、模式识别大作业班级:09030901题目:基于KL变换的人脸识别姓名:黎 照 学号:2009302320姓名:陈升富 学号:2009302313姓名:益 琛 学号:2009302311日期:2012/4/25【摘要】本次实验论述了K_L变换在人脸识别中的应用,主要介绍人脸识别过程中的每个环节,整个过程包括人脸图像的采集、预处理、特征提取到训练和识别。图像的采集预处理特征提取人脸识别一、基本要求从网上下载人脸图像,构建人脸训练数据库和测试数据库,采用K-L变换进行特征脸提取,并实现人脸识别。通过K-L变换在人脸识别中的应用,加深对所学内容的理解和感性认识。二、主要思想基于特征脸的人脸识别方法是基
2、于K-L变换的人脸识别方法,K-L变换是图像压缩的一种最优正交变换。高维的图像空间经过K-L变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以转成低维线性空间。如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想三、 实验原理1、K-L变换设n维随机向量其均值向量,相关矩阵,协方差矩阵,经正交变换后产生向量。设有标准正交变换矩阵T,(即 TT=I), (称为的K-L展开式)取前m项为的估计值 其均方误差为在TT=I的约束条件下,要使均方误差为此设定准则函数由 得 ,即 表明: li是的特征值,而是相应的特征向量。利用上式有:用
3、“截断”方式产生x的估计时,使均方误差最小的正交变换矩阵是其相关矩阵Rx的前m个特征值对应的特征向量构成的。2、构造参数模型使用K-L变换不仅能起到降维与压缩数据的作用,更重要的是每个描述量都有明确的意义,因而改变某一个参数就可以让图像按需要的方向变化。在没有使用K-L变换的原始数据集中对图像的描述量是每个像素的灰度值,而孤立的改变某个像素的灰度值是没有意义的。而在使用K-L变换后,每个描述量都有其各自的作用。因此通过改变这些参数的值就可以实现对模型的有效描述,这在图像生成中很有用。因此利用K-L变换构造出可控制的,连续可调的参数模型在人脸识别方面的应用十分有效 3、人脸识别利用K-L变换进行
4、人脸图象识别原理:第一步:搜集要识别的人的人脸图象,建立人脸图象库第二步:利用K-L变换确定相应的人脸基图象,再反过来用这些基图象对人脸图象库中的所有人脸图象进行K-L变换,从而得到每幅图象的参数向量并将每幅图的参数向量存起来第三步:先对一张所输入的脸图象进行必要的规范化,再进行K-L变换分析,得到其参数向量第四步:将这个参数向量与库中每幅图的参数向量进行比较,找到最相似的参数向量,也就等于找到最相似的人脸,从而认为所输入的人脸图象就是库内该人的一张人脸, 完成了识别过程。搜集人脸图象,建立人脸库确定基图象,并用基图象对所有人脸进行K-L变换对输入的图象规范化并进行K-L变换,得到其参数向量正
5、确错误将参数向量与库中参数向量比较比对四、 实验源代码1、特征人脸 function = eigface()allsamples=; for i=1:7a=imread( strcat( C:UserslenvoDesktop图 , ,num2str(i), .BMP ) ); b=a( 1:100*100 ); b=double(b);allsamples= allsamples; b ; endsamplemean=mean(allsamples); for i=1:7xmean(i,:)=allsamples(i,:)-samplemean;end;sigma=xmean*xmean;
6、v d=eig(sigma);d1=diag(d);dsort = flipud(d1);vsort = fliplr(v);dsum = sum(dsort);dsum_extract = 0;p = 0;while( dsum_extract/dsum 0.9) p = p + 1; dsum_extract = sum(dsort(1:p);endp=6;base = xmean * vsort(:,1:p) * diag(dsort(1:p).(-1/2);for ( k=1:p ) hape( base(:,k), 100,100); newpath = C:UserslenvoDe
7、sktoptest int2str(k) .jpg; imwrite( mat2gray(temp), newpath );endavg = reshape(samplemean, 100,100);imwrite(mat2gray(avg), C:UserslenvoDesktoptestaverage.jpg);save(C:UserslenvoDesktoptesteigface.mat, base, samplemean);2、识别allsamples=; for i=1:7a=imread( strcat( C:UserslenvoDesktop 图 , ,num2str(i), .
8、BMP ) ); b=double(b); allsamples= allsamples; b ; endsamplemean=mean(allsamples); for i=1:7 xmean(i,:)=allsamples(i,:)-samplemean; end;sigma=xmean*xmean; v d=eig(sigma);d1=diag(d);dsort = flipud(d1);vsort = fliplr(v);dsum = sum(dsort);dsum_extract = 0;p = 0;while( dsum_extract/dsum 0.9) p = p + 1; d
9、sum_extract = sum(dsort(1:p);endi=1;base = xmean * vsort(:,1:p) * diag(dsort(1:p).(-1/2);allcoor = allsamples * base; accu = 0; for j=1:3 a=imread( strcat( C:UserslenvoDesktoptest3 , ,num2str(i), .BMP ) ); b=a(1:10000); b=double(b); tcoor= b * base; for k=1:7 mdist(k)=norm(tcoor-allcoor(k,:); end; d
10、ist,index2=sort(mdist); 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; if class=i accu=accu+1; end; end; accuracy =accu/7 3重构f
11、unction = Reconstruct()load C:UserslenvoDesktoptesteigface.mat;a=imread(C:UserslenvoDesktoptest210.bmp); b=a( 1:100*100 ); b=double(b);b=b-samplemean;c = b * base; t = 2;temp = base(:,1:t) * c(1:t);temp = temp + samplemean;imwrite(mat2gray(reshape(temp, 100,100),C:UserslenvoDesktop1.jpg)t = 4;temp =
12、 base(:,1:t) * c(1:t);temp = temp + samplemean;imwrite(mat2gray(reshape(temp, 100,100),C:UserslenvoDesktop2.jpg);t = 6;temp = base(:,1:t) * c(1:t);temp = temp + samplemean;imwrite(mat2gray(reshape(temp, 100,100),C:UserslenvoDesktop3.jpg);五、实验结果给出ORL人脸数据库,共有400幅人脸图像(40人,每人10幅,大小为92*112象素)。其中第一个人的图像如下
13、图: 选取数据库中的部分样本(每个人的前5张图片)作为训练样本,其余作为未知的测试样本。从训练样本中得到KL变换矩阵,然后对训练样本和测试样本都进行变换,用变换后的数据作最近邻识别,距离可以为对应灰度值之差的平方和,统计识别率。 通过取不同的前N个最大特征向量,如最大的10个表示为190:200,得到如下识别率的数据:190:200 识别率为: 0.9100180:200 识别率为: 0.9350170:200 识别率为: 0.9450160:200 识别率为: 0.9500150:200 识别率为: 0.9450140:200 识别率为: 0.9500130:200 识别率为: 0.9400
14、120:200 识别率为: 0.9500110:200 识别率为: 0.9450100:200 识别率为: 0.9450 50:200 识别率为: 0.950020:200 识别率为: 0.96001:200 识别率为: 0.9600当最大特征向量达到30个以后识别率已经固定在0.9450。再增加提高已经不大。六、心得体会人脸识别是当前人工智能和模式识别的研究热点,但同时人脸识别也是一个复杂的具有挑战性的模式识别问题。经过这次实验给出我的不少研究启发:第一,在研究课题之前,一定要选择好研究的图像目标。其实也可以是大家都在研究的一类物体,并不需要标新立异,当然如果你有针对这类目标的好的检测方法,那也是惟愿如此;第二,并不一定要求你的方法放之四海皆准,只需要对某一类目标有效果,同样是能力的一种体现;第三,多尝试从数学的角度去理解图像的机理,从美术家的角度去理解图像的构造。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2