TesseractOCR(光学字符识别)引擎概述(一)
目录一、TesseractOCR引擎简介二、TesseractOCR架构三、文本行和单词的查找(Text-line and Word Finding)原文参见《Adapting the Tesseract Open Source OCR Engine for Multilingual OCR》下载链接:https://download.csdn.net/download/...
目录
三、文本行和单词的查找(Text-line and Word Finding)
原文参见《Adapting the Tesseract Open Source OCR Engine for Multilingual OCR》
下载链接:https://download.csdn.net/download/kangshuaibing/10799843
一、TesseractOCR引擎简介
Tesseract是惠普布里斯托实验室在1985到1995年间开发的一一个开源的OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。但1996年后基本停止了开发。2005年,惠普将其对外开源,2006 由Google对Tesseract进行改进、消除Bug、优化工作。目前项目地址为: https://github.com/tesseract-ocr/tesseract
二、TesseractOCR架构
Tesseract的识别步骤大致如下:
1.连通区域分析,检测出字符区域区域(轮廓外形),以及子轮廓。在此阶段轮廓线集成为块区域。
2.由字符轮廓和块区域得出文本行,以及通过空格识别出单词。固定字宽文本通过字符单元分割出单个字符,而对百分号的文本(Proportional text)通过一定的间隔和模糊间隔(fuzzy spaces)来分割:
3.依次对每个单词进行分析,采用自适应分类器,分类器有学习能力,先分析且满足条件的单词也作为训练样本,所以后面的字符( 比如页尾)识别更准确:此时,页首的字符识别比较不准确,所以tesseract会再次对识别不太好的字符识别是其精度得到提高。
4.最后,识别含糊不清的空格,及用其他方法,如由笔画高度(x-height),识别小写字母(small-cap)的文本。
三、文本行和单词的查找(Text-line and Word Finding)
a. 假设页面布局分析(page layout analysis) 大致确定了文本区域和文本尺寸,一个简单百分位高度过滤器(percentile height fiter)可以将跨行大写字母及纵向粘连一起的字符过滤掉,利用字符的高度信息,选取所有字符的中值高度,通过高度的比例调节去掉一些无关的块,比如标点符号,变音符和噪声等;
b.对块区域的x坐标排序,利用坐标拟合直线(baseline) ,拟合方法:中位数最小方差拟合(least median of squares fit)
c.进一步,拟合文本行的形状,利用四次多项式,将文本行看成螺线形,采用最小二乘法拟合
d.检测出等距文本(fixed pitch text),对粘连的文本进行分割(chopping)
e.对非等距字体如百分号,斜体等问题,利用中线、基准线之间的空白大小,来分割字符
链接:TesseractOCR(光学字符识别)引擎概述(二)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)