DIP课程设计报告

上传人:无*** 文档编号:62944170 上传时间:2022-03-16 格式:DOC 页数:16 大小:271.50KB
返回 下载 相关 举报
DIP课程设计报告_第1页
第1页 / 共16页
DIP课程设计报告_第2页
第2页 / 共16页
DIP课程设计报告_第3页
第3页 / 共16页
点击查看更多>>
资源描述
.word可编辑.数字图像处理课程设计报告手写阿拉伯数字的识别1、课程设计目的1)、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。掌握文献检索的方法与技巧。2)、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。2、方法综述2.1手写阿拉伯数字识别的研究背景字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊 符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。近几年来我国开始大力推广的三金”工程在很大程度上要依赖数据信息的输入,如果能通过手写数字识别技术实现信息的自动录入,无疑会促进这一事业的进展。因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益。2.2人工神经网络的概念人工神经网络(Artificia Neural Network )至今还没有一个比较科学和权威的定义。有一种定义是:人工神经网络是生理学上的真实人脑神经网络的结构和功能,以及若干基本特征的某种理论抽象,简化和模拟而构成的一种信息处理系统。”从系统观点看,人工神经网络是由大量神经元通过极其丰富和完善的联接而成的,模拟大脑的基本特性的自适应非线性动态系统。神经元之间的连接方式不同,神经网络的结构形态也就不同。具体的生理学上的定义本文不再展开赘述。2.3 BP神经网络神经网络的应用已经渗透到各个领域中,包括金融、股票预测,自动控制,机器人,模式识别,计算机视觉和图像处理,信号处理等等,2345其中软件模拟的BP网络是应用最多、最成功的网络。本次课程设计是基于BP神经网络对手写阿拉伯数字进行识别,故下文介绍关于BP神经网络的概念。神经网络的概念BP( Back Propagation )网络又叫误差反向传播网络,是由美国加利福尼亚大学的PDP小组提出的一种神经网络算法,实现了 Minsky和Papert认为不能实现的多层网络的设想。BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐藏层逐层处理后,传向输出层。若输出层的实际 输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受到的程度,或进行到预先设定的学习次数为此。BP网络的基本结构如图 1所示,网络由不同层次的节点集合组成,每一层节点的输出送到下一层节点。这些输出值由于连接权不同而被放大 、衰减或抑制。除了输入层外,每一节 点的输入为前一节点输出值的加权和 。每一节点的激励输出值由节点输入 、激励函数及闭值决定。出原JU9输人图1 : BP网络模型BP网络的学习算法使用梯度搜索技术,以期望网络的实际输出与期望输出的均方差最小。网络的学习是一种在误差反向转播的同时修正的过程。学习过程应包括两个阶段:前向 计算阶段和反向调整阶段2.4图像分割:对二值化后的图像进行分割处理,本课程设计采用基于字符连通域的分割。由于对数字的书写有一定要求,两个字符之间不能出现连笔的情况,因此可以对二值图像各个分离部分进行标注来分割字符,用函数bwlabel来实现。用函数regi on props来度量图像区域属性,包括属性BoundingBox(表示各标注区域的最小矩形)和Centroid (表示各区域的质心)。通过对各个区域标注及各个区域起点坐标和区域范围(包括宽度和高度)的确定来截取字符,所用函数为imcrop ,最后调用函数imresize对图像进行归一化处理。2.5特征提取通过粗网格方法来提取特征。首先对分割后的字符归一化为 70 X50的点阵,然后将 此矩阵等分为7X5的网格,接着依次统计每一个网格内黑像素点(即1 ”)的个数,得到一个以数字表示的7X5维的网格特征,将7X5维特征矩阵转变为一维特征 ,最后对其进行归 一化操作。3、实验结果与分析3.1课程设计的结构及流程基于BP神经网络的手写体数字识别系统大致可以分为输入、预处理、特征提取、BP神经网络识别4个部分。输入包括数字样本集扫描输入和待识别数字输入,先用数字样本集扫描输入图像经预处理后特征提取的特征向量来训练神经网络,再用训练好的神经网络来识别待识别数字。预处理部分包括二值化、平滑、去噪、细化,再对预处理后二值点阵图 像进行特征提取。最后将所提取的特征量输入训练好的神经网络进行识别,输出识别结果。基于BP神经网络的手写体数字识别系统的结构及流程如图2所示。图2 :手写阿拉伯数字识别系统的流程图3.2预处理模块由于扫描输入的图像一般为RGB格式,预处理首先需要将其转化为二值化的图像,即只包含0”、“的矩阵形式。先将原始图像转化为灰度图像,通过函数rgb2gray来实现,再通过函数im2bw转化为二值图像,然后对二值化后的图像进行分割处理,3.3数字的识别和比对采用三层BP神经网络来实现。通过实验测试设定隐含层神经元数目为10,所以只需分类10个数字,设定输出层神经元数目为 10。隐含层神经元的传递函数采用 S型对数函数 logsig,输出层神经元传递函数也采用 S型对数函数logsig,此神经网络的训练函数采用专业.专注trainlm ,性能函数采用sse,训练步数最长设为 5000,性能目标设为0.01。3.4实验结果图3: GUI界面及实验结果t 1i17勺 i|I J bd-亠14厶亠-l|n白i$g |裁药弊征曲(.识別2图4:导入具体需要进行识别的图像二馆圉稼图5:对需要识别的数字进行选择和裁剪图6 :对需要识别的手写阿拉伯数字进行预处理3.4 . 1预处理模块的部分源代码:function img = edu_imgpreprocess(l)Igray = rgb2gray(I);Ibw = im2bw(lgray,graythresh(lgray);% 将图像转化为二值图像Iedge = edge( uin t8(Ibw);se = strel( square ,3);Iedge2 = imdilate(Iedge, se);Ifill= imfill(ledge2, holes);Ilabel num = bwlabel(Ifill);Iprops = regi on props(Ilabel);Ibox = Iprops.Bo undin gBox;Ibox = reshape(Ibox,4 50);Ic = Iprops.Ce ntroid;Ic = reshape(Ic,2 50);Ic = Ic;Ic(:,3) = (mea 门(9人2,2)人(1/2);Ic(:,4) = 1:50;Ic2 = sortrows(Ic,2);for cnt = 1:5lc2(cnt-1)*10+1:cnt*10,:) = sortrows(lc2(cnt-1)*10+1:cnt*10,:),4);endIc3 = Ic2(:,1:2);ind = Ic2(:,4);for cnt = 1:50imgc nt = imcrop(lbw,lbox(:,i nd(c nt);end fun ctio n bw2 = edu_imgcrop(bw)%找到图像的边界y2temp x2temp = size(bw);x1=1;y1=1;x2=x2temp;y2=y2temp;% 找出最左边的空格(Finding left side blank spaces )cntB=1;while (sum(bw(:,cntB)=y2temp)x1=x1+1;cntB=cntB+1;end% 找出最右边的空格(Finding right side blank spaces )cntB=1;while (sum(bw(cntB,:)=x2temp)y1= y1+1;cntB=cntB+1;end%找出最上边的空格 (Finding upper side blank spaces)cntB=x2temp;while (sum(bw(:,cntB)=y2temp)x2=x2-1;cntB=cntB-1;end% 找出最下边的空格(Finding lower side blank spaces )cn tB=y2temp;while (sum(bw(cntB,:)=x2temp)y2=y2-1;cntB=cntB-1;end% 对图像进行裁剪 (Crop the image to the edge )bw2=imcrop(bw,x1,y1,(x2-x1),(y2-y1);栽剪图7:对需要识别的手写阿拉伯数字进行特征提取特征提取的源代码 fun ctio n lett = edu_imgresize(bw2)% This fun cti on will take the cropped binary image and cha nge it to 5 x 7% character represe ntati on in sin gle vector.bw_7050=imresize(bw2,70,50);% 重新定义尺寸%粗网格的特征提取方法for cn t=1:7for cnt2=1:5Atemp=sum(bw_7050(cnt*10-9:cnt*10),(cnt2*10-9:cnt2*10); lett(c nt-1)*5+cnt2)=sum(Atemp);endendlett=(1OO-lett)/1OO);% 特征向量的归一化lett=lett;:识别模块的源代码fun ctio n net = edu_create nn (P,T)% 创建神经网络alphabet = P;targets = T;R,Q = size(alphabet);S2,Q = size(targets);S1 = 10;S2=10;net = newff(minmax(alphabet),S1 S2, logsig logsig ,trainlm); net.LW2,1 = n et 丄 W2,1*0.01;n et.b2 = n et.b2*0.01;n et.performFc n =sse;n et.tra in Param.goal = 0.01;n et.tra in Param.show = 20;n et.tra in Param.epochs = 5000;n et.tra in Param.mc = 0.95;P = alphabet;T = targets;n et,tr = trai n(n et,P,T);3.5实验结果的分析在本次课程实验中我对 0到9这10个手写的数字进行识别,在实验过程中,发现该系统 没办法达到百分之百的准确率,进行多次程序的调试这个问题仍然没办法得到改进。例如该系统有时会将8识别为1,将7识别为3,或者将7识别为2,但是对于4,5这两个数,识 别的准确率能达到百分之百 。5、课程设计总结与体会通过本次的课程设计使得我对手写阿拉伯数字识别系统的设计和运行有了深入的了解,也使得我对数字图像处理这个课程有了深入的探索。在整个设计过程中,我认为最重要的是要有整体规划的思想,先对课题进行需求的分析,分成几个模块进行设计和编程,最后设计一个 GUI界面将各个模块整合到一个系统中,完成课程设计题目的要求 。在这个过程中我深化了课本所学习到的理论知识,也通过在网上查询资料和文献学习到了课本以外的知识,这开拓了我的见识。在老师的指导下我通过对代码进行分析提高了编程能力,但是涉及一些比较细致的参数设置还没有深入地研究过,有待提高。6、参考文献1荣辉.张济世人工神经网路及其现状与展望电子技术应用1995年第10期4 一 5页2 T,J,Sejnowiski,C,R,Rosenberg” Paralle Netwoeks that Learn to Pronounce EnglishTest ” Complex Systems,1987:1 145-1683陈明,赵瑞清.BP神经网络的比例训练.计算机学报,1993(8)4靳蕃,范俊波,谭永东。神经网络与神经计算机.西南交大,1991庄镇泉,王煦法,王东生.神经网络与神经计算机.北京:科学出版社,19926:毛群.王少飞.基于matlab的神经网络数字识别系统实现.中国西部科技.2010(09).7:施少敏.马彦恒.陈建泗.基于BP网络的数字识别方法.兵工自动化8:朱曼丽.孙志锋.孙志林.一种基于神经网络的数字识别方法.计算机工程与应用.2002.129:乔宝明张晓莉高志才基于matlab识别0-9数字图像的新方法.技术与创新管理.2009.310:许捍卫.王成.一种简单的数字识别方法研究.河海大学测量工程系
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!