%---------------------------------------------%
% %
% 工作室提供代做matlab仿真 %
% %
% 详情请访问:http://cn.mikecrm.com/5k6v1DP %
% %
%---------------------------------------------%
%本程序用BP神经网络实现对英文大写字母的识别
clear all
clc
nntwarn off;
disp(' 本程序用BP神经网络实现对英文大写字母的识别。');
disp(' 首先将进行数字化处理并建立BP神经网络。');
disp(' 请按任意键开始执行本程序。');
pause
%将每个英文字母进行数字化处理
letterA = [0 0 1 0 0,0 1 0 1 0,0 1 0 1 0,1 0 0 0 1,1 1 1 1 1,1 0 0 0 1,1 0 0 0 1];
letterB = [1 1 1 1 0,1 0 0 0 1,1 0 0 0 1,1 1 1 1 0,1 0 0 0 1,1 0 0 0 1,1 1 1 1 0];
letterC = [0 1 1 1 0,1 0 0 0 1,1 0 0 0 0,1 0 0 0 0,1 0 0 0 0,1 0 0 0 1,0 1 1 1 0];
letterD = [1 1 1 1 0,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 1 1 1 0];
letterE = [1 1 1 1 1,1 0 0 0 0,1 0 0 0 0,1 1 1 1 0,1 0 0 0 0,1 0 0 0 0,1 1 1 1 1];
letterF = [1 1 1 1 1,1 0 0 0 0,1 0 0 0 0,1 1 1 1 0,1 0 0 0 0,1 0 0 0 0,1 0 0 0 0];
letterG = [0 1 1 1 0,1 0 0 0 1,1 0 0 0 0,1 0 1 1 1,1 0 0 0 1,1 0 0 0 1,0 1 1 1 0];
letterH = [1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 1 1 1 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1];
letterI = [1 1 1 1 1,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,1 1 1 1 1];
letterJ = [1 1 1 1 1,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,1 0 1 0 0,0 1 0 0 0];
letterK = [1 0 0 0 1,1 0 0 1 0,1 0 1 0 0,1 1 0 0 0,1 0 1 0 0,1 0 0 1 0,1 0 0 0 1];
letterL = [1 0 0 0 0,1 0 0 0 0,1 0 0 0 0,1 0 0 0 0,1 0 0 0 0,1 0 0 0 0,1 1 1 1 1];
letterM = [1 0 0 0 1,1 1 0 1 1,1 0 1 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1];
letterN = [1 0 0 0 1,1 1 0 0 1,1 0 1 0 1,1 0 1 0 1,1 0 1 0 1,1 0 0 1 1,1 0 0 0 1];
letterO = [0 1 1 1 0,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,0 1 1 1 0];
letterP = [1 1 1 1 0,1 0 0 0 1,1 0 0 0 1,1 1 1 1 0,1 0 0 0 0,1 0 0 0 0,1 0 0 0 0];
letterQ = [0 1 1 1 0,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 1 1 1,0 1 1 1 0];
letterR = [1 1 1 1 0,1 0 0 0 1,1 1 1 1 0,1 1 0 0 0,1 0 1 0 0,1 0 0 1 0,1 0 0 0 1];
letterS = [0 1 1 1 0,1 0 0 0 1,1 0 0 0 0,0 1 1 1 0,0 0 0 0 1,1 0 0 0 1,0 1 1 1 0];
letterT = [1 1 1 1 1,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0];
letterU = [1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,0 1 1 1 0];
letterV = [1 0 0 0 1,1 0 0 0 1,1 0 0 0 1,0 1 0 1 0,0 1 0 1 0,0 1 0 1 0,0 0 1 0 0];
letterW = [1 0 1 0 1,1 0 1 0 1,1 0 1 0 1,1 0 1 0 1,1 0 1 0 1,1 1 0 1 1,0 1 0 1 0];
letterX = [1 0 0 0 1,1 0 0 0 1,0 1 0 1 0,0 0 1 0 0,0 1 0 1 0,1 0 0 0 1,1 0 0 0 1];
letterY = [1 0 0 0 1,1 0 0 0 1,0 1 0 1 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0];
letterZ = [1 1 1 1 1,0 0 0 1 0,0 0 1 0 0,0 0 1 0 0,0 0 1 0 0,0 1 0 0 0,1 1 1 1 1];
alphabet = [letterA;letterB;letterC;letterD;letterE;letterF;letterG;letterH;letterI;...
letterJ;letterK;letterL;letterM;letterN;letterO;letterP;letterQ;letterR;...
letterS;letterT;letterU;letterV;letterW;letterX;letterY;letterZ]';
disp(' 数字化处理过程顺利结束(用5×7矩阵)。');
%建立BP神经网络并初始化
targets = eye(26);
P=alphabet; %数字输入矩阵
T=targets; %目标矢量
S1=10; %隐含层神经元个数
[R,Q]=size(alphabet);
[S2,Q]=size(targets);
net=newff(minmax(P),[S1,S2],{'logsig','logsig'},'traingdx');
net.LW{2,1}=net.LW{2,1}*0.01;
net.b{2}=net.b{2}*0.01;
disp(' BP神经网络已经建立,下面准备训练网络。');
disp(' 网络的训练分为无噪声训练和有噪声训练。');
disp(' 请按任意键开始训练BP神经网络。');
pause
%进行无噪声训练
P=alphabet;
T=targets;
net.performFcn='sse';
net.trainParam.goal=0.01;
net.trainParam.show=10;
net.trainParam.epochs=5000;
net.trainParam.mc=0.95;
[net,tr]=train(net,P,T);
%进行有噪声训练
netn=net;
net.trainParam.goal=0.06;
net.trainParam.epochs=600;
T=[targets targets targets targets];
for pass=1:10
P=[alphabet,alphabet,...
(alphabet+randn(R,Q)*0.1),...
(alphabet+randn(R,Q)*0.2)];
[netn,tr]=train(netn,P,T);
end
%再次进行无噪声训练
P=alphabet;
T=targets;
net.performFcn='sse';
net.trainParam.goal=0.01;
net.trainParam.show=10;
net.trainParam.epochs=500;
net.trainParam.mc=0.95;
[net,tr]=train(net,P,T);
disp(' 网络训练结束,下面测试网络容错性。');
disp(' 请等待一会儿,并注意看测试结果图。');
%测试网络的容错性
noise_range=0:0.05:0.5;
max_test=100;
T=targets;
for i=1:11
noise_level(i)=noise_range(i);
errors1(i)=0;
errors2(i)=0;
for j=1:max_test
P=alphabet+randn(35,26)*noise_level(i);
%测试未经误差训练的网络
A=sim(net,P);
AA=compet(A);
errors1(i)=errors1(i)+sum(sum(abs(AA-T)))/2;
%测试经过误差训练的网络
An=sim(netn,P);
AAn=compet(An);
errors2(i)=errors2(i)+sum(sum(abs(AAn-T)))/2;
end;
end;
figure
plot(noise_range,errors1*100,'r--',noise_range,errors2*100);
title('不同训练情况下的网络识别误差');
xlabel('噪声指标');
ylabel('无噪声训练网络 -- 有噪声训练网络-');
disp(' 网络容错性测试结束。');
disp(' 按任意键开始字母识别实际测试。');
pause
%对实际含噪声的字母进行识别
for index=1:26
noisyJ=alphabet(:,index)+randn(35,1)*0.2;
figure;
plotchar(noisyJ);
A2=sim(net,noisyJ);
A2=compet(A2);
answer=find(compet(A2)==1);
figure;
plotchar(alphabet(:,answer));
end;
disp(' 程序运行结束,谢谢!');
没有合适的资源?快使用搜索试试~ 我知道了~
bp神经网络实现的手写英文字母识别,内附训练样本,基于matlab平台实现.zip
共550个文件
bmp:546个
m:3个
url:1个
需积分: 46 25 下载量 40 浏览量
2019-07-30
14:50:54
上传
评论 4
收藏 348KB ZIP 举报
温馨提示
bp神经网络实现的手写英文字母识别,内附训练样本,基于matlab平台实现
资源推荐
资源详情
资源评论
收起资源包目录
bp神经网络实现的手写英文字母识别,内附训练样本,基于matlab平台实现.zip (550个子文件)
190.bmp 12KB
106.bmp 12KB
109.bmp 12KB
89.bmp 12KB
185.bmp 12KB
15.bmp 12KB
149.bmp 12KB
175.bmp 12KB
17.bmp 12KB
165.bmp 12KB
192.bmp 12KB
111.bmp 12KB
107.bmp 12KB
135.bmp 12KB
132.bmp 12KB
75.bmp 12KB
11.bmp 12KB
121.bmp 12KB
33.bmp 12KB
176.bmp 12KB
115.bmp 12KB
136.bmp 12KB
32.bmp 12KB
186.bmp 12KB
168.bmp 12KB
123.bmp 12KB
4.bmp 12KB
203.bmp 12KB
119.bmp 12KB
116.bmp 12KB
94.bmp 12KB
16.bmp 12KB
63.bmp 12KB
91.bmp 12KB
169.bmp 12KB
124.bmp 12KB
27.bmp 12KB
13.bmp 12KB
64.bmp 12KB
166.bmp 12KB
174.bmp 12KB
50.bmp 12KB
24.bmp 12KB
122.bmp 12KB
193.bmp 12KB
182.bmp 12KB
55.bmp 12KB
39.bmp 12KB
131.bmp 12KB
206.bmp 12KB
154.bmp 12KB
45.bmp 12KB
40.bmp 12KB
150.bmp 12KB
101.bmp 12KB
59.bmp 12KB
70.bmp 12KB
199.bmp 12KB
172.bmp 12KB
29.bmp 12KB
151.bmp 12KB
76.bmp 12KB
15.bmp 12KB
17.bmp 12KB
75.bmp 12KB
11.bmp 12KB
33.bmp 12KB
32.bmp 12KB
4.bmp 12KB
16.bmp 12KB
63.bmp 12KB
27.bmp 12KB
13.bmp 12KB
64.bmp 12KB
50.bmp 12KB
24.bmp 12KB
55.bmp 12KB
39.bmp 12KB
45.bmp 12KB
40.bmp 12KB
59.bmp 12KB
70.bmp 12KB
29.bmp 12KB
76.bmp 12KB
31.bmp 12KB
73.bmp 12KB
47.bmp 12KB
18.bmp 12KB
53.bmp 12KB
1.bmp 12KB
71.bmp 12KB
42.bmp 12KB
22.bmp 12KB
7.bmp 12KB
77.bmp 12KB
5.bmp 12KB
56.bmp 12KB
37.bmp 12KB
14.bmp 12KB
66.bmp 12KB
共 550 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
weixin_45453880
- 粉丝: 18
- 资源: 98
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功