文稿输入让键盘走开 郑优军 甄浩 2001年 38期 在进行文字输入工作时,尤其是输入已有的文稿资料时,能否让计算机自动输入识别文字呢?这样在解放了大量的人力和节省了时间之后,工作效率岂不是大大提高了?光学字符识别技术(Optical Character Recognition),简称OCR,做的就是这个工作。而根据文字资料存在的媒体介质不同,及取得这些资料的方式不同,就衍生出各式各样、各种不同的应用。市面上泛称的OCR产品,有利用手写板输入文字的识别软件,有利用扫描仪输入文件的识别软件,严格说起来,二者都属于图形识别,但从文字的意义来看,后者才是真正OCR软件,若要真正区别两者的不同,前者是利用手写板输入文字的识别软件,称为线上文字识别软件(On-Line Character Recognition,OLCR),而后者是利用扫描仪输入文件的识别软件,称为离线文字识别软件(Off-Line Character Recognition)。这里主要介绍的是后者。   #1OCR的原理   OCR是针对印刷体字符,通过扫描仪(或数码相机)等光学输入设备将文档资料转换成为原始资料黑白点阵的图像文件,利用各种模式识别算法分析文字形态特征,判断出文字的标准编码,并按通用格式存储为计算机的文本文件。由此可看出,OCR实际上是让计算机认字,实现文字自动输入,是一种高效、省力的文字输入方法。正是由于它录入速度快、准确性高,操作简便,并能大幅度提高工作效率,适应信息时代快节奏的要求,因而具有广泛的发展前景。   另外OCR可以说是一种不确定的技术研究,正确率100%就像是一个无穷趋近函数,知道其趋近值,却只能靠近而无法达到。这主要是因为其牵扯的因素太多了,书写者的习惯或文件印刷品质、扫描仪的扫描品质、识别的方法、学习及测试的样本等,多少都会影响其正确率。   #1中文OCR   中文是世界上最优美的文字,可由单一部首成一字,或由多个部首从上、下、左、右各方的组合,组成一个字,少一点成为另一个字,多一划又成另一个字,并且字数很多。另外在悠久的历史长河中,累积成数十种字体,如楷体、宋体、魏碑……每一种字体中又有许多的变形,圆的、中空的、粗的、细的、还有艺术形的,可正是这些美妙的组合,却给汉字OCR带来了很大的麻烦。   也许有人会认为,中文字多、笔划复杂,可撷取的信息多,因此识别技术应该比英文、数字容易。在此姑且不论此观点正确与否,但在有限的条件下(机器与识别速度、执行识别的空间及储存空间等等),中文识别比英文、数字的识别,所需处理的问题及技术,确实多了许多。   中文OCR过程如图(^38060101a^)所示,下面我们介绍一下印刷汉字OCR的八个过程:   #21.扫描输入文本图像   OCR处理的标的物须透过光学仪器,如扫描仪、传真机或任何摄影器材,将图像转入计算机。科技的进步,扫描仪等的输入装置已制作得愈来愈精致,轻薄短小、品质也高,对OCR有相当大的帮助,扫描仪的分辨率使图像更清晰、扫除速度更快,增进OCR处理的效率。   #22.图像的预处理   预处理包括图像正规化、去掉原始图像中的噪音(干扰)、扫描文字行的倾斜校正等。   #23.图像版面的分析和理解   版面分析是对文本图像的总体分析,区分出文本段落及排版顺序,以及图像、表格的区域。对于文本区域将进行识别处理,对于表格区域进行专用的表格分析及识别处理,对于图像区域进行压缩或简单存储。   #24.图像的行切分和字切分   行切分是将大幅的图像先切割为行,再从图像行中分离出单个字符的过程。值得一提的是如何将独立文字从文字行抽取出?中文字特别的地方在它有部首的观念,因此,不只是上下的合成、左右合成的字也特别多,且有可能是两部分(如“利”、“明”……),也有三部分的(如“捌”、“晰”……),当这些字与英文或数字同时存在且紧靠在一起时,判断如何连接或切出,是相当困难的。   #25.文字特征选择和提取   特征提取是整个环节中最重要的一环,单以识别率而言,特征抽取可说是OCR的核心。它是从单个字符图像上提取统计特征或结构特征的过程,用什么特征、怎么抽取,直接影响识别的好坏,包括为此而做的细化、归一化等步骤。特征可可以分为两类:一为统计的特征,如文字区域内的黑/白点数比,当文字区分成好几个区域时,这一个个区域黑/白点数比之联合,就成了空间的一个数值向量,在比对时,基本的数学理论就足以应付了。而另一类特征为结构的特征,如文字影像细线化后,取得字的笔划端点、交叉点之数量及位置,或以笔划段为特征,配合特殊的比对方法,进行比对。提取特征的稳定性及有效性,直接决定了识别的效率。   #26比对数据库   当输入文字算完特征后,不管是用统计或结构的特征,都须有一比对数据库或特征数据库来进行比对,数据库的内容应包含所有欲识别的字集文字,根据与输入文字一样的特征抽取方法所得的特征群组。   #27.比对识别   文字识别即从已有的特征库中找到与待识字符相似度最高的字符类的过程。这是可充分发挥数学运算理论的一个模块,根据不同的特征特性,选用不同的数学距离函数,较有名的比对方法有:欧式空间比对法、松弛比对法(Relaxation)、动态程序比对法(Dynamic Programming,DP),以及类神经网络的数据库建立及比对、HMM(Hidden Markov Model)等著名的方法,为了使识别的结果更稳定,也有所谓的专家系统(Experts System)被提出,利用各种特征比对方法的相异互补性,使识别出的结果,其信心度特别的高。   #28.识别结果的编辑修改后处理   也就是人工校正,是利用词义、词频、语法规则或语料库等语言先验知识对识别结果进行校正的过程,是OCR最后的关卡,在此之前,使用者可能只是拿只鼠标,跟着软件设计的节奏操作,去更正或者找寻OCR可能出错的地方。一个好的OCR软件,除了有一个稳定的影像处理及识别核心,以降低错误率外,人工校正的操作流程及其功能,亦影响OCR的处理效率,因此,文字影像与识别文字的对照,及其屏幕信息摆放的位置、还有每一识别文字的候选字功能、拒认字等功能都是OCR软件所必需具备的。   #1中文识别的特殊性   中文识别是比较科学和认知科学在人工智能方面的应用,它涉及模式识别、图像处理、数字信号处理、自然语言理解、人工智能、模糊数学、信息论、计算机、中文信息处理等学科,是一门综合性技术,其关键技术是识别特征库。汉字是非字母化、非拼音化的文字,是世界上公认的字种最多、字型最复杂的文字,建立这种大字符集的分类特征库是十分困难的。   一般采用多级分类,依据大量不同字体的样张,多特征、全方位动态匹配求相似集,再进行多特征、多方法比较、学习、分析、综合而集成特征库,以保证分类率高、适应性强、稳定性好,细分类的重点在于对相似集求异匹配、加权处理、结构判别,定量、定性分析以及前后连接词的关系,最后判别。它既有宏观比较的全局粗分类特征,又有微观比较求异的细分类特征,还有内外比较特定域的局部特征以及作为代码级后处理的联词、词组库等。   #1中文OCR软件   汉字的模式表达形式和相应的字典形成方法有多种,每种形式又可以选择不同的特征,每种特征又有不同的抽取方法,这就使得判别方法和准则以及所用的数学工具不同,形成了种类繁多、形式各异的汉字识别方法。总的来说,不同的特征抽取和分类器的设计方法决定了识别系统采用不同的处理方法,通常可以分为结构模式识别方法、统计模式识别方法、统计与结构相结合的识别方法以及人工神经网络方法等。   为了进一步提高系统的总体识别率,扫描图像、图像的预处理以及识别后处理等方面的技术也都得到了深入的研究,并取得了长足的进展,有效地提高了印刷汉字识别系统的总体性能。清华大学、汉王科技等在此方面的研究成果都比较突出。