Linux下利用jTessBoxEditor工具进行Tesseract3.02.02样本训练
1.准备样本图片
为提高识别率,把图片进行灰度化处理,可以用
convert -monochrome name.png name.png
把图片变成黑白色
然后利用
convert name.jpg name.tif
命令,把其他类型的图片文件转换成.tif文件
打开jtessboxeditor,点击Tools->Merge Tiff ,按住shift键选择tif文件,并把生成的tif命名为fontname.fonttype.exp0.tif
执行命令生成fontname.fonttype.exp0.box文件
tesseract fontname.fonttype.exp0.tif fontname.fonttype.exp0
-l eng -psm 3 batch.nochop makebox
下面是-psm参数的大意,可以根据其选择对应的数
Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]切换到jTessBoxEditor工具的Box Editor页,点击open,打开前面的tiff文件fontname.fonttype.exp0.tif,工具会自动加载对应的box
检查box数据,逐个核对tif文件的box数据,全部修改结束并保存。
执行echo命令生成font_properties。
echo fontyp 0 0 0 0 0 >font_properties
也可以手工新建一个名为font_properties的文本文件(注意该文件没有扩展名),内容为字体名fonttype,后面带5个0,分别代表字体的粗体、斜体等属性,这里全部是0
执行命令,生成fontname.fonttype.exp0.tr训练文件
tesseract fontname.fonttype.exp0.tif fontname.fonttype.exp0 -l eng -psm 3 nobatch box.train
注意,里面的eng项可以根据实际情况修改
执行命令,生成名为unicharset的字符集文件。
unicharset_extractor fontname.fonttype.exp0.box
执行命令,生成shape文件
shapeclustering -F font_properties -U unicharset -O fontname.unicharset fontname.fonttype.exp0.tr
执行命令,生成3个特征字符文件,unicharset、inttemp、pffmtable
mftraining -F font_properties -U unicharset -O fontname.unicharset fontname.fonttype.exp0.tr
执行命令,生成正常化特征文件normproto。
cntraining fontname.fonttype.exp0.tr
执行命令,把步骤9,步骤10生成的特征文件进行更名。
mv normproto fontname.normproto
mv inttemp fontname.inttemp
mv pffmtable fontname.pffmtable
mv unicharset fontname.unicharset
mv shapetable fontname.shapetable
执行命令,生成fontname.traineddata文件。
combine_tessdata fontname.
注意:
a、fontname.traineddata文件最终要拷贝tesseract安装目录的tessdata目录下,才能被tesseract找到。
b、命令行最后必须带一个点。
c、执行结果中,1,3,4,5,13这几行必须有数值,才代表命令执行成功。