%FaceRec.m

%PCA人脸识别修订版,识别率88%

%calc xmean,sigma and its eigen decomposition

allsamples=[];%所有训练图像

for i=1:40

for j=1:5

a=imread(strcat('e:\ORL\s',num2str(i),'\',num2str(j),'.jpg'));

%imshow(a);

b=a(1:112*92);%b是行矢量1×N,其中N=10304,提取顺序是先列后行,即从上

到下,从左到右

b=double(b);

allsamples=[allsamples;b];%allsamples是一个M*N矩阵,allsamples中每一行数

据代表一张图片,其中M=200

end

end

samplemean=mean(allsamples);%平均图片,1×N

for i=1:200xmean(i,:)=allsamples(i,:)-samplemean;%xmean是一个M×N矩阵,xmean

每一行保存的数据是“每个图片数据-平均图片”

end;

%获取特征值及特征向量

sigma=xmean*xmean';%M*M阶矩阵

[v d]=eig(sigma);

d1=diag(d);

%按特征值大小以降序排列

dsort=flipud(d1);

vsort=fliplr(v);

%以下选择90%的能量

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));

%base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1)

%详见《基于PCA的人脸识别算法研究》p31

%xmean'*vsort(:,i)是小矩阵的特征向量向大矩阵特征向量转换的过程

%while(i<=p&&dsort(i)>0)

%base(:,i)=dsort(i)^(-1/2)*xmean'*vsort(:,i);%base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1)

%详见《基于PCA的人脸识别算法研究》p31

%i=i+1;%xmean'*vsort(:,i)是小矩阵的特征向量向大矩阵特

征向量转换的过程

%end

%以下两行add by gongxun将训练样本对坐标系上进行投影,得到一个M*p阶矩阵allcoor allcoor=allsamples*base;%allcoor里面是每张训练人脸图片在M*p子空间中的一个点,即在子空间中的组合系数,

accu=0;%下面的人脸识别过程中就是利用这些组合系数来进行识别

matlab中识别过程训练,人脸识别PCA算法matlab实现及详细步骤讲解相关推荐

  1. 简单用Python+OpenCv实现AI人脸识别--(3)—训练人脸识别模型

    案例引入 首先简要讲解数据集训练生成模型的原理,这里使用的是LBPH算法,在OpenCV模块中已经有内嵌的方法cv2.face.LBPHFaceRecognizer_create(),为了方便小伙伴们 ...

  2. MATLAB中果蝇味道浓度判定函数,果蝇优化算法MATLAB实现

    果蝇优化算法MATLAB实现 发布时间:2018-10-12 23:28, 浏览次数:1183 , 标签: MATLAB 果蝇优化算法--Matlab实现 1果蝇优化算法原理介绍 果蝇是一种广泛存在于 ...

  3. MATLAB中果蝇味道浓度判定函数,果蝇优化算法-matlab实现、过程剖析

    1.随机初始果蝇群体位置. Init X_axis Init Y_axis 2.附与果蝇个体利用嗅觉搜寻食物之随机方向与距离. Xi= X_axis + Random Value Yi= Y_axis ...

  4. matlab中k均值程序代码,K-均值算法Matlab仿真

    代码: X=[35 35 41 49 35 17 55 45 55 20 15 30 25 30 20 50 10 43 55 60 30 60 20 65 50 35 30 25 15 10 30 ...

  5. OpenCV中视频操作及人脸识别案例

    目录 OpenCV中视频操作及人脸识别案例 视频操作 视频读写 从文件中读取视频并播放 保存视频 小结 视频追踪 meanshift Camshift 算法总结 小结 案例:人脸案例 人脸识别基础 实 ...

  6. 如何在 Keras 中使用 FaceNet 开发人脸识别系统

    https://www.infoq.cn/article/4wT4mNvKlVvEQZR-JXmp Keras 是一个用 Python 编写的高级神经网络 API,能够以 TensorFlow.CNT ...

  7. 在uni-app的app项目中使用live-pusher实现人脸识别

    在uni-app的app项目中使用live-pusher实现人脸识别 前言 一.环境 二.使用步骤 三.permission.js源代码 四.face.vue源代码 五.代码效果 总结 前言 在uni ...

  8. JAVA tess 识别图中文字 已训练好 识别精准

    JAVA tess 识别图中文字 已训练好 识别精准 文章目录 JAVA tess 识别图中文字 已训练好 识别精准 一.添加依赖 二.下载更新好的中文语言包 chi_sim.traineddata, ...

  9. 【人脸识别】初识人脸识别

    [人脸识别]初识人脸识别 /* Author:    cyh_24                                    */ /* Date:        2014.10.2    ...

最新文章

  1. RISC-V浪潮来袭!115页PPT超详论述,如何与ARM争锋!(一)
  2. 论文浅尝 - AAAI2020 | 从异质外部知识库中进行基于图的推理实现常识知识问答...
  3. 容器安全拾遗 - Rootless Container初探
  4. Python中的pip怎么配置环境变量
  5. linux重启网络服务_vm上linux虚拟机NAT模式配置
  6. 苹果耳罩式耳机曝光 将于今年下半年发布
  7. 三角形一点到三边距离最小_三角形内有没有一个点到三边距离之和最小 -
  8. C++算法学习(贪心算法)
  9. 使用jQuery.form插件,实现完美的表单异步提交
  10. 土木工程模板计算机专业,土木工程毕业论文答辩自述模板
  11. 天正2014打开加载lisp_win10系统设置CAD2014打开自动加载天正的恢复方法
  12. selenium基础自学七(获取超链接)
  13. mmall 项目实战(一)项目初始化
  14. 高通SDX62平台 MBIM搜网、查询信号等功能异常
  15. 蛙蛙推荐:蛙蛙牌网页捕捉器
  16. 电工电子电力拖动及自动化技术考核实训台QY-DG800D
  17. python获取当前进程pid_Python获取系统所有进程PID及进程名称的方法示例
  18. facebookdownload_downloadfacebook
  19. 网管软件哪家比较好用
  20. ARM开发基础--指令,异常源及处理过程

热门文章

  1. linux机械硬盘 ext32,Linux磁盘分区管理--ext2和ext3文件系统逻辑结构分析
  2. 同时查询多家快递物流情况,筛选出拒收单号归类为退回件
  3. sumproduct函数的使用方法 PHP强制更新图片缓存的方法
  4. python 函数不确定传入参数_如何使用python传入不确定个数参数
  5. 【转】CT辐射量如何计算?
  6. 开影Precision 128 Max精密断层能谱CT获得NMPA注册证
  7. matlab中solve解方程,matlab解方程组.我的每一个方程都很长,如果用solve,solve里的参数就会很长.有什么办法呢?...
  8. 单片机中的WFI/WFE指令
  9. ARM64平台下WFE和SEV相关指令解析
  10. 智慧树/知到——程序设计基础(C语言)入门篇(第一章到第五章测试)