OCR 技术浅析
随着人工智能的热度上升,图像识别这一分领域也渐渐被人们所关注。图像识别中最贴近我们生活的可能就是 OCR 技术了。可能很多同学还不知道什么是 OCR。我们先来看下 OCR 的定义:
今天就来简单分析下 OCR 技术的原理,不会涉及具体的算法讲解和推导,毕竟每一个算法都能占很长的篇幅,每一个算法都能重新开一篇来写。
从整体上来说,OCR一般分为两个大步骤:图像处理以及文字识别。
识别文字前,我们要对原始进行预处理,以便后续的特征提取和学习。这个过程通常包含:灰度化、二值化、降噪、倾斜矫正、文字切分等子步骤。每一个步骤都涉及了不同的算法。我们以下面这张原始为例,进行每个步骤的讲解。
灰度化(gray processing),在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。说通俗一点,就是将一张彩色变为黑白。
灰度化一般有分量法、最大值法、平均值法、加权平均法四种方法对彩色图像进行灰度化。
一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(binaryzation)。
二值化的黑白不包含灰色,只有纯白和纯黑两种颜色。
二值化里最重要的就是阈值的选取,一般分为固定阈值和自适应阈值。 比较常用的二值化方法则有:双峰法、P参数法、迭代法和OTSU法等。
现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。减少数字图像中噪声的过程称为图像降噪(Image Denoising)。
图像中噪声的来源有许多种,这些噪声来源于图像采集、传输、压缩等各个方面。噪声的种类也各不相同,比如椒盐噪声,高斯噪声等,针对不同的噪声有不同的处理算法。
在上一步得到的图像中可以看到很多零星的小黑点,这就是图像中的噪声,会极大干扰到我们程序对于的切割和识别,因此我们需要降噪处理。降噪在这个阶段非常重要,降噪算法的好坏对特征提取的影响很大。
图像降噪的方法一般有均值滤波器、自适应维纳滤波器、中值滤波器、形态学噪声滤除器、小波去噪等。
对于用户而言,拍照的时候不可能绝对的水平,所以,我们需要通过程序将图像做旋转处理,来找一个认为最可能水平的位置,这样切出来的图,才有可能是最好的一个效果。
倾斜矫正最常用的方法是霍夫变换,其原理是将进行膨胀处理,将断续的文字连成一条直线,便于直线检测。计算出直线的角度后就可以利用旋转算法,将倾斜矫正到水平位置。
对于一段多行文本来讲,文字切分包含了行切分与字符切分两个步骤, 倾斜矫正 是文字切分的前提。我们将 倾斜矫正 后的文字投影到 Y轴,并将所有值累加,这样就能得到一个在y轴上的直方图。
直方图的谷底就是背景,峰值则是前景(文字)所在的区域。于是我们就将每行文字的位置给识别出来了。
字符切分和行切分类似,只是这次我们要将每行文字投影到 X轴。
但要注意的是,同一行的两个字符往往挨的比较紧,有些时候会出现垂直方向上的重叠,投影的时候将他们认为是一个字符,从而造成切割的时候出错(多出现在英文字符);也有些时候同一个字符的左右结构在X轴的投影存在一个小间隙,切割的时候误把一个字符切分为两个字符(多出现在中文字符)。所以相较于行切分,字符切分更难。
对于这种情况,我们可以预先设定一个字符宽度的期望值,切出的字符如果投影超出期望值太大,则认为是两个字符;如果远远小于这个期望值,则忽略这个间隙,把间隙左右的“字符”合成一个字符来识别。
预处理完毕后,就到了文字识别的阶段。这个阶段会涉及一些人工智能方面的知识,比较抽象,没法用表达,我尽量讲得简单易懂一些。
特征是用来识别文字的关键信息,每个不同的文字都能通过特征来和其他文字进行区分。对于数字和英文字母来说,这个特征提取是比较容易的,总共就 10 + 26 x 2 = 52 个字符,而且都是小字符集。对于汉字来说,特征提取的难度就比较大了,因为首先汉字是大字符集;其次国标中光是最常用的第一级汉字就有3755个;最后汉字结构复杂,形近字多,特征维度就比较大。
在确定了使用何种特征后,还有可能要进行特征降维,这种情况下,如果特征的维数太高,分类器的效率会受到很大的影响,为了提高识别速率,往往就要进行降维,这个过程也很重要,既要降低特征维数,又得使得减少维数后的特征向量还保留了足够的信息量(以区分不同的文字)。
对一个文字图像,提取出特征,丢给分类器,分类器就对其进行分类,告诉你这个特征该识别成哪个文字。分类器的设计就是我们的任务。分类器的设计方法一般有:模板匹配法、判别函数法、神经网络分类法、基于规则推理法等,这里不展开叙述。在进行实际识别前,往往还要对分类器进行训练,这是一个监督学习的过程。成熟的分类器也有很多,有 SVM,CNN 等。
其实就是对于分类器的分类结果进行优化,这一般就要涉及自然语言理解的范畴了。
首先是形近字的处理:举个栗子,“分”和“兮”形近,但是如果遇到“分数”这个词语,就不应该识别为“兮数”,因为“分数”才是一个正常词语。这需要通过语言模型来进行纠正。
其次是对于文字排版的处理:比如一些书籍是分左右两栏的,同一行的左右两栏不属于同一句话,不存在任何语法上的联系。如果按照行切割,就会把左行的末尾和右行的开头连在一起,这是我们不希望看到的,这样的情况需要进行特殊处理。
OCR 的大致原理就是这样。整体上来看,OCR 的步骤繁多,涉及的算法复杂,针对每一个步骤,每一个算法都有许多单独的研究论文,本文无法进行深入探讨。如果从零开始做 OCR,这将是一个浩大的工程。笔者才疏学浅,对于模式识别、机器学习也属于入门阶段,如果有错漏的地方,还请各位斧正。
迅捷OCR文字识别软件是一款智能化的OCR文字识别软件。支持PDF识别、扫描件识别、文字识别、CAJ识别、票证识别、局部识别等功能,一键解析、高效识别。
迅捷OCR文字识别软件软件特色。
高效识别文字:软件采用先进的OCR识别技术,高达99%的识别精度,轻松实现文档数字化。
快速还原文档:软件可一键读取文档,快速还原文档的逻辑结构和格式,无需重新录入和排版。
自动解析图文:软件对图文混排的文档具有自动分析功能,将文字区域划分出来后自动进行识别。
精准检索纠错:软件提供更强大的文字识别纠错技术,精准地检测出文档样式、标题等内容化。
多种票证识别:软件支持多种票证识别,一键识别为文本样式。
精准语音识别:软件支持将音频文件转化为文本样式,提高学习、工作效率>。
开饭卡提示OCR是光学字符识别(Optical Character Recognition)的缩写。OCR是一种技术,通过扫描和识别图像中的字符,将其转换为可编辑的文本或数字形式。在开饭卡中,OCR技术可以应用于识别餐厅菜单或食物标签上的文字信息,以便用户可以方便地获取菜品名称、食材成分、热量等相关信息。
OCR技术的原理是利用图像处理和模式识别算法,将扫描或拍摄的图像中的字符进行分析和识别。它可以通过识别字符的形状、大小、颜色等特征,将其转换为计算机可以处理的文本形式。这样,用户可以通过扫描菜单或食物标签,将文字信息快速转化为可读的文本,提供了便捷的查询和阅读体验。
拓展内容:除了在开饭卡中的应用,OCR技术在现实生活中还有许多其他应用场景。比如,银行可以利用OCR技术扫描和识别支票上的金额和账号信息,以提高处理效率和准确性;图书馆可以利用OCR技术数字化书籍和文档,方便检索和存储;政府部门可以利用OCR技术处理身份证、驾驶证等证件上的信息,提高办事效率等。随着技术的进步和应用场景的不断扩展,OCR技术正逐渐成为人们日常生活中的重要工具之一。
(1)首先我们打开迅捷OCR文字识别软件软件后,在单张识别服务区域点击单张快速识别选项,随后通过添加选项或者拖拉至区域内从而添加需要识别文字的。
(2)导入后,点击开始识别选项就可以识别中的文字啦。
(3)在文字识别结束后,点击右下方复制或者导出识别结果选项即可。
这款文字识别软件还有很多非常好用的功能,比如:翻译功能和转换成文档功能。
(1)当我们导入之后,点击多国语言识别选项,然后选择识别文字。最后再点击翻译选项就可以翻译中的文字了,这真是一个可以一举两得的功能!
(2)当我们想要把转换成其他格式文档用来储存时,我们可以点击转PDF,转Word或者转Excel选项即可转换格式。
不管是转换成什么格式的文档,我们在导入后都要选好导出格式,然后再点击一键识别选项。
OCR 技术浅析
本文2023-10-07 12:53:20发表“古籍资讯”栏目。
本文链接:https://www.yizhai.net/article/107431.html