ocr文字识别意思是文字光学字符识别技术。
OCR全称是识别算法算法Optical Character Recognition,是解析最为常见的、也是图像特征提目前最高效的文字扫描技术,它可以从图片或者PDF中识别和提取其中的文字文字内容,输出文本文档,识别算法算法方便验证用户信息,解析或者直接进行内容编辑。图像特征提
典型的文字OCR技术路线分为5个大的步骤,分别是识别算法算法输入、图像与处理、解析文字检测、图像特征提文本识别,文字及输出。识别算法算法每个过程都需要算法的深度配合,因此从技术底层来讲,从图片到文字输出,要经历一些过程。
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套路是这样的
1.先检测和提取Text region.
2.接着利用radon hough变换等方法进行文本校正。
3.通过投影直方图分割出单行的文本的图片。
最后是对单行的OCR
对单行的OCR主要由两种思想
第一种是需要分割字符的。
分割字符的方法也比较多,用的最多的是基于投影直方图极值点作为候选分割点并使用分类器+beam search搜索最佳分割点。
搜索到分割点之后对于单个字符,传统的就是特征工程+分类器。一般流程是灰度->二值化->矫正图像->提取特征(方法多种多样例如pca lbp等等)->分类器(分类器大致有SVM ANN KNN等等)。
现在的 CNN(卷积神经网络)可以很大程度上免去特征工程。
第二种是无需分割字符的
还有一点就是端到端(end to end)的识别,但前提是你需要大量的标注好的数据集。这种方法可以不分割图像直接以连续的输出字符序列。
对于短长度的可以使用mutli-label classification。比如像车牌,验证码。这里我试过一个车牌的多标签分类。车牌识别中的不分割字符的端到端(End-to-End)识别
google做街景门牌号识别就是用的这种方法。
OCR是一个多义词,所指的意思分别是:
1、OCR指的是光学字符识别:
OCR是指电子设备检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。
2、OCR指的是超固结比:
超固结比又称先期固结比。为土的先期固结压力与现有土层自重压力之比。按比值的大小,可将土固结状态分成三类,Pc/Po=1时为正常固结状态,Pc/Po>1时为超固结状态,Pc/Po<1时为欠固结状态。
3、OCR指的是牛津、剑桥和RSA考试局:
OCR的全称是Oxford Cambridge and RSA Examinations,中文全称牛津、剑桥和RSA考试局,隶属剑桥大学评估小组。
每年约有300万人参加OCR组织的A-level课程考试。到2011年不考虑在中国发展。OCR的单元报告的三大特色课程作业报告课程作业是以解决现实生活中的一个具体问题为情境,要求学生完成的一项系统设计。
扩展资料:
OCR的概念是在1929年由德国科学家Tausheck最先提出来的,后来美国科学家Handel也提出了利用技术对文字进行识别的想法。
而最早对印刷体汉字识别进行研究的是IBM公司的Casey和Nagy,1966年他们发表了第一篇关于汉字识别的文章,采用了模板匹配法识别了1000个印刷体汉字。
早在60、70年代,世界各国就开始有OCR的研究,而研究的初期,多以文字的识别方法研究为主,且识别的文字仅为0至9的数字。
以同样拥有方块文字的日本为例,1960年左右开始研究OCR的基本识别理论,初期以数字为对象,直至1965至1970年之间开始有一些简单的产品。
如印刷文字的邮政编码识别系统,识别邮件上的邮政编码,帮助邮局作区域分信的作业,也因此至今邮政编码一直是各国所倡导的地址书写方式。
参考资料来源:百度百科—OCR
参考资料来源:百度百科—OCR
参考资料来源:百度百科—OCR
参考资料:ocr营业执照识别