【文字识别技术基础概述3900字】_第1页
【文字识别技术基础概述3900字】_第2页
【文字识别技术基础概述3900字】_第3页
【文字识别技术基础概述3900字】_第4页
【文字识别技术基础概述3900字】_第5页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文字识别技术基础概述目录TOC\o"1-3"\h\u3332文字识别技术基础概述 1198871、Tesseract的简介 1262672、Tesseract的基本原理 1312263、Jtessboxeditor-文字识别的训练 51、Tesseract的简介Tesseract是惠普实验室在上世纪八九十年代开发的OCR引擎。2005年,惠普公司将Tesseract作为开放软件开放,随后由Google对其进行改进和优化[3]。现如今,Tesseract已经成为了识别率最高的开源的OCR系统。目前Tesseract可以识别100多种语言,除了能够对常用语言如英语、日语、德语、拉丁文、荷兰语、中文等语言的识别以外,还可以对任何Unicode字符进行识别。Tesseract作为非商业的OCR引擎具有很多的缺点。为了弥补算法设计的不足,Tesseract要求输入图像的清晰度高,文字的基准线是基本水平的,文本中空格符的宽度大致保持一致。而且Tesseract的计算速度慢,不能支持多个线程运算,更无法支持一个线程中进行多个实例化。同时,由于中文是有许多种的字体,同一汉字的不同字体的外形差别较大,楷书比较规整利于识别,但是草书就过于潦草不利于识别。并且由于Tesseract训练集数量是一定的,对于非拉丁文字符识别的能力有限,识别率尚待提升。但是,如果只是应用于日常生活中,在对原始图像进行一系列的图像预处理后,Tesseract是能够满足使用需求的。如果需要更高的识别率还可以人工对识别结果进行纠错。2、Tesseract的基本原理Tesseract架构:图1-1Tesseract大致架构图根据图1-1所绘制的Tesseract大致框架图能够了解其识别流程。Tesseract先对原始图片进行二值化,通过连通域分析,检测出图像中的文本整个大的区域,以及文本内部的子轮廓,然后将产生的轮廓线集成生成块区域。之后再通过块区域得出文本行,以及利用单词间的空格将每个单词提取出来。对得到的所有单词进行遍历分析,利用自适应分类器对得到的单词进行初分类,然后将分隔出的待识别的词与字典中的常用字符进行比较,输出最终识别的单词结果[4]。下面,将按照以上流程来简要介绍Tesseract的算法:1.轮廓分析一个文本图像中少则包含几个字符,多则有几百上千个字符,在印刷文本中,这些字符都是比较规则地以行或列的形式进行排版。在具体的文字识别之前需要对图像中的每个字符框定一个大致的范围。为了找到该范围的边界,Tesseract定义了簇的概念。簇是像素矩阵中相邻字符像素点的集合。寻找图像中的簇的方法是根据当前像素点附近是否有文字像素点或者是否到达轮廓边界来改变簇的探索方向,该算法类似走迷宫。与此同时,Tesseract采用嵌套轮廓搜索算法同时搜索文字轮廓(字符区域)和与轮廓相嵌套的轮廓(子轮廓)。这种方法可以用来识别白底黑字和黑底白字。最后,将轮廓聚集在一起形成文本块。2.切分文本行由于上下两行间是有一定的行间距的,同时文本大多数是按照行进行排版的,因此根据一条水平线上的黑色像素点的个数就能够大致判断出一个文本行的上边界线和下边界线。在最为理想的条件下,上下两行间的间隔位置应该是完全空白的,该位置的黑色像素点的个数为0[5]。然而,实际上,由于受到外界环境的干扰,行之间空白区域中黑色像素点的数目几乎都是大于0的。因此,需要设定一个阈值,同时规定按照某个顺序扫描各水平线,如果水平线中黑色像素点的个数超过阈值时,就将该水平线是视为某一文本行的一部分。然后再将该水平线作为基准,检索其对应文本行的上下边界。在向上和向下寻找边界时,将最先出现的水平线中的黑点数量少于阈值的该水平线作为文本行的边界。根据上面的操作就可以划分出图像中的一行文本。上述切分文本行的方法适用于排练很整齐的图像,该方法计算简单且效果较为理想,能够将文本块成功地切分为若干行。而且,对于字母的大小写或者其他相对于水平基准线偏移量不相同的字符在划分文本行是可以同样适用该方法。根据上述方法,绘制出图1-2的文本标记图。图1-2文本标记图3.将单词切分为字符对于已经切分得到的文本行,我们需要对其从左到右进行搜索,得到每个字符的左右边界,从而切分出单个字符。在字符切分过程中,由于英文字符和中文字符的构成不同,因此需要采取不同的方案来进行字符切分,避免造成误判。首先对英文字符而言,需要考虑等宽字符和非等宽字符两种情况。对中文字符而言,由于汉字都是方块字,其宽度和高度基本一致并且两个汉字之间的间隔距离是远大于汉字内部结构间的空隙宽度。基于以上的事实依据,本文将采用下述方法来准确分隔字符。(1)英文字符切分英文字符包括等宽字符、非等宽字符两类。在对英文字符切分时,需要考量上述两种情况。对于等宽字符,即字符宽度是固定的字符,这种情况使用宽度不变的滑动窗口进行字符分隔;非等宽字符,根据字意来理解就是字符的宽度不是相同的,有的宽,有的窄,对于非等宽字符,在切分过程中,比较各字符的宽度值与字符宽度平均值的大小,对字符宽度值与平均值不相等的字符做模糊处理,之后再寻找一个新的切分点来切分。(2)中文字符切分中文字符可分为独体字和合体字两大类。采用垂直投影的方法对中文字符进行分割是最为简单直接的方法。但是由于大多数的中文字符为合体字,利用垂直投影进行分割时会将字体结构间的空隙误认为是两个汉字间的空隙,从而导致结果异常。为了避免出现上述的误差,需要探索新的方法对中文字符进行更准确的分割。将采用下述方法来解决中文字符分割错误问题。1、一般来说,汉字结构间的间隔是远大于汉字间的间隙,由两者间间隙的宽度就能够分辨出此间隙是内部的结构间的间隔还是两个完整的字之间的空隙。间隙的宽度的大小比较为:文字内部结构之间的空白宽度<两个文字间的空白宽度<标点符号与后面紧接着文字间的空白宽度。2、用字的高度与字的宽度的比值来分析切割的结果“字”是否完整。因为一个字的结构的宽高比与一个完整的字的宽高比差别较大,所以可以采用字宽来分隔字符,其分隔原理与上述比较字符间距宽度的切割方法大致相同。3、由于采用的切割方法是垂直切割,因此对于中文字符的结构只需考虑字体是否为左右结构,而不需要考虑其上下结构。根据上述情况,对汉字进行二次切割时将只需考虑汉字的左右结构是什么样的。4.特征提取及初次识别特征提取是文字识别的重要影响因素,好的图像特征提取算法是字符识别高准确率的重要保证。为了有效的区分所有字符,图像提取的特征的信息量不能太少。将图像中的某一属性特征按特定的方式将其量化为可以用来比较的参数,然后按照参数值将整个图像划分为多个类别的方法就是图像特征提取。为了更好的对其进行分类,字符特征提取的时候要尽可能地使字符间的特征差异最大化。但是过高的字符特征向量的维数会增加字符识别过程的时间,增加系统的运算负担,影响系统效率,因此不能一味地提高字符特征向量的维数。衡量一个字符特征提取算法的质量的参考依据是特征向量的特征区别度、稳定性及其维度[6]。字符特征提取的方法可以总结为基于结构特征的方法和基于统计特征的方法。一般将某个特定方向上的向量作为字符特征向量,并输入到预先建立的特征字典中,比较两者间的差距,最后输出最符合需求的样本。Tesseract有静态分类器和自适应分类器两中分类器,两者之间的分类原理是相同的,只是采用的特征维度不同和特征字典不同。静态分类器是提取三个维度的特征,并将特征输入字典进行比较,输出最符合需求的字符。自适应分类器提取了四个维度的特征值,它的特征维度比静态分类器更高,同时自适应分类器中的特征字典的样本种类也更加丰富,不仅有常见的样式正常地字符,还有加粗、倾斜的字体。当识别结果不是最符合要求时,将返回所有概率较高的识别结果给用户进行选择。5.再次识别在这一阶段,对于初次识别出的单词不满意时,会选择其他的候选分割点重新对该字符进行分隔,当识别精度达到规定好的阈值时,结束分割,输出结果。在将所有可能的分割点用完但是分割结果并不理想时,采用最优先搜索,把分割的blob按照概率最大的集合方式拼凑成候选字符。6.语言分析在任何情况下,Tesseract的识别准确率都是较低的,即使是在最为理想的情况下,识别率也只是无限趋近于百分之百。基于此,OCR系统还需要对于识别后的结果进行纠错。利用词频、语义等语言学知识对得到的识别结果进行语言学分析,可以纠正部分错误。3、Jtessboxeditor-文字识别的训练因为算法设计的不足,Tesseract要求输入图像的清晰度高,图像中文字的基准线是基本水平的,文本中空格符的宽度大致保持一致。这种情况太过于理想化,大多情况下的图像中的文本都不是规整的,很多图片是有一定角度的倾斜,即使是在图片角度正常地情况下文本也可能会是倾斜的。为了满足需求,需要提高tesseract对于非规整文本的准确识别率,因此我们需要对其进行训练。tesseract的训练需要使用到一个后缀名为“.box”的文件,该文件记录了图片上各个文字的内容和位置的信息。利用jTessBoxEditor可以对.box文件中的信息进行调整。在进行调整之前,我们需要准备多个存在一定差异的文字相同的样本图片,之后通过jTessBoxEditor将这些样本图片合并成一个后缀名为.tif的文件,随后打开其对应的.box文件,查看各个文字的识别的结果,以及其切割数据。图1-3文本标记图如图1-3所示,我们可以看见原始的tesseract对于文本的定位和切割效果很差,几乎是所有的文本定位都有问题,红色文本定位框是“相”字的定位框,但是其囊括了“相”、“思”两个字,虽然其最终结果识别为正确的“相”字,但是它的文字切割是有误差的。有的定位框发生了错位,框住了其他汉字,例如下图中的山一程中的“一”的文本定位框在其后面的“程”处。图中的汉字“风”没有文本定位框定位,识别时无法识别该处文字,直接会将其作为背景处理,同时汉字“心”被拆分成了“丿”、“乚”、“丶”三个文本。同时因为图片为彩色,当背景的颜色过于接近笔墨的颜色会造成文本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论