毕业论文
您现在的位置: 语言识别 >> 语言识别发展 >> 正文 >> 正文

OCR技术发展综述与达观数据的实践经验

来源:语言识别 时间:2023/2/7
根治白癜风什么方法好 http://m.39.net/pf/a_4564815.html

光学字符识别OCR技术(OpticalCharacterRecognition)是指从图像中自动提取文字信息的技术。这项技术横跨了人工智能里的两大领域:CV(计算机视觉)和NLP(自然语言处理),综合使用了这两大领域中的很多技术成果。

在过往40余年的技术发展历程中,OCR始终具备很强的产业应用背景,是计算机领域里少数几个一开始就由工业界和学术界双轮驱动的领域。近年来OCR技术已经在工业界成熟落地应用,学术界里对此的研究热度反而弱于其他方向。甚至有人认为OCR技术已经充分成熟,没有更多研究必要了。然而随着近年来智能文本处理IDP(IntelligentDocumentProcessing)在工业界的逐步落地应用,OCR和IDP相结合的应用场景越来越多,用语义理解NLP的角度进一步去延伸OCR的应用,出现了很多更有产业应用价值的场景。本文回顾了OCR技术的发展历程,并结合达观数据在工程实践方面的经验,介绍与语义分析技术结合后,当前OCR技术的一些最新发展和落地经验。

OCR技术的发展历程

OCR技术的诞生其实比计算机的历史还要悠久,早在年代,德国发明家Tausheck(陶舍克)和美国工程师Handel(汉德)分别申请了最早的OCR专利,这比计算机的诞生还要早20年时间。因为当年还完全没有计算机以及相关外设(如今天广泛使用的扫描仪或高拍仪),所以最早提出的OCR技术采用的是机械掩模和模板匹配的方法来处理打字机输出的文档。当时的技术雏形离实际应用还比较遥远。

OCR技术真正开始进入办公应用是到了年代,引领这项技术的是美国IBM公司。随着二战后美国经济的腾飞,计算机开始进入企业办公领域,在一些日常处理量大且步骤繁琐的场景下OCR开始发挥应用价值。例如年纽约世博会展出的IBM机器就能自动识别英文字母和数字,且准确率很高。此后逐步被用于一些订单编号的识别派发,和信封邮政编码的识别和邮件分拣等任务中。

年代起,随着日本经济尤其是电子技术的飞跃,富士通、日立、东芝、NEC等日本科技公司纷纷入场。这个时期的研究特点是图像采集的电子器件得到快速发展,光栅扫描、成像、电子化图像传输等信号采集技术成长迅速,相应的轮廓提取、结构分析等软件算法也开始出现。

在以精密电器制造见长的日本企业推动下,扫描仪等采集设备的效果、速度、成本有了长足的进步,对标准打印字符的识别效果越来越好,OCR系统开始普及应用。和其他很多高科技领域里“先从大学有了早期理论研究突破,然后逐步在产业界孵化出实用系统”的方式不同,在这个阶段,OCR技术始终是由工业界主导并取得了良好的应用效果。唯一的例外是对手写字符的识别。因为手写字符的变化太大,各种连笔、涂改、变形等让计算机辨认确实太难(甚至过于潦草的情况下让人辨识都很难),所以作为OCR领域的研究分支,成为了学术界的一个研究热点。尤其年代模式识别(PatternRecognition)兴起,激发了学术研究界对手写字符识别的热情。此时出现大名鼎鼎的MNIST数据集,由美国国家标准与技术研究所(NIST,NationalInstituteofStandardsandTechnology)发起整理了来自个不同人的手写数字图片。

MNIST是OCR乃至模式分类领域最知名的入门数据集

此后大量的模式分类以及图像处理论文都以MNIST作为基础,进行各类特征抽取和模式分类的算法研究。至今一些大学人工智能的入门课程还会用MNIST数据集来跑试验,可谓经久不衰。

为什么只有手写字符集,不搞打印字符测试数据集?因为对打印字符的识别准确率已经极高(99.9%以上),没有科研必要了……

此处顺便一提,百度创始人李彦宏年在美国IDD公司工作时也参与了OCR技术研究,其中一篇优秀的研究成果发表在机器学习界知名学术期刊IEEETransactionPAMI上。

百度李彦宏的OCR论文,发表于IEEETransonPAMI

21世纪后,OCR被进一步应用于各行各业里卡证票据的识别。针对的是日常生活中频繁使用到的发票、身份证、银行卡、营业执照、房产证、驾驶证、汽车牌照等实体证件。在这个阶段,图像扫描技术已经高度成熟了,所以技术研究基本集中在软件算法方面,并细分为信息检测(Detection)和识别(Recognition)两个技术分支分别发展,本文后面有更详细的技术介绍。

因为大部分常见的卡证票据都有相对固定的格式布局,所以通常只需要有足够多的训练样本,通过样本标注生成元素的模板定位,就能解决绝大部分问题,不用大费周折使用“智能化”的检测算法。通俗地说,这类应用场景是”数据为王”。

自年之后OCR技术和应用又迎来了巨大的变化,这次主要来自两个因素的推动。第一个因素是移动手机拍照的普及。在此之前,OCR的图像通常来自于扫描仪、高拍仪等企业级专用采集设备,图像的质量非常高,但因为固定在办公桌面使用,不够方便灵活,限制了应用场景,所以此前的OCR集中于企业级商用。而智能手机的迅速普及,让我们每个人都有了一个“拍摄+上传”的一体化终端,为OCR的应用普及带来了新的历史机遇,随之而来产生了很多新的应用场景。例如各种个人证照、文件等的自助式拍摄和上传,用于远程申报和审批等事项,或者拍摄并识别文件进行内容自动处理等创新场景(例如教育领域的拍题搜答案等)。

这个因素也随之带来了一些新的技术问题,例如手机因为拍摄相对随意,个人拍摄的水平参差不齐,会导致图像存在阴影遮挡、角度畸变、失焦模糊等等一堆新的问题。也相应产生了一批解决这些问题的工程手段。(达观数据陈运文)

另一个重要因素来自深度学习技术的巨大理论突破。在深度神经网络的旋风刮到OCR领域之前,用于检测和识别的技术可谓是百花齐放,例如各种各样的信号处理(例如Fourier、Radon、Hough、Zernike)特征提炼方法、图像结构的方法(交叉线、圆圈、横竖线条)、各种算子(如SIFT、SURF、各类卷积算子等)等、以及各种映射技术等。针对一些专用的字符类型和特殊应用场景,还有专门构造的人工特征提取技术。

但深度学习时代里通过多层网络结构来自动进行特征学习,颠覆了这些传统的人工特征提取过程,效果也有明显的改善。近年来学术界的论文已经是神经网络一统江湖了。加上之前限制深度学习的算力成本大幅度降低,新的更复杂的网络结构层出不穷,将OCR技术的效果不断推上新的台阶。

在“智能手机+深度学习”这两个因素共同助推下,近年来OCR技术的研发迎来了三个新的热点方向,分别是:

OCR与智能文本处理(IDP)相结合,进行无固定格式文档的语义理解和结构化解析,不仅识别文字本身,而且理解文字的版面、结构、表格元素、段落内容等,从而完成对文本要素信息的还原和结构化抽取工作,并用于智能文档审阅处理等场景

OCR与专业领域的符号识别相结合,如数学公式符号、物理公式、化学分子结构图、建筑图纸等等,实现专业领域的应用,如拍图搜题,图纸审核等场景

OCR与开放场景的文字识别相结合(常称为STR,SceneTextRecognition),例如路牌、店面招牌、商标文字、户外广告识别等,用于交通、户外消费、自动驾驶等场景

这三类当前的热点应用,都有各自的技术难点,也分别衍生出了相应的产品技术解决方案。其中OCR与IDP的结合是目前达观数据的主要研究和应用方向,接下来会进行一些技术分享。

OCR技术的发展情况

当前学术界普遍将OCR处理分为图像预处理、文本检测(Detection)、文本识别(Recognition)这三大步骤,或者也有将检测和识别合并,直接用端到端学习(End-to-End)进行处理工作。

图像预处理用于对待处理的原始图像进行一些矫正操作,以助于降低后续的检测和识别难度。例如使用一些工程化技术来调整图像对比度、旋转对齐、进行局部裁剪、折痕和墨点等干扰信息的淡化等都属于相对基础的预处理操作。因为在使用高拍仪或扫描仪等专业采集设备时,图像品质普遍较好,所以在年以前对图像预处理方面的系统性的研究并不多,更多集中于对局部的畸变进行校正(ImageRectifier)或图像去噪。

经典的图像预处理经常用到各类滤波器(如高斯滤波、BM3D等)进行去噪,另外一些信号处理手段也常用于对图像进行旋转对齐,横平竖直的文档会让后续的检测和识别变得容易得多。

智能手机拍摄普及后,光照不均匀、阴影遮挡、局部扭曲、甚至对焦模糊等复杂情况层出不穷,所以在实际工程应用中,图像预处理的好坏对后续识别精度价值很大,尽管这个环节作为OCR的一个非核心环节,受到学术圈的重视较少,各大学术会议上也几乎罕见这方面的研究论文(近年有几篇不错的Textdeblurring论文)。但学术和工程的目标是不一样的,工程应用要在琐碎中见真章,会配置很多业务规则和处理步骤。

顺便一提,为了增加标注样本的数量,提升算法在不同场景下的鲁棒性,生成对抗网络(GAN)的思想在OCR的样本生成方面也很常用。尤其在标注样本不充足的情况下,用GAN网络结合人工标注和积累的真实样本,日拱一卒不断扩大训练样本库,也是常用的做法。

文本检测是OCR的最重要环节之一(另一个是文本识别),传统的文本检测使用了各种人工构造的特征,例如常见的二值投影、旋转仿射变换、各类图像算子如HoG算子、SURF算子,DPM模型(DeformablePartsModel)等来定位文本行列位置。在年前最常见的技术手段为滑动窗口检测、或基于连通区域检测的方法,由下而上逐步拟合出文本块。

因为构造特征的过程偏定制,很难针对不同的文档类型形成大而全的普适方案。在具有特定结构规律的OCR领域,尤其是卡证票据这类常见检测应用场景,传统的模板+滑动窗口定位检测的方法是管用的。

近10年来随着深度学习技术的飞速发展,多种多样的神经网络结构(如称为XXNET或XXNN)的检测效果明显优于传统人工构造的特征,当前主流的检测技术由深度学习来主导。

文本检测中常见的思想有两大类,一类是基于回归的方法,另一类是基于分割的方法。

基于回归的检测方法,基本思路是先利用若干个默认锚点(Anchor),然后想办法进行合并形成文字框box。年ECCV发表的CTPN是基于回归思想的经典技术(DetectingTextinNaturalImagewithConnectionistTextProposalNetwork,论文出自中科院,为我们中国研究者点赞)。

CTPN是基于回归的文本检测中的经典方法

CTPN综合了CNN和LSTM的网络特性,在假设文本已经是水平横向分布的前提条件下,做了以下步骤的操作:

VGG16位backbone提取空间特征,取conv5层输出特征

在垂直vertical方向进行featuremap,并进行reshape

引入Bi-LSTM,从而更好地利用文字连贯性的特征来提升检测效果

使用类似FasterR-CNN的RPN网络获得textproposals

对获得的大量textproposals,使用NMS(Non-MaximumSuppression,非极大值抑制),或改进后的SoftNMS,WeightedNMS等,过滤和合并文本框。(这个阶段的工作和通用的目标检测任务相似)

对得到的水平方向的文本小框合成一个完整的横向文本行,并针对少量倾斜情况做一些矫正

CTPN综合了上述若干种网络结构的优点,有优秀的检测效果,尤其对边框矩形的四个顶点的识别很准确,对OCR检测技术的后续发展有承前启后的意义。例如此后的SegLink算法沿用了CTPN的思想,并引入了SSD和旋转角度学习的方法,来解决CTPN遗留的多角度文本检测的问题。

基于回归的方法对相对工整(横平竖直)的书面文档文本的检测效果很好,但对各类自然场景下的文本的检测效果难以保障(例如各类弯曲形变的店铺招牌)。所以有另一类思想是源于图像分割(imagesegmentation)的方法来进行文本检测,即:

先从像素层面做分类,判别每一个像素点是否属于一个文本目标,得到文本区域的概率图,然后利用polygon等来绘制出这些候选区域的最小包围曲线,相当于把一堆散落的像素块像串联珍珠那样,链接到一起来形成边界框。

PSENet网络是基于分割的文本检测技术,对明显弯曲的文本有良好效果

基于分割的方面近年优秀的成果包括年南京大学等组成的研究团队发表于CVPR的PSENet网络,通过渐进式的尺度扩张网络(ProgressiveScaleExpansion)来学习文本分割区域,其主干网络本质是ResNet,通过使用不同尺度的Kernel,预测不同收缩比例的文本区域,并逐个扩大检测到的文本区域。

PSENet的实质是边界学习方法的变体,可以有效解决任意形状相邻文本的检测问题。具体如网络结构和检测效果如上图所示。

年华南理工大学在CVPR提出的FCENet,提出了用傅里叶变换来对文本外围的包络线进行参数表示的方法,通过设计合适的模型预测来拟合任意形状文本包围框,从而实现自然场景文本检测中对于高度弯曲文本实例的检测精度的提升。

在图像处理和模式识别界最近几年知名国际学术会议,如CVPR、ICCV,AAAI或ICDAR上,每年都有一些最新的网络改进模型被提出(且大量优秀成果都来自中国本土的科研团队,可喜可贺),以下是几篇值得延伸阅读的论文。

CTPN(DetectingTextinNaturalImagewithConnectionistTextProposalNetwork,ECCV)

SegLink(DetectingOrientedTextinNaturalImagesbyLinkingSegments,CVPR)

EAST(EAST:AnEfficientandAccurateSceneTextDetector,CVPR)

PSENet(ShapeRobustTextDetectionwithProgressiveScaleExpansionNetwork,CVPR)

DBNet(Real-timeSceneTextDetectionwithDifferentiableBinarization,AAAI)

FCENet(FourierContourEmbeddingforArbitrary-ShapedTextDetection,CVPR)

文本识别技术

CRNN网络(循环卷积神经网络)是识别领域里最为经典的方法,直至今日仍然被广泛使用。CRNN网络的技术思想是用深度卷积Convolutional来生成图像基础特征,再使用Bi-LSTM循环网络(双向长短时记忆网络,能吸收上下文语义信息)进行时序特征训练(这一步利用文本序列的前后特征能有效提升效果),最后引入CTC损失函数来实现端对端的不定长序列识别,解决训练时字符无法对齐的问题。

论文原文见:AnEnd-to-EndTrainableNeuralNetworkforImage-based

SequenceRecognitionandItsApplicationtoSceneTextRecognition,值得一提的是CRNN由华中科技大学白翔老师团队提出,在OCR领域是极为优秀的研究成果。

近年来随着Attention机制在NLP领域取得了很好的效果,将CRNN和Attention结合也成为OCR识别的新思路,在CRNN网络输出层之后加上attention机制,把GRU网络的输出作为encoder的输入,对其做attention,并通过softmax输出,也有非常优异的效果。

此处特别值得推荐的是来自NAVER的OCR团队hwalsuklee同学Github上汇总的OCR知识库:

转载请注明:http://www.0431gb208.com/sjszyzl/3256.html