matlab中识别过程训练,人脸识别PCA算法matlab实现及详细步骤讲解
%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实现及详细步骤讲解相关推荐
- 简单用Python+OpenCv实现AI人脸识别--(3)—训练人脸识别模型
案例引入 首先简要讲解数据集训练生成模型的原理,这里使用的是LBPH算法,在OpenCV模块中已经有内嵌的方法cv2.face.LBPHFaceRecognizer_create(),为了方便小伙伴们 ...
- MATLAB中果蝇味道浓度判定函数,果蝇优化算法MATLAB实现
果蝇优化算法MATLAB实现 发布时间:2018-10-12 23:28, 浏览次数:1183 , 标签: MATLAB 果蝇优化算法--Matlab实现 1果蝇优化算法原理介绍 果蝇是一种广泛存在于 ...
- MATLAB中果蝇味道浓度判定函数,果蝇优化算法-matlab实现、过程剖析
1.随机初始果蝇群体位置. Init X_axis Init Y_axis 2.附与果蝇个体利用嗅觉搜寻食物之随机方向与距离. Xi= X_axis + Random Value Yi= Y_axis ...
- 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 ...
- OpenCV中视频操作及人脸识别案例
目录 OpenCV中视频操作及人脸识别案例 视频操作 视频读写 从文件中读取视频并播放 保存视频 小结 视频追踪 meanshift Camshift 算法总结 小结 案例:人脸案例 人脸识别基础 实 ...
- 如何在 Keras 中使用 FaceNet 开发人脸识别系统
https://www.infoq.cn/article/4wT4mNvKlVvEQZR-JXmp Keras 是一个用 Python 编写的高级神经网络 API,能够以 TensorFlow.CNT ...
- 在uni-app的app项目中使用live-pusher实现人脸识别
在uni-app的app项目中使用live-pusher实现人脸识别 前言 一.环境 二.使用步骤 三.permission.js源代码 四.face.vue源代码 五.代码效果 总结 前言 在uni ...
- JAVA tess 识别图中文字 已训练好 识别精准
JAVA tess 识别图中文字 已训练好 识别精准 文章目录 JAVA tess 识别图中文字 已训练好 识别精准 一.添加依赖 二.下载更新好的中文语言包 chi_sim.traineddata, ...
- 【人脸识别】初识人脸识别
[人脸识别]初识人脸识别 /* Author: cyh_24 */ /* Date: 2014.10.2 ...
最新文章
- RISC-V浪潮来袭!115页PPT超详论述,如何与ARM争锋!(一)
- 论文浅尝 - AAAI2020 | 从异质外部知识库中进行基于图的推理实现常识知识问答...
- 容器安全拾遗 - Rootless Container初探
- Python中的pip怎么配置环境变量
- linux重启网络服务_vm上linux虚拟机NAT模式配置
- 苹果耳罩式耳机曝光 将于今年下半年发布
- 三角形一点到三边距离最小_三角形内有没有一个点到三边距离之和最小 -
- C++算法学习(贪心算法)
- 使用jQuery.form插件,实现完美的表单异步提交
- 土木工程模板计算机专业,土木工程毕业论文答辩自述模板
- 天正2014打开加载lisp_win10系统设置CAD2014打开自动加载天正的恢复方法
- selenium基础自学七(获取超链接)
- mmall 项目实战(一)项目初始化
- 高通SDX62平台 MBIM搜网、查询信号等功能异常
- 蛙蛙推荐:蛙蛙牌网页捕捉器
- 电工电子电力拖动及自动化技术考核实训台QY-DG800D
- python获取当前进程pid_Python获取系统所有进程PID及进程名称的方法示例
- facebookdownload_downloadfacebook
- 网管软件哪家比较好用
- ARM开发基础--指令,异常源及处理过程
热门文章
- linux机械硬盘 ext32,Linux磁盘分区管理--ext2和ext3文件系统逻辑结构分析
- 同时查询多家快递物流情况,筛选出拒收单号归类为退回件
- sumproduct函数的使用方法 PHP强制更新图片缓存的方法
- python 函数不确定传入参数_如何使用python传入不确定个数参数
- 【转】CT辐射量如何计算?
- 开影Precision 128 Max精密断层能谱CT获得NMPA注册证
- matlab中solve解方程,matlab解方程组.我的每一个方程都很长,如果用solve,solve里的参数就会很长.有什么办法呢?...
- 单片机中的WFI/WFE指令
- ARM64平台下WFE和SEV相关指令解析
- 智慧树/知到——程序设计基础(C语言)入门篇(第一章到第五章测试)