📄 renlianchaoshang.txt
字号:
% 前向BP神经网络人脸朝向识别
% zgzhang
% 2007-5-31
clc;
clear all;
for i = 0:271
imgname = strcat(int2str(i),'.pgm');
A = imread(imgname,'pgm');
B = double(A)./255;
for j = 0:31
p(j*30+1:(j+1)*30,i+1) = B(1:30,j+1);
end
n = rem(i,4);
switch n
case 0
t(:,i+1) = [0.9 0.1 0.1 0.1];
%朝左
case 1
t(:,i+1) = [0.1 0.9 0.1 0.1];
%向右
case 2
t(:,i+1) = [0.1 0.1 0.9 0.1];
%正面
case 3
t(:,i+1) = [0.1 0.1 0.1 0.9];
%向上
end
end
save value p t;
clear all;
load value p t;
PR(1:960,1) = 0;
PR(1:960,2) = 1;
net = newff(PR,[3 4],{'logsig' 'logsig'},'traingdx','learngdm');
net.trainParam.epochs = 10000;
net.trainParam.goal = 0.001;
net.trainParam.show = 100;
net.trainParam.lr = 0.05;
net =train(net,p,t);
save NET1 net;
clear all;
load NET1 net;
while 1
testname = input('please input a test image:','s');
A = imread(testname,'pgm');
B = double(A)./255;
for j = 0:31
p(j*30+1:(j+1)*30,1) = B(1:30,j+1);
end
[Y,Pf,Af] = sim(net,p);
%imshow(A);
%imshow(B);
if Y(1) >= 0.8
disp('The man face to left');
end
if Y(2) >= 0.8
disp('The man face to right');
end
if Y(3) >= 0.8
disp('The man face to straight');
end
if Y(4) >= 0.8
disp('The man face to up');
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -