《深入浅出OCR》第二章:OCR技术发展与分类本篇为《深入浅出OCR》第二章:OCR技术发展与分类。本篇主要介绍传统OC

专栏介绍:经过几个月的精心筹备,本作者推出全新系列《深入浅出OCR》专栏,对标最全OCR教程,具体章节如导图所示,将分别从OCR技术发展、方向、概念、算法、论文、数据集等各种角度展开详细介绍。

本篇导读:本篇为《深入浅出OCR》第二章:OCR技术发展与分类。本篇主要介绍传统OCR和深度学习OCR方法,从图像处理特征提取、文字检测与识别等角度展开详细介绍,配合作者总结思维导图,尽可能总结OCR全面知识。

通常来说,OCR技术可以分为传统方法和深度学习方法。传统方法受限于手工设计特征的表达能力和处理流程的复杂性,在复杂场景下很难达到理想的文字识别效果,而基于深度学习OCR利用CNN模型算法替换传统的手动方法,自动检测出文本的类别及位置信息,根据相应位置文本信息自动识别文本内容,识别效果更为优秀。

传统OCR文字识别是将文本行的字符识别看成一个多标签任务学习的过程。其识别过程为图像预处理(彩色图像灰度化、二值化处理、图像变化角度检测、矫正处理等)、版面划分(直线检测、倾斜检测)、字符定位切分、字符识别、版面恢复、后处理、校对等。

图像二值化是指将图像像素点的灰度值设为0或255,使呈现明显黑白效果。其操作不仅减少了数据维度,而且通过排除原图噪声干扰。在某些特定场景中,OCR识别效果很大程度上取决于该步骤。

霍夫变换(HoughTransform)

霍夫变换是一种用于在图像中检测几何形状的常见技术,其常见应用是在图像中检测直线。它的基本思想是将图像中的每个像素点转换为参数空间中的曲线,并通过统计参数空间中相交点的数量来确定在原始图像中可能存在的直线。

基于PCA方法

PCA算法需要计算对倾斜角度的分布具有最大影响的特征向量,即分布的主分量,因此首先需要将黑色像素点(即前景)映射为二维向量,使每个像素点与相同坐标的二维向量相匹配,并对每个维度减去其对应强度的均值,然后计算向量集合的协方差矩阵。

文本检测和识别是OCR技术的两个重要核心技术,传统的OCR方法通过针对文本检测和识别分别设计鲁棒的特征,来提高模型的文字识别效果。

文本检测:文本检测主要用于定位图片中文本的区域,传统的文本检测方法可以分为基于显著特征的检测方法和基于滑动窗口的检测方法两大类。

文本识别阶段:文本识别分为文本二值化、行分段、字符分割、单字识别、字符矫正等一系列子问题。

总结:传统文本检测与识别方法受限于手工设计特征的表达能力和复杂的处理流程,对于较为复杂的图片情况,例如带有畸变以及模糊不清的文本图像,传统文本识别很难达到理想的文字识别效果。

传统文字识别的方法一般首先需要文本区域定位,将定位后的倾斜文本进行矫正再分割出单个文字,然后在特征提取阶段使用人工特征或CNN特征进行,再结合分类模型对单字进行识别,最后基于统计语言模型(如隐马尔科夫链,HMM)或者规则进行语义纠错,即语言规则后处理。

接下来,本人将着重从特征提取角度和分类模型出发,介绍传统OCR文字识别技术,让大家快速了解OCR技术的发展。

(1)基于结构形态的特征提取:

基于结构形态的特征提取主要通过查找轮廓特征和区域特征进行操作。

1.边界特征法

基于结构形态的特征提取是计算机视觉领域中的一种方法,它主要用于从图像或其他类型的数据中提取形态学结构和模式。结构形态学是一种数学理论,用于描述和分析图像中的形状和结构,包括各类算子(Canny、HOG、Sober、SIFI)等。

(2)基于几何分布的特征提取:

基于几何分布的特征提取是一种计算机视觉领域中常用的特征提取方法,它主要用于从图像或其他类型的数据中捕捉几何结构和形状的信息。该方法基于几何学原理,通过分析图像中的点、线、面等几何形态,从中提取有意义的特征。

1、二维直方图投影法

计算机视觉Opencv库中常用垂直投影和水平投影可以对目标物进行精确投影,以便于后期的分割。其中,水平投影是二维图像在y轴上的投影;垂直投影是二维图像在x轴上的投影。

2.区域网格投影法

3.模板匹配

模板匹配法是通过计算目标图像与搜索图中所有子图的相似度,其中相似度最大的即认为是最佳待匹配的位置。模板匹配法根据匹配的基本原理演变出多种匹配计算方式,如序贯相似性匹配、距离变换、最小均方误差等。

总结:上述特征提取方法在许多计算机视觉任务中都有广泛的应用(目标检测、图像匹配等)。针对复杂的场景和特征,单独使用基于几何或基于结构形态的特征提取可能不足以满足需求,通常需要与其他特征提取方法结合使用,获取更准确的信息。

在字符特征提取后,需要对字符进行识别,传统机器学习将OCR识别转换为一个分类任务。作者这里总结具体方法及其优缺点,主要包括以下几类:

(1)支持向量机

支持向量机(SupportVectorMachine,SVM)是基于统计学理论的一种分类识别算法。支持向量机分类算法不仅对于小样本的情况具有较好的分类效果,并且对高维和线性不可分的问题进行了很好的解决,这是该算法的主要优。

缺点:例如核函数的选择,以及算法的实时性较差等问题。

(2)贝叶斯分类算法

贝叶斯分类算法(Bayes)主要原理是通过Bayes定理对未知样本进行预测,并计算样本进行各个类别的可能性,最后通过概率统计对图像实现分类。

优点:贝叶斯分类方法的主要优点在于鲁棒性强,稳定性好;

缺点:模型基础假设不同属性间的概率独立,即相互不影响。因此要考虑应用场景。

(3)K近邻算法

K近邻算法是典型无监督分类算法,其原理根据给定的训练数据集,对新输入实例,在训练数据集中找到距离最近的K个样本点。通过这K个样本点所属类别的多数投票来决定所属类别。

K近邻算法将新的数据点归类到与其最接近的K个训练数据点中所属类别中。

KNN优点:简单易懂、易于实现、不需要训练阶段等。适用各种数据类型,特别是在数据特征较少或者数据之间有明显的局部结构时表现较好。

KNN缺点:计算复杂度较高,特别是在处理大规模数据集时。

(4)多层感知机

多层感知机(MLP)是一种前馈神经网络--基于多层节点的人工神经网络模型,是深度学习的基本组成部分之一,被广泛用于解决分类和回归等问题。

MLP优点:通过增加隐藏层和节点的数量处理复杂的非线性问题,提高模型的表现能力。

MLP缺点:训练和调整需要大量的数据和计算资源,易过拟合。

(5)神经网络算法

神经网络算法常用在解决分类和回归问题。OCR技术中也广泛使用了基于神经网络的算法,字符图像在使用神经网络分类器进行识别时,根据网络的输入层的不同可以分为两种情况:

总结:传统OCR方法是基于投影法、连通域分析法等方法对文本行进行字符分割,利用单字分类器对分割好的字符,或利用滑动窗口按一定步长滑窗,利用单字分类器对滑动窗口内的字符进行识别,但是这些方法的准确率有限,其主要应用于背景颜色单一、尤其是在复杂场景识别下,识别效果不如基于深度学OCR习方法。

近年来随着深度学习技术的飞速发展,OCR技术逐渐由手工设计文本特征训练模型的方式演变成使用CNN深度卷积神经网络模型进行图像自动特征提取,在文字识别效果上也有了较大的提升。

深度学习图像文字识别流程包括:输入图像、深度学习文字区域检测、预处理、特征提取、深度学习识别器、深度学习后处理等。

OCR识别算法可分为两阶段算法和端对端的算法。两阶段OCR算法分为两部分,文本检测和文本识别算法,文字检测算法从图像得到文本行检测框,然后识别算法去识别文本框中内容。

同时,按数据集分类识别:可以分为不规则文本及规则文本识别,按处理场景识别可分为简单应用场景和复杂场景识别,其中,端到端算法可以处理复杂场景识别。

从结构出发,文字检测技术可以分为自顶向上和自顶向上。而从识别方式上,主要分为基于回归和基于分割两种检测方式。

目前主流的深度学习识别算法通用框架包括图像预处理(校正变化)、视觉特征提取、序列提取及预测等模块,其流程如图所示:

深度学习OCR方法分类总结:

深度学习OCR识别方法主要包括基于CTC、基于Attention、基于Transformer、基于分割及端到端识别等几种方法。其中文字识别主流方法有CRNN、ASTER、SRN、ABINet等。

具体分类及论文参考下表:

OCR识别算法总结:

注:文字识别算法详细介绍建第四章。

不同于两阶段算法,端对端OCR算法采用单阶段,仅使用一个算法完成上述文字检测与识别,因此需要设计一个同时具有检测单元和识别模块的模型,通过共享两者的卷积特征进行训练,端对端识别模型更小,速度更快。

深度学习端到端文本识别具有代表性的方法大致可分为两类:

总结:端到端规则识别解决了平直文或倾斜文本的检测和识别,但在印证、街景等不同自然场景中存在大量弯曲、变形特点。因此,在使用端到端规则文本识别前需要校正,或直接使用端到端任意形状文本识别算法(如ABCnet系列)。

THE END
1.社区Edge AI是边缘计算的研究方向之一,它将人工智能算法和模型推送到边缘设备,使其具备处理复杂数据的能力。随着硬件的不断进步,越来越多的智能设备能够在本地进行推理和决策,而无需将数据发送到云端。Intel和NVIDIA等公司也在加速边缘计算硬件的研发,提升计算能力以应对复杂的AI任务。 https://open.alipay.com/portal/forum/post/192201027
2.向量模型降维—套娃(Mytroyoshka)表征学习此外,MRL 展现了其在跨多种模态的大规模数据集上的无缝扩展能力,包括视觉(如 ViT、ResNet)、视觉+语言(如 ALIGN)以及语言(如 BERT)。这表明 MRL 不仅适用于单一类型的模型,而且可以在不同领域和不同类型的数据上发挥作用。 MRL原理: MRL通过显式优化O(log(d))个较低维度向量的方式,在同一个高维向量内学习https://www.ctyun.cn/developer/article/623686582206533
3.行业大模型数据隐私算力瓶颈:技术应用的挑战与机遇然而,通用大模型在广泛应用的同时也暴露出一些局限性。由于其训练数据和设计目标更倾向于通用性,在解决特定行业场景中的问题时,可能存在效果不足或成本过高的情况。基于此,各行业开始探索定制化的大模型——即“行业大模型”,通过优化模型架构和训练数据,使其在特定应用场景中实现更高效、更精准的表现。例如,金融领域https://www.thepaper.cn/newsDetail_forward_29663563
4.科学网—人工智能赋能科学与工程前沿——知识与数据融合之径从哈密顿量(量子力学和牛顿力学都适用)“根知识”出发在特征工程、激活函数、网络结构等方面进行人工智能算法设计,难度有点大。但它却符合人工智能数据、任务、架构的算法逻辑,可解释性和泛化能力不是问题。 2022跳入“智能计算材料”这个领域,从哈密顿量“根知识”出发在特征工程、激活函数、网络结构等方面进行人工智https://blog.sciencenet.cn/home.php?mod=space&uid=32670&do=blog&id=1465224
5.从K近邻算法距离度量谈到KD树SIFT+BBF算法用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居),这K个实例的多数属于某个类,就把该输入实例分类到这个类中。根据这个说法,咱们来看下引自维基百科上的一幅图: https://blog.csdn.net/sjyttkl/article/details/52080358
6.KNN分类算法(精雅篇)KNN算法同样存在VSM的不足, 主要表现为: (1) 对于高维文本向量样本规模较大时, 算法的时间和空间复杂度较高, 其时间复杂度为O (n*m) , n为VSM空间特征维数, m为样本集大小。 (2) 传统KNN算法的计算过程为:当新待分类样本到来时, 每次都要计算其与所有训练样本的距离 (或相似度) , 这就大大降低了算https://www.360wenmi.com/f/cnkey5561set.html
7.学习K近邻算法基础:KD树的操作腾讯云开发者社区k-d树算法可以分为两大部分,一部分是有关k-d树本身这种数据结构建立的算法,另一部分是在建立的k-d树上如何进行最邻近查找的算法。 一、Kd-树的构建 Kd-树是一个二叉树,每个节点表示的是一个空间范围。下表表示的是Kd-树中每个节点中主要包含的数据结构。 https://cloud.tencent.com/developer/article/1101877
8.机器学习篇—大厂笔试题(三)A、KNN算法中K值对分类效果影响较为显著,一般K值较大时,对噪声比较敏感。 B、朴素贝叶斯算法对缺失数据特别敏感,事先需要知道先验概率。 C、SVM算法可以解决高维问题。提高泛化性能。 D、集成学习算法存在过拟合、鲁棒性不强等问题。 KNN:如果当K的取值过小时,一旦有噪声得成分存在们将会对预测产生比较大影响。如果https://developer.aliyun.com/article/951236
9.考试12. 在机器学习中,监督学习需要标注数据进行训练。 A、正确B、错误 13. K-means算法属于有监督学习算法。 A、正确B、错误 14. 在自然语言处理(NLP)中,词向量可以表示词语的语义。 A、正确B、错误 15. 在机器学习中,过拟合是指模型在训练数据上表现良好,但在新数据上表现不佳。 A、正确B、错误 https://www.wjx.cn/xz/274346310.aspx
10.(更新版)大数据应用技能竞赛考试题库大全A、MLE可能并不存在B、MLE总是存在C、如果MLE存在,那么它的解可能不是唯一的D、如果MLE存在,那么它的解一定是唯一的答案:AC49.下列属于数值优化算法的是()。A、梯度下降法B、牛顿法C、极大似然法D、逻辑回归答案:AB50.下列关于探索型数据分析常用图表的说法,正确的有:A、绝大部分情况下使用饼图代替条形图能https://www.renrendoc.com/paper/229635448.html
11.大数据相关知识练习题题库及答案.pdf[单选题]* A 低低 B.低 ,高 C .演),低「 D.高, |W) 39 .基于数据集划分方式的不同,评估方法可以分为三种,下列 错误的是 ()[单选题]* A .交叉验证法 B.自助法 C.过滤法V D.留出法 40 .K N N 算法更 适 合于 () 的分类问题。[单选题]* A .重复时间 B. 稀 有事件V C.规则事件 https://m.book118.com/html/2022/1208/7020113066005022.shtm
12.基于维度分组降维的高维数据近似k近邻查询摘要:针对现有的高维空间近似k近邻查询算法在数据降维时不考虑维度间关联关系的问题,首次提出了基于维度间关联规则进行维度分组降维的方法.该方法通过将相关联维度分成一组进行降维来减少数据信息的损失,同时针对Hash降维后产生的数据偏移问题,设置了符号位并基于符号位的特性对结果进行精炼;为提高维度间关联规则挖掘的效率https://d.wanfangdata.com.cn/periodical/jsjyjyfz202103013
13.大数据分析的分类模型有哪些帆软数字化转型知识库K近邻算法的优点在于其简单、直观,不需要进行模型训练,因此适用于一些实时性要求较高的应用场景。然而,K近邻算法的缺点在于其对数据量和维度较为敏感,计算复杂度较高,特别是在数据量较大的情况下,分类速度较慢。 四、朴素贝叶斯 朴素贝叶斯是一种基于贝叶斯定理的分类模型,通过计算特征与类别之间的条件概率,进行分类https://www.fanruan.com/blog/article/78194/
14.基于k近邻隔离森林的异常检测摘要:异常检测是机器学习与数据挖掘的热点研究领域之一, 主要应用于故障诊断、入侵检测、欺诈检测等领域. 当前已有很多有效的相关研究工作, 特别是基于隔离森林的异常检测方法, 但在处理高维数据时仍然存在许多困难. 提出了一种新的k近邻隔离森林的异常检算法: k-nearest neighbor based isolation forest (KNIF). 该https://c-s-a.org.cn/html/2023/2/8988.html
15.OpenCVPython教程下篇Python语言这也是线性可分的。简而言之,低维空间中的非线性可分离数据更有可能在高维空间中变为线性可分离。通常,可以将d维空间中的点映射到某个D维空间$(D> d)$,以检查线性可分离性的可能性。有一个想法可以通过在低维输入(特征)空间中执行计算来帮助在高维(内核)空间中计算点积。我们可以用下面的例子来说明。https://www.isolves.com/it/cxkf/yy/Python/2022-04-27/53791.html
16.机器学习(二)之无监督学习:数据变换聚类分析主成分分析(principal component analysis,PCA)是一种旋转数据集的方法,旋转后的特征在统计上不相关。在做完这种旋转之后,通常是根据新特征对解释数据的重要性来选择它的一个子集。 算法思路: step1:找到方差最大的方向,将其标记为“成分1”(Component 1)。这是数据中包含最多信息的方向(或向量)。即,沿着这个方向https://www.flyai.com/article/516
17.GitHubcreate6/Titanic而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数量级的差距。 而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。 3 特征https://github.com/create6/Titanic_data