目录

1.算法仿真效果

2.MATLAB核心程序

3.算法涉及理论知识概要

4.完整MATLAB


1.算法仿真效果

matlab2022a仿真结果如下:

2.MATLAB核心程序

......................................................................
for i=1:40sub_dir = strcat('s', num2str(i));images = cell(10);for j=1:10filename = fullfile(input_dir, sub_dir, strcat(num2str(j), '.pgm'));images{j} = imread(filename); endimages = images(randperm(10));img = zeros(image_dims);for j=1:7img = img + double(images{j});endimg = img / 7;train_images(:, i) = img(:);for j=8:10test_images{i,j-7}=images{j};end
end% steps 1: mean-shifted
mean_face = mean(train_images, 2);
shifted_images = train_images - repmat(mean_face, 1, num_images);% steps 2: ordered eigenvectors and eigenvalues
[full_evectors, score, evalues] = pca(train_images');result = zeros(39, 2);
for num_eigenfaces = 1:39evectors = full_evectors(:, 1:num_eigenfaces);features = evectors' * shifted_images;cnt = 0;for i=1:40for j=1:3input_image = double(test_images{i,j});
...................................................................if match_ix == icnt = cnt + 1;elseendendendresult(num_eigenfaces, 1) = cnt;result(num_eigenfaces, 2) = cnt / 120;
endfigure, plot(result(:, 2),'-bs',...'LineWidth',2,...'MarkerSize',8,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0.0,0.9,0.0]);xlabel('特征维度')
ylabel('识别率')
xlim([1 39]), ylim([0 1]), grid on;
a333

3.算法涉及理论知识概要

人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化。

人脸识别 技术是指利用分析比较的计算机技术识别人脸。人脸识别是一项热门的计算机技术研究领域,其中包括人脸追踪侦测,自动调整影像放大,夜间红外侦测,自动调整曝光强度等技术。
人脸识别技术属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。人脸识别技术是基于人的脸部特征,对输入的人脸图像或者视频流,首先判断其是否存在人脸,如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。生物特征识别技术所研究的生物特征包括脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等,相应的识别技术就有人脸识别、指纹识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别,只有前者属于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。

人脸识别训练集的人脸图像验选取剑桥大学ORL人脸数据库。一共40个人,每人10张人脸图像,随机选取7张用作训练,图像分辨率为112*92.将原始图像的每一行的像素串联在一起,产生一个具有112*92个元素的列向量,每个图像被视为一个向量。人脸原图片的尺寸是112 x 92,并横向的进行翻转、平移等-系列的操作来拓展数据集大小。0RL人脸数据库的样例如图3所示。

然后,使所有的训练集的图像(一共40张)存储在一个单一的矩阵T中,矩阵的每一列是一个图像。减去均值向量. 均值向量a要首先计算,并且T中的每一个图像都要减掉均值向量。计算协方差矩阵S的特征值和特征向量。每一个特征向量的维数与原始图像的一致,因此可以被看作是一个图像。因此这些向量被称作特征脸。选择主成分。

主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。在实际课题中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个课题的某些信息。主成分分析首先是由K.皮尔森(Karl Pearson)对非随机变量引入的,尔后H.霍特林将此方法推广到随机向量的情形。信息的大小通常用离差平方和或方差来衡量。

一般选择最大的k个特征值,保留对应的特征向量。对每个训练图像的向量,投影到特征空间后得到一组坐标。对测试图像,也作同样的投影运算,得到坐标,与训练图像的坐标进行二范数最小匹配。

4.完整MATLAB

V

基于ORL人脸数据库和PCA特征降维算法的人脸识别matlab仿真相关推荐

  1. 基于步态能量图和CNN卷积神经网络的人体步态识别matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 步态能量图(Gait Engery Image, GEI)是步态检测中最非常常用的特征,提取方法简单 ...

  2. 【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真

    基于PoE公式的UR5机械臂正运动学建模求解与matlab仿真 基于PoE公式的UR5机械臂正运动学分析 1.1 运动旋量的螺旋释义(理论基础) 1.2 基于PoE公式的UR5机械臂正运动学模型 1. ...

  3. 应用PCA算法提取特征脸,重构人脸图像,并利用SVM算法进行人脸识别

    //--应用PCA进行特征提取,并重构人脸图像--//#include<highgui.h> #include<cv.h> #include<windows.h> ...

  4. LDA与PCA数据降维算法理论与实现(基于python)

    数据降维 一. 线性判别分析(LDA) linear Discriminant Analysis 用途: 数据预处理中的降维,分类任务 目标: LDA关心的是能够最大化类间区分度的坐标轴成分 将特征空 ...

  5. 6个常见的开源人脸数据库及其数据特征

    1.ORL 数据库 机构 作者 年份 图片数量 个体数量 ORL 英国剑桥大学 Olivetti研究实验室 1992-1994 400 40 图片形式:所有的图像是以PGM格式存储,灰度图,图像大小宽 ...

  6. PCA、LPP及两者正交改进的特征提取特征降维算法

    正交PCALPP代码实现 文章目录 正交PCALPP代码实现 0.引言 1.原理 1.1 PCA目标函数 1.2 LPP目标函数 1.3 CVPCALPP原理 2.方案验证 3.结论 0.引言 ​ 传 ...

  7. 文本处理算法_基于 Python 的 11 种经典数据降维算法

    网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...

  8. 基于 Python 的 11 种经典数据降维算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有 ...

  9. 基于 Python 的 11 种经典数据降维算法|LPP(Locality Preserving Projections)

    LPP(Locality Preserving Projections) LPP 即局部保留投影算法,其思路和拉普拉斯特征映射类似,核心思想为通过最好的保持一个数据集的邻居结构信息来构造投影映射,但 ...

最新文章

  1. 你可能不知道的小程序
  2. LeetCode Reverse Linked List II
  3. JavaSE(十)之反射
  4. char类型的实参与const char类型的形参不兼容_C++干货系列——顶层const和底层const...
  5. FAT AP和FIT AP 区别 (无线篇)
  6. SQLite 附加数据库(http://www.w3cschool.cc/sqlite/sqlite-attach-database.html)
  7. c++指定枚举占一个字节
  8. linux mac time machine,用 Ubuntu 10.10 构建 Time Machine 备份服务器
  9. 大牛养成指南(3):天天写业务代码,如何成为技术大牛?
  10. 记录一次redis数据库搭建过程并详细说明配置
  11. 曲面化原理创新设计_女裤制版要多久创新服务
  12. 总结——达内视频(一)
  13. MATLAB模糊控制解析及simulink仿真示例(附fis代码和simulink仿真slx文件以及文件使用视频)
  14. 武汉大学信息学部到计算机学院,武汉大学信息科学学部
  15. 【Social listening实操】从社交媒体传播和文本挖掘角度解读《欢乐颂2》
  16. 《西部世界》在线观看与观后感
  17. 铁柱学习node.js
  18. Excel的规划求解实例
  19. 初识Docker:(5)Docker自定义镜像
  20. PBX、FXO、FXS等通信相关知识

热门文章

  1. 自动将*.md文档中的图片上传到Gitee(Typora+PicGo+Gitee)
  2. Python实战:利用Tkinter实现屏保程序
  3. linux与Windows下查看md5值
  4. 【CPU设计实战】数字逻辑电路设计基础(一)
  5. Android Log 机制
  6. 给ubuntu服务器文件创建Url下载链接
  7. JS实现身份证的验证
  8. s5p4418添加触摸驱动
  9. Internet Download Manager(IDM)网页下载浮动条不出现的问题记录
  10. qq账号扫描二维码电脑无法登陆的问题