基于BP网络识别26个英文字母的Matlab实现
创作时间:
作者:
@小白创作中心
基于BP网络识别26个英文字母的Matlab实现
引用
CSDN
1.
https://blog.csdn.net/m0_46653805/article/details/135174994
BP神经网络(Backpropagation Neural Network)是一种多层前馈神经网络,通过反向传播算法来调整网络权重,实现对输入数据的分类或预测。字符识别是模式识别领域的一个重要应用,广泛应用于车牌识别、手写识别等领域。本文将介绍如何使用BP神经网络实现26个英文字母的识别,使用Matlab作为开发工具。
一、设计思想
字符识别在现代日常生活的应用越来越广泛,比如车辆牌照自动识别系统,手写识别系统,办公自动化等等。本文采用BP网络对26个英文字母进行识别。首先将待识别的26个字母中的每一个字母都通过长和宽分别为7×5的方格进行数字化处理,并用一个向量表示。其相应有数据的位置置为1,其他位置置为0。
二、程序的调用
将M文件及相应的字母图标复制到桌面上。
(一)、打开shibie.m文件,1运行会出现下列提示:请直接按回车键正在生成输入向量和目标向量,请稍等…。2直接按回车键,会出现下列提示:输入向量和目标向量生成结束!请按回车键进行神经网络的训练。3再按回车键,会进行训练,训练完毕后会出现下图所示的结果(图1)
(二)、打开shibie2.m文件,1运行会出现下列提示:请输入测试的图像2输入图形编号如O的为143,回车。会出现如下图所示的结果
同理,字母M为123,其输出结果为
三、总结
通过仿真结果可看出,基于BP算法的字母识别其容错性和识别率相对较高,在有噪声的情况下训练其识别出错率也相应增加,许进一步改进。
部分源码:(其余完整详见文末)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%识别26个大写字母%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;
clear all;
disp('回车键 ...')
chos=input('请直接按回车键正在生成输入向量和目标向量,请稍等… ');
if isempty(chos), chos=0; end
if chos==0,
for kk=0:256
p1=ones(16,16);% 初始化16×16的二值图像像素值(全白)
m =strcat('nums\',int2str(kk),'.bmp');% 形成训练样本图像的文件名(0~89.bmp)
x=imread(m,'bmp');% 读入训练样本图像文件
bw=im2bw(x,0.5);% 将读入的训练样本图像转换为二值图像
[i,j]= find(bw==0);% 寻找二值图像中像素值为0(黑)的行号和列号
imin=min(i);% 寻找二值图像中像素值为0(黑)的最小行号
imax=max(i);% 寻找二值图像中像素值为0(黑)的最大行号
jmin=min(j);% 寻找二值图像中像素值为0(黑)的最小列号
jmax=max(j);% 寻找二值图像中像素值为0(黑)的最大列号
bw1=bw(imin:imax,jmin:jmax);% 截取图像像素值为0(黑)的最大矩形区域
rate=16/max(size(bw1));% 计算截取图像转换为16×16的二值图像的缩放比例
bw1=imresize(bw1,rate);% 将截取图像转换为16×16的二值图像(由于缩放比例
% 大多数情况下不为16的倍数,所以可能存在转换误差)
[i,j]=size(bw1);% 转换图像的大小
i1=round((16-i)/2);% 计算转换图像与标准16×16的图像的左边界差
j1=round((16-j)/2);% 计算转换图像与标准16×16的图像的上边界差
p1(i1+1:i1+i,j1+1:j1+j)=bw1;% 将截取图像转换为标准的16×16的图像
p1= -1.*p1+ones(16,16);% 反色处理 % 以图像数据形成神经网络输入向量
for m=0:15
p(m*16+1:(m +1)*16,kk+1)=p1(1:16,m+1);
end % 形成神经网络目标向量
switch kk
case{0,1,2,3,4,5,6,7,8,9} % 字母A
t(kk+1)=0;
case{10,11,12,13,14,15,16,17,18,19} % 字母B
t(kk+1)=1;
case{20,21,22,23,24,25,26,27,28,29} % 字母C
t(kk+1)=2;
case{30,31,32,33,34,35,36,37,38,39} % 字母D
t(kk+1)=3;
case{40,41,42,43,44,45,46,47,48,49} %字母E
t(kk+1)=4;
case{50,51,52,53,54,55,56,57,58,59} %字母F
t(kk+1)=5;
case{60,61,62,63,64,65,66,67,68,69} % 字母G
t(kk+1)=6;
case{70,71,72,73,74,75,76,77,78,79} % 字母H
t(kk+1)=7;
case{80,81,82,83,84,85,86,87,88,89} % 字母I
t(kk+1)=8;
case{90,91,92,93,94,95,96,97,98,99} % 字母J
t(kk+1)=9;
case{100,101,102,103,104,105,106,107,108,109} % 字母K
t(kk+1)=10;
case{110,111,112,113,114,115,116,117,118,119} % 字母L
t(kk+1)=11;
case{120,121,122,123,124,125,126,127,128,129} % 字母M
t(kk+1)=12;
case{130,131,132,133,134,135,136,137,138,139} % 字母N
t(kk+1)=13;
case{140,141,142,143,144,145,146,147,148,149} % 字母O
t(kk+1)=14;
case{150,151,152,153,154,155,156,157,158,159} % 字母P
t(kk+1)=15;
case{160,161,162,163,164,165,166,167,168,169} % 字母Q
t(kk+1)=16;
case{170,171,172,173,174,175,176,177,178,179} % 字母R
t(kk+1)=17;
case{180,181,182,183,184,185,186,187,188,189} % 字母S
t(kk+1)=18;
case{190,191,192,193,194,195,196,197,198,199} %字母T
t(kk+1)=19;
case{200,201,202,203,204,205,206,207,208,209} % 字母U
t(kk+1)=20;
case{210,211,212,213,214,215,216,217,218,219} % 字母V
t(kk+1)=21;
case{220,221,222,223,224,225,226,227,228,229} % 字母W
t(kk+1)=22;
case{230,231,232,233,234,235,236,237,238,239} % 字母X
t(kk+1)=23;
case{240,241,242,243,244,245,246,247,248,249} % 字母Y
t(kk+1)=24;
case{250,251,252,253,254,255,256,257,258,259} % 字母Z
t(kk+1)=25;
end
end
end
save E52PT p t; % 存储形成的训练样本集(输入向量和目标向量)
disp('输入向量和目标向量生成结束!')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%神经网络的训练%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
disp(' ');
chos=input('请按回车键进行神经网络的训练 ');
if isempty(chos), chos=0; end
if chos==0,
load E52PT p t; % 加载训练样本集(输入向量和目标向量)
% 创建BP网
pr(1:256,1)=0;
pr(1:256,2)=1;
net= newff(pr,[26 1],{'logsig','purelin'},'traingdx','learngdm');
% 设置训练参数和训练BP网络
net.trainParam.epochs = 5000;
net.trainParam.goal= 0.002;
net.trainParam.show = 100;%步长为100
net.trainParam.lr=0.05;
net= train(net,p,t);
热门推荐
这些不起眼的小游戏里,藏着星铁新世界的大秘密
如何查询自己名下的证券账户?这种查询对投资者管理有何帮助?
修真功法vs不修真功法:游戏中修真功法的利弊与选择
9个高级哲理素材+10位哲学家的思想,第一个是史上最难高考作文题!
揭秘向量:物理世界中的方向与大小
防患未然:预防LCD液晶屏出现烧屏现象的有效方法
术后「疤痕」怎么办?5个方法教你预防和淡化!
软黄金的市场含义是什么?这种黄金类型对投资选择有何影响?
谷氨酰转肽酶偏高的原因及应对方法
耳朵后面摸到的小疙瘩,到底是个啥?
NBA球星科比的职业生涯,科比职业生涯各项荣誉和数据
领略中国古诗词之美——《江畔独步寻花》(其五)
SSD固态硬盘修复指南:常见问题及解决方案
状态方程ABCD矩阵如何确定例子
被情绪不成熟的父母抚养长大的6个迹象
北京市足球运动协会关于U20球员郭嘉璇意外受伤及救治情况的说明
如何制作专业且吸引人的PPT演示文稿技巧全攻略
人类历史最光辉的时刻(上篇)
八字排盘:如何看自己的贵人运和官运
怎样提升基层战斗堡垒的质量和效率?
纽约大学申请分析:费用明细/录取成绩要求/国际生数据变化/申请&转学指南
券商研判A股“春季行情”:科技成长与消费为配置主线
中国人在国外注册公司税务问题全解析:避坑指南与实用建议
这些地域梗你都知道吗?
普洱茶养生指南:菊花、金银花、红枣枸杞等搭配功效全解析
长歌行:李乐嫣的历史原型,她经历了三次婚姻,却只爱过一个人
怎么让销售绩效提升优化销售定价策略?
东北林业大学计算机与控制工程学院 | 电气类
媒体人点评郭艾伦眼睛受伤:队内训练至于这么拼吗?别干砸人饭碗的事
2025新高考45个志愿怎么填报的?附45个志愿填报重点和技巧