本文主要记录用Tess4j调用Tesseract OCR 进行识别的步骤所涉及到的内容
1. 环境工具
需要安装java运行环境,同时安装对应的Tesseract执行程序,使用的工具主要为: jTessBoxEditor,下载软件之后解压运行环境中的bat文件。
2. 训练步骤
- 制作tiff格式文件,将要识别的字库图片,利用Windows自带的画图工具另存为对应的tiff格式的图片文件。
2.将刚刚制作的tiff文件利用jTessBoxEditors合并成为一个tif文件
选中你的tiff文件,点击打开即可
3.生成box格式文件
命令为:
tesseract test.tif test -l chi_sim batch.nochop makebox
【语法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
【语法】:lang为语言名称,fontname为字体名称,num为序号;在tesseract中,一定要注意格式
注:如果需要屏蔽错误加option ,"–psm 7"
.\tesseract.exe .\okcancel.normal.exp0.tif okcancel.normal.exp0 -l chi_sim --psm 7 batch.nochop makebox
4.生成.tr文件
tesseract test.tif test nobatch box.train
【语法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] nobatch box.train
注:如果需要屏蔽错误加option ,"–psm 7"
.\tesseract.exe .\okcancel.normal.exp0.tif --psm 7 okcancel.normal.exp0 nobatch box.train
5.生成unicharset文件
unicharset_extractor test.box
【语法】:unicharset_extractor [lang].[fontname].exp[num].box
.\unicharset_extractor.exe .\okcancel.normal.exp0.box
6.聚集字符特征
shapeclustering -F font_properties -U unicharset test.tr
mftraining -F font_properties -U unicharset -O unicharset test.tr
cntraining test.tr
【语法】:shapeclustering -F font_properties -U unicharset [lang].[fontname].exp[num].tr
.\shapeclustering.exe -F .\font_properties -U .\unicharset .\okcancel.normal.exp0.tr
【语法】:mftraining -F font_properties -U unicharset -O unicharset [lang].[fontname].exp[num].tr
.\mftraining.exe -F .\font_properties -U .\unicharset -O unicharset .\okcancel.normal.exp0.tr
【语法】:cntraining [lang].[fontname].exp[num].tr
.\cntraining.exe .\okcancel.normal.exp0.tr
执行上述命令之后,可以得到很多文件,最为重要的为如下几个文件
7.合并文件
重命名文件,在文件的开始用统一的前缀:
执行命令
combine_tessdata normal.
可生成最终可用的 normal.traineddata字符库文件,这样一个字符库文件就制作完成了
注:进行文字的训练纠正的过程中,对文字的切割比较重要,
如图所示,尽量对于同样类型的文字的上边距和宽度和高度保持一致,且两个字之间的线条尽量不要重叠,这样会比较顺利的完成文件的生成。