数字图像处理课程设计晶振表面字符识别.docx
- 文档编号:3530586
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:23
- 大小:553.11KB
数字图像处理课程设计晶振表面字符识别.docx
《数字图像处理课程设计晶振表面字符识别.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计晶振表面字符识别.docx(23页珍藏版)》请在冰豆网上搜索。
数字图像处理课程设计晶振表面字符识别
数字图像处理大作业
——晶振表面字符识别
小组成员:
专业班级:
摘要
随着现代信息产业的发展,字符识别系统的需要越来越高。
字符识别是字符图像识别系统中的关键环节。
采用图像处理和神经网络相结合的方法设计新的字符识别算法,先对截取的字符图像进行一系列图像预处理,然后再进行边缘检测和特征提取,最后输入BP神经网络进行训练、识别,其中BP神经网络模型属于改进型神经网络。
通过一系列神经网络训练和仿真实验,识别速度和正确率得到了明显的提高。
关键词:
图像预处理BP神经网络
一.绪论3
1.1文字识别系统简介3
1.2背景及研究方向3
1.3选题意义及可行性分析3
二.系统设计方案4
2.1系统流程图4
三.图像的预处理5
3.1图像二值化处理5
3.1.1阈值选取算法分析5
3.1.2算法分析及实现6
3.2图像的锐化6
3.3去除离散噪声7
3.4字符分割8
3.5图像归一化处理10
3.6字符紧缩11
3.7图像细化处理12
四.字符特征提取14
4.1特征提取方案分析14
4.2十三特征提取方案分析及实现14
五.BP神经网络进行字符识别16
5.1人工智能简介16
5.2BP神经网络简介16
5.3BP神经网络算法及方案设计16
5.4BP神经网络算法程序实现17
六.总结与体会21
参考文献........................................................
1.绪论
1.1文字识别系统简介
文字识别,就是基于OCR(光学字符识别)技术,将扫描仪、摄像机等光学输入方式得到的书籍、报刊、文稿、表格等印刷品的文字图像信息转化为可供计算机识别和处理的文本信息。
由于可以大大提高工作效率,文字识别技术已经越来越受到人们的关注。
特别是在我国,由于信息化建设的全面展开,为文字识别技术提供了广阔的应用舞台,诸如数字图像处理应用于档案保护管理中,图像技术以及图像信息检索技术应用于数字档案馆建设,文字图像信息识别技术应用于档案输入管理中,文字识别技术在银行票据识别系统中的应用,同时,文字识别技术还应用于办公自动化、税务、电子出版、公安、交通运输、邮政分拣等行业。
1.2背景及研究方向
目前,许多信息都是记录在纸上的文字图像,将这些信息输入计算机是非常繁琐而低效率的工作,这在一定的程度上阻碍了社会信息化的进程。
因而,作为信息化基础的数据输入成了计算机应用中的瓶颈问题。
人们接受信息最频繁的是视觉通道。
在日常学习和生活中,所处理的信息有75%—85%是视觉信息,其中文字信息愈来愈占重要地位。
比如对各种期刊文献的阅读、查找、翻译;对各种统计报表的汇总、计算、分析;对各种函件票证的分拣、传送、验核等。
要实现对这些文字信息处理过程的机械化、自动化,其先决条件就是利用计算机对这些文字信息进行识别。
字符识别处理的信息可分为两大类:
一类是文字信息,处理的主要是用各国家,各民族的文字(如:
汉字,英文等)书写或者印刷的文本信息,目前在印刷体和联机手写方面技术已经趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是阿拉伯数字以及少量特殊符号组成的各种编号和统计数据。
如:
邮政编码,统计报表,财务报表,银行票据等等,处理这类信息的核心技术是手写数字识别。
这几年来我国开始大力推广的“三金”工程在很大程度上要依赖数据信息的输入,如果能通过手写数字识别技术实现信息的自动录入,无疑会促进这一事业的进展。
因此,手写数字的识别研究有者重大的显示意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益。
手写数字识别(HandwrittenNumeralRecognition)是光学字符识别技术(CharacterRecognition,简称OCR)的一个分支,研究的对象是:
如何利用电子计算机自动辨认人手写在纸张上的阿拉伯数字。
多年的研究实践表明,对于完全没有限制的手写数字,几乎可以肯定:
没有一种简单的方案能达到很高的识别率和识别精度。
因此,最近这方面的努力向着更为成熟。
复杂,综合的方向发展,一方面,研究工作者努力把新的知识运用到预处理,特征提出,分类当中,如:
神经网络,数学形态等。
在手写数字识别研究中,神经网络技术和多中方法的综合研究是重要的,全新的方向。
1.3选题意义及可行性分析
随着国家信息化进程的加速,手写数字识别的应用将越来越广泛,因此当加强在这当面的研究与开发,个人认为,应用系统的性能的关键与瓶颈仍然在与手写数字识别核心算法性能上,最终目标是研究零误识率和低拒识率得到高速识别算法,而神经网络技术与图像处理技术的结合运用,将会解决这一难题。
数字的识别只有十种,笔画又简单,其中识别问题似乎不是很苦难。
但事实上,一些测试结果表明,数字的正确识别率不如印刷体汉字识别正确率,甚至也不如联机手写汉字职别率高,而只仅仅优于脱机手写汉字识别。
这其中主要原因是:
字形相差不大,使得准确区分某些数字相当困难;第二,数字虽然只有十种,而且笔画简单,但同一数字写法千差万别,全世界各个国家各个地区的人使用,其中书写上带有明显的区域特性,很难完全做到兼顾世界各种写法的极高识别率的通用性数字识别系统。
另外,在实际应用中,对数字识别单字识别正确率的要求要比文字要苛刻得多。
这是因为,数字没有上下文关系,每个单字的识别都事关重要,而且数字识别经常涉及的财会,金融领域其严格性更是不言而喻的。
因此,用户的要求不是单纯的高正确率,更重要的是极低的,千分之一甚至万分之一以下的误识率。
此外,大批量数据处理对系统速度又有相当的要求,许多理论上很完美但速度过低的方法是行不通的。
因此,研究高性能的手写数字识别酸法是一个相当的挑战性的任务。
利用图像处理技术和神经网络识别技术,将大大提高对文字图像识别的能力,也可以解决文字识别率,识别清晰度等问题。
整个系统的程序实现分为图像预处理和神经网络识别两大模块。
在图像预处理的过程当中,采用了许多图像处理的技术,最后把每个数字的特征提取出来。
这些技术包括图图像据读取,图象的灰度化,二值化,图像的调整,离散噪声点的去除,字符的切割,图象的缩放,字符的细化,字符的平滑和图像的求梯度等图像处理技术,最后是数字字符特征的提取。
其结果再利用训练后的神经网络进行字符识别。
利用神经网络进行字符识别的过程主要包括网络的训练、数据的读取、字符的判定和结果的输出。
2.系统设计方案
2.1系统流程图
图2-1-1系统总流程图
图2-1-2图像预处理流程图
图2-1-3BP神经网络识别流程
3.图像的预处理
3.1图像二值化处理
一副图像包括目标物体,背景,还有噪声(见图3.1.1)。
进行图像预处理之前,我们往往需要对导入的灰度图像进行二值化处理。
图像的二值化就是将图像中的像素点的灰度值设为0或255(黑和白),使图像呈现明显的黑白效果。
图3.1.1
3.1.1阈值选取算法分析
图像的二值化算法。
它可以采用自适应阀值法,也可以采用给定阀值法。
系统中采用的是给定自适应阀值的方法。
其算法的实现是通过大律法。
经过大律法得到适合的阀值。
不过我们先对图像绘出直方图(见图3.1.2),再综合算法调试得到的阈值结果进行比较,经过不断尝试,最终确定阈值的大小。
图3.1.2
3.1.2算法分析及实现
图像二值化的算法实现,将大于阀值的像素点变为黑色,反之变为白色。
图3-1-3图像二值化算法流程图
图3-1-4二值化处理前图3-1-5二值化处理后
3.2图像的锐化
图像二值化后,我们从效果图上看出,许多不希望出现的噪声点都浮现出来,为了更好地进行下一步的图像处理,往往需要进行锐化处理。
由于需要处理的图像大多是从印刷出版物上扫描得来,所以在多数情况下字体模糊,对识别造成了一定的困难,所以有时要对图像进行锐化处理使得模糊的图像变得更清晰,同时可以对噪声起到一定的去除作用。
图像锐化的方法有很多,有一种是微分法,有一种是高通滤波法。
我们在这里所采用的梯度锐化的方法就属于微分法的一种。
在这里我们采用Roberts梯度算子对图像进行锐化。
Roberts梯度算子的定义:
设原始图像上的点为
。
定义
在
处的梯度矢量为:
设一个判定阈值为
,变化后的图像
定义为:
通过公式可以看出梯度锐化可以让模糊的边缘变得清楚同时选择合适的阈值还可以达到减弱和消除一些细小的噪声的效果。
图3-2-1图像梯度锐化算法的流程图
图3-2-2梯度锐化后的图片
3.3去除离散噪声
虽然进行图像锐化可以消除一些噪声,但是并不是可以彻底,此时就要进行真正的去噪步骤。
因为图像有可能在扫描或者传输过程中夹带了噪声,去噪声是图像处理中常用的手法。
通常去噪声用滤波的方法,比如中值滤波,均值滤波。
但是那样的算法不适合处理字符这样目标狭长的图像中,因为在滤波的过程中很有可能会去掉字符本身的像素。
系统采用的是消除孤立点:
八点领域的方法。
八点领域的方法:
判断每个像素点周围八个点的像素,如果一点像素为黑色,而且它的周围的八个像素点都为白色,则让这点的像素变为白色点。
图3-3-1图像去噪声方法的示意图
图3-3-2去除离散杂点噪声后的图片
3.4字符分割
系统在读进来的图像中一般会含有多个字符,识别的时候只能根据每个字符的特征来进行判断和识别,所以还要进行字符分割的工作。
首先,先自下向上对图像进行逐行扫描直至遇到第一个黑色的象素点。
记录下来。
然后继续对图像进行扫描找到下一个没有黑色象素点。
再从上向下对图像进行逐行扫描直至遇到第一个黑色的象素点。
记录下来。
这样就确定了图像每一行的最大高度范围。
(本系统在逐行扫描时,要求每行间有一定的字符间距)
然后,在每一行的高度范围之内在自左向右逐列进行扫描,遇到第一个黑色象素时认为是字符分割的起始位置,然后继续扫描,直至遇到有一列中没有黑色象素,则认为这个字符分割结束,然后继续扫描,按照上述的方法一直扫描直至图像的最右端。
这样就得到了每个字符的比较精确宽度范围。
最后,在已知的每个字符比较精确的宽度范围内,按照先自下向上对图像进行逐行扫描直至遇到第一个黑色的象素点。
记录下来。
然后再由上向下对图像进行逐行扫描直至找到第一个黑色象素点,这样就找到图像比较精确的的高度范围,分别进行自上而下和自下而上的逐行扫描来获取每个字符精确的高度范围。
图3-4-1字符分割算法的流程图
图3-4-2三步完成字符分割过程的图片
图3-4-3字符分割后的图片
3.5图像归一化处理
因为扫描进来的图像字符大小存在比较大的差异,而相对来说,统一的尺寸的字符识别的标准性更强,准确率更高,标准化图像就是要把原来各不相同的字符统一到同一尺寸,在本系统中是统一到同一高度,然后根据高度来调整字符的宽度。
具体算法如下:
先得到原来字符的高度,并在系统要求的高度做比较,得出变换的系数,然后根据得到的系数求得变换后应有的高度。
在得到宽度高度后,把新图像里面的点按照插值的方法映射到原图像中。
图3-5-1归一化算法的流程图
图3-5-2经过归一化处理后的图片
3.6字符紧缩
经过标准归一化处理后的各个字符在图像中的位置不定,要它进行特征提取时处理起来比较麻烦,所以要把归一化后的字符进行紧缩重排,以形成新的位图句柄,方便下一步的特征提取操作。
将归一化以后的各个矩形排列在同一高度上,并且各字符矩形之间有一定相同的间隔。
由于系统程序支持多行的字符分割,因此在排序是对每一行的字符都要有相同的高度,而且由于程序的局限性,要求每行字符个数相同。
图3-6-1图像紧缩排序算法的流程图
图3-6-2经过字符紧缩处理后的图片
3.7图像细化处理
在自动文字识别系统中,采用细化方法计算图像的骨架是一个十分重要的预处理步骤。
因为骨架包含了文字图像特征的最有效数字化信息,能对文字图像进行有效地描述。
因此对于细化,一方面要求去除多余的象素,一方面又要保留模式的基本结构和特征。
在此我们使用Hilditch算法,主要由于此算法的实现效果比较好。
在进行Hilditch算法之前,我们要对像素进行处理使黑色像素为1(实际算法中为0.9),白色像素为0(实际算法中为0.1)。
图3-7-1Hilditch细化算法的流程图
图3-7-2细化处理后的图片
4.字符特征提取
4.1特征提取方案分析
对于二值图像,字符可以用点阵、骨架和边缘来表示。
字符的多种特征可以从字符的这三种表示形式中提取。
对于点阵形式表示的字符。
我们可以把整个字符点阵结构作为特征利用模板匹配或者神经网络分类器进行分类。
这些方法对于相对歪曲较小的字符是非常有效的。
如果待识别的字符图像发生几何畸变,比如缩放、偏斜或者旋转。
对于骨架形式表示的字符,使用细化字符并利用可变形的模板匹配算法进行字符识别可以取得较好的效果。
4.2十三特征提取方案分析及实现
十三特征提取方法,即从每个字符中提取十三个特征点。
首先把字符平均分成八份统计每一份内黑色象素点的个数作为八个特征,如图4-2-1所示。
(这里我们以字符“3”举例。
)分别统计这八个区域中的黑象素的数目,可以得到八个特征。
图4-2-1十三特征提取
然后统计水平方向中间两列和竖直方向中间两列的黑色象素点的个数作为四个特征,也就是说,画四道线,统计线穿过的黑象素的数目。
可以得到四个特征示意图如图4-2-2所示。
图4-2-2十三特征提取
最后,将字符图像的全部黑色象素的数目的总和作为一个特征。
总共得到十三个特征。
图4-2-3特征提取的流程图
图4-2-4提取算法的流程图
5.BP神经网络进行字符识别
5.1人工智能简介
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。
可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。
从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。
5.2BP神经网络简介
神经网络简介:
人工神经网络(ArtificialNeuralNetwork,ANN),也称为神经网络(NeuralNetworks,NN)。
即从生物学神经系统的信号传递而抽象发展而成的一门学科。
在神经网络中,最基本的单元就是神经元。
神经元由3部分组成:
树突,细胞和轴突。
树突是树状的神经纤维接受网络,它将电信号传递给细胞体,细胞体对这些输入信号进行整合并进行阀值处理。
轴突是单根长纤维,它把细胞体的输出信号导向其他的神经元。
神经元的排列拓扑结构和突触的连接强度确立了神经网络的功能。
形象的说,神经网络是由大量处理单元(神经元Neurons)广泛连接而成的网络,是对人脑的抽象,简化和模拟,反映人脑的基本特性。
能够通过学习过程从外部环境中获取知识,并且它内部的很多神经元可以用来存储这些学到的知识。
5.3BP神经网络算法及方案设计
信号正向传播:
输入信号从输入层经过隐含层,传向输出层,在输出端生输出信这是工作信号的正向传播。
在信号传递的过程中网络的权值是固定不变的,每一层神经元的状态只影响下一层神经元的状态。
如果在输出层得到的输出和期望输出的偏差比较大,则转入误差信号的反向传播。
误差信号反向传播:
网络的实际输出和期望输出的差值就是误差信号。
误差信号的反向传播就是误差信号从输出端传向输入端。
在这个过程当中,网络的权值由误差反馈进行调节。
通过不断的修改网络权值从而使得网络的输出不断的逼近期望值。
图5-2-1训练算式图
神经网络的激励函数。
激励函数将输出信号压缩在一个允许的范围内,使其成为有限值,通常神经元输出的范围在【0,1】或者【-1,1】的闭区间上。
常用的基本激励函数有阈值函数、分段线性函数、Sigmoid函数。
其中Sigmoid函数也称为s型函数,它是人工神经网络中用的最多的激励函数。
S型函数的定义如下:
公式
(1)
神经网络的反馈调节。
在误差信号的反向传播中,网络不断的修正各个节点的权值。
设有含n个节点的BP网络,采用s型激励函数。
BP网络的学习过程。
BP学习算法可以归纳如下:
第一步设置变量和参数,其中包括训练样本,权值矩阵,学习速率。
第二步初始化,给各个权值矩阵一个较小的随机非零向量。
第三步输入随机样本。
第四步对输入样本,前向计算BP网络每层神经元的输入信号和输出信号。
第五步由实际输出和期望输出求得误差。
判断是否满足要求,若满足转第八步;不满足转第六步。
第六步判断是否已经到了最大迭代次数,若到,转第八步,否则反向计算每层神经元的局部梯度。
第七步根据局部梯度修正各个矩阵的权值。
第八步判断是否学习完所有的样本,是则结束,否则转第三步。
BP学习中需要注意的几点:
A.权值的初始化。
权值的初始值应该选择均匀分布的小数经验值。
初始值过大或者过小都会影响学习速度。
为了避免权值的调整是同向的,应该将初始值设为随机数。
B.初始权值不要太大。
否则可能会处于误差平面较平坦的区域,从而导致算法无法收敛,训练失败。
C.神经元的激励函数是s型函数。
所以如果函数的渐近值是0,1的话,期望输出只能是小于1大于0的数,而不能是1或者0,否则可能会导致算法不收敛。
在程序中建议读者用0.1来代表0,0.9代表1。
5.4BP神经网络算法程序实现
BP网络的一个重要的用途就是用于模式识别。
我们的任务是要设计并训练出一个可行、高效的BP网络,以实现对0到9、A到Z共36个字符的识别。
经图像预处理过程之后,可以将最终提取到的字符的特征送入BP网络进行训练及识别了。
这里,假设我们设定的字符标准归一化的宽度为18,高度为35。
采用十三特征法得到字符特征,则网络输入维数为13维,即输入节点有13个。
设计BP网络的关键之处在于高效的特征提取方法、大量有代表性的训练样本、高效稳定速收敛的学习方法。
BP网络应用过程如图所示。
图5-4-1BP网络应用流程图
下面来讲讲BP网络三个层的神经元数目的确定。
这也是BP网络设计的关键。
BP网络应用的第一步就是要用已知训练样本来训练BP网络。
这里,BP网络的输入层的结点个数,为图像预处理后所输出的特征的维数。
例如,我们采用了18×35归一化,特征提取采用的是十三征提取方法,这样,对于每一个输入样本,就13个特征。
所以就可以确定,输入层的结点数为13。
对于隐层的结点数,没有什么硬性规定,一般来说,隐层神经元的数目越多,那么BP网络也就越精确,训练时间也越长。
但要注意,隐层神经元不易选取太多,否则会造成识别率的急剧下降,也会降低网络的抗噪声能力。
在本程序中,我推荐使用160个隐层神经元。
读者可以自行测试一下,当将隐层神经元个数改为300个时,训练时间和识别率的变化。
看来神经元的个数也不是越多越好,过犹不及。
对于输入层的结点数的确定,这决定于我们如何设定标准输出。
也就是说如何对目标期望输出进行编码。
在本程序中,笔者采用了8421码来对0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z来进行编码。
对于输出“0”,我们采用(0,0,0,0,0,0)这样的目标输出向量来表示,对于输出“1”,我们采用(0,0,0,0,0,1)这样的输出向量来表示,同理,对于输出“9”,我们采用(0,0,1,0,0,1)这样的输出向量来表示。
这样一来,我们就可以确定输出层的神经元数目为:
6。
也即为输出向量的维数。
其实通过后续编程实践我们可以发现,当采用(0,0,0,0,0,0)这样的目标输出向量的时候,BP网络无法收敛。
那是因为我们采用的激活函数(传输函数)的输出永远不可能达到0或1,而只能是接近。
所以,在这里我们要纠正一下目标输出向量。
对其重新编码后,最终确定编码方案如下:
00.10.10.10.10.10.10
10.10.10.10.10.10.91
20.10.10.10.10.90.12
30.10.10.10.10.90.93
40.10.10.10.90.10.14
50.10.10.10.90.10.95
60.10.10.10.90.90.16
70.10.10.10.90.90.97
80.10.10.90.10.10.18
90.10.10.90.10.10.99
100.10.10.90.10.90.1A
110.10.10.90.10.90.9B
120.10.10.90.90.10.1C
130.10.10.90.90.10.9D
140.10.10.90.90.90.1E
150.10.10.90.90.90.9F
160.10.90.10.10.10.1G
170.10.90.10.10.10.9H
180.10.90.10.10.90.1I
190.10.90.10.10.90.9J
200.10.90.10.90.10.1K
210.10.90.10.90.10.9L
220.10.90.10.90.90.1M
230.10.90.10.90.90.9N
240.10.90.90.10.10.1O
250.10.90.90.10.10.9P
260.10.90.90.10.90.1Q
270.10.90.90.10.90.9R
280.10.90.90.90.10.1S
290.10.90.90.90.10.9T
300.10.90.90.90.90.1U
310.10.90.90.90.90.9V
320.90.10.10.10.10.1W
330.90.10.10.10.10.9X
340.90.10.10.10.90.1Y
350.90.10.10.10.90.9Z
使用BP网络来进行数字识别的流程如下:
首先,利用大量的训练样本来训练网络,以得到以文件形式保存的权值。
训练样本为精心选择的可以很好的反应样本可分性特性的已知数据。
在程序中采用训练样本图片的形式。
将训练样本图片进行特征提取后,就可以送入BP网络进行训练。
在这里,本程序采用了含有144个字符数据的图像作为训练样
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 课程设计 表面 字符 识别
![提示](https://static.bdocx.com/images/bang_tan.gif)