基于Tesseract的OCR图像识别

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


python

Tesseract基本工做原理:

工具

 

 

 

 

Tesseract安装教程:
1. tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/
2.下载完成后双击安装包,选择路径,选择语言后继续下一步直到安装成功
字体

 

 

 

3.配置Tesseract的环境变量
优化

 

 

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

 

 

 

Tesseract使用教程:

.net

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

 

 

 

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

 

 

 

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目录下
orm

 

 



 

 1.下载工具jTessBoxEditor 并解压
网址: https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/ 
blog

 

 

 

2.获取训练数据:

 

 

 

3.合并样本图像。
运行jTessBoxEditor     
点击Tools--->Merge TIFF。   
选择样本图像合并成num.font.exp0.tif文件。   

 

 

 

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样本文件放在同一目录)    手动对每张图片中识别错误的字符进行校订。校订完成后保存。

 

 

 

 

 

 

 

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 

相关文章
相关标签/搜索