浅析文字识别原理
原标题:浅析文字识别原理首先OCR是模式识别的一个领域,所以整体过程也就是模式识别的过程。其过程整体来说可以分为以下几个步骤:预处理:对包含文字的图像进行处理以便后续进行特征提取、学习。这个过程的主要目的是减少图像中的无用信息,以便方便后面的处理。在这个步骤通常有:灰度化(如果是彩色图像)、降噪、二值化、字符切分以及归一化这些子步骤。经过二值化后,图像只剩下两种颜色,即黑和白,其中一个是图像背景,另一个颜色就是要识别的文字了。降噪在这个阶段非常重要,降噪算法的好坏对特征提取的影响很大。字符切分则是将图像中的文字分割成单个文字——识别的时候是一个字一个字识别的。如果文字行有倾斜的话往往还要进行倾斜校正。归一化则是将单个的文字图像规整到同样的尺寸,在同一个规格下,才能应用统一的算法。特征提取和降维:特征是用来识别文字的关键信息,每个不同的文字都能通过特征来和其他文字进行区分。对于数字和英文字母来说,这个特征提取是比较容易的,因为数字只有10个,英文字母只有52个,都是小字符集。对于汉字来说,特征提取比较困难,因为首先汉字是大字符集,国标中光是最常用的第一级汉字就有3755个;第二个汉字结构复杂,形近字多。在确定了使用何种特征后,视情况而定,还有可能要进行特征降维,这种情况就是如果特征的维数太高(特征一般用一个向量表示,维数即该向量的分量数),分类器的效率会受到很大的影响,为了提高识别速率,往往就要进行降维,这个过程也很重要,既要降低维数吧,又得使得减少维数后的特征向量还保留了足够的信息量(以区分不同的文字)。分类器设计、训练和实际识别:分类器是用来进行识别的,就是对于第二步,你对一个文字图像,提取出特征给,丢给分类器,分类器就对其进行分类,告诉你这个特征该识别成哪个文字。在进行实际识别前,往往还要对分类器进行训练,这是一个监督学习的案例。成熟的分类器也很多,什么svm,kn,神经网络etc。我当时不知天高地厚用经典bp神经网络去学习,结果……呵呵……后处理:后处理是用来对分类结果进行优化的,第一个,分类器的分类有时候不一定是完全正确的(实际上也做不到完全正确),比如对汉字的识别,由于汉字中形近字的存在,很容易将一个字识别成其形近字。后处理中可以去解决这个问题,比如通过语言模型来进行校正——如果分类器将“在哪里”识别成“存哪里”,通过语言模型会发现“存哪里”是错误的,然后进行校正。第二个,OCR的识别图像往往是有大量文字的,而且这些文字存在排版、字体大小等复杂情况,后处理中可以尝试去对识别结果进行格式化,比如按照图像中的排版排列什么的,举个栗子,一张图像,其左半部分的文字和右半部分的文字毫无关系,而在字符切分过程中,往往是按行切分的,那么识别结果中左半部分的第一行后面会跟着右半部分的第一行诸如此类。
另外网上别的解释也比较有意思,大家感兴趣的也可以看看比较一下。
一般OCR套路是这样的
1.先检测和提取Textregion.
展开全文2.接着利用radonhough变换等方法进行文本校正。
3.通过投影直方图分割出单行的文本的图片。
最后是对单行的OCR
对单行的OCR主要由两种思想
第一种是需要分割字符的。
分割字符的方法也比较多,用的最多的是基于投影直方图极值点作为候选分割点并使用分类器+beamsearch搜索最佳分割点。
搜索到分割点之后对于单个字符,传统的就是特征工程+分类器。一般流程是灰度->二值化->矫正图像->提取特征(方法多种多样例如pcalbp等等)->分类器(分类器大致有SVMANNKNN等等)。
现在的CNN(卷积神经网络)可以很大程度上免去特征工程。
第二种是无需分割字符的
还有一点就是端到端(endtoend)的识别,但前提是你需要大量的标注好的数据集。这种方法可以不分割图像直接以连续的输出字符序列。
对于短长度的可以使用mutli-labelclassification。比如像车牌,验证码。这里我试过一个车牌的多标签分类。车牌识别中的不分割字符的端到端(End-to-End)识别
google做街景门牌号识别就是用的这种方法。
如果字符序列长度较比如很长的手写体而且不固定的话。可以使用类似于语音识别中采用的方法,让训练好的单个字符分类器在序列图像上滑动,输出概率图,接着用lstmrnn等序列模型+ctcloss输出字符序列。像现在的tesseract4.0已经使用lstm来进行ocr了。/北京中安未来专业OCR识别技术供应商工程师撰写返回搜狐,查看更多
责任编辑:如何将图片文字提取图片文字识别的原理是什么
ocr识别系统的用途是什么?有没有好用的ocr软件?工作中总是会遇到这样那样的问题,比如“如何提取图片中的文字信息”,可能有的朋友会用肉眼看,但是这种方法过于原始,准确率低,效果也低,现在ocr技术很发达,我们可以利用ocr软件,它可以智能识别,岂不是更好,下面小编给大家推荐一款ocr软件,快来看看吧。ocr识别系统的用途是什么?ocr识别系统主要用于