renlianchaoshang.txt

来自「重要的人脸朝上代码!需要的可以自己下!需要的加我2531459」· 文本 代码 · 共 68 行

TXT
68
字号
% 前向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 + =
减小字号Ctrl + -
显示快捷键?