字符识别Word文档格式.docx
- 文档编号:19303213
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:22
- 大小:843.09KB
字符识别Word文档格式.docx
《字符识别Word文档格式.docx》由会员分享,可在线阅读,更多相关《字符识别Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
图像的二值化就是把图像中的象素根据一定的标准分化成两种颜色。
在系统中是根据象素的灰度值处理成黑白两种颜色。
图像的二值化有很多成熟的算法。
它可以采用自适应阀值法,也可以采用给定阀值法。
系统中采用的是给定阀值的方法。
2.1.1阈值选取算法分析
图像的二值化有很多成熟的算法。
系统中采用的是给自适应阀值的方法。
其算法的实现是通过大律法。
经过大律法得到适合的阀值。
图2.1.1阈值选取的流程图
2.1.2算法分析及实现
图像二值化的算法实现,将大于阀值的像素点变为黑色,反之变为白色。
图2.1.2图像二值化算法的流程图
执行结果如图2-1-1、2-1-2所示
图3-1-1二值化前的图片
图2-1-2二值化后的图片
2.2图像的锐化
由于需要处理的图像大多数的情况下字体模糊,对识别造成了一定的困难,所以有时我们要对图像进行锐化处理使模糊的图像变得清晰起来,同时可以对噪声起到一定的去除作用。
2.2.1锐化方案
图像锐化的方法有很多,有一种是微分法,有一种是高通滤波法。
我们在这里所采用的梯度锐化的方法就属于微分法的一种。
在这里我们采用Roberts梯度算子对图像进行锐化。
Roberts梯度算子的定义:
设原始图像上的点为
。
定义
在
处的梯度矢量为:
设一个判定阈值为
,变化后的图像
定义为:
通过公式可以看出梯度锐化可以让模糊的边缘变得清楚同时选择合适的阈值还可以减弱和消除一些细小的噪声。
2.2.2算法分析及实现
图2.2.1图像梯度锐化算法的流程图
经过梯度锐化处理后的图片如图2-2-1所示。
图2-2-1梯度锐化后的图像
2.3图像噪声去除
图像可能在扫描或者传输过程中夹带了噪声,去噪声是图像处理中常用的手法。
通常去噪声用滤波的方法,比如中值滤波、均值滤波。
2.3.1去噪方案分析
系统采用的是消除孤立点:
八点领域的方法。
八点领域的方法:
判断每个像素点周围八个点的像素,如果一点像素为黑色,而且它的周围的八个像素点都为白色,则让这点的像素变为白色点。
2.3.2算法分析及实现
图2.3.1图像去噪声算法的流程图
执行后的结果如图2-3-1所示。
图2-3-1去除离散杂点噪声后的图像
2.4字符分割
我们所要识别的图像中一般会含有很多个字符,识别的时候要根据每个字符的特征来进行判断,所以还要进行字符分割的工作。
这一步工作就是把图像中的字符独立的分割出来。
2.4.1分割方案分析
第一步,先自下向上对图像进行逐行扫描直至遇到第一个黑色的象素点。
记录下来。
然后继续对图像进行扫描找到下一个没有黑色点象素,重复上述过程,这样就找到图像每一行的最大高度范围。
(本系统在逐行扫描时,要求每行间有一定的字符间距)
第二步,在每一行的高度范围之内在自左向右逐列进行扫描,遇到第一个黑色象素时认为是字符分割的起始位置,然后继续扫描,直至遇到有一列中没有黑色象素,则认为这个字符分割结束,然后继续扫描,按照上述的方法一直扫描直至图像的最右端。
这样就得到了每个字符的比较精确宽度范围。
第三步,在已知的每个字符比较精确的宽度范围内,按照先自下向上对图像进行逐行扫描直至遇到第一个黑色的象素点。
然后再由上向下对图像进行逐行扫描直至找到第一个黑色象素,这样就找到图像大致的高度范围的方法,分别进行自上而下和自下而上的逐行扫描来获取每个字符精确的高度范围。
2.4.1分割算法分析及实现
图2.4.1字符分割算法的流程图
进行字符分割后并画上边框的图像如图3-4-1所示。
图2-4-1经过字符分割后并画上边框的图像
2.5图像归一化处理
因为扫描进来的图像中字符大小存在较大的差异,而相对来说,统一尺寸的字符识别的标准性更强,准确率自然也更高,标准化图像就是要把原来各不相同的字符统一到同一尺寸,在系统实现中是统一到同一高度、宽度。
2.5.1图像缩放方法
先得到原来字符的高度,跟系统要求的高度做比较,得出要变换的系数,然后根据得到的系数求得变换后应有得宽度。
再得到宽度高度之后,把新图像里面得点按照插值得方法映射到原图像中。
由于一次归一化没能做到真正的全部归一,所以在此提议最好归一化两次。
2.5.2图像归一化算法分析及实现
图2.5.2归一化算法的流程图
归一化执行效果如图3-5-1所示。
图2-5-1对图像进行归一化处理
2.6图像紧缩排序
经过标准归一化处理后的各个字符在图像中的位置不定,要它进行特征提取时处理起来比较麻烦,所以要把归一化后的字符进行紧缩重排,以形成新的位图句柄,以方便下一步的特征提取的操作。
2.6.1图像紧缩排序方案
将归一化以后的各个矩形排列在同一高度上,并且各字符矩形之间有一定相同的间隔。
由于系统程序支持多行的字符分割,因此在排序是对每一行的字符都要有相同的高度,而且由于程序的局限性,要求每行字符个数相同。
2.6.2图像紧缩排序分析及实现
图2.6.2图像紧缩排序算法的流程图
图像紧缩排序程序执行效果如图2-6-1所示。
图2-6-1图像紧缩排序后的效果
2.7图像的细化处理
在自动文字识别系统中,采用细化方法计算图像的骨架是一个十分重要的预处理步骤。
因为骨架包含了文字图像特征的最有效数字化信息,能对文字图像进行有效地描述。
因此对于细化,一方面要求去除多余的象素,一方面又要保留模式的基本结构和特征。
细化的算法有很多如Hilditch算法,Rosenfeld算法等。
2.7.1图像细化算法分析
在此我们使用Hilditch算法,主要由于此算法的实现效果比较好。
在进行Hilditch算法之前,我们要对像素进行处理使黑色像素为1,白色像素为0
2.7.2细化算法分析及实现
图2.7.2Hilditch细化算法的流程图
对图像进行细化后的效果如图2-7-1所示。
图2-7-1细化效果图
三、字符特征提取
3.1特征提取方案的分析
对于二值图像,字符可以用点阵、骨架和边缘来表示。
字符的多种特征可以从字符的这三种表示形式中提取。
对于点阵形式表示的字符。
我们可以把整个字符点阵结构作为特征利用模板匹配或者神经网络分类器进行分类。
这些方法对于相对歪曲较小的字符是非常有效的。
如果待识别的字符图像发生几何畸变,比如缩放、偏斜或者旋转。
对于骨架形式表示的字符,使用细化字符并利用可变形的模板匹配算法进行字符识别可以取得较好的效果。
3.2十三特征提取[2]
十三特征提取方法,即从每个字符中提取十三个特征点。
首先把字符平均分成八份统计每一份内黑色象素点的个数作为八个特征,如图4-2-1所示。
(这里我们以字符“3”举例。
)分别统计这八个区域中的黑象素的数目,可以得到八个特征。
图3-2-1十三特征提取
然后统计水平方向中间两列和竖直方向中间两列的黑色象素点的个数作为四个特征,也就是说,画四道线,统计线穿过的黑象素的数目。
可以得到四个特征示意图如图4-2-2所示。
图3-2-2十三特征提取
最后,将字符图像的全部黑色象素的数目的总和作为一个特征。
总共得到十三个特征。
3.2.1十三提取方案分析
图4.2.1特征提取的流程图
3.2.2提取算法的实现
图3.2.2提取算法的流程图
四、BP神经网络
4.1人工智能简介
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。
可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。
从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展[3]。
4.2BP神经网络简绍
BP(BackPropagation)神经网络是一种神经网络学习算法,全称基于误差反向传播算法的人工神经网络,应该说它是人工智能的一个小的分支。
BP(BackPropagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。
输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;
中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;
最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。
当实际输出与期望输出不符时,进入误差的反向传播阶段。
误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。
周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。
如图所示拓扑结构的单隐层前馈网络,一般称为三层前馈网或三层感知器,即:
输入层、中间层(也称隐层)和输出层。
它的特点是:
各层神经元仅与相邻层神经元之间相互全连接,同层内神经元之间无连接,各层神经元之间无反馈连接,够成具有层次结构的前馈型神经网络系统。
单计算层前馈神经网络只能求解线性可分问题,能够求解非线性问题的网络必须是具有隐层的多层神经网络。
图4.2.1BP神经网络结构图
在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。
直到误差反向传播算法(BP算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。
4.3BP神经网络算法方案分析
信号正向传播:
输入信号从输入层经过隐含层,传向输出层,在输出端生输出信这是工作信号的正向传播。
在信号传递的过程中网络的权值是固定不变的,每一层神经元的状态只影响下一层神经元的状态。
如果在输出层得到的输出和期望输出的偏差比较大,则转入误差信号的反向传播。
误差信号反向传播:
网络的实际输出和期望输出的差值就是误差信号。
误差信号的反向传播就是误差信号从输出端传向输入端。
在这个过程当中,网络的权值由误差反馈进行调节。
通过不断的修改网络权值从而使得网络的输出不断的逼近期望值。
图4.3.1训练图
图4.3.2训练算式图
神经网络的激励函数。
激励函数将输出信号压缩在一个允许的范围内,使其成为有限值,通常神经元输出的范围在【0,1】或者【-1,1】的闭区间上。
常用的基本激励函数有阈值函数、分段线性函数、Sigmoid函数。
其中Sigmoid函数也称为s型函数,它是人工神经网络中用的最多的激励函数。
S型函数的定义如下:
公式
(1)
神经网络的反馈调节。
在误差信号的反向传播中,网络不断的修正各个节点的权值。
设有含n个节点的BP网络,采用s型激励函数。
为简单起见,可以假设网络只有一个输出y,任一节点的输出为
,并设有N个样本
k=1,2,…,N),对某一输入
,网络的输出为
,节点i的输出为
,节点j的输入为:
公式
(2)
使用平方型误差函数:
公式(3)
其中
为网络之实际输出,定义如下:
公式(4)
公式(5)
公式(6)
其中:
公式(7)
于是有:
公式(8)
当j为输出节点时,
公式(9)
若j不是输出节点时,有:
公式(10)
公式(11)
因此可得:
使用BP网络来进行数字识别的流程如下:
首先,利用大量的训练样本来训练网络,以得到以文件形式保存的权值。
训练样本为精心选择的可以很好的反应样本可分性特性的已知数据。
在程序中采用训练样本图片的形式。
将训练样本图片进行特征提取后,就可以送入BP网络进行训练。
在这里,本程序采用了含有144个字符数据的图像作为训练样本。
这副图像是WORD文字处理程序上通过截图转化而来的,如图下图所示。
图4.4.2144个字符数据图
图4.4.2BP网络训练流程图
图4.4.2BP网络识别流程图
实验证明,这144个训练样本训练出来的BP网络对于相应字体的数字可以达到99%以上的识别率,但网络的训练时间有点长。
训练完BP网络后,就可以用它对为止数据进行识别了。
识别首先要经过图像预处理、特征提取,最后送入BP网络识别,直接得到结果。
程序需要一些全局变量(这里我们用MFC的类变量来实现)来记录一些必须的数据,当前样本个数,样本字体矩形,等。
注意网络训练的目的是得到存有36个不同字体字符的信息的权值矩阵,为识别所用,这是整个网络的精髓所在,搞清楚这个关系对用程序构建神经网络非常重要。
构建完网络后的训练结果如图4-4-1:
图4-4-1BP网络训练结果
训练好网络后识别结果如图4-4-2:
图4-4-2BP网络识别结果
参考文献
[1]求是科技,张宏林,蔡锐.VisualC++数字图像模式识别技术及工程实践.北京:
人民邮电出版设,2003.
[2]基于VC++的车牌识别系统关键技术研究赵启升李存华(淮海工学院计算机科学系连云港222005)
[3]XX百科
注:
关于BP神经网络构建资料及部分代码均来自互联网,作者不详,链接不定。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符 识别
![提示](https://static.bdocx.com/images/bang_tan.gif)