计算机模式识别课程论文-手写数字的识别研究.doc_第1页
计算机模式识别课程论文-手写数字的识别研究.doc_第2页
计算机模式识别课程论文-手写数字的识别研究.doc_第3页
计算机模式识别课程论文-手写数字的识别研究.doc_第4页
计算机模式识别课程论文-手写数字的识别研究.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

模式识别课程论文题目:手写数字的识别研究一、题目概述 数字识别处理的信息主要包括数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。作为模式识别的重要应用之一,手写数字的识别已经成为新的研究方向。手写数字识别技术是近年来研究的热点,具有广泛的应用前景,同时也是一个非常具有挑战性的课题。人工神经网络是当今智能控制领域最活跃的分支之一,它所具有的并行计算能力、容错能力、泛化能力,以及以任意精度逼近未知非线性对象的特点,使其为手写数字的识别提供了一种新的方法。手写数字识别 是光学字符识别技术的一个分支,它研究的对象是如何利用计算机自动辨认人手写在纸张上的阿拉伯数字。在整个光学字符识别领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中己取得很多可喜成就,但距离实用还有一定距离。随着信息社会步伐的加快,对字符识别技术的需求越来越迫切,要求也越来越高了,从目前水平看,计算机离线文字识别技术离达到令人满意的使用要求还有相当距离。随着我国国民经济信息网络的推广,全国有大量的数据要输入计算机网络,邮件分拣系统与税务统计系统即为典型的数字识别系统l闷。而且在当今这个快节奏的现代生活中,与数字打交道的机会越来越多,数字识别面对的都是极其大量的数据报表等,其在精度和速度方面都对识别要求提出了很大的挑战。设想在金融报表中,把300,000元认成800,000元,从字符上辨认只是一字之差,可对于金融业来说,这是绝对不允许的。二、模式识别与bp神经网络模式识别是人工智能领域应用的基础,它利用计算机和光学系统来识别计算机“看到”的图像信息,模拟人的视觉;用计算机和声音传感器来识别计算机接收到的声波信息,模拟人的听觉;用计算机通过压力、温度、气体、液体等传感器来识别计算机获得的各种特征信息,模拟人的触觉和嗅觉等功能。实际上人类在日常生活的每个环节,都从事着模式识别的活动,例如将手写的数字分到具体的数字类别中的手写数字识别;判断是否有汽车闯红灯、识别闯红灯的汽车车牌号码的智能交通管理系统等。它由数据获取、预处理、特征提取、分类决策及分类器设计五部分组成。一般分为上下两部分,上半部分完成未知类别模式的分类:下半部分属于设计分类器的训练过程,利用样品进行训练,确定分类器的具体参数,完成分类器的设计。而分类决策在识别过程中起作用,对待识别的样品进行分类决策,其关键是解决如何用计算机对样品进行分类。神经网络的概念、原理和设计是受生物、特别是人脑神经系统的启发提出的. 神经网络由大量简单的处理单元来模拟真实人脑神经网络的机构和功能以及若干基本特性,是一个高度复杂的非线性自适应动态处理系统.bp网络是1986年由rinehart和mccelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一. bp网络能学习和存贮大量的输入- 输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程. 它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小. bp神经网络模型拓扑结构包括输入( input) 、隐层( hide layer)和输出层(output layer) ,如图1所示:三、基于bp神经网络的手写数字识别3. 1输入向量与目标向量首先对手写数字图像进行预处理,包括二值化、去噪、倾斜校正、归一化和特征提取,生成bp神经网络的输入向量alphabet和目标向量tar2get. 其中alphabet选取40 10的矩阵,第1列到第10列代表09的数字. target为10 10的单位矩阵,每个数字在其所排顺序位置输出1,其他位置输出0.3. 2bp神经网络的构建bp算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成. 正向传播时,传播方向为输入层隐层输出层,每层神经元的状态只影响下一层神经元. 若在输出层得不到期望的输出,则转向误差信号的反向传播流程. 通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程.首先考虑正向传播,设输入层有n个节点,隐层有p个节点,输出层有q个节点. 输入层与隐层之间的权值为vk i, 隐层与输出层之间的权值为w jk. 隐层的传递函数为f1 ( x) ,输出层的传递函数为f2 ( x) ,则隐层节点的输出为输出层节点的输出为通过式(1) 和(2) 可得bp神经网络完成n维到q维的映射. 其次考虑反向传播. 在反向传播中,需要对不理想的权值进行调整, b p神经网络的核心要务即在于调权. 定义误差函数, 设输入p个学习样本,用x1 , x2 , , xp 来表示. 第p个样本输入网络得到输出ypj ( j = 1, 2, , q) ,其误差为式中为期望输出. p个样本的全局误差为将式(3) 代入得输出层权值的变化采用累计误差bp算法调整wjk 使全局误差e变小,即式(5) 中为学习率. 现定义误差信号为将式(3) 代入可得第一项为第二项为输出层传递函数f2 ( x) 的偏微分将式(7) 和(8) 代入可得误差信号为则输出层各神经元权值wjk 调整公式将式(9)代入可定义为在得到输出层权值调整公式后, 需要定义隐层权值vk i 调整公式根据输出层各神经元权值wjk 调整公式推导过程,可得vk i 为.四、bp算法的实现程序代码以vc+为手段,在bp神经网络的基础上进行编程以实现手写数字的识别,以下是部分实验代码:1. /mainfrm.cpp:implementationofthecmainframeclass 2. /2005.1.1316:02bysuperman 3. 4. #includestdafx.h 5. #includedsplit.h 6. 7. #includemainfrm.h 8. #includedynsplitview2.h 9. 10. #ifdef_debug 11. #definenewdebug_new 12. #undefthis_file 13. staticcharthis_file=_file_;14. #endif 15. 16. / 17. /cmainframe 18. 19. implement_dyncreate(cmainframe,cframewnd)20. 21. begin_message_map(cmainframe,cframewnd)22. /afx_msg_map(cmainframe) 23. on_wm_create()24. /afx_msg_map 25. end_message_map()26. 27. staticuintindicators=28. 29. id_separator,/statuslineindicator 30. id_indicator_caps,31. id_indicator_num,32. id_indicator_scrl,33. ;34. 35. / 36. /cmainframeconstruction/destruction 37. 38. cmainframe:cmainframe()39. 40. /todo:addmemberinitializationcodehere 41. 42. 43. 44. cmainframe:cmainframe()45. 46. 47. 48. intcmainframe:oncreate(lpcreatestructlpcreatestruct)49. 50. if(cframewnd:oncreate(lpcreatestruct)=-1)51. return-1;52. 53. if(!m_wndtoolbar.createex(this,tbstyle_flat,ws_child|ws_visible|cbrs_top54. |cbrs_gripper|cbrs_tooltips|cbrs_flyby|cbrs_size_dynamic)|55. !m_wndtoolbar.loadtoolbar(idr_mainframe)56. 57. trace0(failedtocreatetoolbarn);58. return-1;/failtocreate 59. 60. 61. if(!m_wndstatusbar.create(this)|62. !m_wndstatusbar.setindicators(indicators,63. sizeof(indicators)/sizeof(uint)64. 65. trace0(failedtocreatestatusbarn);66. return-1;/failtocreate 67. 68. 69. /todo:deletethesethreelinesifyoudontwantthetoolbarto 70. /bedockable 71. m_wndtoolbar.enabledocking(cbrs_align_any);72. enabledocking(cbrs_align_any);73. dockcontrolbar(&m_wndtoolbar);74. 75. return0;76. 77. 78. boolcmainframe:precreatewindow(createstruct&cs)79. 80. if(!cframewnd:precreatewindow(cs)81. returnfalse;82. /todo:modifythewindowclassorstylesherebymodifying 83. /thecreatestructcs 84. 85. returntrue;86. 87. 88. / 89. /cmainframediagnostics 90. 91. #ifdef_debug 92. voidcmainframe:assertvalid()const93. 94. cframewnd:assertvalid();95. 96. 97. voidcmainframe:dump(cdumpcontext&dc)const98. 99. cframewnd:dump(dc);100. 101. 102. #endif/_debug 103. 104. / 105. /cmainframemessagehandlers 106. 107. 108. boolcmainframe:oncreateclient(lpcreatestructlpcs,ccreatecontext*pcontext)109. 110. /createasplitterwith1row,2columns 111. if(!m_wndsplitter.createstatic(this,1,2)112. 113. trace0(failedtosplitterwindown);114. returnfalse;115. 116. 117. /addthefirstsplitterpane-thedefaultviewincolumn0 118. if(!m_wndsplitter.createview(0,0,119. pcontext-m_pnewviewclass,csize(320,150),pcontext)120. 121. trace0(failedtocreatefirstpanen);122. returnfalse;123. 124. 125. /addthesecondsplitterpane-aninputviewincolumn1 126. if(!m_wndsplitter.createview(0,1,127. runtime_class(cdynsplitview2),csize(0,0),pcontext)128. 129. trace0(failedtocreatesecondpanen);130. returnfalse;131. 132. 133. /activatetheinputview 134. setactiveview(cview*)m_wndsplitter.getpane(0,0);135. 136. returntrue;137. 编程结束后,利用鼠标在屏幕上移动形成手写数字,由程序负责进行识别。下图为演示结果:五、结果与分析神经网络的训练过程是识别字符的基础, 十分重要,直接关系到识别率的高低. 输送训练样本至b p神经网络训练, 在梯度方向上反复调整权值使网络平方和误差最小. 为使网络对输入向量有一定鲁棒性,可先用无噪声的样本对网络进行训练,直到其平方和误差最小,再用含噪声的样本进行训练,保证网络对噪声不敏感. 训练完毕, 把待识别数字送bp神经网络中进行仿真测试权值初始化为( - 1, 1) 之间的随机数, 期望误差为0. 01, 最大训练步数5000, 动量因子为0.95,隐层和输出层均采用“lo

温馨提示

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

评论

0/150

提交评论