基于神经网络数字字符识别系统设计及实现.doc

基于神经网络数字字符识别系统设计及实现.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于神经网络数字字符识别系统设计及实现

基于神经网络数字字符识别系统设计及实现   摘要摘要:通过MATLAB编程实现一种能识别图片中数字的识别系统。该系统分为预处理、图像处理和神经网络3个核心部分。采用预处理和图像处理技术处理输入图片样本数据,通过经过训练的神经网络完成识别功能。验证结果表明,此系统对样本图片的识别正确率可达到100%,对于部分非样本数据,也可以正确识别。该系统可应用于验证码识别、车牌号识别等场景中 关键词关键词:MATLAB编程;数字识别;图像处理;神经网络 DOIDOI:10.11907/rjdk.162852 中图分类号:TP319 文献标识码:A文章编号文章编号2017)005004704 0引言 图像识别是一项利用计算机对图像进行处理、分析和理解,以识别各种不同模式目标和对象的技术[1]。图像识别技术目前还不能达到人类的认知水平,但在特定应用环境中,可以通过模式识别或者神经网络的方法来对图像中的事物进行分类判断。一般而言,一个数字字符识别系统主要由3个部分组成,如图1所示 图1系统组成 其中,预处理模块将图片格式(例如JPG格式)转换为计算机能识别的二进制数据流;图像处理模块则实现图像采集与转换、边缘提取、归一化等功能;字符识别模块可以由两种方法实现:模式识别或者神经网络方式,本文系统采用神经网络方式 1识别目标及预期结果 此系统识别目标是在没有强干扰下,系统能够准确识别出图片中的0~9这10个数字。示例图片如图2所示 系统识别中所用到的含单个数字的图片取自图2,均为纯色背景(不一定必须为白色背景)图片,且图片中数字图像无较大噪声干扰。系统经过一系列处理后,能成功识别,给出识别结果,并且给出处理过程中各个阶段的图片,以便更好地理解图像处理过程 2预处理 预处理是将图片二值化的过程。预处理的目的简单来说就是把彩色图片处理为计算机更好处理的二进制数据流。预处理的过程主要分两部分:彩色图转灰白图,灰白图转二进制矩阵形式数据 目前用于彩色图转换为灰度图的基本算法主要有:最大值法、平均值法、加权法,本文采用加权法。加权法的主要思想是设当前像素的三分量分别为R,G,B,然后利用公式(1)得到转换后的像素分量值: GRAY=0.3*R+0.59*G+0.11*B(1) 在MATLAB中,函数img2gray就是采用加权法实现的。图像二值化就是将图像像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。二值化的处理过程是将图像中有意义的特征和需要应用的特征进行分割,利用前景和背景灰度特性的差异,低于阈值的像素设定为一个灰度值,高于阈值的像素设定为另一个灰度值。这样可将前景色与背景色以明显差异的灰度级区分开来[2]。阈值选取有手动选取和自适应选取两种方法。MATLAB中图像二值化的实现主要依靠im2bw函数来实现。图像二值化过程中,最重要的是阈值变换。比如数组a=[120,254,0,200,99],设定一个阈值125,并对a进行阈值变换,那么a中凡是大于125的,则变为255,小于等于125的则变为0。具体对临界情况处理可能不同,不过MATLAB中im2bw函数是按照上述方法处理的。a经过阈值变换后变为[0,255,0,255,0]。在MATLAB中使用im2bw函数进行图像二值化处理时(将图像转换为二值图像),人为设定阈值并不总是十分有效。MATLAB工具箱提供了graythresh函数[3]。该函数使用最大类间方差法得到一个阈值,利用这个阈值进行图像二值化通常有效 经过预处理后得到的二值化图像,还要经过一系列图像处理过程,才能用于神经网络训练 3图像处理 图像处理的目的是将图片变为神经网络能处理的数据流。图像处理流程如下: (1)利用梯度锐化。使得图像更加突出,以便分析。算法:当前点像素值与其下一个像素值之差的绝对值,加上当前点像素值与其下一行当前像素值之差的绝对值,如果结果大于阈值,则当前像素值置为此结果 (2)去除离散噪声。利用递归方法查找当前像素8个方向是否存在黑色像素,这里设置连续长度为15,如果用递归方法得到连续像素值大于15,则认为不是噪声;相反,则认为是噪声,则置为白色像素 (3)字符倾斜度调整。尽量保存每个字符的位置一致 (4)分割字符。找出每个字符的区域,用矩形记录,记录每个字符矩形数据 (5)字符归一化。根据图像预处理准备阶段设置的归一化标准,把每个字符的区域进行归一化,使得所有字符区域矩形一样大,只是位置不一样 (6)字符紧密排列。把所有字符紧密排列,以备识别使用 本文示例样本图片中只有单个数字,且无较大干扰,所以不需要去除离散噪声、字符倾斜度调整、分割字符和字符紧密

您可能关注的文档

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档