返回列表 发帖

[推荐]教你如何OCR

[这个贴子最后由坏的刚刚好在 2005/04/18 06:58pm 第 1 次编辑]

教你如何OCR
OCR是英文Optical Character Recognition的缩写,翻译成中文就是通过光学技术对文字进行识别的意思, 是自动识别技术研究和应用领域中的一个重要方面。它是一种能够将文字自动识别录入到电脑中的软件技术,是与扫描仪配套的主要软件,属于非键盘输入范畴,需要图像输入设备主要是扫描仪相配合。现在OCR主要是指文字识别软件,在1996年清华紫光开始搭配中文识别软件之前,市场上的扫描仪和OCR软件一直是分开销售的,专业的OCR软件在早些时候卖得比扫描仪还要贵。随着扫描仪分辨率的提升,OCR软件也在不断升级,扫描仪厂商现在已把专业的OCR软件搭配自己生产的扫描仪出售。OCR技术的迅速发展与扫描仪的广泛使用是密不可分的,近两年随着扫描仪逐渐普及和OCR技术的日臻完善,OCR己成为绝大多数扫描仪用户的得力助手。

一、OCR技术的发展历程

  自20世纪60年代初期出现第一代OCR产品开始,经过30多年的不断发展改进,包括手写体的各种OCR技术的研究取得了令人瞩目的成果,人们对OCR产品的功能要求也从原来的单纯注重识别率,发展到对整个OCR系统的识别速度、用户界面的友好性、操作的简便性、产品的稳定性、适应性、可靠性和易升级性、售前售后服务质量等各方面提出更高的要求。

  IBM公司最早开发了OCR产品,1965年在纽约世界博览会上展出了IBM公司的OCR产品——IBMl287。当时的这款产品只能识别印刷体的数字、英文字母及部分符号,并且必须是指定的字体。20世纪60年代末,日立公司和富士通公司也分别研制出各自的OCR产品。全世界第一个实现手写体邮政编码识别的信函自动分拣系统是由日本东芝公司研制的,两年后NEC公司也推出了同样的系统。到了1974年,信函的自动分拣率达到92%左右,并且广泛地应用在邮政系统中,发挥着较好的作用。1983年日本东芝公司发布了其识别印刷体日文汉字的OCR系统OCRV595,其识别速度为每秒70~100个汉字,识别率为99.5%。其后东芝公司又开始了手写体日文汉字识别的研究工作。

  中国在OCR技术方面的研究工作相对起步较晚,在20世纪70年代才开始对数字、英文字母及符号的识别技术进行研究,20世纪70年代末开始进行汉字识别的研究。1986年,国家863计划信息领域课题组织了清华大学、北京信息工程学院、沈阳自动化所三家单位联合进行中文OCR软件的开发工作。至1989年,清华大学率先推出了国内第一套中文OCR软件--清华文通TH-OCR1.0版,至此中文OCR正式从实验室走向了市场。清华OCR印刷体汉字识别软件其后又推出了TH-OCR 92高性能实用简/繁体、多字体、多功能印刷汉字识别系统,使印刷体汉字识别技术又取得重大进展。到1994年推出的TH-OCR 94高性能汉英混排印刷文本识别系统,则被专家鉴定为“是国内外首次推出的汉英混排印刷文本识别系统,总体上居国际领先水平”。上个世纪90年代中后期,清华大学电子工程系提出并进行了汉字识别综合研究,使汉字识别技术在印刷体文本、联机手写汉字识别、脱机手写汉字识别和脱机手写数字符号识别等领域全面地取得了重要成果。具有代表性的成果是TH-OCR 97综合集成汉字识别系统,它可以完成多文种(汉、英、日)印刷文本、联机手写汉字、脱机手写汉字和手写数字的识别输入。几年来,除清华文通TH-OCR外,其它如尚书SH-OCR等各具风格的OCR软件也相继问世,中文OCR市场稳步扩大,用户遍布世界各地。

  可以说目前印刷体OCR的识别技术已经达到较高水平。OCR产品已由早期的只能识别指定的印刷体数字、英文字母和部分符号,发展成为可以自动进行版面分析、表格识别,实现混合文字、多字体、多字号、横竖混排识别的强大的计算机信息快速录入工具。对印刷体汉字的识别率达到98%以上,即使对印刷质量较差的文字其识别率也达到95%以上。可识别宋体、黑体、楷体、仿宋体等多种字体的简、繁体,并且可以对多种字体、不同字号混合排版进行识别,对手写体汉字的识别率达到70%以上。特别是我国的汉字OCR技术经过十几年的努力,克服了起步晚、汉字字符集异常庞大等困难,单字的识别速度(指在单位时间内所完成的从特征提取到识别结果输出的字数)可以达到70字/秒以上。由于印刷体OCR汉字识别技术已经比较成熟,所以OCR产品被广泛地应用在新闻、印刷、出版、图书馆、办公自动化等各个行业。

  专业型OCR产品多是面向特定的行业,即适用于每天需处理大量表格信息录入的部门,如邮政、税务、海关、统计等等。这种面向特定行业的专业型OCR系统,格式较为固定,识别的字符集相对较小,经常与专用的输入设备结合使用,因此具有速度快、效率高等特点,比如邮件自动分拣系统等。

  手写文稿的识别直到1996、1997年才开始有产品问世,而且是作为印刷文稿识别产品的一项附加功能提供的。由于人写字的习惯千差万别,实现自由手写体识别相当困难,所以手写体OCR技术的使用领域是联机手写体识别,即人一边写,计算机一边识别,是一种实时识别方式。

二、OCR的基本原理

  简单地说,OCR的基本原理就是通过扫描仪将一份文稿的图像输入给计算机,然后由计算机取出每个文字的图像,并将其转换成汉字的编码。其具体工作过程是,扫描仪将汉字文稿通过电荷耦合器件CCD将文稿的光信号转换为电信号,经过模拟/数字转换器转化为数字信号传输给计算机。计算机接受的是文稿的数字图像,其图像上的汉字可能是印刷汉字,也可能是手写汉字,然后对这些图像中的汉字进行识别。对于印刷体字符,首先采用光学的方式将文档资料转换成原始黑白点阵的图像文件,再通过识别软件将图像中的文字转换成文本格式,以便文字处理软件的进一步加工。其中文字识别是OCR的重要技术。

1.OCR识别的两种方式

  与其它信息数据一样,在计算机中所有扫描仪捕捉到的图文信息都是用0、1这两个数字来记录和进行识别的,所有信息都只是以0、1保存的一串串点或样本点。OCR识别程序识别页面上的字符信息,主要通过单元模式匹配法和特征提取法两种方式进行字符识别。

  单元模式匹配识别法(Pattern Matching)是将每一个字符与保存有标准字体和字号位图的文件进行不严格的比较。如果应用程序中有一个已保存字符的大数据库,则应用程序会选取合适的字符进行正确的匹配。软件必须使用一些处理技术,找出最相似的匹配,通常是不断试验同一个字符的不同版本来比较。有些软件可以扫描一页文本,并鉴别出定义新字体的每一个字符。有些软件则使用自己的识别技术,尽其所能鉴别页面上的字符,然后将不可识别的字符进行人工选择或直接录入。

  特征提取识别法(Feature Extraction)是将每个字符分解为很多个不同的字符特征,包括斜线、水平线和曲线等。然后,又将这些特征与理解(识别)的字符进行匹配。举个简单的例子,应用程序识别到两条水平横线,它就会“认为”该字符可能是“二”。特征提取法的优点是可以识别多种字体,例如中文书法体就是采用特征提取法实现字符识别的。

  多数OCR应用软件都加入了语法智能检查功能,这种功能进一步提高了识别率。它主要通过上下文检查法实现拼写和语法的纠正,在文字识别时,OCR应用程序会做多次的上下文衔接性检查,根据程序中已经存在的词组、固定的用词顺序,对应的检查字符串的用词字。比较高级的应用软件会自动用它“认为”正确的词语替换错误词语,纠正语句意思。

2.文字识别的几个步骤

  文字识别包括以下几个步骤:图文输入、预处理、单字识别和后处理等。

(1)图文输入

  是指通过输入设备将文档输入到计算机中,也就是实现原稿的数字化。现在用得比较普遍的设备是扫描仪。文档图像的扫描质量是OCR软件正确识别的前提条件。恰当地选择扫描分辨率及相关参数,是保证文字清楚、特征不丢失的关键。此外,文档尽可能地放置端正,以保证预处理检测的倾斜角小,在进行倾斜校正后,文字图像的变形就小。这些简单的操作,会使系统的识别正确率有所提高。反之,由于扫描设置不当,文字的断笔过多可能会分检出半个文字的图像。文字断笔和笔画粘连会造成有些特征丢失,在将其特征与特征库比较时,会使其特征距离加大,识别错误率上升。

(2)预处理

  扫描一幅简单的印刷文档的图像,将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。预处理是指在进行文字识别之前的一些准备工作,包括图像净化处理,去掉原始图像中的显见噪声(干扰)。主要任务是测量文档放置的倾斜角,对文档进行版面分析,对选出的文字域进行排版确认,对横、竖排版的文字行进行切分,每一行的文字图像的分离,标点符号的判别等。这一阶段的工作非常重要,处理的效果直接影响到文字识别的准确率。

   版面分析是对文本图像的总体分析,是将文档中的所有文字块分检出来,区分出文本段落及排版顺序,以及图像、表格的区域。将各文字块的域界(域在图像中的始点、终点坐标),域内的属性(横、竖排版方式)以及各文字块的连接关系作为一种数据结构,提供给识别模块自动识别。对于文本区域直接进行识别处理,对于表格区域进行专用的表格分析及识别处理,对于图像区域进行压缩或简单存储。行字切分是将大幅的图像先切割为行,再从图像行中分离出单个字符的过程。

(3)单字识别

  单字识别是体现OCR文字识别的核心技术。从扫描文本中分检出的文字图像,由计算机将其图形、图像转变成文字的标准代码,是让计算机“认字”的关键,也就是所谓的识别技术。就像人脑认识文字是因为在人脑中已经保存了文字的各种特征,如文字的结构、文字的笔画等。要想让计算机来识别文字,也需要先将文字的特征等信息储存到计算机里,但要储存什么样的信息及怎样来获取这些信息是一个很复杂的过程,而且要达到非常高的识别率才能符合要求。通常采用的做法是根据文字的笔画、特征点、投影信息、点的区域分布等进行分析。

  中国汉字常用的就有几千,识别技术就是特征比较技术,通过和识别特征库的比较,找到特征最相似的字,提取该文字的标准代码,即为识别结果。比较是人们认识事物的一种基本方法,汉字识别也是通过比较找出汉字之间的相同、相似、相异,把握其量和质的关系,以及时间与空间的关系等。对于大字符集的汉字一般采用多级分类,多特征、全方位动态匹配求相似集,以保证分类率高、适应性强、稳定性好;细分类重点在于对相似集求异匹配、加权处理、结构判别,定量、定性分析,以及前后联接词的关系,最后进行判别。汉字识别实质上是比较科学或认知科学在人工智能方面的应用,其关键技术是识别特征库。计算机有了这样的一个特征库,才能完成认字的功能。

  在图像文档的版面中,除了有文字、图片,有时还会有表格存在,为了使识别后的表格数字化,需要在版面分析过程中,对表格域进行特殊的处理,它包括对表格线的结构信息的提取,对表格内文字域的分检,完成对表格线和对文字域的识别,并根据表格线的数字化生成不同的文件格式。由于文档中的表格随意性大,格式多样,有封闭式的,也有开放式的,特别是表格中的斜线,给表格分析造成一定的困难。

(4)后处理

  后处理是指对识别出的文字或多个识别结果采用词组方式进行上下匹配,即将单字识别的结果进行分词,与词库中的词组进行比较,以提高系统的识别率,减少误识率。


  汉字字符识别是文字识别领域最为困难的问题,它涉及模式识别、图像处理、数字信号处理、自然语言理解、人工智能、模糊数学、信息论、计算机、中文信息处理等学科,是一门综合性技术。近几年来,印刷汉字识别系统的单字识别正确率已经超过95%,为了进一步提高系统的总体识别率,扫描图像、图像的预处理以及识别后处理等方面的技术也都得到了深入的研究,并取得了长足的进展,有效地提高了印刷汉字识别系统的总体性能。清华大学在此方面的研究成果突出,已经成为世界上的最具权威的机构之一。目前,清华紫光的全系列扫描仪中都配装了清华OCR千禧版软件,它在识别率、表格识别甚至规范手写体的识别方面,均达到了较高水平。


手把手用好“尚书六号”文字识别软件

在扫描仪发展史上,文字识别软件(OCR)的出现,实现了将印刷文字扫描得到的图片转化为文本文字的功能,提供了一种全新的文字输入手段,大大提高了用户工作的效率,同时也为扫描仪的应用带来了进步。从此,扫描仪不再仅仅是图形、图像的输入工具,它真正的成为了电子化办公的有机组成部分。随之而来的是,扫描仪在金融、证券、政府等领域普遍应用,为人们摆脱纸制文档束缚,真正实现无纸化办公铺平了道路。

  目前在中国市场上销售的每一款Microtek扫描仪产品,都附赠了“尚书六号”文字识别软件。在颇具美名的“尚书五号”文字识别软件基础上,“尚书六号”又有了许多新的突破。它一改以前文字识别软件只能对“黑白二色”图像进行识别的限制,可以对彩色、灰度图像文件直接进行识别;尚书六号支持更多的扫描文件格式,例如TIFF、BMP和JPG格式;与此同时,尚书六号完善了表格识别功能,各式各样的表格几乎都可以原封不动的由图片格式转变为可以自由编辑的文字格式。最值得一提的是,“尚书六号”还加入了人性化设计,在软件安装完毕后,程序组图标里面会自动出现“尚书六号说明”,借助这本用户手册,即使是初学者也可以迅速掌握软件的使用。

  下面结合Microtek扫描仪的驱动软件ScanWizard 5,详细介绍如何配合尚书六号OCR软件做好文字识别工作:

  Step1:扫描图像文件

  建议首先点击桌面上ScanWizard 5软件的图标,进入Microtek扫描仪驱动软件的界面,直接进行扫描工作,而不需要启动其他的扫描程序或图像编辑程序,这样可以大大加快扫描进程。同时,注意将ScanWizard 5软件切换到高级工作模式(如图1所示),以便于用户检查扫描仪工作时的分辨率。在文字识别时,推荐使用的扫描分辨率设定在300ppi,色彩模式可以选择“RGB彩色”或者“灰阶”,选择“扫描到”的文件格式是TIF或者JPG两者都可以,然后将扫描得到的文件保存在用户确定的目录下面。

  Step2:打开尚书六号读取扫描好的图像文件
后期处理扫描结束后,程序会自动打开Microsoft Office Document Imaging,我们可以在这里看到刚刚扫描得到的图片(图2),虽然效果不是那么理想,但也还可以接受,选中一段文本,复制后就可以粘贴到Word或记事本中进行处理。虽然由于轻松版摄像头像素不高的原因,造成部分文本无法正确识别,但笔者已相当满意了。

返回列表 回复 发帖