基于BP神经网的数字识别
一.实验名称:基于BP神经网的数字识别二.实验目的:
熟悉利用matlab进行数字图像处理的方法。
三.实验原理
BP(BackPropagatio
)神经网络是1986年由Rumelhart和McCella
d为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(i
put)、隐层hidde
layer和输出层outputlayer。本设计使用BP神经网实现数字的识别。
四.实验内容
1用数码相机拍摄一些待识别的数字,或直接从网上下载数字的图片。2为了更利于计算机识别数字要先对数字的图像进行处理,将其转换成简单的二值图像。下面以利用QQ截图产生的图像为例说明。1)将含有数字的原图像用QQ截图截成单个数字。如下图:
用手机拍摄的照片
f截图后的单个数字的图片
2)转换图片格式(以上述qq截图为例)。
clccloseallclearallforkk09mstrcati
t2strkkp
gximreadmp
gxmat2grayxbwim2bwx05mstrcati
t2strkkbmpimwritebwmbmpe
d
上述程序将(09)p
g转换为(09)bmp。执行结果会在matlab当前路径中产生相应文件。如下图所示:
3编写程序实现数字的识别,具体实验代码如下所示:
数字识别生成输入向量和目标向量
fclearallLOADINGforkk099p1o
es1616建立全为1的样本矩阵mstrcat
umsi
t2strkkbmpximreadmbmp循环读入099个样本数字文件bwim2bwx05对输入图像进行二值化处理采用全局阈值05ijfi
dbw0imi
mi
iimaxmaxijmi
mi
jjmaxmaxjbw1bwimi
imaxjmi
jmax截取输入图像中的数字部分rate16maxsizebw1bw1imresizebw1rate对输入文件变尺寸处理ijsizebw1i1rou
d16i2j1rou
d16j2p1i11i1ij11j1jbw1建立起1616的矩阵p11p1o
es1616反色处理form015pm161m116kk1p1116m1e
d将处理的源样本输入供神经网络训练的样本pcolum是样本数循环变量switchkkcase0102030405060708090tkk10数字0case1112131415161718191tkk11数字1case2122232425262728292tkk12数字2case3132333435363738393tkk13数字3case4142434445464748494tkk14数字4case5152535455565758595tkk15数字5case6162636465666768696tkk16数字6case7172737475767778797tkk17r