何为Tesseract?
Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生。在2005年,Tesseract由美国内华达州信息技术研究所获得,并委托Google对其进行改进、优化工作。
Tesseract目前已作为开源项目发布在Google Project,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,我们还可以不断训练自己的库,使图像转换文本的能力不断增强。如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。

Tesseract基本工作原理:

tesseract能识别pdf吗 tesseract ocr 原理_指令生成

 

 

 

 

Tesseract安装教程:

1. tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/

2.下载完成后双击安装包,选择路径,选择语言后继续下一步直到安装成功

tesseract能识别pdf吗 tesseract ocr 原理_信息技术_02

 

 

 

3.配置Tesseract的环境变量

tesseract能识别pdf吗 tesseract ocr 原理_信息技术_03

 

 

4.查看安装结果
在cmd中输入tesseract –v 有结果如下图,则说明安装成功:

tesseract能识别pdf吗 tesseract ocr 原理_Google_04

 

 

 

Tesseract使用教程:

bat调用Tesseract在cmd中进入图片所在目录,输入  tesseract 图片名称  结果文档名称如: tesseract 0.png result.txt   ,识别0.png的结果保存为result.txt文档。

tesseract能识别pdf吗 tesseract ocr 原理_tesseract能识别pdf吗_05

 

 

 

python调用Tesseract
1.pip安装pytesseract cmd输入指令 pip install pytesseract  
调用方法:
text = pytesseract.image_to_string(image)

tesseract能识别pdf吗 tesseract ocr 原理_信息技术_06

 

 

 

tesseract能识别pdf吗 tesseract ocr 原理_Google_07

7.cmd运行指令生成字符特征集(tr)

 tesseract num.font.exp0.tif num.font.exp0 nobatch box.train


8.cmd运行指令生成字符集(unicharset)

unicharset_extractor num.font.exp0.box


9. cmd运行指令生成字符特征(shapetable、inttemp、pffmtable、 normproto)

shapeclustering -F font_properties.txt -U unicharset num.font.exp0.tr      

mftraining -F font_properties.txt -U unicharset -O num.unicharset  num.font.exp0.tr

cntraining num.font.exp0.tr

10.重命名,结果合并

把目录下的字符集 unicharset、图形原型文件inttemp、字符特征数文件pffmtable、

字符形状表shapetable、字符形状正常化特征文件normproto

这五个文件的文件名前面都加上“num.”执行combine_tessdata num,生成num.traineddata

11.结果导入

把num.traineddata放到tesseract目录下的tessdata目录下

tesseract能识别pdf吗 tesseract ocr 原理_指令生成_08

 

 


 

 1.下载工具jTessBoxEditor 并解压

网址: https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/ 

tesseract能识别pdf吗 tesseract ocr 原理_指令生成_09

 

 

 

2.获取训练数据:

tesseract能识别pdf吗 tesseract ocr 原理_信息技术_10

 

 

 

3.合并样本图像。

运行jTessBoxEditor     

点击Tools--->Merge TIFF。   

选择样本图像合并成num.font.exp0.tif文件。   

tesseract能识别pdf吗 tesseract ocr 原理_Google_11

 

 

 

4.打开命令行执行命令生成box文件:tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox  生成的BOX文件为num.font.exp0.box,BOX文件为Tessercat识别出的文字和其坐标。

Make Box File的命令格式为:

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox 

其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。

5.文字校正。

运行jTessBoxEditor    

打开num.font.exp0.tif(必须将上一步生成的.box和.tif样本文件放在同一目录)    手动对每张图片中识别错误的字符进行校正。校正完成后保存。

tesseract能识别pdf吗 tesseract ocr 原理_Google_12

 

 

 

tesseract能识别pdf吗 tesseract ocr 原理_指令生成_13

 

 

 

 

6.定义字体特征文件。
Tesseract-OCR3.01以上的版本在训练之前需要在样本图片(tif)所在目录下创建一个名称为font_properties的字体特征文件。
font_properties不含有BOM头,文件内容格式如下:
 <fontname> <italic> <bold> <fixed> <serif> <fraktur> 
fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。
这里用记事本打开font_properties ,输入以下下内容:
 num 0 0 0 0 0