💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
二维PCA(2D-PCA)是一种基于PCA的人脸识别方法,它通过利用图像的二维结构信息来提高人脸识别的性能。 传统的PCA方法是基于将图像展开成一维向量进行处理的,但它忽略了图像的空间结构信息。而二维PCA则考虑了图像的二维结构,可以更有效地提取图像中的特征。维PCA能够更好地捕获图像中的空间结构信息,提高了特征的区分度和稳定性。 与传统的一维PCA相比,二维PCA提取的特征更具有判别性,有助于提高人脸识别的准确性。通过分块处理,二维PCA可以降低特征提取的计算复杂度,提高了算法的效率。综上所述,二维PCA是一种利用图像的二维结构信息进行人脸识别的方法,它在提高特征的判别性和稳定性方面具有优势,是人脸识别领域的重要研究方向之一。
📚2 运行结果
主函数部分代码:
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:TotalTrainSamples
Temp = 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:TotalTrainSamples
Ytrain(:,:,i)=TrainData(:,:,i)*EigVect;
end
% Testing and Classification
%----------------------------------------------------
TestResult = zeros(TotalTestSamples,1);
for i=1:TotalTestSamples
Distance = zeros(TotalTrainSamples,1);
Ytest = TestData(:,:,i)* EigVect; % Deriving test feature matrix
for j=1:TotalTrainSamples
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]孙吏功,王辰灏,冯嘉琪,等.基于DSC与超球面损失的遮挡人脸识别研究[J/OL].计算机仿真:1-7[2024-05-22].http://kns.cnki.net/kcms/detail/11.3724.tp.20240506.1604.010.html.
[2]李德龙,成钰,柴瑞瑞,等.地铁涉恐安检人脸识别系统配置效力信号博弈模型——基于暴恐分子情绪和袭击资源有限视角[J/OL].系统科学与数学:1-26[2024-05-22].http://kns.cnki.net/kcms/detail/11.2019.O1.20240428.1717.026.html.