图像识别与处理_第1页
图像识别与处理_第2页
图像识别与处理_第3页
图像识别与处理_第4页
图像识别与处理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、研究生课程论文(作业)封面( 2015 至 2016 学年度 第 1 学期) 课 程 名 称: 图像识别与处理技术 课 程 编 号: 211320 学 生 姓 名: 潘琪 学 号: 140710611 年 级: 2014级 任 课 教 师: 吴秋峰 提 交 日 期: 2016 年 1 月 20 日成 绩:_教 师 签 字:_开课-结课:第 周-第 周评 阅 日 期: 年 月 日东北农业大学研究生院制利用神经网络进行数字识别的方法探索 摘 要:本文介绍了一种利用BP神经网络进行印刷体数字像识别的方法。利用MATLAB软件提取图像里的数字信息,进行灰度处理和二值化处理,作为输入建立一个BP神经网络

2、,并对其进行测试。最终可对特定大小的数字图像进行识别。 关键词:BP神经网络,灰度,特征值 Abstract: This paper introduces a method of using BP neural network to carry out the digital image recognition of the printed body. Using MATLAB software to extract digital information from the image, the gray processing and binarization processing, as a

3、n input to build a BP neural network, and to test its. Finally, the specific size of the digital image can be distinguished. Keywords: BP neural network, gray level, characteristic value1 BP神经网络的基本原理和学习算法1.1 BP神经网络处理信息的基本原理 自然神经系统是由结构上相对独立的神经细胞构成的,这些细胞被称为神经元。单个神经元完成相对比较简单的功能,然而神经元之间的广泛连接、复杂结构使得神经系统具

4、有高级智能活动的能力。基于这种认识,人们提出了多种人工神经网络的模型从不同角度来模拟自然神经。一个神经网络的模型主要由神经元的计算特性、网络的结构、连接权值的学习规则三方面要素来决定。BP神经网络采用并行网络结构,包括输入层、隐层和输出层,经过作用函数后,把隐含层节点的输出信号传递到输出节点,最后给出输出结果。输入信号通过隐层点作用于输出节点,经过非线性变换,产生输出信号,网络训练的每个样本包括输入向量和期望输出量,网络输出值与期望输出值之间的偏差,通过调整输入节点与隐层节点的联接强度取值和隐层节点与输出节点之间的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的

5、权值和阈值后停止训练。经过训练后的网络能对类似样本的输入信息自行处理,输出经过非线性转换的误差最小的信息。1.2 BP神经网络的学习算法 基本BP学习算法包括信号的前向传播和误差的反向传播两个方面,根据从出入到输出方向得到的输出值,从输出到输入方向进行权值和阈值的调整。BP神经网络结构如图所示。 其中:表示输入层第个输入节点,; 表示第个输入节点到第个隐层节点之间的权值,; 表示第个隐层节点的阈值; 表示隐层的激励函数; 表示第个隐层节点到第个输出节点之间的权值,; 表示第个输出节点的阈值; 表示输出层的激励函数; 表示第个输出节点的输出。 信号的前向传播: 第个隐层节点的输入: 第个隐层节点

6、的输出: 第个输出层节点的输入: 第个输出层节点的输出: 误差的反向传播: 首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出接近期望值。 每一个样本的二次型误差准则函数为: 为第个输出层的期望输出。 系统对个训练样本的总误差准则函数为: 根据误差梯度下降法依次求出输出层权值的修正量,输出层阈值的修正量,隐含层权值的修正量,隐含层阈值的修正量: 输出层权值修正量: 输出层阈值修正量: 隐层权值修正量: 隐层阈值修正量: 其中为学习率。 又因为:, 整理后可以得到: 假设第次学习时网络的权值和阈值分别为,则经过调整后第次学习时网络

7、的权值和阈值应为:;2 数字识别 用神经网络进行数字识别首先利用MATLAB软件对数字图像进行处理,将数字图像转化为可以进行处理的矩阵,构建一个BP神经网络,将这些矩阵作为神经网络的输入,其所对应的数作为网络的输出,即可实现数字识别的功能。数字识别首先要对图片进行预处理,对较大的图片还要进行特征值提取,较小的图片也可将处理后的数据直接作为网络的输入,最后利用BP神经网络对输入进行分类得到不同的输出。2.1 图像的预处理 由于我们得到的图片一般为RGB格式,MATLAB读取后为的矩阵,其中为图片的像素值,是3层取值范围为0255的矩阵的叠加。我们可以利用“rgb2gray”函数将其转化为灰度矩阵

8、作为输入,灰度矩阵是取值范围为0255的矩阵。为了更容易处理,我们可以进一步利用“im2bw”函数将灰度图像转化为只包含“0”和“1”的二值图像,以二值矩阵作为输入,利用神经网络进行学习训练后输出。 本文采用3组图像作为训练样本,每组图像是包含09的10个图片,每个图片像素大小都为,如果采集的数字图像大小不是,可以利用“imresize”函数对其进行处理。三组图像分别用新罗马字体、仿宋体、华文新魂输入,采用png格式保存,如图所示。 将原始图像转化为灰度图像和二值图像,主程序如下:I=imread(xxx.png); %读取文件名为xxx的png图片 gray=rgb2gray(I); %将r

9、gb图像转化为灰度图像 gray=imresize(gray,32,32); %将图像大小标准化为32*32 bw=im2bw(gray,0.5); %将灰度图像转化为二值图像 对每个图片执行上述命令即可得到每个图像的灰度矩阵和二值矩阵,我们以第二组图像中的4为例,执行命令后的结果如下图所示: 其中第一个为原图像,第二个为灰度图像,第三个为二值图像。我们可以看出,原图像和灰度值图像的边缘部分分界不明显,而二值图像有明显的边界。这是因为原图像和灰度图像是用0255这256个数来表示亮度,数值越大亮度越高,因此边界存在过渡色。而二值图像是用“0”和“1”来表示亮度,空白处为1,黑处为0,并且在程序

10、中设定的是以灰度值的中点为分界点,当灰度值小于最大值的一半时取0,大于最大值的一半时取1。经过处理后我们可以得到两个的灰度矩阵和二值矩阵。2.2 特征值提取 图像经二值化处理后大小并没有改变,当图像像素太大时输入量就太多,本例中每个图片就需要个输入。我们可以对每个图片提特征值,这样就可以减少神经网络的输入,提高学习效率。我们可以将原矩阵横向分为8份,纵向分为8份,构成一个矩阵,输入就减少为64个。这样矩阵的每个位置相当于原矩阵的小块,可以将每个小块中0的个数作为新矩阵的值,即表示每个位置黑色块的多少。提取特征值的算法如下(已经得到二值矩阵bw): for i=1:1:8 a=(i-1)*4+1

11、; c=a; d=a+4; for j=1:1:8 b=(j-1)*4+1; e=b; f=b+4; g=0; for h=c:1:d-1 for k=e:1:f-1 if bw(h,k)=0 g=g+1; end end end x(i,j)=g; end end 任然接上例,我们对4的二值矩阵进行特征值提取,运行结果如下图: 可以得到其特征值矩阵: 以此作为BP神经网络的输入,输出为4。以此类推,对每个图片执行上述命令后就可以得到30个用特征值矩阵表示的训练样本。3 数字识别 对图像进行预处理和特征值提取后,我们就得到了所需的训练样本,可以构建神经网络进行训练仿真。这里采用“newff”函

12、数构建两层BP神经网络,隐含层包含16个神经元,采用双曲正切函数“tansig”;输出层有1个神经元,采用线性函数“purelin”;训练函数采用“trainrp”。 如果将二值函数直接作为输入,则网络有1024个输入,1个输出;若以特征值矩阵作为输入,则网络有64个输入,一个输出。 在进行训练前,最好利用“reshape”函数将输入矩阵构造成的列矩阵以便于网络输入,调用格式为:“xx=reshape(x,n,1)”,其中xx为新矩阵,x为原矩阵,为输入神经元的个数。 在这里我们直接采用二值矩阵作为输入,建立网络的主程序如下:P=p11,p21,p31,p41,p51,p61,p71,p81,

13、p91,p101,p12,p22,p32,p42,p52,p62,p72,p82,p92,p102,p13,p23,p33,p43,p53,p63,p73,p83,p93,p103;t=1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0;net=newff(P,t,16,tansig,purelin,trainrp);net=initnw(net,2); 其中p11到p103分别为各个图片转化为列矩阵后的二值矩阵,t为每个图片对应的输出值。 因为使用“newff”函数建立函数网络时,权值和阈值的初始化是随机的,所以要根据经验调

14、整输出层权值和阈值。 应用“train”函数对网络进行训练之前,需要预先设置网络训练参数。将训练步数设置为200,训练精度设置为0.001,两次显示之间的训练步数为15,动量项因子为0.9,性能函数为均方误差性能函数,程序如下: net.trainParam.epochs=200; net.performFcn=sse; net.trainParam.goal=0.001; net.trainParam.show=15; net.trainParam.mc=0.9; net=train(net,P,t); 训练结果如下: 可以看出,该网络在进行18次训练后得到最优的权值和阈值。训练完成后可用“

15、sim”函数进行仿真,调用格式为: Y=sim(net,P); 仿真结果为:Y=1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 对网络进行检验,假设输入图片为如下含有噪声的图片: 对其进行预处理得到二值矩阵p0后,用该网络进行仿真,得到输出y: y=sim(net,p0); 结果为y=5。可见网络性能较好。4 结论 本文介绍了一种利用BP神经网络进行数字识别的方法,先对图片进行预处理,对较大的图片还需要进行特征值提取,得到用来表示图片的矩阵作为输入,采用输入层1024层,隐含层16层,输出层1层的网络进行学习训练,最终得到了较好的结果。参考文献1 张德丰. MATLAB神经网络应用设计M. 北京:机械工业出版社, 200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论