TesseractOCR(光学字符识别)引擎概述(一)

目录

一、TesseractOCR引擎简介

二、TesseractOCR架构

三、文本行和单词的查找(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的识别步骤大致如下:

Figure1. Top-level block diagram of 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.对非等距字体如百分号,斜体等问题,利用中线、基准线之间的空白大小,来分割字符
 

 

猜你喜欢

转载自blog.csdn.net/kangshuaibing/article/details/84333611