tesseract-ocr的字库学习步骤(训练自己的文库)

简介:在网上看了很多案列。都不是很完整。然后自己用了一天时间进行整理,第一次写文章,希望对大家有帮助。

一、安装tesseract

下载地址https://github.com/UB-Mannheim/tesseract/wiki

1.点击下面下载的这个进行运行(安装的时候有点慢)

Tesseract 中文训练包 tesseract训练自己的字库_python


2.点击next

Tesseract 中文训练包 tesseract训练自己的字库_机器学习_02


3.I accept the terms of the License Agreement前的复选框打勾,点击Next。

Tesseract 中文训练包 tesseract训练自己的字库_windows_03


4.Install for anyone using this computer前的复选框打勾,点击Next

5.选择需要安装的内容,点击Next。(选择语言,我安装的时候全选,安装的很慢,尽量选自己用的语言)

Tesseract 中文训练包 tesseract训练自己的字库_python_04


6…Show README前的复选框取消打勾,点击Finish。

Tesseract 中文训练包 tesseract训练自己的字库_windows_05


7.安装jTessBoxEditor

安装包地址:网上很多。找不到私信联系我8.双击jTessBoxEditor,jar运行

Tesseract 中文训练包 tesseract训练自己的字库_windows_06


9.出现下面的界面则安装成功。

Tesseract 中文训练包 tesseract训练自己的字库_编程语言_07


10.点击Tools中的Merge TIFF。

Tesseract 中文训练包 tesseract训练自己的字库_机器学习_08


11.文件类型选择All Image Files,选择样本图片,点击打开。

Tesseract 中文训练包 tesseract训练自己的字库_编程语言_09


12.文件名输入num.font.exp0.tif,文件类型选择TIFF,点击保存。

Tesseract 中文训练包 tesseract训练自己的字库_机器学习_10


13.点击确定

Tesseract 中文训练包 tesseract训练自己的字库_Tesseract 中文训练包_11


14. 将num.font.exp0.tif文件复制到Tesseract-OCR安装目录。

Tesseract 中文训练包 tesseract训练自己的字库_python_12


15.在tesseract-ocr处打开cmd,执行下面命令,生成num.font.exp0.box

执行的命令为:

tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox

Tesseract 中文训练包 tesseract训练自己的字库_windows_13


生成的box文件为num.font.exp0.box,box文件为Tesseract识别出的字符及其坐标。

注:Make Box File 文件名有一定的格式,不能随便乱取名字,命令格式为:
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox

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

16.点击Box Editor ,点击open,选择照片num.font.exp0.tif(之前生成得的tif图片),出现下面的图片

Tesseract 中文训练包 tesseract训练自己的字库_机器学习_14


17可以看出上面有些字符识别的位置不准确,可以通过该工具手动对每张图片中识别错误的字符和位置进行校正。校正完成后保存即可。

注: 这里必须修改识别错误的字符,否则做出来的traineddata文件也是错的。可以在下面的界面中修改并保存,也可以直接在traineddata文件中修改。

18. 定义字体特征文件。创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:


其中fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。 、 、 、、 的取值为1或0,表示字体是否具有这些属性。这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:font 0 0 0 0 0这里全取值为0,表示字体不是粗体、斜体等等。

Tesseract 中文训练包 tesseract训练自己的字库_编程语言_15


19.在D:\tesseract-ocr中写一个运行脚本num.bat

20.运行num.bat,生成下面文件。num.traineddata就是训练好的字库文件了

echo Run Tesseract for Training…
 tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train
 echo Compute the Character Set…
 unicharset_extractor.exe num.font.exp0.box
 mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
 echo Clustering…
 cntraining.exe num.font.exp0.tr
 echo Rename Files…
 rename normproto num.normproto
 rename inttemp num.inttemp
 rename pffmtable num.pffmtable
 rename shapetable num.shapetable
 echo Create Tessdata…
 combine_tessdata.exe num.

Tesseract 中文训练包 tesseract训练自己的字库_机器学习_16


21.测试字库文件num1.txt 就是解析出来的结果。

Tesseract 中文训练包 tesseract训练自己的字库_windows_17