现代光学字符识别技术综述

A survey of modern optical character recognition techniques

摘要

本报告探讨了数字文档识别领域的最新进展。以印刷文档图像为重点,讨论了光学字符识别(OCR)和文档图像增强/恢复在拉丁和非拉丁文字应用中的主要发展。此外,我们还回顾和讨论了现有的手写文档识别技术。在本报告中,我们还提供了一些公司在现有OCR引擎上积累的基准结果。

1 介绍

光学字符识别(OCR)是将机器打印或手写文本(数字、字母和符号)扫描图像转换为机器可读字符流、纯文本(如文本文件)或格式化(如HTML文件)的过程。如图1所示,典型OCR系统中的数据路径包括三个主要阶段:
在这里插入图片描述

  • 文档数字化
  • 字符/单词识别
  • 输出分布

在第一阶段中,扫描器以光学方式捕获文档中的文本并生成文档图像。扫描仪技术的最新进展使高分辨率文档扫描得到广泛应用。与早期的黑白模板匹配方法不同,现代基于特征的光学识别方法要求图像空间分辨率至少为每英寸200个点(dpi),并且可以从灰度文本图像中获益。较低的分辨率和简单的双调阈值往往会打断细线或填补空白,从而扭曲或使识别阶段所需的字符特征失效。

第二个(也是最有趣的)阶段负责文档图像中的字符和/或单词识别。该过程包括四个操作:

  • 可选的图像分析:图像质量评估、文本行检测、文字和字符提取等。
  • 可选的图像增强:去除斑点和其他图像噪声,填充孔洞和裂缝等。
  • 字符/单词识别通常基于其形状和其他特征
  • 可选的上下文处理来限制特性搜索空间

在第三(最后)阶段,输出接口将OCR结果传递给外部世界。
例如,许多商业系统允许将识别结果直接放入电子表格、数据库和文字处理程序中。其他商业系统在进一步的自动匹配处理中直接使用识别结果,当处理完成时,识别结果将被丢弃。在任何情况下,输出接口对OCR系统至关重要,因为它将结果传递给OCR系统之外的用户和程序域。

1.1 OCR是模式识别的一个成功分支

在历史上,光学字符识别被认为是一种解决特定类型的模式识别问题的技术。的确,要从给定的图像中识别一个字符,需要(通过一些已知的度量)将这个字符的特征模式与给定字母表中一些非常有限的已知特征模式参考集进行匹配。这显然是一个典型的模式识别问题。

字符分类一直是模式识别新思想的试验场,但由于许多此类实验都是在孤立的字符上进行的,其结果往往不能立即反映在OCR应用中。光学字符识别在其历史上一直在稳步发展,引发了一系列令人兴奋的研究课题,并产生了许多强大的实际应用。目前它被认为是机器视觉的最佳应用和模式识别理论中最成功的研究分支之一。

1.2 两类OCR系统

自从20世纪50年代引入OCR系统以来,已经开发了数百个OCR系统,其中许多系统在今天已经商业化。商业OCR系统大体上可以分为两类:任务专用阅读器和通用页面阅读器。

特定于任务的读取器仅处理特定的文档类型。一些最常见的任务特定的读卡器处理标准表单、银行支票、信用卡单等。这些读卡器通常使用定制的图像提升硬件,仅捕获几个预定义的文档区域。例如,银行支票阅读器可能只扫描“礼节金额”字段,而邮政OCR系统可能只扫描邮件上的地址块。这种系统强调高吞吐量和低错误率。诸如信件阅读之类的应用程序的一般吞吐量为每秒12个字母,错误率小于
2%。许多特定任务阅读器中的字符识别器能够识别手写文本和机器打印文本。

通用页面阅读器设计用于处理更广泛的文档,如商业信函、技术文章和报纸。典型的通用阅读器的工作原理是:捕捉文档页面的图像,将页面分为文本区域和非文本区域,对文本区域应用OCR,并将非文本区域与输出文本分开存储。大多数通用页面阅读器可以阅读机器书写的文本,但只有少数人能够阅读手写的字母数字。高端页面阅读器具有高级识别功能和高数据吞吐量。低端页面阅读器通常与一般的平板扫描仪兼容,这些扫描仪主要用于办公环境中的台式计算机,而台式计算机对系统精度或吞吐量的要求较低。一些商业OCR软件是自适应的,允许用户根据客户的数据对光学识别引擎进行微调,以提高识别精度。

1.3 现代OCR的主要趋势

光学字符识别是一个发展迅速的技术领域,目前已广泛应用于各种规模的项目中,从偶尔的文档扫描到创建大量的数字文档档案。然而,它仍然是一个活跃的科学研究和创造性工程领域。在现代OCR领域,我们可以发现以下主要的研究趋势:

自适应OCR旨在通过寻址来对更广泛的打印文档图像进行稳健处理

  • 多脚本和多语言识别[17,39,40,56,85]
  • 泛字体文本[8,36,49,81,64]
  • 自动文档分割[15,19,41,47,57,63,66]
  • 数学符号识别[19,26,35,62,89]

手写识别[11,85,86]是一种成熟的OCR技术,必须具有非常强大的适应性。总的来说,它仍然是一个被积极研究的开放性问题,对于一些特殊的应用,如

  • 表格中手写文本的识别[16,72,77]
  • 个人支票笔迹识别[48]
  • 邮政信封和包裹地址阅读器[46]
  • 便携式和手持设备中的OCR[33,34,60]

文档图像增强[12,18,55,88]涉及(自动)选择并将适当的图像过滤器应用于源文档图像,以帮助给定的OCR引擎更好地识别字符和单词。

智能后处理[9,13,45,51,73,93]对于提高OCR识别精度和创建健壮的信息检索(IR)系统具有重要意义,该系统利用智能索引和近似字符串匹配技术来存储和检索有噪声的OCR输出文本。

多媒体中的OCR[20,50,52,53,54,61,75,90]是一个有趣的发展,它适应了光学字符识别技术,而不是印刷文档,如照片、视频和互联网。

1.4 本报告的主要关注点和动机

这项调查的主要焦点是最新发展的光学字符识别应用于印刷文件图像。草书和手写体识别也被讨论,但程度较低。在后面的章节中,我们将在上述主题的背景下详细阐述正在进行的研究以及商业和公共领域的OCR解决方案。

更具体地说,第2节介绍了OCR领域及其主要技术,回顾了当前可用的OCR系统,然后详细阐述了脚本和语言问题、准确性和性能。第三节讨论了文档图像的缺陷、文档图像预处理和自动页面分割的重要性。在第4节中,我们将讨论在处理噪声OCR输出时出现的信息检索(IR)问题。在报告的最后,我们总结了所讨论的OCR问题,并对光学字符识别领域的一些有希望的方向进行了展望。

2 光学字符识别

虽然OCR代表“光学字符识别”,但一些OCR程序不是通过单个字符来识别文本,而是通过字符块、单词甚至单词组来识别文本。因此,为了使讨论更一般化,讨论识别单元或项目是有意义的。

2.1基本ocr技术

光学字符识别有各种各样的方法。 其中一些需要预先分割成识别项,其中一些不需要,但我们可以安全地期望任何OCR算法都拥有这两个基本组件:

  • 一个特征提取器
  • 一个分类器

给定项目图像,特征提取器导出项目所拥有的特征(描述符。 然后将导出的特征用作分类器的输入,该分类器确定(最有可能)已知的项与观察到的特征相关。 分类器还期望给出一个置信水平数,它告诉分类器对识别项的确定程度。 让我们简要描述一些经典的光学字符识别方法。

给定一个项目图像,特征提取器导出该项目所拥有的特征(描述符)。然后将派生的特征用作分类器的输入,分类器确定(最有可能)与观察到的特征相对应的已知项。分类器还需要给出一个置信度,该值表示分类器对已识别项的确定程度。让我们简单介绍一些经典的光学字符识别方法。

模板匹配是最常见和最基本的分类方法之一[70,第8.2节]。它也被称为矩阵匹配。一组所有的字符图像原型,模板,是收集和已知的先验知识。特征提取程序使用单个图像像素作为特征。字符分类是通过将输入字符图像与模板数组进行比较来执行的。每次比较都会导致输入字符和模板之间的相似性度量(由已知的“距离”函数给出)。当观察到的字符中的一个像素与模板图像中的相同像素相同(匹配)时,相似度增加。当对应的像素不同(不匹配)时,相似性度量可能降低。结果,角色的身份被指定为模板最相似的那个。

结构分类方法使用结构特征和决策规则对字符进行分类[70,第8.3节]。结构特征可以根据笔划、字符孔或其他字符属性(如角和凹面)来定义。例如,字母“P”可以被描述为“在右上侧附加有弯曲笔划的垂直笔划,形成一个孔”。为了对字符进行分类,提取输入字符的结构特征,并采用基于规则的系统来计算字符的类别。

请注意,上面的技术都是以它们的标准形式描述的,但是它们有许多方法上的变化和混合的方法。例如,模板匹配不必基于像素,例如可以匹配图像和模板的小波变换。结构分类并不总是依赖于决策规则,例如,可以使用一个在特征空间中具有适当度量的最近邻分类器。

许多现代OCR系统都是基于数学形式,以尽量减少一些误分类的措施。这种字符识别器可以使用基于像素的特征或结构特征。让我们谈谈其中的一些:

判别函数分类器利用多维特征空间中的超曲面,将字符的特征描述从不同的语义类中分离出来。这种分类器的目的是减少均方分类误差。

贝叶斯分类器通过使用概率论寻求最小化与字符误分类相关的损失函数。

人工神经网络(ANN)起源于人和动物的感知理论,利用误差反向传播技术学习一些非平凡的字符分类图,并利用数学优化技术来减少可能的分类误差。

2.2当前可用的OCR系统

自从第一个OCR系统引入以来,商业和公共领域的OCR系统已经有成百上千个了。下面,我们提到并简要地描述了一些当前可用的OCR引擎。

2.2.1商用OCR解决方案

许多商业OCR系统最初是大学项目、共享软件或免费软件程序,后来发展成成熟的高质量OCR引擎、软件开发工具包(SDK)和随时可用的软件产品,以满足当今OCR市场的高期望。

由ScanSoft提供的捕获开发系统12(http://www.scansoft.com/)通过提供精确的OCR引擎、先进的图像增强工具、文档处理功能和对广泛的输入/输出过滤器(包括PDF)的支持,使软件开发人员能够降低开发成本和上市时间,XML和开放电子书标准。标准版本处理欧洲脚本,并有一个扩展分别处理中文、日文和韩文。

ABBYY的FineReader 7.0(http://www.abbyy.com/)是专门为网络环境设计的OCR应用程序。它将高精度和格式保留与强大的网络功能相结合,为需要转换和复制各种纸质文档和PDF文件以进行编辑和归档的公司提供了一个良好的OCR解决方案。FineReader可以阅读177种语言,包括英语、德语、法语、希腊语、西班牙语、意大利语、葡萄牙语、荷兰语、瑞典语、芬兰语、俄语、乌克兰语、保加利亚语、捷克语、匈牙利语、波兰语、斯洛伐克语、马来语、印度尼西亚语等。内置拼写检查可用于34种语言。

Sakhr自动阅读器7.0(http://www.sakhr.com/)是阿拉比克文字的标准OCR阅读器之一。Sakhr-OCR结合了两种主要技术:Omni技术(依赖于人工智能的高度先进研究)和提高字符识别精度的训练技术。它可以通过Xerox文本桥技术实现文档图像的自动分割和多个脚本的识别。

诺沃德DX公司(http://www.novodynamics.com/)是一个集成信息检索(IR)系统,可以准确地处理用目标语言编写的大量文档。系统能够

  • 准确处理降级文件
  • 处理用亚洲语言编写的文件,例如阿拉伯语
  • 扩展到多种语言

作为国防部项目的一部分,NovoDynamics最初设计此软件用于某些语言,并通过与In-Q-Tel的业务合作得到增强。

国际神经机器公司的neurtalker可以作为一个“快速、轻量级”的OCR引擎,它通过将图像复制到剪贴板,然后粘贴为文本来运行。

BBN是一个可训练的系统,声称完全独立于脚本,而不是训练和应用程序数据应该明显匹配。

Prime OCR是一个投票系统,一个人可以获得多达6个其他商业引擎在里面。

楔形文字被称为拉丁文字的快速OCR引擎。

Visulata的Visulata OCR软件在多个LINUX和UNIX平台上使用了Caere(ScanSoft)OCR技术。

2.2.2 开源领域OCR资源

大多数公开的(免费的)OCR软件主要是为基于UNIX和LINUX的系统开发的[25]。公有领域OCR程序是用C或C++等最流行的编程语言编写的,并与源代码一起分发,因此它们是开源系统。除了免费之外,开源OCR系统非常灵活,而且对软件开发人员非常友好。开源系统的一个明显的缺点是需要编译并使其在用户的本地平台上可执行,这需要一个合适的编译器,而且通常需要软件开发人员的专业知识。下面我们列出了一些这样的系统:

NIST基于表单的手印识别系统:[27,28]一个由NIST开发的基于标准参考表单的手印识别系统。识别系统处理与NIST专用数据库1和3一起分发的手写样本表格。系统读取包含数字、小写字母、大写字母的手写字段,并读取包含美国宪法序言的文本段落。源代码用于表单注册、表单移除、字段隔离、字段分段、字符规范化、特征提取、字符分类和基于字典的后处理。据悉,该系统已在Digital Equipment Corporation(DEC)Alpha、Hewlett-Packard(HP)型号712/80、IBM RS6000、Silicon Graphics Incorporated(SGI)Indigo 2、SGI Onyx、SGI Challenge、Sun Microsystems(Sun)IPC、Sun SPARCstation 2、Sun 4/470和Sun SPARC station 10上成功编译和测试。

Illuminator:[76]一个开源软件工具集,用于开发OCR和图像理解应用程序,由RAF Technology于1999年开发。Illuminator有两个主要部分:一个用于表示、存储和检索OCR信息的库(称为DAFSLib)和一个称为illum的X-Windows“DAFS”文件查看器。

CalPoly OCR:[84]软件最初是在Clint Staley教授的指导下为加利福尼亚理工州立大学的计算机视觉课程项目编写的。众所周知,该系统是字体专用的,可以很好地处理接受培训的高端HP激光打印机上的字体,但不能保证能在其他打印机上使用。它是加州保利利用大学资源开发的,因此只能用于学术目的,不能用于商业利益。

Xocr:[7]一个共享的OCR软件,由 Martin Bauer(Martin Bauer@S2.maus.de)r为LINUX系统上的X11编写。经过一些努力,它可以移植到SunOS。

2.3光学字符识别困难的原因

字符误分类主要来源于两个方面:识别单元(项目)图像质量差和分类器的识别能力不足。有许多因素会导致嘈杂、难以识别的物品图像:

  • 原始文件质量差
  • 噪声、低分辨率、多代图像扫描
  • 图像预处理不正确或不足
  • 项目分割不好

另一方面,字符识别方法本身可能对给定的字符(项)集缺乏适当的响应,从而导致分类错误。由于训练集有限或分类器的学习能力有限,这类错误很难处理。

机器印刷字符的典型识别率可以达到99%以上,但手写字符的识别率却始终较低,因为每个人的书写方式不同。这种随机性通常表现在特征空间中字符的变化更大,从而导致更高的误分类率。

“困难”字符的一个常见例子是字母“O”很容易与数字“0”混淆。另一个很好的例子是字母“l”与数字“1”混淆,或者被误认为是字母“I”的嘈杂图像。

Rice等人。[64,78]讨论人类与计算机的字符识别能力&#

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值