Tesseract-OCR 4.0LSTM训练流程 (Windows环境下)

**

Tesseract-OCR 4.0LSTM训练流程 (Windows环境下)**

目前网上关于tesseract3.0版本的训练过程很多,但是基于lstm的4.0版本的训练几乎没有,自己深受困扰,后经过自己努力终于成功训练,特地写下来希望可以av帮助需要的人。

首先根据网上的教程安装tesseract4.0以上的版本,这里不详细说明如何安装。

1. 准备训练文本.txt格式的文件和字体文件font,里边包含.ttf格式的字体文件
在这里插入图片描述
在这里插入图片描述
2. 利用text2image生成.tif和.box文件
从font和.txt所在的目录下,通过cmd进入命令窗口,输入以下内容

text2image --text="D:\new_05\text.txt" --outputbase="D:\new_05\zth.font.exp0" --fontconfig_tmpdir="%temp%"
 --font="HGMaruGothicMPRO" --fonts_dir="D:\new_05\font"

其中每个参数的意义为:

–text=“D:\new_05\text.txt” 是要进行训练的样本文件路径

–outputbase=“D:\new_05\zth.font.exp0” 表示生成的.tif和.box文件的路劲和命名(注意命名方式,可参照3.0的介绍)

–fontconfig_tmpdir="%temp%" 指明configer,这个在windows中默认这么写,不写会报错

–font=“HGMaruGothicMPRO” font文件夹中的字体名称

–fonts_dir=“D:\new_05\font” font文件夹的路径

至此,会在D:\new_05文件夹下生成两个新的文件,分别为.tif和.box格式的文件

注:当你的训练文本只有图片时,可以利用jTessBoxEditor工具生成.tif和.box格式的文件,可以参照网上3.0训练的步骤介绍。
3. 利用.tif和.box文件生成.lstmf文件用于lstm训练

tesseract zth.font.exp0.tif zth.font.exp0 -l jpn --psm 6 lstm.train

其中每个参数的意义为

zth.font.exp0.tif 上一步生成的.tif 格式的文件

zth.font.exp0 指明要生成的.lstmf文件的名称

-l jpn 表示用到的语言,这个我训练的是日语

–psm 6 表示采用的识别模式,通常6 效果会好些

运行后会多出一个zth.font.exp0.lstmf文件

4. 从已有的.traineddata中提取.lstm文件

tessedata_best中的.traineddata文件 从该链接中下载所需语言的.traineddata文件

注:一定要用从上述链接中下载的.traineddata文件,如果利用原有的下载好的tesseract-OCR中的tessdata文件夹中的.traineddata文件中提取.lstm文件会造成无法进行训练。

将下载好的.traineddata文件拷贝到上述文件夹下
输入命令行:

combine_tessdata -e jpn.traineddata jpn.lstm

运行上述代码,会从.traineddata文件中提取出jpn.lstm 文件
5. 创建jpn.training_files.txt文件,里边的内容为.lstmf文件的路径地址
在这里插入图片描述
6. 进行训练

lstmtraining --model_output="D:\new_05\output\output" --continue_from="D:\new_05\jpn.lstm" 
--train_listfile="D:\new_05\jpn.training_files.txt" --traineddata="D:\new_05\jpn.traineddata" 
--debug_interval -1 --max_iterations 800

各个参数的意义:

–modeloutput 模型训练输出的路径(我在new_05文件夹中新建了一个名为output的文件夹用来存输出的文件)

–continue_from 训练从哪里继续,这里指定从第4步中提取的jpn.lstm文件,

–train_listfile 指定上一步创建的文件的路径

–traineddata 第4步中下载的.traineddata文件的路径

–debug_interval 当值为-1时,训练结束,会显示训练的一些结果参数

–max_iterations 指明训练遍历次数

此时命令窗口中会有滚动的训练历程

训练结束后,在output文件夹中会生成i一个output_checkpoint文件和多个类似output0.012_3.checkpoint的.checkpoint文件
7. 将checkpoint文件和.traineddata文件合并成新的.traineddata文件

lstmtraining --stop_training --continue_from="D:\new_05\output\output_checkpoint" 
--traineddata="D:\new_05\jpn.traineddata" --model_output="D:\new_05\output\zth.traineddata"

各个参数的意义:

–stop_training 默认要有的

–continue_from 上一步生成的output_checkpoint文件路径

–traineddata 第4步中下载的.traineddata文件的路径

–model_output zth.traineddata 输出的路径
8. 将新生成的zth.traineddata文件拷贝到tesseract-OCR\tessdata文件夹下,通过代码进行识别


版权声明:本文为qq_30110069原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。