基于Matlab的人脸识别的二维PCA
一、基本原理
传统 PCA 在处理图像数据时,需将二维图像矩阵拉伸为一维向量,这使得数据维度剧增,引发高计算成本与存储压力。与之不同,2DPCA 直接基于二维图像矩阵展开运算。
它着眼于图像矩阵的列向量,构建协方差矩阵。而后对协方差矩阵进行特征值分解,获取一系列特征值及对应的特征向量。这些特征向量即所谓的主成分,它们反映了图像数据在列方向上的主要变化趋势,按特征值大小排序,靠前的主成分携带更多关键信息。
二、优势体现
计算效率高:规避图像向一维向量转换,大幅削减计算量,能快速处理大规模图像数据,在实时人脸识别场景如安防监控的人流密集区,快速甄别人员身份,减少延迟。
空间结构保留:二维图像操作模式,完整留存图像的行列像素分布特征,面部器官的相对位置等空间关系得以保存,为人脸识别精准度提升筑牢根基,比如精准识别双胞胎细微面部差异。
三、人脸识别中的应用流程
训练阶段:收集人脸图像样本构建训练集,利用 2DPCA 计算协方差矩阵、提取主成分,将训练图像投影至主成分空间,生成特征向量并存储,形成人脸特征库。
识别阶段:新输入人脸图像经同样投影操作获取特征向量,与特征库比对,依相似性度量(如余弦相似度、欧几里得距离)判断归属类别,输出识别结果。
四、应用前景
安防监控升级:在城市监控网络,精准捕捉识别可疑人员,辅助警方快速反应,预防打击犯罪,提升公共安全保障力度。
智能设备解锁:移动端、智能门禁等设备,以 2DPCA 实现快速、准确人脸解锁,摆脱密码束缚,优化用户体验,开启便捷生活。
商业服务优化:零售、酒店等行业,依人脸识别提供个性化服务,刷脸支付、VIP 识别,增强客户粘性,革新服务模式。
尽管 2DPCA 优势显著,但其对光照、姿态、表情变化适应性有待增强。未来,融合多模态技术、深度学习优化 2DPCA,有望攻克难题,拓宽其在人脸识别及相关领域的应用边界,持续赋能数字化社会发展。

clc
clear all;
load ORL_FaceDataSet; % Loading face dataset. ORL consists of 40 classes, each comprising 10 samples
A=double(ORL_FaceDataSet);% Specifying the numbers of training and testing samples, and also the
% number of eigenvectors (DIM)
%-----------------------------------------------------------------------
Num_Class=40;
No_SampleClass=10;
No_TrainSamples=5;
No_TestSamples=5;
DIM=6; % DIM can be changed form 1 to n% Separating the dataset into training and testing sets, and then labeling.
%-------------------------------------------------------------------------------------------
[TrainData, TestData]=Train_Test(A,No_SampleClass,No_TrainSamples,No_TestSamples);
[m,n,TotalTrainSamples] = size(TrainData);
[m1,n1,TotalTestSamples] = size(TestData);
[TrainLabel,TestLabel]=LebelSamples(Num_Class, No_TrainSamples, No_TestSamples);% Computing image covariance (scatter) matrix
%-----------------------------------------------------------------------------
TrainMean = mean(TrainData,3); % Total mean of the training set
Gt=zeros([ n n]);
for i=1:TotalTrainSamplesTemp = TrainData(:,:,i)- TrainMean;Gt = Gt + Temp'*Temp;
end
Gt=Gt/TotalTrainSamples; % Applying eigen-decompostion to Gt and returning transformation matrix
%
%---------------------------------------------------------------------------------
[EigVect1,EigVal1]=eig_decomp(Gt);
EigVect=EigVect1(:,1:DIM); % Deriving training feature matrices
%----------------------------------------------------------------------------------for i=1:TotalTrainSamplesYtrain(:,:,i)=TrainData(:,:,i)*EigVect;
end% Testing and Classification
%----------------------------------------------------
TestResult = zeros(TotalTestSamples,1);for i=1:TotalTestSamplesDistance = zeros(TotalTrainSamples,1);Ytest = TestData(:,:,i)* EigVect; % Deriving test feature matrixfor j=1:TotalTrainSamples
相关文章:
基于Matlab的人脸识别的二维PCA
一、基本原理 传统 PCA 在处理图像数据时,需将二维图像矩阵拉伸为一维向量,这使得数据维度剧增,引发高计算成本与存储压力。与之不同,2DPCA 直接基于二维图像矩阵展开运算。 它着眼于图像矩阵的列向量,构建协方差矩阵…...
Java直通车系列15【Spring MVC】(ModelAndView 使用)
目录 1. ModelAndView 概述 2. ModelAndView 的主要属性和方法 主要属性 主要方法 3. 场景示例 示例 1:简单的 ModelAndView 使用 示例 2:使用 ModelAndView 处理列表数据 示例 3:使用 ModelAndView 处理异常情况 1. ModelAndView 概…...
考研数一非数竞赛复习之Stolz定理求解数列极限
在非数类大学生数学竞赛中,Stolz定理作为一种强大的工具,经常被用来解决和式数列极限的问题,也被誉为离散版的’洛必达’方法,它提供了一种简洁而有效的方法,使得原本复杂繁琐的极限计算过程变得直观明了。本文&#x…...
Java在小米SU7 Ultra汽车中的技术赋能
目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…...
【简单的C++围棋游戏开发示例】
C围棋游戏开发简单示例(控制台版) 核心代码实现 #include <iostream> #include <vector> #include <queue> using namespace std;const int SIZE 9; // 简化棋盘为9x9:ml-citation{ref"1" data"citationList&…...
DeepSeek R1-7B 医疗大模型微调实战全流程分析(全码版)
DeepSeek R1-7B 医疗大模型微调实战全流程指南 目录 环境配置与硬件优化医疗数据工程微调策略详解训练监控与评估模型部署与安全持续优化与迭代多模态扩展伦理与合规体系故障排除与调试行业应用案例进阶调优技巧版本管理与迭代法律风险规避成本控制方案文档与知识传承1. 环境配…...
HCIA-DHCP
1、定义:DHCP即动态主机配置协议,通过C/S模型架构,无需主机配置IP地址,自动分配网络配置参数的网络协议。 2、作用 对比项目无 DHCP有 DHCP配置难度配置多,容易出错自动为客户端分配 IP 地址及其他网络配置参数&…...
前端面试题 口语化复述解答(从2025.3.8 开始频繁更新中)
背景 看了很多面试题及其答案。但是过于标准化,一般不能直接用于回复面试官,这里我将总结一系列面试题,用于自我复习也乐于分享给大家,欢迎大家提供建议,我必不断完善之。 Javascript ES6 1. var let const 的区别…...
网络安全技术和协议(高软43)
系列文章目录 网络安全技术和协议 文章目录 系列文章目录前言一、网络安全技术1.防火墙2.入侵检测系统IDS3.入侵防御系统IPS 二、网络攻击和威胁三、网络安全协议四、真题在这里插入图片描述 总结 前言 本节讲明网络安全技术和协议方面的相关知识。 一、网络安全技术 1.防火…...
K8S学习之基础十七:k8s的蓝绿部署
蓝绿部署概述 蓝绿部署中,一共有两套系统,一套是正在提供服务的系统,一套是准备发布的系统。两套系统都是功能完善、正在运行的系统,只是版本和对外服务情况不同。 开发新版本,要用新版本替换线上的旧版本&…...
【统计至简】【古典概率模型】联合概率、边缘概率、条件概率、全概率
联合概率、边缘概率、条件概率 联合概率边缘概率条件概率全概率 一副标准扑克牌有 54 张,包括 52 张常规牌(13 个点数,每个点数有 4 种花色)和 2 张王(大、小王)。我们从中随机抽取一张牌,定义以…...
批量插入对比-mysql-oracle-sqlserver
单个插入mysql //单个 根据有值就插入,无值不改动 <insert id"insertOne" keyColumn"id" keyProperty"id"parameterType"com.test.log" useGeneratedKeys"true">insert into test_mysql_tab<trim p…...
saltstack通过master下发脚本批量修改minion_id,修改为IP
通过master下发脚本批量修改minion_id,以修改为IP为例 通过cmd.script远程执行shell脚本修改minion_id,步骤如下: # 下发脚本并执行 >> salt old_minion_id cmd.script salt://modify_minion_id.sh saltenvdev #输出结果 old_minion_id:Minion di…...
【网络】TCP常考知识点详解
TCP报文结构 TCP报文由**首部(Header)和数据(Data)**两部分组成。首部包括固定部分(20字节)和可选选项(最多40字节),总长度最大为60字节。 1. 首部固定部分 源端口&…...
LeetCode1137 第N个泰波那契数
泰波那契数列求解:从递归到迭代的优化之路 在算法的世界里,数列问题常常是我们锻炼思维、提升编程能力的重要途径。今天,让我们一同深入探讨泰波那契数列这一有趣的话题。 泰波那契数列的定义 泰波那契序列 Tn 有着独特的定义方式…...
六十天前端强化训练之第十四天之深入理解JavaScript异步编程
欢迎来到编程星辰海的博客讲解 目录 一、异步编程的本质与必要性 1.1 单线程的JavaScript运行时 1.2 阻塞与非阻塞的微观区别 1.3 异步操作的性能代价 二、事件循环机制深度解析 2.1 浏览器环境的事件循环架构 核心组件详解: 2.2 执行顺序实战分析 2.3 Nod…...
利用EasyCVR平台打造化工园区视频+AI智能化监控管理系统
化工园区作为化工产业的重要聚集地,其安全问题一直是社会关注的焦点。传统的人工监控方式效率低下且容易出现疏漏,已经难以满足日益增长的安全管理需求。 基于EasyCVR视频汇聚平台构建的化工园区视频AI智能化应用方案,能够有效解决这些问题&…...
【VUE2】第三期——样式冲突、组件通信、异步更新
目录 1 scoped解决样式冲突 2 data写法 3 组件通信 3.1 父子关系 3.1.1 父向子传值 props 3.1.2 子向父传值 $emit 3.2 非父子关系 3.2.1 event bus 事件总线 3.2.2 跨层级共享数据 provide&inject 4 props 4.1 介绍 4.2 props校验完整写法 5 v-model原理 …...
深度学习分类回归(衣帽数据集)
一、步骤 1 加载数据集fashion_minst 2 搭建class NeuralNetwork模型 3 设置损失函数,优化器 4 编写评估函数 5 编写训练函数 6 开始训练 7 绘制损失,准确率曲线 二、代码 导包,打印版本号: import matplotlib as mpl im…...
深入解析ECDSA与RSA公钥算法:原理、对比及AWS最佳实践
一、公钥加密算法概述 在HTTPS通信和数字证书领域,ECDSA(椭圆曲线数字签名算法)和RSA(Rivest-Shamir-Adleman)是最主流的两种非对称加密算法。它们共同构成了现代网络安全的基础,但设计理念和技术实现存在显著差异。 © ivwdcwso (ID: u012172506) 二、RSA算法详解…...
preloaded-classes裁剪
系统预加载了哪些class类?system/etc/preloaded-classes 修改源代码? frameworks\base\config\preloaded-classes 默认位置,如果改了不生效,可能有其它模块的mk文件指定了preloaded-classes覆盖了framework模块,例如…...
在Linux中开发OpenGL——检查开发环境对OpenGL ES的支持
由于移动端GPU规模有限,厂商并没有实现完整的OpenGL特性,而是实现了它的子集——OpenGL ES。因此如果需要开发的程序要支持移动端平台,最好使用OpenGL ES开发。 1、 下载支持库、OpenGL ES Demo 1.1、下载PowerVRSDK支持库作为准备ÿ…...
HJ C++11 Day2
Initializer Lists 对于一个类P class P{P(int a, int b){cout << "P(int, int), a" << a << ", b " << b << endl;}P(initializer_list<int> initlist){cout << "P(initializer_list<int>), val…...
基于Spring Boot的学院商铺管理系统的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
os-copilot安装和使用体验测评
简介: OS Copilot是阿里云基于大模型构建的Linux系统智能助手,支持自然语言问答、命令执行和系统运维调优。本文介绍其产品优势、功能及使用方法,并分享个人开发者在云服务器资源管理中的实际应用体验。通过-t/-f/管道功能,OS Cop…...
Geo3D建筑材质切换+屋顶纹理
一、简介 基于Threejs开发封装建筑渲染管线,利用简单二维建筑矢量面轮廓程序化生成3D建筑,支持材质一键切换,支持多样化建筑墙面材质和屋顶材质,支持建筑透明,支持地形高程适配,支持按空间范围裁剪挖洞等。…...
工程化与框架系列(24)--跨平台解决方案
跨平台解决方案 🌐 引言 随着移动互联网的发展,跨平台开发已成为前端开发的重要趋势。本文将深入探讨前端跨平台开发的各种解决方案,包括响应式设计、混合开发、原生开发等方案,帮助开发者选择合适的跨平台策略。 跨平台开发概…...
快手,得物,三七互娱,科锐国际,作业帮等25春招内推
得物,三七互娱,快手,作业帮,科锐国际26届实习内推 ①快手 【在招岗位】运营、市场、产品、战略分析、职能、工程、设计、算法、项目管理、销售、游戏等类 【一键内推】https://sourl.cn/Qi5pm2 【内推码】campuswQrLOMvHE ②得物 …...
【GPT入门】第9课 思维树概念与原理
【GPT入门】第9课 思维树概念与原理 1.思维树概念与原理2. 算24游戏的方法 1.思维树概念与原理 思维树(Tree of Thought,ToT )是一种大模型推理框架,旨在解决更加复杂的多步骤推理任务,让大模型能够探索多种可能的解决…...
SolidWorks 转 PDF3D 技术详解
在现代工程设计与制造流程中,不同软件间的数据交互与格式转换至关重要。将 SolidWorks 模型转换为 PDF3D 格式,能有效解决模型展示、数据共享以及跨平台协作等问题。本文将深入探讨 SolidWorks 转 PDF3D 的技术原理、操作流程及相关注意事项,…...
