1、光学字符识别OCR 是英文 Optical Character Recognition 的缩写,意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种方法。它通过扫描和摄像等光学输入方式获取纸张上的文字图像信息,利用各种模式识别算法分析文字形态特征,判断出汉字的标准编码,并按通用格式存储在文本文件中,从根本上改变了人们对计算机汉字人工编码录入的概念。使人们从繁重的键盘录入汉字的劳动中解脱出来。只要用扫描仪将整页文本图像输入到计算机,就能通过 OCR 软件自动产生汉字文本文件,这与人手工键入的汉字效果是一样的,但速度比手工快几十倍。比如用手机给名片拍照,名片中的姓名、电话号码等信息就会
2、自动识别进入到手机中,从此查询、拨打轻而易举。目前支持该功能的手机主要有摩托罗拉 A1200、索爱 P990和 LG G832 等。所以,OCR 是一种非常快捷、省力的文字输入方式,也是在文字量比较大的今天,很受人们欢迎的一种输入方式。由于 OCR 是一门与识别率拔河的技术,因此如何除错或利用辅助信息提高识别正确率,是 OCR 最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。而根据文字资料存在的媒体介质不同,及取得这些资料的方式不同,就衍生出各式各样、各种不同的应用。在此对 OCR 作一基本介绍,包括其技术简介以及其应用介绍。OCR
3、 的发展要谈 OCR 的发展,早在 60、70 年代,世界各国就开始有 OCR 的研究,而研究的初期,多以文字的识别方法研究为主,且识别的文字仅为 0 至 9 的数字。以同样拥有方块文字的日本为例,1960 年左右开始研究 OCR 的基本识别理论,初期以数字为对象,直至 1965 至 1970 年之间开始有一些简单的产品,如印刷文字的邮政编码识别系统,识别邮件上的邮政编码,帮助邮局作区域分信的作业;也因此至今邮政编码一直是各国所倡导的地址书写方式。OCR 可以说是一种不确定的技术研究,正确率就像是一个无穷趋近函数,知道其趋近值,却只能靠近而无法达到,永远在与 100%作拉锯战。因为其牵扯的因素
4、太多了,书写者的习惯或文件印刷品质、扫描仪的扫瞄品质、识别的方法、学习及测试的样本等等,多少都会影响其正确率,也因此,OCR 的产品除了需有一个强有力的识别核心外,产品的操作使用方便性、所提供的除错功能及方法,亦是决定产品好坏的重要因素。一个 OCR 识别系统,其目的很简单,只是要把影像作一个转换,使影像内的图形继续保存、有表格则表格内资料及影像内的文字,一律变成计算机文字,使能达到影像资料的储存量减少、识别出的文字可再使用及分析,当然也可节省因键盘输入的人力与时间。其处理流程如下图:从影像到结果输出,须经过影像输入、影像前处理、文字特征抽取、比对识别、最后经人工校正将认错的文字更正,将结果输
5、出。在此逐一介绍:影象输入:欲经过 OCR 处理的标的物须透过光学仪器,如影像扫描仪、传真机或任何摄影器材,将影像转入计算机。科技的进步,扫描仪等的输入装置已制作的愈来愈精致,轻薄短小、品质也高,对 OCR 有相当大的帮助,扫描仪的分辨率使影像更清晰、扫除速度更增进 OCR 处理的效率。影象前处理:影像前处理是 OCR 系统中,须解决问题最多的一个模块,从得到一个不是黑就是白的二值化影像,或灰阶、彩色的影像,到独立出一个个的文字影像的过程,都属于影像前处理。包含了影像正规化、去除噪声、影像矫正等的影像处理,及图文分析、文字行与字分离的文件前处理。在影像处理方面,在学理及技术方面都已达成熟阶段,
6、因此在市面上或网站上有不少可用的链接库;在文件前处理方面,则凭各家本领了;影像须先将图片、表格及文字区域分离出来,甚至可将文章的编排方向、文章的题纲及内容主体区分开,而文字的大小及文字的字体亦可如原始文件一样的判断出来。文字特征抽取:单以识别率而言,特征抽取可说是 OCR 的核心,用什么特征、怎么抽取,直接影响识别的好坏,也所以在 OCR 研究初期,特征抽取的研究报告特别的多。而特征可说是识别的筹码,简易的区分可分为两类:一为统计的特征,如文字区域内的黑/白点数比,当文字区分成好几个区域时,这一个个区域黑/白点数比之联合,就成了空间的一个数值向量,在比对时,基本的数学理论就足以应付了。而另一类
7、特征为结构的特征,如文字影像细线化后,取得字的笔划端点、交叉点之数量及位置,或以笔划段为特征,配合特殊的比对方法,进行比对,市面上的线上手写输入软件的识别方法多以此种结构的方法为主。对比数据库:当输入文字算完特征后,不管是用统计或结构的特征,都须有一比对数据库或特征数据库来进行比对,数据库的内容应包含所有欲识别的字集文字,根据与输入文字一样的特征抽取方法所得的特征群组。对比识别:这是可充分发挥数学运算理论的一个模块,根据不同的特征特性,选用不同的数学距离函数,较有名的比对方法有,欧式空间的比对方法、松弛比对法(Relaxation ) 、动态程序比对法(Dynamic Programming,
8、DP) ,以及类神经网络的数据库建立及比对、 HMM(Hidden Markov Model)等著名的方法,为了使识别的结果更稳定,也有所谓的专家系统(Experts System)被提出,利用各种特征比对方法的相异互补性,使识别出的结果,其信心度特别的高。 字词后处理:由于 OCR 的识别率并无法达到百分之百,或想加强比对的正确性及信心值,一些除错或甚至帮忙更正的功能,也成为 OCR 系统中必要的一个模块。字词后处理就是一例,利用比对后的识别文字与其可能的相似候选字群中,根据前后的识别文字找出最合乎逻辑的词,做更正的功能。字词数据库:为字词后处理所建立的词库。人工校正:OCR 最后的关卡,在
9、此之前,使用者可能只是拿支鼠标,跟着软件设计的节奏操作或仅是观看,而在此有可能须特别花使用者的精神及时间,去更正甚至找寻可能是 OCR 出错的地方。一个好的 OCR 软件,除了有一个稳定的影像处理及识别核心,以降低错误率外,人工校正的操作流程及其功能,亦影响 OCR 的处理效率,因此,文字影像与识别文字的对照,及其屏幕信息摆放的位置、还有每一识别文字的候选字功能、拒认字的功能、及字词后处理后特意标示出可能有问题的字词,都是为使用者设计尽量少使用键盘的一种功能,当然,不是说系统没显示出的文字就一定正确,就像完全由键盘输入的工作人员也会有出错的时候,这时要重新校正一次或能允许些许的错,就完全看使用
10、单位的需求了。结果输出:其实输出是件简单的事,但却须看使用者用 OCR 到底为了什么?有人只要文本文件作部份文字的再使用之用,所以只要一般的文字文件、有人要漂漂亮亮的和输入文件一模一样,所以有原文重现的功能、有人注重表格内的文字,所以要和 Excel 等软件结合。无论怎么变化,都只是输出档案格式的变化而已。提高 OCR 识别率 购买了扫描仪,你一定会发现,附赠的软件中有中英文 OCR 识别软件,当然一般都是基础版。很多人认为此类 OCR 的识别率不是很高,甚至怀疑只有那些正版的数千元的 OCR 软件其识别率才很高。其实,你只要注意使用技巧,此类 OCR 的识别率完全可达实用化水平。 1、处理原
11、稿扫描图像,使之清晰可“辨”。在其它因素都满足的前提下,对一般的印刷稿、打印稿(包括清晰的针打稿)等质量较好的文稿进行识别,其识别率一般可达到 98以上。而对报纸、复印件等不太清晰的文稿进行识别,无论哪种 OCR 都难以达到较高的识别率。对那些原稿不太清晰的,要注意识别前对图像加以处理,除去其上的污迹。并注意将偏斜的版面“改斜归正” ,通常 OCR 软件均有此功能,且一般都设有自动纠偏和手动纠偏。2、分辨率应选择适宜。一般选择 300dpi 较合适,分辨率选小了会使识别率降低,选得太大了并不能有效提高识别率,还会大幅度加长文件长度,浪费处理时间。有的扫描软件设备上有一项“OCR 扫描”,干脆将
12、分辨率锁定为 300dpi,这是很有道理的。 3、调整好亮度值和对比度值。这条非常关键,对识别率的影响很大。亮度值的调整是在识别前,先看看扫描得到的图像中文字质量如何,如果文字线条凹凸不平,甚至有断线,说明亮度值太大了,应减小亮度值;当文字线条很黑很粗,甚至挤成了黑疙瘩,分不清笔划时,则说明亮度值太小了,应增加亮度值;对比度的调节要视原稿确定,笔者常根据预扫时图像清晰度确定。 4、利用 OCR 的自学习功能。有时 OCR 对某些字总是难以识别,比如OCR 开始对“ 的” 和“二”等字总是搞错,这时可以利用 OCR 软件的自学习功能, “引导 ”它正确识别一次(有些不同的字体各需一次) ,它以后就对这些字“熟识”了。具体操作极易,上机看一下菜单即可明白。另外,若原稿全是英文或其中中文很少,最好用附赠的英文 OCR 软件。还有,现在已有一些很好的文字校对软件,其中一般都设置了 OCR 校对,利用这些软件先行处理一下所得文本文件,则可大大减轻人工校对负担。