Train Tesseract LSTM methods Comparison
近期整理了一系列关于train tesseract LSTM的文章,Train Tesseract LSTM with make, Train Tesseract LSTM with tesstrain.sh,该如何从中选择适合自己的方案呢?本文记录方案选择的基本原则及各种方案的异同。
方案选择基本原则
step by step
如果已准备好.box和.tif文件,或者仅有待训练图像,或者训练单独字体,均可以选择此方案:step by step: Win10 Tesseract4.1 LSTM training.
tesstrain.sh
如果想训练某种语言的新字体,可以选择方案1 step by step中的text2image + lstmtraining来实现,但更推荐选择此方案: tesstrain.sh: Train Tesseract LSTM with tesstrain.sh on Windows. 且通过设定参数,tesstrain.sh既可以用于LSTM的训练,也可以用于传统字库的训练。
关于tesstrain.sh,其参数my_boxtiff_dir值得特别说明:
1 2 3 |
OPTIONAL flag for specifying directory with user specified box/tiff pairs. Files should be named similar to ${LANG_CODE}.${fontname}.exp${EXPOSURE}.box/tif --my_boxtiff_dir MY_BOXTIFF_DIR # Location of user specified box/tiff files. |
从注释上来看,感觉tesstrain.sh似乎可以单独训练自己准备好的.box和.tif文件。但事实并非如此,fontlist和fonts_dir参数是必选参数,若要执行的.sh文件中未设置这两个参数,tesstrain.sh会为这两个参数设置默认值。因此最终训练的是参数中设置的fontlist和用户设置的.box/.tif文件同时进行训练。
make
如果只有待训练图像,可以选择方案1 step by step中的jTessBoxEditor + lstmtraining来实现,但更推荐此方案:make: Train Tesseract LSTM with make on Windows. 该方案下,只要手动准备与相应图像中文字对应的文本文件,在命令行中输入一个命令即可。
想知道该方案中的makefile是如何工作的吗?看这里:How the makefile in tesstrain-win work.
个人比较推荐的选择优先顺序如下:
不同训练方案的异同
上述训练方案的流程基本相同:
1. 根据已有文件生成.box和.tif文件。
2. 根据.box和.tif文件,以及基础字库生成lstmtraining所需要的参数。
3. 根据需求设定lstmtraining的参数并开始训练。
三种方案的主要差异在第1步,生成.box和.tif的方式不一样;第2步和第3步用到的均是Tesseract的训练工具。
方案1 step by step中的text2image + lstmtraining,与方案2 tesstrain.sh的第1步均用到了Tesseract的训练工具text2image,只是step by step中单次训练一种字体,且各项命令需要逐步手动输入;而tesstrain.sh通过设定参数,可以同时训练多种字体,在训练环境正常的情况下,只需要手动输入一个命令,tesstrain.sh会循环执行text2image,分别为不同的字体生成.box和.tif文件,并自动执行后续训练命令。因此无论是训练单种字体或者训练多种字体,均推荐使用方案2 tesstrain.sh。
方案1 step by step中的jTessBoxEditor + lstmtraining方案,使用了传统训练工具jTessBoxEditor来生成.box文件。
方案3 make 使用python代码根据GroundTruth来生成.box和.tif文件。
如果大家有兴趣,可以看看python生成的.box文件与text2image生成的.box文件的差异。python生成的.box文件,获取的是单行文本在图像中对应的文本的位置信息;而text2image生成的.box文件,则是单个字符在图像中的位置信息。
上述方案均可用于Training From Scratch,Fine Tuning for ± a few characters和Training Just a Few Layers,只需要在相应文件或命令中修改lstmtraining的相关参数设定即可。如何修改?请查阅Tesseract官方文档How to use the tools provided to train Tesseract 4.00相关说明。
本文到此结束,感谢阅读,谢谢支持。