1 简介
阿拉伯数字作为唯一一种世界各国的通用符号,为每个国家每个地区的研究人员提供了发挥智慧的平台,使他们在数据的搜集以及处理等方面更加方便快捷,促进各国合作,进行更深刻的理论研究。并且,它在许多方面都有着广泛的实践作用,例 如: 统计数据的报告,金融方面的报表,对信封上邮编的识别,对车牌号码的精确识别等方面。先前不少学者已经对神经网络做了大量的研讨,BP 神经网络也因此而备受青睐。人们调查其系统实时性,研究其识别效果,更改其初始的权值以加快其收敛速度,探索最佳隐层节点数以提高网络,利用 BP网络的优势正确地识别数字。论文主要分析的是 BP( Back Propagation) 神经网络运用于数字识别中处理问题的能力效果。研究其训练网络所用参数,进行分析比对,选用最合适、效果最好的参数进行最终测试,通过 MATLAB 这个强大的实验平台,对实验过程进行真实仿造和还原,从而验证 BP 网络运用于数字识别的可行性与有效性。
数字识别数字识别是字符识别的一种,这里主要是运用BP 神经网络对 0,1,2,3,4,5,6,7,8,9 这十个阿拉伯数字进行精确的识别。数字识别通常都会分为好几个过程,以便按部就班地进行,减少差错和失误,而数字识别在神经网络中的进程大致分为数字输入、预处理、特征提取、模式匹配、判决、识别 6 个过程。
问题描述设计一个适当的 BP 神经网络,要求可以正确识别 10 个阿拉伯数字,当它们在受到一定的噪声干扰影响时,也可以较好地进行识别。
2 部分代码
clear all
m=input('请输入测试样本(F:\MyMATLAB\sjwl\try\):');
I=strcat('.\try\',int2str(m),'.jpg');
U=imread(I);
imtool(U); %通过键盘输入添加试验样本
load ET51net net; %加载以训练好的BP神经网络
p=zeros(900,1); %建立输入样本的空矩阵
p1=ones(30,30); %建立临时存放样本的30*30的矩阵
I1=im2bw(U,0.3); %对输入图像进行二值化处理 采用全局阈值0.3
[m,n]=find(I1==0);
rowmin=min(m);
rowmax=max(m);
colummin=min(n);
colummax=max(n);
I2=I1(rowmin:rowmax,colummin:colummax); %截取是入图像中的数字部分
rate=30/max(size(I2));
I3=imresize(I2,rate); %对输入文件变尺寸处理
[i,j]=size(I3);
row=round((30-i)/2);
for hh=1:30
p((hh-1)*30+1:(hh-1)*30+30,1)=p1(hh,1:30);
end %将处理的源样本输入供神经网络训练的样本
x=sim(net,p); %测试网络
x=round(x); %输出网络识别结果
3 仿真结果
4 参考文献
[1]罗莉. BP神经网络数字识别的Matlab实现[J]. 电子技术与软件工程, 2019(20):2.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。