资源简介

BP神经网络实现图像识别(BP神经网络实现图像识别,批量输入图像得到识别结果。)

资源截图

代码片段和文件信息

% clear all;close all;
% %读取训练数据
% [f1f2f3f4class] = textread(‘floTrainData.txt‘  ‘%f%f%f%f%f‘150);
tic;
clc;clear all;close all;
% % listing=dir(‘F:\桌面\ELM数据集\1(*).jpg‘);
% Files1 = dir(fullfile(‘C:\Users\Administrator\Desktop\AUV声呐论文\BP\数据\正\‘‘*.jpg‘));
% Length = length(Files1);
% for i=1: Length
%  I = imread(strcat(‘C:\Users\Administrator\Desktop\AUV声呐论文\BP\数据\正\‘Files1(i).name));
% I=imresize(I[100 100]);
% x1(:i)=reshape(I100*1001);
% end
% Files2 = dir(fullfile(‘C:\Users\Administrator\Desktop\AUV声呐论文\BP\数据\负\‘‘*.jpg‘));
% Length = length(Files2);
% for i=1: Length
%  I = imread(strcat(‘C:\Users\Administrator\Desktop\AUV声呐论文\BP\数据\负\‘Files2(i).name));
% I=imresize(I[100 100]);
% x2(:i)=reshape(I100*1001);
% end
% t=ones(1Length);
% jzcs_9ping40=cat(1tx);
%---------------------------------------------------
%输入输出数据
%---------------------------------------------------
load(‘F:\程序\胶州湾识别\程序\BPcode\JZtest_70pingcd_jhbw_bp.mat‘)
load(‘F:\程序\胶州湾识别\程序\BPcode\JZtrain_70pingcd_jhbw_bp.mat‘)

x=JZtrain_70pingcd_jhbw_bp(2:end:);
label=JZtrain_70pingcd_jhbw_bp(1:);
x_test=JZtest_70pingcd_jhbw_bp(2:end:);
label_test=JZtest_70pingcd_jhbw_bp(1:);
% x=[x1 x2];
% label=[1 1 1 1 1 1 1 2 2 2 2 2 2 2];
% x=double(x);
% x_test=x(:6:9);
% label_test=label(:6:9);
%特征值归一化
[inputminImaxI] = premnmx(x) ;

%构造输出矩阵
class=label‘;
s = length( class) ;
output = zeros( s  1 ) ;%改标签类型
for i = 1 : s 
   output( i  class( i1 )) = 1 ;
end

%创建神经网络
net = newff( minmax(input)  [10 2]  { ‘logsig‘ ‘purelin‘ }  ‘traingdx‘ ) ; 

%设置训练参数
net.trainparam.show = 50 ;
net.trainparam.epochs = 500 ;
net.trainparam.goal = 0.01 ;
net.trainParam.lr = 0.01 ;

%开始训练
net = train( net input  output‘ ) ;

%读取测试数据
% [t1 t2 t3 t4 c] = textread(‘floTestData.txt‘  ‘%f%f%f%f%f‘150);

%测试数据归一化
testInput = tramnmx ( x_test  minI maxI ) ;
c=label_test‘;

%仿真
Y = sim( net  testInput ) 

%统计识别正确率
[s1  s2] = size( Y ) ;
hitNum = 0 ;
for i = 1 : s2
    [m  Index] = max( Y( :   i ) ) ;
    if( Index  == c(i)   ) 
        hitNum = hitNum + 1 ; 
    end
end

sprintf(‘识别率是 %3.3f%%‘100 * hitNum / s2 )

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2318  2017-03-17 19:56  BP.m

评论

共有 条评论