资源简介
网上找的 matlab基于bp神经网络的人脸识别 需要标准的orl人脸数据库 也可根据源代码进行改写
代码片段和文件信息
function FaceRecognitionByBPneuralnetwork
%% 基于BP神经网络的人脸识别
%%2014-05-14
clc
global base net %定义全局变量,用于 TestofFaceRecognition.m 函数中
%% 第一步,利用主元分析PCA法提取图像的特征矩阵
allsamples=[]; %所有训练图像
for i=1:40
for j=1:5
a=imread(strcat(‘E:\资料类\学习资料\人工神经网络\att_faces\orl_faces\s‘num2str(i)‘\‘num2str(j)‘.pgm‘));
b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右
b=double(b);
allsamples=[allsamples; b]; % allsamples 是一个M * N 矩阵,allsamples 中每一行数据代表一张图片,其中M=400
end
end
samplemean=mean(allsamples); % 平均图片,1 × N
for i=1:200
xmean(i:)=allsamples(i:)-samplemean; % xmean是一个M × N矩阵,xmean每一行保存的数据是“每个图片数据-平均图片”
end
sigma=xmean*xmean‘; % M * M 阶矩阵
[v d]=eig(sigma);
d1=diag(d);
[d2 index1]=sort(d1); %以升序排序
cols=size(v2); % 特征向量矩阵的列数
for i=1:cols
vsort(:i) = v(: index1(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量每一列构成一个特征向量
dsort(i) = d1( index1(cols-i+1) ); % dsort 保存的是按降序排列的特征值,是一维行向量
end %完成降序排列
%以下选择85%的能量
dsum = sum(dsort);
dsum_extract = 0;
p= 0;
while( dsum_extract/dsum < 0.85)
p=p + 1;
dsum_extract = sum(dsort(1:p));
end
i=1;
%计算特征脸形成的坐标系
while (i<=p && dsort(i)>0)
base(:i) = dsort(i)^(-1/2) * xmean‘ * vsort(:i); % base是N×p阶矩阵,除以dsort(i)^
相关资源
- matlab人脸识别217995
- PCA人脸识别Eigenface特征脸Matlab
- 基于KL变换的人脸识别 matlab
- 基于Matlab行人检测系统
- Face Recognition with KNN in MATLAB(12017108
- 人脸识别yale数据.mat格式
- 基于PCA和SVM的人脸识别.zip
- 基于SVD分解和最近邻算法的高维人脸
- MATLAB人脸识别考勤系统摄像头,记录
- PCA算法实现人脸识别基于matlab GUI界面
- 基于matlab的人脸识别271850
- 2D2DPCA人脸识别matlab代码/ORL库
- PCA人脸识别MATLAB代码/ORL库
- matlab结课大作业人脸识别是否戴口罩
- PCA人脸识别论文附MATLAB程序
- 应用matlab计算人脸识别率
- 个人收集的人脸识别经典算法源码
- 基于K-L变换的人脸识别系统
- 基于matlab的人脸识别源代码235297
- 基于PCA使用Yale人脸数据库的人脸识别
- 人脸识别系统
- 模式识别课程作业 基于svm的人脸识别
- SRC人脸识别程序MATLAB
- 1维的简单LDA和2维LDA人脸识别的matla
- 基于MATLAB的人脸识别
- 人脸识别及匹配的matlab实现
- matlab基于BP神经网络的人脸识别13953
- 基于BP神经网络的人脸识别源码matla
- Matlab人脸识别
- BP神经网络的人脸识别matlab代码77617
评论
共有 条评论