ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:285KB ,
资源ID:6941666      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6941666.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DIP课程设计报告文档格式.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

DIP课程设计报告文档格式.doc

1、具体的生理学上的定义本文不再展开赘述。2.3 BP神经网络神经网络的应用已经渗透到各个领域中,包括金融、股票预测,自动控制,机器人,模式识别,计算机视觉和图像处理,信号处理等等, T,J,Sejnowiski,C,R,Rosenberg”Paralle Netwoeks that Learn to Pronounce English Test”,Complex Systems,1987:1 145-168 陈明,赵瑞清.BP神经网络的比例训练.计算机学报,1993(8) 靳蕃,范俊波,谭永东。神经网络与神经计算机.西南交大,1991 庄镇泉,王煦法,王东生.神经网络与神经计算机.北京:科学出版

2、社,19926:毛群.王少飞.基于matlab的神经网络数字识别系统实现.中国西部科技.2010(09).7:施少敏.马彦恒.陈建泗.基于BP网络的数字识别方法.兵工自动化.2006.25.108:朱曼丽.孙志锋.孙志林.一种基于神经网络的数字识别方法.计算机工程与应用.2002.129:乔宝明张晓莉高志才基于matlab识别0-9数字图像的新方法.技术与创新管理.2009.310:许捍卫.王成.一种简单的数字识别方法研究.河海大学测量工程系其中软件模拟的BP网络是应用最多、最成功的网络。本次课程设计是基于BP神经网络对手写阿拉伯数字进行识别,故下文介绍关于BP神经网络的概念。 2.3.1 B

3、P神经网络的概念 BP(Back Propagation)网络又叫误差反向传播网络,是由美国加利福尼亚大学的PDP小组提出的一种神经网络算法,实现了Minsky和Papert认为不能实现的多层网络的设想。BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐藏层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传

4、播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受到的程度,或进行到预先设定的学习次数为此。BP网络的基本结构如图1所示,网络由不同层次的节点集合组成,每一层节点的输出送到下一层节点。这些输出值由于连接权不同而被放大、衰减或抑制。除了输入层外,每一节点的输入为前一节点输出值的加权和。每一节点的激励输出值由节点输入、激励函数及闭值决定。图1:BP网络模型BP网络的学习算法使用梯度搜索技术,以期望网络的实际输出与期望输出的均方差最小。网络的学习是一种在误差反向转播的同时修正的过程。学习过程应包括两个阶段:前向计算阶段和

5、反向调整阶段2.4图像分割: 对二值化后的图像进行分割处理,本课程设计采用基于字符连通域的分割。由于对数字的书写有一定要求,两个字符之间不能出现连笔的情况,因此可以对二值图像各个分离部分进行标注来分割字符,用函数bwlabel来实现。用函数regionprops来度量图像区域属性, 包括属性BoundingBox( 表示各标注区域的最小矩形) 和Centroid(表示各区域的质心)。通过对各个区域标注及各个区域起点坐标和区域范围(包括宽度和高度)的确定来截取字符, 所用函数为imcrop,最后调用函数imresize对图像进行归一化处理。2.5特征提取 通过粗网格方法来提取特征。首先对分割后的

6、字符归一化为7050的点阵,然后将此矩阵等分为75的网格,接着依次统计每一个网格内黑像素点(即“1”)的个数,得到一个以数字表示的75维的网格特征,将75维特征矩阵转变为一维特征,最后对其进行归一化操作。3、实验结果与分析 3.1课程设计的结构及流程 基于BP神经网络的手写体数字识别系统大致可以分为输入、预处理、特征提取、BP神经网络识别4个部分。输入包括数字样本集扫描输入和待识别数字输入,先用数字样本集扫描输入图像经预处理后特征提取的特征向量来训练神经网络,再用训练好的神经网络来识别待识别数字。预处理部分包括二值化、平滑、去噪、细化,再对预处理后二值点阵图像进行特征提取。最后将所提取的特征量

7、输入训练好的神经网络进行识别,输出识别结果。基于BP神经网络的手写体数字识别系统的结构及流程如图2所示。 开始读入需要识别数字的图像将图像转化为灰度图像将灰度图像转化为二值图像图像分割预处理模块特征提取进行数字的识别和比对图2:手写阿拉伯数字识别系统的流程图3.2预处理模块由于扫描输入的图像一般为RGB格式,预处理首先需要将其转化为二值化的图像,即只包含“0”、“1”的矩阵形式。先将原始图像转化为灰度图像, 通过函数rgb2gray来实现,再通过函数im2bw转化为二值图像,然后对二值化后的图像进行分割处理,3.3数字的识别和比对 采用三层BP神经网络来实现。通过实验测试设定隐含层神经元数目为

8、10,所以只需分类10个数字,设定输出层神经元数目为10。隐含层神经元的传递函数采用S型对数函数logsig, 输出层神经元传递函数也采用S 型对数函数logsig,此神经网络的训练函数采用trainlm,性能函数采用sse,训练步数最长设为5000,性能目标设为0.01。3.4实验结果图3:GUI界面及实验结果 图4:导入具体需要进行识别的图像图5:对需要识别的数字进行选择和裁剪 图6:对需要识别的手写阿拉伯数字进行预处理3.41预处理模块的部分源代码:function img = edu_imgpreprocess(I)Igray = rgb2gray(I);Ibw = im2bw(Igr

9、ay,graythresh(Igray);%将图像转化为二值图像Iedge = edge(uint8(Ibw);se = strel(square,3);Iedge2 = imdilate(Iedge, se);Ifill= imfill(Iedge2,holes);Ilabel num = bwlabel(Ifill);Iprops = regionprops(Ilabel);Ibox = Iprops.BoundingBox;Ibox = reshape(Ibox,4 50);Ic = Iprops.Centroid;Ic = reshape(Ic,2 50);Ic = Ic;Ic(:,3

10、) = (mean(Ic.2,2).(1/2);,4) = 1:50;Ic2 = sortrows(Ic,2);for cnt = 1:5 Ic2(cnt-1)*10+1:cnt*10,:) = sortrows(Ic2(cnt-1)*10+1:),4);end Ic3 = Ic2(:,1:2);ind = Ic2(:,4);50 imgcnt = imcrop(Ibw,Ibox(:,ind(cnt);endfunction bw2 = edu_imgcrop(bw)% 找到图像的边界y2temp x2temp = size(bw);x1=1;y1=1;x2=x2temp;y2=y2temp;

11、% 找出最左边的空格(Finding left side blank spaces)cntB=1;while (sum(bw(:,cntB)=y2temp) x1=x1+1; cntB=cntB+1;% 找出最右边的空格(Finding right side blank spaces)while (sum(bw(cntB,:)=x2temp) y1=y1+1;%找出最上边的空格( Finding upper side blank spaces)cntB=x2temp; x2=x2-1; cntB=cntB-1;% 找出最下边的空格(Finding lower side blank spaces

12、)cntB=y2temp; y2=y2-1;% 对图像进行裁剪(Crop the image to the edge)bw2=imcrop(bw,x1,y1,(x2-x1),(y2-y1);图7:对需要识别的手写阿拉伯数字进行特征提取3.4.2特征提取的源代码function lett = edu_imgresize(bw2)% This function will take the cropped binary image and change it to 5 x 7% character representation in single vector.bw_7050=imresize(bw

13、2,70,50);%重新定义尺寸%粗网格的特征提取方法for cnt=1:7 for cnt2=1: Atemp=sum(bw_7050(cnt*10-9:cnt*10),(cnt2*10-9:cnt2*10); lett(cnt-1)*5+cnt2)=sum(Atemp); endlett=(100-lett)/100);%特征向量的归一化lett=lett3.4.3:识别模块的源代码function net = edu_createnn(P,T)%创建神经网络alphabet = P;targets = T;R,Q = size(alphabet);S2,Q = size(targets)

14、;S1 = 10;S2=10;net = newff(minmax(alphabet),S1 S2,logsig ,trainlmnet.LW2,1 = net.LW2,1*0.01;net.b2 = net.b2*0.01;net.performFcn = sse net.trainParam.goal = 0.01; net.trainParam.show = 20; net.trainParam.epochs = 5000;net.trainParam.mc = 0.95;P = alphabet;T = targets;net,tr = train(net,P,T);3.5实验结果的分

15、析 在本次课程实验中我对0到9这10个手写的数字进行识别,在实验过程中,发现该系统没办法达到百分之百的准确率,进行多次程序的调试这个问题仍然没办法得到改进。例如该系统有时会将8识别为1,将7识别为3,或者将7识别为2,但是对于4,5这两个数,识别的准确率能达到百分之百。5、课程设计总结与体会 通过本次的课程设计使得我对手写阿拉伯数字识别系统的设计和运行有了深入的了解,也使得我对数字图像处理这个课程有了深入的探索。在整个设计过程中,我认为最重要的是要有整体规划的思想,先对课题进行需求的分析,分成几个模块进行设计和编程,最后设计一个GUI界面将各个模块整合到一个系统中,完成课程设计题目的要求。在这个过程中我深化了课本所学习到的理论知识,也通过在网上查询资料和文献学习到了课本以外的知识,这开拓了我的见识。在老师的指导下我通过对代码进行分析提高了编程能力,但是涉及一些比较细致的参数设置还没有深入地研究过,有待提高。6、参考文献

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2