OCR是一项科技革新,经过主动化大幅削减人工录入的进程,协助用户从图画或扫描文档中提取文字,并将这些文字转换为核算机可读格局。这一功能在许多需求进一步处理数据的场景中,如身份验证、费用管理、主动报销、事务办理等都显得尤为有用。现如今,OCR处理方案会结合AI(人工智能)和ML(机器学习)技能,以主动化处理进程并进步数据提取的精确性。本文将介绍该技能的宿世此生,一览该技能的阶段性发展:传统OCR技能控制的曩昔,深度学习OCR技能亮光的现在,预练习OCR大模型呼之欲出的未来!

OCR的宿世:传统OCR技能控制的曩昔

传统OCR技能的作业原理

OCR的运作办法可以类比为人类阅读文本和辨认形式的才能。传统OCR技能经过电脑视觉、形式辨认技能来主动辨认并提取图画或文档中的字符。传统OCR技能需求经过以下进程:

1.图画预处理

这个阶段是为了增强图画的质量,包括去噪、二值化(行将图画转化为对错),以及主动纠正图画的歪曲和歪斜等。

图画预处理在光学字符辨认(OCR)中的运用

在光学字符辨认(OCR)的作业流程中,图画预处理是首要进程,它为整个体系的精确性和稳健性打下根底。因而,理解图画预处理中运用的技能及其履行进程极为要害。

图画预处理的定义

图画预处理是一种在进行首要的图画剖析之前,改善图画数据(消除无用信息,强化有用信息,或许进步核算速度)的技能。它可以增强图画质量,使得OCR引擎更好地别离出文本和布景,进步文本的辨认精确度。

图画预处理的首要进程和技能

1. 去噪声:在此进程中,会运用各种滤波器(例如,中值滤波器、高斯滤波器等)来削减图画中的噪声,如尘土、划痕等。

OCR技术指南!预训练OCR大模型呼之欲出

2. 灰度化:将五颜六色图画转化为灰度图画。因为在大多数状况下,咱们只需求重视文字和布景的对比度,而不需求重视它们的颜色。灰度化能将核算杂乱度大幅下降,一起保留首要信息。

OCR技术指南!预训练OCR大模型呼之欲出

3. 二值化:该进程将图画转换为只包括对错两色的图画。二值化进程可以经过设定一个阈值来完结,一切低于这个阈值的像素将被标记为黑色,而高于阈值的像素将被标记为白色。这样可以进一步强化文字与布景的对比度。

OCR技术指南!预训练OCR大模型呼之欲出

4. 去斜和校对:OCR体系需求主动纠正图画中的歪曲和歪斜,以保证文本的正确辨认。这个进程包括检测图画中文本行的歪斜角度,并进行相应的校对。

OCR技术指南!预训练OCR大模型呼之欲出

5. 区域划定:也被称为布局剖析,该进程用于辨认图画中的文本区域、非文本区域以及文本的结构信息,如列、行、块、标题、段落、表格等。经过这个进程,可以为后续的文字提取进程供给根底。

OCR技术指南!预训练OCR大模型呼之欲出

图画预处理的重要性

优质的图画预处理作业可以明显进步后续进程的功率和精确性。它可以进步图画质量,更好地别离文本和布景,消除图画中的噪声,纠正图画中的歪曲和歪斜,辨认文本的结构信息等。这些都是保证OCR体系能精确辨认和提取文字的要害要素。因而,深化理解和把握图画预处理进程和技能,关于构建一个高效精确的OCR体系至关重要。

2.字符切割

字符切割是OCR进程中的一个重要进程。这个进程的方针是将图画中的文字区域切割成独立的字符,以便后续进程进行字符辨认。以下是进行字符切割的首要进程和运用的一些常见技能。

OCR技术指南!预训练OCR大模型呼之欲出

字符切割的首要进程

1. 行切割:该进程的方针是将图画中的文本区域切割成独自的行。一般状况下,行切割可以经过剖析图画的水平投影直方图来完结。水平投影直方图是经过将图画中每个像素点的灰度值在水平方向上累加得到的。在文本行之间,累加值一般会明显下降,这些下降的方位便是行切割的方位。

2. 字符切割:在行切割之后,下一步是将每一行文本进一步切割成独自的字符。这一般可以经过剖析笔直投影直方图来完结。与水平投影直方图类似,笔直投影直方图是经过将每个像素点的灰度值在笔直方向上累加得到的。在字符之间,累加值一般也会明显下降,这些下降的方位便是字符切割的方位。

字符切割的常见问题和处理办法

在字符切割的进程中,有一些常见的问题,例如字符的粘连和断开。这些问题或许导致字符无法正确切割,从而影响OCR的精确性。

1. 字符粘连:有时候,图画中的两个或更多的字符或许会严密相连,构成一个像是一个单一字符的形状。为了处理这个问题,一种常用的办法是经过形态学操作来别离粘连的字符。例如,可以运用细化或骨架化技能来提取字符的中心线,然后依据这些中心线来别离粘连的字符。

2. 字符断开:有时候,图画中的一个字符或许会因为噪声或其他原因而被断开成两个或更多的部分。为了处理这个问题,一种常用的办法是经过形态学操作来衔接断开的字符。例如,可以运用膨胀或闭运算技能来填补字符的空洞,然后依据这些填补后的形状来衔接断开的字符。

总的来说,字符切割是OCR中的要害进程。只有当图画中的字符被精确地切割出来,OCR体系才能正确地辨认和提取这些字符。因而,深化理解和把握字符切割的进程和技能,关于构建一个高效精确的OCR体系至关重要。

3. 字符辨认

图画或文档在这个进程中被分解为部分或区域,辨认其间的字符。这个进程涉及矩阵匹配(即每个字符都与字符矩阵库进行比较)和特征辨认(即从图画中辨认文本形式和字符特征)。

OCR技术指南!预训练OCR大模型呼之欲出

字符辨认技能

在光学字符辨认(OCR)的作业流程中,字符辨认是一个要害的进程。在这个进程中,体系需求对切割得到的每一个独自字符进行辨认。以下是字符辨认阶段中的首要技能和进程,特别是在传统的OCR体系中。

特征提取

特征提取是字符辨认的首个进程,它的意图是从每个字符图画中提取出可以反映其首要形状和结构的特征。这些特征可以协助区别不同的字符。在传统的OCR体系中,常见的特征提取办法包括:

l 灰度共生矩阵(GLCM): GLCM是一种统计办法,用于从图画中提取纹路特征。这些特征包括对比度、相关性、能量和同态性等。

l Hu不变矩: Hu不变矩是一组可以抵抗图画平移、缩放和旋转改变的特征。

l 傅立叶描述符: 傅立叶描述符可以从字符的形状,特别是字符的鸿沟,提取特征。

字符分类

在提取了特征后,下一步是运用这些特征来对字符进行分类。在传统的OCR体系中,最常见的分类器是支持向量机(SVM)。

l 支持向量机(SVM) SVM是一种有监督的学习模型,它经过找出可以最大化类别间距的决策鸿沟来进行分类。

练习分类器时需求有一个标示了实在类别标签的字符集。在进行字符辨认时,分类器将依据输入的特征输出一个类别标签,这个标签便是辨认的成果。

功能评价

在完结字符辨认之后,需求对体系的功能进行评价。常用的功能指标包括精确率、精确率、召回率和F1分数。这些指标可以协助咱们了解分类器在不同条件下的体现,以便对其进行优化和改善。

传统OCR的局限性

虽然传统的光学字符辨认(OCR)技能在许多场景中体现得相当超卓,但这种技能的确存在一些局限性,尤其是在比较杂乱或许具有应战性的状况下。以下是一些首要的局限性:

1. 对明晰度和质量的高要求:传统的OCR技能高度依靠图画的质量。假如输入的图画质量较差(例如,图画模糊、对比度低、光照不均、存在噪声等),则OCR的精确度或许会大大下降。

2. 对字体和布局的依靠性:传统的OCR技能一般根据特定的字体和布局进行练习。因而,假如输入的文本运用了练习数据中未包括的字体或许不同的布局,那么辨认精度或许会受到影响。

3. 理杂乱布景和装修字的应战:假如文本字符与布景严密相连或许文本在杂乱的布景上,传统的OCR体系或许会难以精确地切割和辨认字符。类似地,假如字符被装修或许以艺术字形式出现,传统的OCR体系或许也无法精确地辨认出这些字符。

4. 困难的手写辨认:关于手写文字的辨认,传统的OCR体系一般会遇到更大的应战,因为手写文字的形状、巨细和歪斜度改变十分大,且往往缺少明晰的鸿沟。

5. 法处理多言语和特别字符:传统的OCR体系一般针对单一或许少量几种言语进行优化,关于其他言语或许特别字符,例如数学符号、音乐符号等,或许无法供给满足的辨认作用。

6. 缺 乏上下文理解:传统的OCR技能一般将字符辨认作为一个独立的使命进行,而没有考虑字符的上下文信息。因而,假如一个字符在图画中模糊不清,OCR体系或许无法精确地辨认出这个字符。

总的来说,虽然传统的OCR技能在一些场景中体现得十分超卓,但在处理杂乱或许具有应战性的使命时,这种技能的局限性就会露出出来。这也是为什么越来越多的研讨者开始探索运用深度学习等更先进的技能来改善OCR体系。

OCR的此生:深度学习OCR技能亮光的现在

传统OCR技能在处理杂乱的图画和不规则形状的文本时,作用并不抱负。深度学习年代,机器可以“学习”处理杂乱使命,而且对数据具有很好的适应性。经过结合深度学习,建立更为强大和灵活的OCR模型,它可以处理各种类型的文本,而且进步字符辨认的精确率。

深度学习OCR技能分为两步:文本检测与文本辨认。

深度学习文本检测

根据候选框的办法 Proposal-based:举例FastRCNN

FastRCNN(快速区域卷积神经网络)是一种用于方针检测的深度学习模型,它经过运用区域主张网络(Region Proposal Network,RPN)来找出图画中或许存在方针的区域,然后经过一个卷积网络对这些区域进行特征提取和分类。它在处理图画数据时,可以完结更高的运算速度和更精确的方针检测。

在OCR(Optical Character Recognition,光学字符辨认)场景下,FastRCNN可以被用来定位和辨认图画中的文本内容。它可以辨认各种形式的文本,包括打印的、手写的乃至对错结构化的文本。因为FastRCNN是一个二级使命模型,它先进行文本区域的定位,再进行文字辨认,使得模型在处理杂乱场景下的文本辨认使命时具有很高的功率和精确度。

OCR技术指南!预训练OCR大模型呼之欲出

arxiv.org/pdf/1506.01…

技能阐明

文本区域检测,FastRCNN经过RPN生成或许的文本区域主张。RPN是一种全卷积网络,它可以在图画的任意方位生成潜在的文本区域,这关于处理各种杂乱图画,尤其是含有多个、巨细不一、布局杂乱的文本区域的图画具有重要作用。

技能进程

区域主张:运用RPN网络在预处理后的图画上生成潜在的文本区域主张。

特征提取和分类:对每个主张区域运用FastRCNN进行特征提取和分类。因为FastRCNN可以在不同的区域进行特征同享,所以它可以在不献身精度的状况下大大进步核算功率。

后处理:处理模型输出,包括对检测到的文本区域进行兼并、去重和排序等操作,最后将检测和辨认成果返回给用户。

继续学习和优化:依据模型在实践运用中的体现,搜集反馈数据,继续优化和练习模型,进步其在杂乱场景下的功能。

根据切割的办法 Segmentation-based:举例MaskRCNN

Mask-RCNN是一个根据深度学习的方针检测模型,它的首要特性是一起进行方针检测和像素等级的图画切割。该模型在FastRCNN的根底上添加了一个并行的切割使命,可以输出方针的分类、方位和形状等信息。

在OCR(Optical Character Recognition,光学字符辨认)场景下,Mask-RCNN可以被用来对文本进行精密的检测和切割。因为Mask-RCNN不仅可以辨认出图画中的文字,还可以精确地给出文字的形状和方位,这使得它特别合适用于处理含有杂乱布局和形状的文本图画。

OCR技术指南!预训练OCR大模型呼之欲出

arxiv.org/pdf/1703.06…

技能阐明

Mask-RCNN在OCR场景中的运用首要涉及到文本区域检测和形状切割。

首要,与FastRCNN相同,Mask-RCNN经过RPN生成或许的文本区域主张。然后,对每个主张区域,Mask-RCNN不仅进行了FastRCNN的分类和回归使命,还额外进行了一个并行的像素级切割使命。

在OCR中,这个切割使命可以用来生成文字的精确形状和方位信息,这关于处理杂乱布局和形状的文本图画,例如自在形状的文本,笔直或歪斜摆放的文本,具有重要的运用价值。

技能进程

**区域主张:运用RPN网络在预处理后的图画上生成潜在的文本区域主张。

**特征提取 分类和切割:对每个主张区域,Mask-RCNN一起进行特征提取、分类和像素级切割。经过这些使命,可以得到每个文字的类别、方位和精确形状。

**后处理: 处理模型输出,包括对检测到的文本区域进行兼并、去重和排序等操作,以及依据切割成果生成文字的精确形状和方位信息。

**继续学习和优化: 依据模型在实践运用中的体现,搜集反馈数据,继续优化和练习模型,进步其在杂乱场景下的功能。

深度学习文本辨认

当咱们议论深度学习OCR文字辨认的技能路线时,首要有三种方向:根据CTC的解码办法,根据Attention的解码办法,以及根据字符切割的办法。

根据CTC的解码办法:

想象一下,你正在听一段音频,你需求将其间的对话转化为文字。这就需求一个可以依照时刻次序将声音转化为字符的体系。这便是CTC(Connectionist Temporal Classification)的概念。CTC处理的便是如何将具有固定时刻长度的音频(或许图画)转化为不固定长度的文字。

CTC(Connectionist Temporal Classification)是一种用于序列型问题的特别解码办法。在OCR使命中,它可以协助咱们在固定维度的时序特征与非固定维度的输出(例如:文本字符串)之间建立映射联系。那么,具体如何运作呢?

技能阐明

CTC的要害立异是引进了一个特别的符号,一般被称为“空格”字符或许“blank”字符。这个字符没有实践的语义意义,但它在练习模型时起着要害的作用。

具体来说,当咱们练习一个模型时,咱们需求一个固定长度的输入(例如图画)对应一个固定长度的输出(例如字符序列)。但在OCR问题中,输入图画的宽度(或许说特征的时序长度)往往是固定的,而输出的字符数量是改变的,这导致了输入和输出之间存在一个“不对齐”的问题。

CTC经过引进“空格”字符,有用地处理了这个问题。在练习时,咱们可以为每个或许的字符猜测一个概率,一起还猜测一个“空格”字符的概率。然后,咱们可以经过一种叫做“解码”的进程,从这些猜测的概率中生成终究的字符序列。

技能进程

当咱们运用根据CTC的解码办法处理OCR问题时,一般会选用如下的技能进程:

1.特征提取:首要,咱们需求从输入的图画中提取出有用的特征。这一般是经过深度学习模型(如CNN)完结的。每个图画的宽度会被划分成若干个小块(即“时刻步”),而且每个小块都会生成一个特征向量。

2. 序列猜测:然后,咱们将这些特征向量输入到一个递归神经网络(RNN)中,为每个时刻步猜测一个字符,一起猜测一个“空格”字符。

3. CTC解码:最后,咱们运用CTC解码算法从猜测的概率中生成终究的字符序列。在这个进程中,“空格”字符起到了一个重要的作用:它可以用来表示字符之间的鸿沟,一起也可以用来表示不存在字符的时刻步。

在这种解码办法中,CRNN+CTC模型对错常典型的代表。CRNN(卷积递归神经网络)结合了卷积神经网络(CNN)和递归神经网络(RNN)的特性,可以有用地从图画中提取特征并进行序列猜测。

值得留意的是,虽然根据CTC的解码办法在处理定长输入和变长输出的问题上有着明显的优势,但因为其猜测每个字符时并未充分运用上下文信息,所以在处理不规则形状的文本(如曲折文本或许手写文本)时,作用或许会有所下降。

根据Attention的解码办法:技能深度解析

咱们在阅读时,总是会重视到一些特定的部分,而疏忽其他不太重要的信息。在这个进程中,咱们总是在上下文中寻觅重要的信息,这便是Attention机制。

根据Attention的解码办法是一种在深度学习中广泛运用的办法,尤其在处理序列型问题,如机器翻译和OCR时,体现优异。它之所以被称为”Attention”(留意力),是因为这种机制能仿照人类在处理信息时会重视要害部分的特性。

技能阐明

Attention机制的基本思维是,在进行猜测时,模型应该“重视”输入中最相关的部分。在OCR的环境中,这意味着在猜测某个字符时,模型应该重视图画中与该字符最相关的区域。

Seq2Seq+Attention模型便是根据Attention的一种典型模型。这种模型一般由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器的使命是将输入图画转化为一组特征向量。解码器的使命是将这些特征向量转化为字符序列。

与传统的Seq2Seq模型不同,这儿的解码器在生成每一个字符时,都会经过Attention机制来挑选和重视哪些特征向量。换句话说,模型会“重视”那些对当时猜测最有协助的特征。

技能进程

运用根据Attention的解码办法处理OCR问题,一般会选用以下的技能进程:

1. 特征提取:首要,咱们需求一个编码器(一般是深度神经网络,如CNN)来将输入的图画转化为一组特征向量。

2. 序列猜测:然后,咱们需求一个解码器(一般是递归神经网络,如RNN或许LSTM)来将这些特征向量转化为字符序列。在生成每一个字符时,解码器都会运用Attention机制来挑选和重视哪些特征向量。

3. Attention解码:经过Attention解码进程,模型可以生成一系列的字符,这些字符共同组成了终究的文本成果。值得留意的是,因为每一步猜测都是依靠于前面一切进程的上下文信息,因而,这种办法在处理杂乱的、不规则的文本时,一般可以获得更好的作用。

根据Attention的解码办法虽然在处理不规则形状的文本,如曲折文本或手写文本时作用较好,可是需求留意的是,当处理的文本过长或许过短时,这种办法或许作用会有所下降。此外,因为模型需求考虑悉数的上下文信息,因而核算杂乱度相对较高,这也是根据Attention的解码办法需求留意的一点。

根据字符切割的办法

咱们在阅读单词时,会一个字母一个字母地阅读。这种办法关于处理曲折的文本和不规则的文本十分有用,但条件是咱们需求对每个字符进行精确的标示,这便是根据字符切割的办法。

在OCR范畴,根据字符切割的办法是一种更传统的处理办法,它的中心思维是将OCR问题拆解为两个子问题:字符检测和字符辨认。这种办法对处理曲折文本和不规则文本有一定优势,可是对字符标示的要求较高。

OCR技术指南!预训练OCR大模型呼之欲出

技能阐明

根据字符切割的办法首要经过图画处理技能来切割出图画中的每个字符,然后对每个字符进行独自的辨认。这种办法的优点是它可以处理各种形状和巨细的文本,尤其是曲折和不规则的文本。而且,因为每个字符都是独自处理的,所以它也能很好地处理字符间距不一致的状况。

然而,这种办法也有它的局限性。因为它需求对每个字符进行精确的定位和切割,所以它对字符标示的要求很高。在实践运用中,因为各种各样的干扰要素(比方光照、布景噪声、字体样式等),很难做到完全精确的字符切割。

技能进程

运用根据字符切割的办法处理OCR问题,一般会选用以下的技能进程:

1. 字符检测:首要,咱们需求用一种字符检测算法(如滑动窗口或根据区域的办法)来定位并切割出图画中的每个字符。这一般需求大量的图画处理技能,例如边际检测、形态学操作等。

2. 字符辨认:然后,咱们需求对每个切割出来的字符进行辨认。这可以经过一个分类器(如SVM或深度神经网络)来完结。每个字符都被独自辨认,然后组合在一起构成终究的文本。

3. 字符排序:在辨认了一切字符后,咱们还需求对它们进行排序,以得到正确的阅读次序。这一般可以经过空间联系(如从左到右,从上到下)或许序列模型(如HMM)来完结。

在这个进程中,字符的定位、切割和辨认都是要害进程,每个进程的成果都会直接影响到终究的OCR功能。因而,虽然根据字符切割的办法在处理一些杂乱文本时有其优势,但也需求在实践运用中权衡其杂乱性和精确性。

根据Transformer的办法

Transformer模型在近年来的NLP范畴现已展示出了巨大的潜力,它优秀的功能也引起了OCR范畴的留意。根据Transformer的办法供给了一种全新的处理OCR问题的办法,这种办法可以处理CNN在处理长时间依靠问题上的局限性。

OCR技术指南!预训练OCR大模型呼之欲出

arxiv.org/pdf/2102.10…

技能阐明

Transformer模型的中心是自留意力(Self-Attention)机制,这种机制能使模型在处理序列数据时,对每个元素都有一个大局的视角。在OCR问题中,这意味着模型在猜测某个字符时,能一起考虑到图画中一切的区域,而不仅仅是部分区域。

Transformer模型一般由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器的使命是将输入的图画转化为一组特征向量。解码器的使命是将这些特征向量转化为字符序列。值得留意的是,因为自留意力机制的存在,编码器和解码器在处理每个特征向量或字符时,都能考虑到一切的特征向量或字符。

技能进程

运用根据Transformer的办法处理OCR问题,一般会选用以下的技能进程:

1. 特征提取:首要,咱们需求一个编码器(一般是深度神经网络,如CNN)来将输入的图画转化为一组特征向量。

2. 序列猜测:然后,咱们需求一个根据Transformer的解码器来将这些特征向量转化为字符序列。在生成每一个字符时,解码器都会运用自留意力机制来挑选和重视哪些特征向量。

3. 字符组合:最后,解码器将生成的字符序列组合成终究的文本成果。因为Transformer模型对每个特征向量的处理都考虑到了一切的特征向量,因而,这种办法在处理杂乱的、不规则的文本时,一般可以获得更好的作用。

总的来说,根据Transformer的办法是一种十分有前途的处理OCR问题的办法。它不仅能战胜CNN在处理长时间依靠问题上的局限性,而且因为自留意力机制的存在,它在处理杂乱文本时的功能也很优秀。然而,因为Transformer模型的核算量相对较大,因而在实践运用中,需求留意核算资源和模型功能之间的平衡。

OCR的未来:预练习OCR大模型呼之欲出的未来

当时,NLP与CV预练习大模型(OpenAI GPT、Meta SAM)现已显示出了强大的功能。经过在大量的无标签数据上进行预练习,大模型可以学习到大量视觉特征和言语特征,将极大地进步模型在下流使命上的功能。当时,这方面的研讨已处于飞速发展阶段,现已有一些研讨表明,联合字符等级和字段等级文本多模态特征增强的预练习大模型在OCR使命上有很大的潜力。

展望未来,咱们期待预练习大模型可以进一步进步OCR的功能,特别是在处理多言语、杂乱场景、长文本等问题上。一起,也需求研讨如何在保证功能的一起,下降模型的核算资源消耗,使得这些模型可以在更广泛的设备和场景中得到运用。