我的tesseract-orc3.01样本训练记录

官网样本训练网址:https://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3

一步一步来按照官网的步骤来做,由于我用的tesseractORC3.01版本,官网最新的版本是3.02,加上我的英语水平不高,所以可能有点误差和不同,但是我最终生成的样本识别库是有提高识别率。我的系统环境是Win7。

1.安装tesseractORC3.01和从官网下载jTessBoxEditor,准备样本图,有10张是最好的,格式我只尝试过jpg和tif,都是可以的。

2.把样本图通过jTessBoxEditor的菜单栏Tool--Merge TIFF(CTRL+M)合成一个num.timesitalic.exp0.tif文件(PS:命名格式是按照官网格式来命名的,既:[lang].fontname].exp[num].tif)。

3.Make Box Files   运行CMD,把num.timesitalic.exp0.tif剪切tesseractORC的跟目录下,到在安装tesseractORC的目录下运行命令:tesseract num.timesitalic.exp0.tif num.timesitalic.exp0 batch.nochop makebox,生成num.timesitalic.exp0.box文件。

4.使用jTessBoxEditor的 Box Editor--open,打开num.timesitalic.exp0.tif(PS:tif文件和box文件要在同一目录下)然后校正每个Page的字符,而且每个Page的识别字符的个数要是一致的(PS:这个是我自己通过实践总结,反正如果每个Page识别字符个数不一样的,下一步就会出错。简单的来说,就是如果第一个Page字符识别个数是4的话,后面的Page字符识别个数也应该是4个。)

5.Run Tesseract for Training CMD命令:tesseract num.timesitalic.exp0.tif num.timesitalic.exp0 box.train

6.Compute the Character Set   CMD命令:unicharset_extractor num.timesitalic.exp0.box

7.新建font_properties文件,可以先新建一个font_properties.txt文件在改成font_properties文件,也可以不改,不改的话下一步的命令font_properties的后面还要加上.txt。在font_properties中输入这样<fontname> <italic> <bold> <fixed> <serif> <fraktur>的字符,例如我的是timesitalic 0 1 0 0 0,具体解释可以看官网。

8.Clustering 官网上要用到shapeclustering这个命令,但是3.01是没有这个可执行程序的,所以我就跳过这一命令(PS:这个得原因应该是3.01版本是不用这一步的),接着CMD命令:mftraining -F font_properties -U unicharset -O num.unicharset num.timesitalic.exp0.tr 和 CMD命令:cntraining num.timesitalic.exp0.tr

9.Putting it all together   把上面几个命令生成的normproto, inttemp, pffmtable三个文件(其他文件可以不用管,我也不知道有什么用处,还有就是官网还提到了另一个文件shapetable,,这个应该是shapeclustering命令生成的文件,3.01版本是不需要这个文件的)都重命名,前缀加上num.,就是官网命名格式的[lang].(注意后面有个点)即是:变成num.normproto, num.inttemp, num.pffmtable,接着CMD命令:combine_tessdata num.(PS:后面也有个点),合成num.traineddata训练文件。

然后可以自己检查一下生成训练文件是否正确了,把num.traineddata复制到tessdata目录,执行命令:tesseract image.tif output -l num,查看output.txt文件即可看到识别结果。

在这个过程中我出现过的问题:第一个:就我上面提过的校正的时候每个Page识别字符个数应该是一样的;第二个是如下

E:\Tesseract-ocr>combine_tessdata num.

Combining tessdata files
Error opening unicharset file
Error combining tessdata files into num.traineddata

这个错误应该是第8步mftraining命令错误造成的,原因应该是num.unicharset不存在或者打开错误;第3个就是容易忘记对normproto, inttemp, pffmtable三个文件的重命名,造成第9步合成的traineddata训练文件是不可用的。

PS:由于个人原因,本文可能有很多错误的地方,请大家多多包涵,而且本文只是事后记录我完成TesseractORC样本训练过程作为以后查看。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页