其实OCR的过程比较复杂, 要入门要弄懂要花不少时间。过程比较繁杂。
样本字符点阵数据->分类抽取特征->特征库(字典)->字符点阵数据->预处理->识别(分类)->识别结果
单是预处理就有很多步.
我还是贴一篇文章得了, 这是一篇博士论文的第一章, sorry, 有的具体算法给删除了。
1.1 引言
80年代以来,随着计算机在各行各业和社会生活各个方面的广泛应用以及计算机网络的高速
发展,我们所生活的社会进入了信息技术不断发展的时代。Internet正以令人瞩目的加速度
高速发展。它以不可阻挡的趋势影响着我们社会,渗透到我们生活的各个领域。无论是机
关、学校、家庭,还是企业、商店,都已经或逐步在建立自己的网站,利用Internet作形
象宣传、网络贸易和远程管理。这不仅改善了工作环境,提高了工作效率,而且还获得了
巨大的经济效益和社会效益。人们逐渐认识到,信息与物质和能源一样,已成为当今世界
社会政治、经济、科技等赖以发展的一项重大资源。
但是,在信息技术高速发展的同时,一个难题也摆在我们面前。那就是计算机数据处
理和网络传输的高速度与数据输入的低速度之间的矛盾。目前,人类的许多信息是记录在
纸上的文字图象,将这些信息输入计算机是非常繁重而慢的工作,这在一定的程度上减缓了社会信息化进程,因而,作为信息化基础的数据输入成了计算机应用中的瓶颈问题。
实现计算机自动录入是解决这个瓶颈的关键所在。应用文字图象识别及处理技术能大大提高信息的采集录入速度,减轻人们的工作强度。1997年,重庆大学研制的表格自动录入系统应用于全国第一次农业普查的数据录入工作。在这次农业普查中,全国有2亿3千多万农户,每户填一张表,平均每张表填200个字符,共有200多亿数据需要录入计算机进行处理、统计。其数据量之大,堪称世界之最。而这次全部数据采用计算机自动录入,不仅为国家节省了大量的人力和物力,而且,由于采用了自动录入技术,大大缩短了数据录入的时间,为政府决策提供了更详实、准确、快捷的统计资料。这充分显示了计算机自动录入技术的强大威力。
1.2、字符识别发展概况
早在1929年,陶舍克就利用光学模板匹配方法识别数字。当时,他使用了10块模板对
应10个数字,依次把待识别的数字投影到这10块模板上,当模板透过光达到最小时(数字
遮挡了模板的透光部分),投影的数字就被识别成这块模板上的数字。Grimsdale等人在1
958年,作了些开创性的工作。他们对输入模式的扫描是用飞点扫描器实现,然后用一
数字计算机分析字符的形状,抽取其基本特征,而后将这些特征与存在计算机中的特征
相比较,并作适当的判别。另外一个杰出的工作是Browning领导的小组,他们介绍了一
种更加通用的采用10×15个光电管输入的方法。
在六十年代初,麻省理工学院的Murray Eden指出,所有拉丁字符可以由18种笔划组成,而这18种笔划又可分解成四个基本笔划,当时在MIT及其他地方的不少研究都基于这一思想。Eden的工作的重要之处在于他阐述了所有手写字符都可由有限数量的基本特征构成,这一观点实际隐含于以前的工作中,在以后的文字识别中采用句法(结构)模式识别的所有方法都来源于这一思想。
七十年代初期,Parks等介绍一种抽取拓扑特征的特征抽取方法以及多级结构链接的识别方法。随后,日本对汉字识别进行了研究,主要是对印刷体汉字,手写印刷体汉字及在线手写汉字识别的方面的研究。并于1980 年进行了印刷体汉字识别的公开表演。最近几年出现了手写印刷体汉字识别装置,识别率为90%,识别速度为5-40字/秒,笔顺可变,笔划数不变的联机手写楷书汉字识别已有产品出售,联机手写数字,英文字母、特殊符号的识别装置,也有一些产品出售。
在国内,70年代开始了对印刷体字符及手写字符的识别。70年代未,复旦大学研制了我国第一台印刷体字符识别机,该机可识别西门子打字机打印的字符。与此同时,中国科学院自动化研究所开展了手写数字的识别研究,研制了国内第一台邮政编码的识别样机,以后邮电部第三研究所、西北电讯工程学院、重庆大学均开展了0CR机的研制工作,取得了一定的成果。
大约到了80年代初,随着个人计算机的出现,CCD平板式扫描仪的商品化,字符识别技术得到了蓬勃发展,许多研究者将其它领域的一些新技术及研究手段引入到OCR技术的研究中,并取得了一定的成果。这些技术和手段包括人工神经网络、小波变换、分形、模糊理论以及90年代初的开放式巨系统、集成系统理论等领域。
目前,国内外对印刷体和限制手写体字符识别已达实用水平,且有一些产品问世。国内清华大学、北京大学、西北电讯工程学院、重庆大学、云南大学、中科院计算所、邮电部三所在这方面都已取得较大进展,也有一些产品达实用阶段。其中,重庆大学研制的AV─100表格自动阅读机及手写数字识别软件,识别率达99.97%,识别速度达200字/秒以上。云南大学1997年研制的“用神经网络实现手写阿拉伯数字识别系统”利用拓扑结构不变性,采用神经网络技术及小波变换,识别率达99%。
1.3 、脱机识别系统原理
脱机识别系统的基本思想是匹配识别。其研制工作一般分两大步:(1)建立样本字符的特征库(称为字典)。在建立特征库之前,我们首先选取反映字符本质的特征及样本字符,然后确定编码方案并通过抽取样本字符的特征码形成特征库。有时为了保证特征库的质量,我们还需要对由样本字符形成的特征库进行手工修改,增加或删除一些特征代码,以增强特征库的稳定性。(2)抽取待识别字符的特征与预先存储在特征库中的标准字符特征逐一匹配,根据一定的判别准则,在特征库中找出最接近未知字符的特征,该特征所对应的字符就是识别结果。脱机识别的原理框图如图1.1所示。
建库部分
样本字符点阵数据->分类抽取特征->特征库(字典)->字符点阵数据->预处理->识别(分类)->识别结果
识别部分
图1.1 脱机识别原理框图
1.4 、字符识别方法概述
字符识别按输入方式的不同可分为联机识别(也称为在线识别)和脱机识别(也称为离线
识别)。联机识别是对所书写的字符进行实时识别,即写即认。所以联机识别技术往往结
合字符的笔划顺序来进行识别。脱机识别方法中,首先对已经写在纸上的字符通过扫描仪
转化为二值图象,然后再对字符的二值图象进行识别。书写与识别可以分开进行,因此,
脱机识别技术中不涉及字符的书写顺序。
字符识别技术根据被识别字符的类型通常分为印刷体识别和手写体识别两大类,而手写
体识别又可分为限制手写体识别和无限制手写体识别(也称为自由手写体识别)。印刷体
识别是将印刷刊物上的文字扫描转化为二值图象并进行识别,是将已有刊物上的数据大量
输入计算机的最有效方法。印刷体识别技术目前比较成熟。国外一些识别数字和英语字母
的软件识别率可达到98% 。限制手写体识别就是在用户书写字符时,施加一些限制,如笔
顺、字型等,以便识别系统能够准确地识别。该领域的研究成果比较显著,限制手写数字
识别系统已基本成熟。如深圳黑眼睛的AV100,在全国第一次农业普查的数据录入工作中,
识别率大于99.99%。无限制手写体识别对用户所书写的字符无任何约束,这种识别系统
最受用户欢迎,但这样的识别系统目前识别精度一般不太高,许多技术问题还有待解决。
字符识别技术的研究主要集中在特征抽取和模式匹配两个方面,这一直是光学字符识别
(OCR)技术的两大关键所在。由扫描仪转化后的字符二值图象中各点的值,可以看成
是该字符的一组特征。但由于这组特征的数量较大,而每个特征所含的信息量很少,因
此有必要通过映射或变换的方法将信息集中到少量的特征中。这个过程就叫特征抽取。
选择稳定的、分类能力强的特征是字符识别系统的核心。
通常根据推导方式可以将特征分为局部特征、整体特征和结构特征。一些特征借助于局
部变换进行推导,对字符内在结构很少或完全不作考虑,这类特征称作局部特征;同样地
,通过整体变换推导字符特征的各种方法,若对字符结构也很少或完全不作考虑,则这类
特征称作整体特征;所有其它各种方法都密切关注字符结构,而这种特征称做结构特征。
我们将在第三章详细介绍一些有效的特征及其抽取方法。
在识别过程中,对待识别的字符进行特征抽取后,就要将这些特征与特征库中的的特
征进行比较,进行分类,这个过程称为特征匹配。特征匹配方法可分为完全匹配法和近似
匹配法。完全匹配法就是将未知字符的特征向量X与特征库中的所有特征向量
{Yj,j=1,2,…N}逐一进行比较,若X=Yi,则Yi所对应的字符就是识别结果。否则,就拒识。
在字典查找时,一般采用二分查找和m块查找。
近似匹配法可进一步分为相关性匹配法、驰豫匹配法和树搜索法。相关性匹配通过计算未
知字符的特征向量与字典中特征向量的距离或相关性来选择匹配对象。距离最小或相关性
最大的字典特征向量所对应的字符就是识别结果。采用不同的距离和相关性度量定义就可
以得到不同的匹配方法。该方法理论上没有拒识,但误识率较高。在实际应用中,我们通
过对距离和相关性度量引进一个阈值的方法,来降低识别系统的误识率。另外,也可以使
用多种相似匹配法,所得的匹配结果构成模糊集,对每一匹配结果建立对应的隶属函数,
然后确定模糊识别规则。根据最后计算出的综合隶属度进行分类。驰豫匹配法是在不可
能对输入矢量事先进行排序时,试图同时作出所有的匹配假设,然后逐步找出最为可能
的匹配候选字符。树搜索法通过一次检查特征矢量的一个或一部分成分,对输入字符进
行分类。而每一次分类都将未知字符分到更小的一个类目中去,直至最后得到唯一的识别
结果。该方法直观、分类速度快,但前后关联性较强,即前面的分类结果对后面的分类影
响较大。在实际应用中,一般在每个节点上须加上一段容错判别机制。
80年代以来,许多研究者将其它领域的一些新技术及研究手段引入到OCR技术的研究
中,并取得了一定的成果。这些技术和手段包括人工神经网络、小波变换、分形、模糊
理论等等。
神经网络的研究开始于1943年,心理学家McCulloch和数学家Pitts提出的M-P模型。
M-P模型的提出兴起了对神经网络的研究。1949年心理学家D.O.Hebb提出神经元之间的突
触联系强度可变的假设,根据这一假设提出的学习率为神经网络的学习算法奠定了基础。
50年代末,Rosenblatt提出感知机,第一次将神经网络的研究付诸于工程实践。随后的一
段时期,神经网络的发展很快。60年代,美国著名人工智能专家Minsky和Papert在对
Rosenblatt的工作进行深入研究的基础上,写出了很有影响的《感知机》一书。他们在
该书中指出感知机的处理能力有限,并指出如果引入隐含神经元,增加神经网络的层次,
可提高神经网络的处理能力,但是研究对应的学习方法非常困难。加上那时人工智能领域
中以知识信息处理为基础的知识工程的兴起,以及当时的工艺水平未能达到制作实用的具
有足够规模的神经网络,促使人们降低了对神经网络研究的热情,从而使神经网络的研究
进入萧条时期。
学术界公认,标志神经网络研究高潮的又一次到来是美国加州理工学院生物物理学家J.Hopfield教授于1982年和1984年发表在美国科学院院刊上的两篇文章。他在第一篇文章中提出了Hopfield神经网络模型,然后在第二篇文章设计和研制了该模型的电路。这些研究成果使神经网络的研究步入了兴盛期。1986年,Rumelhart等人在多层神经网络模型的基础上提出了多层神经网络模型的反向传播算法(即BP算法),解决了多层神经网络的学习问题。作为新的工具,正如Rumelhart所指出,它以其内在的特点,成为信息处理领域的重要工具,在诸如字符识别等问题上得到了广泛的应用。
近些年来,许多科学家提出了大量具备不同信息处理能力的神经网络模型,神经网络也被应用到许多信息处理领域。将神经网络技术与传统的字符识别技术结合起来,借助于神经网络很强的非线性逼近能力,可提高字符识别系统的容错和信息处理能力,增强系统的可靠性和灵活性。例如云南大学1997年研制的“用神经网络实现手写阿拉伯数字识别系统”,识别率达99%。
分形理论是非线性科学中的一个极其活跃和重要的分支,是对非线性问题的几何表示进行分析处理的数学工具。分形理论在70年代由Mandelbrot创立,80年代得到蓬勃发展,进入90年代以来,已被广泛应用到科学技术的许多领域,且随着各个领域的应用研究不断完善和发展。分形作为描述大量自然现象的数学模型越来越受到人们的重视。
分形是一种具有分数维的集合。分数维D是刻划分形集合的主要特征量。分形分析的关键是用不同的维数对分形集合进行测量,以便求出相应的分维数D。目前,人们已提出了大量的描述分形特征的维数概念。其中盒维数是应用最广泛的一种。基于分形理论的图象分割方法,在国外已引起了许多学者的高度重视,利用图象的多标度分形特征作为分割特征参数,可实现各种自然纹理特征的分割。而通过分形分析计算字符图象的分形盒维数,则可得到一类整体粗分类特征。
来源于信号分析的小波分析被誉为数学的显微镜,它是泛函分析、Fourier分析、样条分析、调和分析、数值分析的最完美结晶。在一系列科技领域,特别是在信号处理、图象处理、语音分析、模式识别、量子物理及众多非线性科学等领域,小波分析得到了广泛的应用。小波函数在时空域和频率域上同时具有局部性。利用小波作多分辨率分析,可将模式信息分解成不同尺度上的精细结构信息和不同分辨率(尺度)的逼近信息。正因为如此,小波应用于模式识别时,具有很强的分类能力。
由于经过小波分解后的图象信号在不同的分辨率层上存在自相似性,因此可以用小波表示来求图象的分形维数,并以此作为分类或其它用途的特征参数。而将小波分析的局部性能与神经网络的非线性逼近能力结合起来构造的小波神经网络模型则比普通的神经网络模型具有更强的分类能力和更快的学习速度。
1.5 、研究对象及目标
我们的研究对象是识别无限制手写数字和英文大写字母,这方面目前已有大量的研究成
果。但是,由于手写字符,特别是英文大写字母,拓扑结构变化的多样性,使得目前已
有的一些字符识别系统在应用于无限制手写字符的分类时,始终存在这样或那样的缺陷。
正因为如此,手写字符识别对于广大研究者来说,是一个充满无穷魅力的领域。在这一
领域里,没有“最好”---研制识别率达到100%的系统只是我们的理想,只有“更好”--
-通过我们的研究可以不断地将字符识别技术推向前进。
如前所述,手写字符的识别可分为联机识别和脱机识别,我们的研究只限于脱机识别领域。
本文所要做的工作是:
(1) 建立一个无限制手写数字脱机识别系统,要求该系统具有99%以上的识别率,
且具备一定的稳定性。
(2) 建立一个无限制手写大写英文字母脱机识别系统,该系统作为手写字符识别
系统中的脱机识别部分,要求该系统具有99%以上的识别率,且具备一定的稳定性。
下面是预处理部分的内容, sorry, 有删除, 贴时公式可能不见了:
第三章 预处理
摘 要:本章介绍了字符识别的一些预处理技术,包括字符的平滑,去除噪声,细化,连接断笔,正规化等。对于字符中存在的噪声,根据正常数字和英文大写字母均为由连续笔划组成的事实,设定一个浮动窗口来检测和去除噪声。对字符的细化则采用沈亮等人提出了一种基于文字笔画轮廓的算法。通过对大量的手写数字字符作了深入研究的基础之上,结合Whichello和Yan的思想方法,提出了一种启发式的断笔字符的动态连接方法。
3.1、引 言
文字识别中的一个重要问题是获得较理想的二值化图象。一般说来,在被观测的图象
中含有各种各样的噪声和畸变,去掉这些噪声和畸变,并将图象变成某种标准形式和进
行些加工,使特征的提取和识别变得容易进行,这些处理称为字符识别预处理。
预处理是字符识别前十分重要的一步,预处理的好坏将直接影响识别方法的难易及识别
结果的好坏。预处理工作做得好,使反映文字本质特征的部分得到保留甚至突出出来,识别就容易进行,识别率高且识别速度快。反之,就会使识别变得困难,甚至造成误识等不良后果。
3.2、平滑
2、噪声处理
噪声处理是一个重要而复杂的工作,通过扫描得到的字符图象有时含有噪声,这些噪声可能是因为纸张质量、污点、扫描通道的碎物或其它干扰造成的。这些噪声的存在,增加了字符识别的难度,较容易导致误识、拒识。如能较好地滤除噪声,无疑会为正确识别带来方便.
由于阿拉伯数字0~9和英文大写字母均为由连续笔划组成的字符,因此若检测到字符扫描图象中的笔划数超过1,则认为该字符图象中肯定存在噪声或断笔,需加以去噪声或连断笔处理。将多余的噪声去掉,或将断笔连在主体笔划上。而噪声和断笔的区分则可通过设定阈值来实现。具体的方法如下:
3.4、细化
在字符识别系统中,为减少数据量,准确提取特征,常常要采用细化算法。不过字符经过细化后,将不可避免地丢失部分信息。因此是否细化应根据实际情况而定。但一旦决定对字符进行细化,则细化结果的好坏,将直接影响识别率。考虑到单纯的数字识别系统数据量较小,因此我们没有对字符进行细化。而在大写英文字母识别系统中,由于数据量较大,因此在预处理步骤中采用了细化算法。
一般来说,对文字的细化有以下基本要求:
(1) 细化要保持原有字符的连续性,不能使本来相连的笔划断 开。
(2) 要细化成1像素的骨架,骨架应接近原笔划的中心线,最好做到8-连接。
(3) 不要产生严重的畸变,对噪声不敏感。
(4) 保留字符原有的拓扑,几何特征,特别是一些明显的拐角不应被光滑掉。
目前,关于细化算法的研究已有很多。其中最常用的是迭代算法。迭代算法按处理过程主要有串行和并行之分。串行算法中,按固定的顺序检测边缘点,在第N次迭代中一点可否被删除,不仅依赖于第(N-1)次迭代的结果,也依赖于第N次已处理过的结果。例如Kwok算法[9] 、Peleg & Rosenfeld算法[10]等。并行算法中第N次迭代仅依赖于第(N-1)次迭代的结果。如Naccache等人的“安全点”算法[11]、Zhang和Suen的算法[12]等等。因所有这些算法均采用局部窗口(如3×3,3×4,5×5等),所以它们在处理有V-连接、K-连接的字符时,在连接处会出现较大的畸变。针对这些问题,沈亮等人[15]提出了一种基于文字笔划轮廓的算法。该算法首先进行轮廓跟踪,得到字符的轮廓线。然后检测轮廓线上的拐点,并将相邻拐点之间的轮廓线切分成线段,通过赋以轮廓线方向,得到向量段。接着根据先验知识进行向量段匹配,得到完整的笔画。最后通过计算交叉点,拟合中心线而产生骨架。根据上述步骤,我们编制了一个细化程序,通过实验发现,该算法可以很好的消除常用迭代细化算法带来的交叉点畸变等失真现象。
3.5、连接断笔
在字符识别系统中,断笔字符的识别是一项很重要而又困难的工作。识别断笔字符的难点在于(1)如果我们将断笔字符看成是一类特殊的字符模板,则会造成特征库的无限庞大。这会使识别系统失去实际使用价值。(2)如果我们采用连接断笔的方法,则字符中断笔划的不确定性又给连接断笔的算法提出了非常高的要求。所有的连接断笔算法均面临着何处该连、如何去连,何处不该连这样一个灰色问题。因此断笔字符的识别尚是一个正在向前发展的领域。
对断笔字符的识别现在一般采用折中的办法:首先设计一种连接断笔的算法,该连接算法可连接字符中的一些断笔划.但它不错连字符中不该连的笔划,这显然限制了算法的性能,但我们必须这样去做,否则将会带来新的问题。对于经连接算法未能将断笔划连上的字符,则将它看成是一类特殊的字符模板。因此,衡量一个连接断笔算法的质量,是看它在不错连的情况下,可连接的断笔划的种类。
目前,对断笔字符的研究已有不少的工作。如Rocha和Pavlidis的形状分析模型[17] 、Whichello和Yan的字符轮廓重构方法[18] 等。这些方法基本原理简述如下:先设计一个M×N搜索模板,然后进行边缘跟踪,最后通过递归填充边界来连接断笔。对于断笔划之间间隙较小的字符,使用1×1或2×2模板,其效果很好。当断笔字符中断笔划之间间隙较大时,必须使用较大的模板(如3×3,5×5等),而这时往往会将字符中非断笔划连接起来。针对这一问题,Whichello和Yan提出了变长模板算法[19],该算法通过在跟踪字符轮廓的过程中,逐步增加模板的长度和宽度,让断笔连接与分类识别同步进行,力求在错误连接发生之前,将字符识别出来。该方法在实际应用中取得了一定的效果。
本文在对大量的手写数字字符作了深入研究和分析的基础之上,结合Whichello和Yan的思想方法,提出了一种启发式的断笔字符的动态连接方法。
3.6、点阵正规化
因为识别中的标准字库、特征库是按一定规格的字符提取的,为了识别方案的顺利进行,需对输入的字符点阵按一定的要求作正规化处理。在我们的识别系统中,统一将任意M×N的点阵规范化为32×24点阵。为此采用下面的方法: