云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于BP神经网络的人脸识别

基于BP神经网络的人脸识别

  • 62 次阅读
  • 3 次下载
  • 2026/1/9 15:55:57

Dcsum=sum(Dcsort); Dcsum_extract=0; k=0;

while(Dcsum_extract/Dcsum<0.95) k=k+1;

Dcsum_extract=sum(Dcsort(1:k)); end

%temp是由前k个最大的非0特征值对应的特征向量组成的 i=1; temp=[]; while(i<=k)

temp(:,i)=Dcsort(i)^(-1/2)*Vcsort(:,i); i=i+1; end

whiteningmatrix=temp';%用于白化数据的白化矩阵,whiteningmatrix是8x20 %用快速ICA算法求分离矩阵w(迭代50次) whitesig=whiteningmatrix*imgsig; X=whitesig;%X是8x10304

[vectorsize,numsamples]=size(X); B=zeros(vectorsize);%B是8x8 numofic=vectorsize;%numofic是8 for r=1:numofic i=1;

maxnumiterations=50;%设置最大的迭代次数 w=rand(vectorsize,1)-.5;%随机设置初始值 w=w/norm(w);%初始化w(0),令其模为1 while i<=maxnumiterations+1 w=w-B*B'*w; w=w/norm(w);

w=(X*((X'*w).^3))/numsamples-3*w; w=w/norm(w); i=i+1; end

W(r,:)=w'*whiteningmatrix;%W(r,:)是1x20 B(:,r)=w; end

%求原信号

icaproject=W*sig*sig';%独立成分,W是8x40,icaproject是8x40,icaproject的每一列表示一幅图像的特征值 wica=W*sig;%投影空间 BP神经网络程序:

function res=bpnet(TestDatabasePath,TrainDatabasePath)

%先设置人脸图片库所在的路径,调用特征提取函数bpFeatureExtract,将所有人

脸在特征脸上的投影p提取出来

imagepath=strcat(TrainDatabasePath,'\\'); [p,wica]=bpFeatureExtract(imagepath);

%把p归一化到[-1 +1],然后作为神经网络的输入 p=premnmx(p')';

t=[1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;1 0 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;0 1 0 0;

0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 1 0;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1;0 0 0 1]';%神经网络的理论输出值

%设计神经网路 [prow pcol]=size(p);

num=prow*pcol;%提取p中元素个数作为神经网络的输入层神经元个数

net=newff(minmax(p),[num,10,4],{'tansig','tansig','purelin'},'traingda');%隐层神经元个数为10,输出层神经元个数为4,4表示识别出两个人 net.trainParam.show=200;%显示速率为200 net.trainParam.lr=0.01;%学习率为0.01

net.trainParam.epochs=5000;%迭代次数不超过5000 net.trainParam.goal=0.001;%训练误差为0.001 [net,tr]=train(net,p,t); %用神经网络识别

imgtest=imread(strcat(TestDatabasePath,'\\test.jpg')); [row col]=size(imgtest); % 获得行数和列数 imgtest=reshape(imgtest,1,row*col); sig=double(imgtest); imgtest=sig;

%把待测试图像imgtest在子空间上投影

projectcoeftest=wica*(imgtest)';%projectcoeftest是8x1

ptest=premnmx(projectcoeftest);%把投影值projectcoeftest归一化到[-1 +1],然后作为神经网络的输入 %仿真

result=sim(net,ptest)

%显示识别出的人名信息 if result(1,1)>0.9

res='This is Edward'; elseif result(2,1)>0.9 res='This is George'; elseif result(3,1)>0.9 res='This is Frank'; elseif result(4,1)>0.9 res='This is Henry'; else res='This is strange'; end

选择训练图像库的路径

训练图像

训练结果

这是图像训练库外的人

搜索更多关于: 基于BP神经网络的人脸识别 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Dcsum=sum(Dcsort); Dcsum_extract=0; k=0; while(Dcsum_extract/Dcsum<0.95) k=k+1; Dcsum_extract=sum(Dcsort(1:k)); end %temp是由前k个最大的非0特征值对应的特征向量组成的 i=1; temp=[]; while(i<=k) temp(:,i)=Dcsort(i)^(-1/2)*Vcsort(:,i); i=i+1; end whiteningmatrix=temp';%用于白化数据的白化矩阵,whiteningmatrix是8x20 %用快速ICA算法求分离矩阵w(迭代50次) whitesig=whiteningmatrix*imgsig; X=whitesig;%X是8x10304

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com