光学文字识别即OCR(OpticalCharacterRecognition)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(IntelligentCharacterRecognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
光学文字识别的概念是在1929年由德国科学家Tausheck最先提出来的,后来美国科学家Handel也提出了利用技术对文字进行识别的想法。而最早对印刷体汉字识别进行研究的是IBM公司的Casey和Nagy,1966年他们发表了第一篇关于汉字识别的文章,采用了模板匹配法识别了1000个印刷体汉字。
早在60、70年代,世界各国就开始有OCR的研究,而研究的初期,多以文字的识别方法研究为主,且识别的文字仅为0至9的数字。以同样拥有方块文字的日本为例,1960年左右开始研究OCR的基本识别理论,初期以数字为对象,直至1965至1970年之间开始有一些简单的产品,如印刷文字的邮政编码识别系统,识别邮件上的邮政编码,帮助邮局作区域分信的作业;也因此至今邮政编码一直是各国所倡导的地址书写方式。
20世纪70年代初,日本的学者开始研究汉字识别,并做了大量的工作。中国在OCR技术方面的研究工作起步较晚,在70年代才开始对数字、英文字母及符号的识别进行研究,70年代末开始进行汉字识别的研究,到1986年汉字识别的研究进入一个实质性的阶段,不少研究单位相继推出了中文OCR产品.早期的OCR软件,由于识别率及产品化等多方面的因素,未能达到实际要求。同时,由于硬件设备成本高,运行速度慢,也没有达到实用的程度。只有个别部门,如信息部门、新闻出版单位等使用OCR软件。1986年以后我国的OCR研究有了很大进展,在汉字建模和识别方法上都有所创新,在系统研制和开发应用中都取得了丰硕的成果,不少单位相继推出了中文OCR产品。进入20世纪90年代以后,随着平台式扫描仪的广泛应用,以及我国信息自动化和办公自动化的普及,大大推动了OCR技术的进一步发展,使OCR的识别正确率、识别速度满足了广大用户的要求。[1]
编辑本段软件结构由于扫描仪的普及与广泛应用,OCR软件只需提供与扫描仪的接口,利用扫描仪驱动软件即可。因此,OCR软件主要是由下面几个部分组成。
图像输入、预处理:
图像输入:对于不同的图像格式,有着不同的存储格式,不同的压缩方式,目前有OpenCV,CxImage等开源项目。预处理:主要包括二值化,噪声去除,倾斜较正等
二值化:
对摄像头拍摄的图片,大多数是彩色图像,彩色图像所含信息量巨大,对于图片的内容,我们可以简单的分为前景与背景,为了让计算机更快的,更好的识别文字,我们需要先对彩色图进行处理,使图片只前景信息与背景信息,可以简单的定义前景信息为黑色,背景信息为白色,这就是二值化图了。
噪声去除:
对于不同的文档,我们对燥声的定义可以不同,根据燥声的特征进行去燥,就叫做噪声去除
倾斜较正:
由于一般用户,在拍照文档时,都比较随意,因此拍照出来的图片不可避免的产生倾斜,这就需要文字识别软件进行较正。
版面分析:
将文档图片分段落,分行的过程就叫做版面分析,由于实际文档的多样性,复杂性,因此,目前还没有一个固定的,最优的切割模型。
字符切割:
由于拍照条件的限制,经常造成字符粘连,断笔,因此极大限制了识别系统的性能,这就需要文字识别软件有字符切割功能。
字符识别:
这一研究,已经是很早的事情了,比较早有模板匹配,后来以特征提取为主,由于文字的位移,笔画的粗细,断笔,粘连,旋转等因素的影响,极大影响特征的提取的难度。
版面恢复:
人们希望识别后的文字,仍然像原文档图片那样排列着,段落不变,位置不变,顺序不变,的输出到word文档,pdf文档等,这一过程就叫做版面恢复。
后处理、校对:
根据特定的语言上下文的关系,对识别结果进行较正,就是后处理。
编辑本段工作流程一个OCR识别系统,其目的很简单,只是要把影像作一个转换,使影像内的图形继续保存、有表格则表格内资料及影像内的文字,一律变成计算机文字,使能达到影像资料的储存量减少、识别出的文字可再使用及分析,当然也可节省因键盘输入的人力与时间。
从影像到结果输出,须经过影像输入、影像前处理、文字特征抽取、比对识别、最后经人工校正将认错的文字更正,将结果输出。
影像输入
欲经过OCR处理的标的物须透过光学仪器,如影像扫描仪、传真机或任何摄影器材,将影像转入计算机。科技的进步,扫描仪等的输入装置已制作的愈来愈精致,轻薄短小、品质也高,对OCR有相当大的帮助,扫描仪的分辨率使影像更清晰、扫除速度更增进OCR处理的效率。
影像前处理:影像前处理是OCR系统中,须解决问题最多的一个模块,从得到一个不是黑就是白的二值化影像,或灰阶、彩色的影像,到独立出一个个的文字影像的过程,都属于影像前处理。包含了影像正规化、去除噪声、影像矫正等的影像处理,及图文分析、文字行与字分离的文件前处理。在影像处理方面,在学理及技术方面都已达成熟阶段,因此在市面上或网站上有不少可用的链接库;在文件前处理方面,则凭各家本领了;影像须先将图片、表格及文字区域分离出来,甚至可将文章的编排方向、文章的提纲及内容主体区分开,而文字的大小及文字的字体亦可如原始文件一样的判断出来。
文字特征抽取:单以识别率而言,特征抽取可说是OCR的核心,用什么特征、怎么抽取,直接影响识别的好坏,也所以在OCR研究初期,特征抽取的研究报告特别的多。而特征可说是识别的筹码,简易的区分可分为两类:一为统计的特征,如文字区域内的黑/白点数比,当文字区分成好几个区域时,这一个个区域黑/白点数比之联合,就成了空间的一个数值向量,在比对时,基本的数学理论就足以应付了。而另一类特征为结构的特征,如文字影像细线化后,取得字的笔划端点、交叉点之数量及位置,或以笔划段为特征,配合特殊的比对方法,进行比对,市面上的线上手写输入软件的识别方法多以此种结构的方法为主。
对比数据库:当输入文字算完特征后,不管是用统计或结构的特征,都须有一比对数据库或特征数据库来进行比对,数据库的内容应包含所有欲识别的字集文字,根据与输入文字一样的特征抽取方法所得的特征群组。
对比识别
这是可充分发挥数学运算理论的一个模块,根据不同的特征特性,选用不同的数学距离函数,较有名的比对方法有,欧式空间的比对方法、松弛比对法(Relaxation)、动态程序比对法(DynamicProgramming,DP),以及类神经网络的数据库建立及比对、HMM(HiddenMarkovModel)…等著名的方法,为了使识别的结果更稳定,也有所谓的专家系统(ExpertsSystem)被提出,利用各种特征比对方法的相异互补性,使识别出的结果,其信心度特别的高。
字词后处理:由于OCR的识别率并无法达到百分之百,或想加强比对的正确性及信心值,一些除错或甚至帮忙更正的功能,也成为OCR系统中必要的一个模块。字词后处理就是一例,利用比对后的识别文字与其可能的相似候选字群中,根据前后的识别文字找出最合乎逻辑的词,做更正的功能。
字词数据库:为字词后处理所建立的词库。
人工校正
OCR最后的关卡,在此之前,使用者可能只是拿支鼠标,跟着软件设计的节奏操作或仅是观看,而在此有可能须特别花使用者的精神及时间,去更正甚至找寻可能是OCR出错的地方。一个好的OCR软件,除了有一个稳定的影像处理及识别核心,以降低错误率外,人工校正的操作流程及其功能,亦影响OCR的处理效率,因此,文字影像与识别文字的对照,及其屏幕信息摆放的位置、还有每一识别文字的候选字功能、拒认字的功能、及字词后处理后特意标示出可能有问题的字词,都是为使用者设计尽量少使用键盘的一种功能,当然,不是说系统没显示出的文字就一定正确,就像完全由键盘输入的工作人员也会有出错的时候,这时要重新校正一次或能允许些许的错,就完全看使用单位的需求了。
结果输出
有人只要文本文件作部份文字的再使用之用,所以只要一般的文字文件、有人要漂漂亮亮的和输入文件一模一样,所以有原文重现的功能、有人注重表格内的文字,所以要和Excel等软件结合。无论怎么变化,都只是输出档案格式的变化而已。如果需要还原成原文一样格式,则在识别后,需要人工排版,耗时耗力。
编辑本段中文识别资料录入
文献资料的数字化录入,一般分为:
1.纯图像方式。
2.目录文本、正文图像方式。
3.全文本方式。
4.全文索引方式。文本方式和图像方式的混合体。
识别过程
书本级:中文,英文;简体,繁体;
版式级:竖排,横排;有无分栏;
行切分 字切分
识别:真正的OCR识别过程,图像信息还原成文本信息
后处理:人工干预,主要集中在前四个阶段。
识别结果决定因素
1.图片的质量,一般建议150dpi以上
2.颜色,一般对彩色识别很差,黑白的图片较高,因此建议ocr的为黑白tif格式
3.最重要的就是字体,如果是手写识别率很低。
国内OCR识别简体差错率为万分之三,如果要求更高的精度需要投入更大的人工干预。繁体识别由于繁体字库的不统一性(民国时期的字库和现在繁体字库不统一),导致识别困难,在人工干预下,精度能达到90%以上(图文清晰情况下)。
编辑本段识别技巧1.分辨率的设置是文字识别的重要前提。一般来讲,扫描仪提供较多的图像信息,识别软件比较容易得出识别结果。但也不是扫描分辨率设得越高识别正确率就越高。选择300dpi或400dpi分辨率,适合大部分文档扫描。注意文字原稿的扫描识别,设置扫描分辨率时千万不要超过扫描仪的光学分辨率,不然会得不偿失。下面是部分典型设置,仅供参考。
(1)1、2、3号字的文章段,推荐使用200dpi。
(2)4、小4、5号字的文章段,推荐使用300dpl
(3)小5、6号字的文章段,推荐使用400dpl
(4)7、8号字的文章段,推荐使用600dpi。
2.扫描时适当地调整好亮度和对比度值,使扫描文件黑白分明。这对识别率的影响最为关键,扫描亮度和对比度值的设定以观察扫描后的图像中汉字的笔画较细但又不断开为原则。进行识别前,先看看扫描得到的图像中文字质量如何,如果图像存在黑点或黑斑时或文字线条很粗很黑,分不清笔画时,说明亮度值太小了,应该增加亮度值在试试;如果文字线条凹凸不平,有断线甚至图像中汉字轮廓严重残缺时,说明亮度值太大了,应减小亮度后再试试。
3.选好扫描软件。选一款好的适合自己的OCR软件是作好文字识别工作的基础,一般不要使用扫描仪自带的OEM软件,OEM的OCR软件的功能少、效果差,有的甚至没有中文识别。
再选一个图像软件,第一,OCR软件不能识别所有的扫描仪;第二,也是最关键的,利用图像软件的扫描接口扫描出来的图像便于处理。
4.如果要进行的文本是带有格式的,如粗体、斜体、首行缩进等,部分OCR软件识别不出来,会丢失格式或出现乱码。如果必须扫描带有格式的文本,事先要确保使用的识别软件是否支持文字格式的扫描。也可以关闭样式识别系统,使软件集中注意力查找正确的字符,不再顾及字体和字体格式。
5.在扫描识别报纸或其他半透明文稿时,背面的文字透过纸张混淆文字字形,对识别会造成很大的障碍。遇到该类扫描,只要在扫描原稿的背面附。盖一张黑纸,扫描时,增加扫描对比度,即可减少背面模糊字体的影响,提高识别正确率,
6.一般文本扫描原稿都为黑、白两色原稿,但是在扫描设置时却常将扫描模式设为灰度模式。特别是在原稿质量较差时,使用灰度模式扫描,并在扫描软件处理完后再继续识别,这样会得到较好的识别正确率。值得注意的是OCR识别软件可以自己确定阀值,几个百分点的阀值差异,可能就会影响识别的正常进行。当然,得到的图像文件的大小会比黑白文件大很多。在进行大批量文稿扫描时,必须对原稿进行测试,找到最佳的阀值百分比。
7.遇到图文混排的扫描原稿,首先明确使用的识别软件是否支持自动分析图文这一功能。如果支持的话,在进行这类扫描识别时,OCR软件会自动计算出文本的内容、位置和先后顺序。文字部分可以按照标示顺序正常识别。
8.手动选取扫描区域会有更好识别效果。设置好参数后,先预览一下,然后开始选取扫描区域。不要将要用的文章一股脑儿选在一个区域内,因为现在的文章排版为了追求更好的视觉效果,使用图文混排的较多,扫成一幅图像会影响OCR识别。因此,要根据实际情况将版面分成N个区域,怎么划分区域呢?每一区域内的文字字体、字号最好一致,没有图形、图像,每一行的宽度一致,遇到长短不一,再细分,一般一次最多可扫描10个选区。根据不同情况,合理地设置识别区域的顺序。不要嫌这个过程太烦,那可是提高识别率的有效手段。注意各识别区域不能有交叉,做到一切觉得完好以后再进行识别。这样一般的识别率会在95%以上,对于识别不正确的文字进行校对后,就可以进入相应的文字处理软件进行所需的处理了。
9.在放置扫描原稿时,把扫描的文字材料一定要摆放在扫描起始线正中,以最大限度地减小由于光学透镜导致的失真。同时应保护扫描仪玻璃的干净和不受损害。文字有一定角度的倾斜,或者是原稿文字部分为不正规排版,必须在扫描后使用旋转工具,进行纠正;否则OCR识别软件会将水平笔划当做斜笔划处理,识别正确率会下降很多。建议用户尽量将扫描原稿放正,用工具旋转纠正会降低图像质量,使字符识别更加困难。
10.先"预览"整体版面,选定要扫描的区域,再用"放大预览"工具,选择一小块进行放大显示到全屏幕,观察其文字的对比度,文字的深浅浓度,据情况调整"阀值"的大小,最终要求文字清晰,不浓(文字成团),不淡(文字断笔伐),一般在"阀值"80左右为宜,最后再扫描。
11.用工具擦掉图像污点,包括原来版面中的不需要识别的插图、分隔线等,使文字图像中除了文字没有一点多余的东西;这可以大提高识别率并减少识别后的修改工作。
12.如果要扫描印刷质量稍微差一些的文章,比如说报纸,扫描的结果将不会黑白分明,会出现大量的黑点,而且在字体的笔画上也会出现粘连现象,这两项可是汉字识别的大忌,将严重影响汉字识别的正确率。为获得较好的识别结果,必须仔细进行色调调节,反复扫描多次才能获得比较理想的结果。另外由于报纸很薄且大部分纸质不高,导致扫描仪上盖板不能完全压住报纸(有缝隙),所以一般情况下报纸的扫描识别效果没有杂志的效果好。解决办法是在报纸上压一至两本16K的杂志,效果还是不错的。
目前国内最有实力的OCR公司有:云脉(