1、特征人脸
function [] = eigface()
allsamples=[];
for i=1:7
a=imread( strcat( ‘C:\Users\lenvo\Desktop\图’ , ‘’ ,num2str(i), ‘.BMP’ ) );
b=a( 1:100100 );
b=double(b);
allsamples=[ allsamples; b ];
end
samplemean=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;
dsum_extract = sum(dsort(1:p));
end
p=6;
base = xmean’ * vsort(:,1:p) * diag(dsort(1:p).^(-1/2));
for ( k=1:p )
hape( base(:,k), 100,100);
newpath = [‘C:\Users\lenvo\Desktop\test’ int2str(k) ‘.jpg’];
imwrite( mat2gray(temp), newpath );
end
avg = reshape(samplemean, 100,100);
imwrite(mat2gray(avg), ‘C:\Users\lenvo\Desktop\test\average.jpg’);
save(‘C:\Users\lenvo\Desktop\test\eigface.mat’, ‘base’, ‘samplemean’);
2、识别
allsamples=[];
for i=1:7
a=imread( strcat( ‘C:\Users\lenvo\Desktop\ 图
’ , ‘’ ,num2str(i), ‘.BMP’ ) );
b=double(b);
allsamples=[ allsamples; b ];
end
samplemean=mean(allsamples);
for i=1:7
xmean(i,:)=allsamples(i,:)-samplemean;
end;
sigma=xmeanxmean’;
[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));
end
i=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:\Users\lenvo\Desktop\test3’ , ‘’ ,num2str(i), ‘.BMP’ ) );
b=a(1:10000);
b=double(b); tcoor= b * base;
for k=1:7
mdist(k)=norm(tcoor-allcoor(k,:));
end;
[dist,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 class1class2
class=class1;
elseif class2class3
class=class2;
end;
if class==i
accu=accu+1;
end;
end;
accuracy =accu/7
3.重构
function [] = Reconstruct()
load C:\Users\lenvo\Desktop\test\eigface.mat;
a=imread(‘C:\Users\lenvo\Desktop\test2\10.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:\Users\lenvo\Desktop\1.jpg)
t = 4;
temp = base(:,1:t) * c(1:t)’;
temp = temp + samplemean’;
imwrite(mat2gray(reshape(temp, 100,100)),‘C:\Users\lenvo\Desktop\2.jpg’);
t = 6;
temp = base(:,1:t) * c(1:t)’;
temp = temp + samplemean’;
imwrite(mat2gray(reshape(temp, 100,100)),‘C:\Users\lenvo\Desktop\3.jpg’);
给出ORL人脸数据库,共有400幅人脸图像(40人,每人10幅,大小为92*112象素)

通过取不同的前N个最大特征向量,如最大的10个表示为190:200,得到如下识别率的数据:
190:200 识别率为: 0.9100
180:200 识别率为: 0.9350
170:200 识别率为: 0.9450
160:200 识别率为: 0.9500
150:200 识别率为: 0.9450
140:200 识别率为: 0.9500
130:200 识别率为: 0.9400
120:200 识别率为: 0.9500
110:200 识别率为: 0.9450
100:200 识别率为: 0.9450
50:200 识别率为: 0.9500
20:200 识别率为: 0.9600
1:200 识别率为: 0.9600
当最大特征向量达到30个以后识别率已经固定在0.9450。再增加提高已经不大。

基于KL变换的人脸识别相关推荐

  1. 基于kl变换的人脸识别_简述几种人脸识别的主要方法

    人脸识别的方法很多,以下介绍一些主要的人脸识别方法.(1)几何特征的人脸识别方法几何特征可以是眼.鼻.嘴等的形状和它们之间的几何关系(如相互之间的距离).这些算法识别速度快,需要的内存小,但识别率较低 ...

  2. 基于K-L变换的人脸识别

    原理介绍 K-L变换是模式识别中常用的一种特征提取方法,出发点是从一组特征中计算出一组按重要性从大到小排列的新特征,它们是原有特征的线性组合,并且相互之间是不相关的,实现数据的降维. 在人脸识别中,可 ...

  3. KL变换生成人脸特征图

    近来课程上做了一个PCA生成特征脸的小工程,刚好实验室科研做不下去了就放松下写个博客梳理下吧,由于是用了KL变换,所以撒呼呼地去找背景知识科普时翻查了些KL散度的知识点,后来发现好像和KL变换关系不大 ...

  4. 基于全局信息的人脸识别总结

    一.           课题名称 基于全局信息的人脸识别算法研究 二.           课题的提出 在当今社会中,身份确认具有十分重要的价值.随着网络技术的发展,信息安全也显示出了前所未有的重要 ...

  5. 基于稀疏表示的人脸识别 (SRC,LASRC,RASL,MRR)

    FROM:http://blog.csdn.net/loadstar_kun/article/details/39453839 1.  问题背景 信号的稀疏表示并不是新的东西.我们很早就一直在利用这一 ...

  6. 开发基于深度学习的人脸识别【考勤/签到】系统

    开发基于深度学习的人脸识别[考勤/签到]系统 人脸识别介绍 平台环境需求 技术点 系统流程 细节设计 人脸检测 人脸关键点定位 人脸特征提取 模型的训练 模型的部署 MySQL数据库的使用 MFC工程 ...

  7. 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)

    基于OpenCV的Python人脸识别.检测.框选 (遍历目录下所有照片依次识别 视频随时标注) 移步: https://blog.csdn.net/weixin_53403301/article/d ...

  8. 基于Android系统的人脸识别签到软件

    项目名称:   基于Android系统的人脸识别签到软件 目  录 1 项目介绍..... 1 1.1 项目背景.... 1 1.2 产品特点.... 2 1.3 可行性分析.... 2 1.3.1 ...

  9. 基于open cv 的人脸识别程序

    基于open cv 的人脸识别小程序 完整的程序源码已经上传到 github,但是下载后自己的电脑可能要设置一些opencv的环境,这些网上已经有文章了,自己可以去找找. 源码下载路径:https:/ ...

最新文章

  1. php接口过滤器,雷林鹏分享:PHP 过滤器
  2. java多线程 生产者消费者_java多线程之-生产者与消费者
  3. C语言利用Cairo图形库绘制太极图
  4. 企业应用架构模式学习笔记
  5. 推荐经典算法实现之BPMF(python+MovieLen)
  6. c++运算符重载中很多人易忘的小细节
  7. 平滑数据迁移,不影响服务
  8. 5g上行速率怎么提升_揭秘联发科5G独家技术,攻克上行覆盖和终端功耗两大技术难题...
  9. 面试题 03.04. 化栈为队/面试题09. 用两个栈实现队列/232. 用栈实现队列
  10. JavaScript 文件拖拽上传插件 dropzone.js 介绍
  11. 简单的读取文件和写入文件
  12. java 数据类型转换的一场_Java数据类型之间的转换
  13. php 档案挂接,档案系统文件挂接简单处理思路
  14. VMware Workstation 启动报错
  15. 第一章:状态化流处理概述
  16. linux 终端翻译,linux下终端使用有道翻译
  17. 使用智遥工作流,优化SAP请购流程
  18. 插板法、插空法、捆绑法
  19. java论文答辩老师会问什么,毕业论文答辩老师一般会问什么问题
  20. 11.4 使用Markdown和Flask-PageDown:没有文本编辑框的问题

热门文章

  1. 辐射强度 BRDF概念定义明晰
  2. IBM的PBC ——通透的绩效管理文化
  3. 传统蒙文字体_论传统蒙古文字体的设计方法
  4. win7计算机所有软件无法运行程序,解决win7电脑程序打不开方法
  5. 【解决方案】EasyNVR视频边缘计算网关城市智慧交通解决方案
  6. 子墨对酒《三国杀》里论模式(二)门面模式
  7. 智能书架中RFID技术是如何实现图书定位的
  8. 基于Matlab深度学习目标检测算法系统GUI,单目标、多目标检测
  9. 知道了这32个网站,你就成了别人眼中的大神!!
  10. MFC使用ADO连接SQL SERVER数据库实现的高校教材管理系统