利用jTessBoxEditor工具进行Tesseract-OCR样本训练

jTessBoxEditor依赖java虚拟机 , 所以要先安装 java.

jTessBoxEditor下载地址:

https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/jTessBoxEditor-1.5.zip/download?use_mirror=nchc

解压后跳转到解压目录, 启动 jTessBoxEditor,命令行输入: 
java -Xms128m -Xmx1024m -jar jTessBoxEditor.jar

样本训练:

、准备样本图片
手动用画图工具写了一些数字(或者去刷网站的验证码) , 如果是彩色图片首先做灰度化处理以提高识别率 . 全部转换成tif文件, 可以用验证码结果命名方便比对.
、合并图片
打开jTessBoxEditor, 点击Tools > Merge Tiff, 选中所有准备好的tif文件,并把生成的tif文件放到一个新目录下, 命名为num.font.exp0.tif
注意: num是自定义的语言名称, font是自定义的字体名称.
问题: 我在使用jTessBoxEditor合并tif文件是报couldn't seek , 未找到原因, 后来改用TiffToy进行合并成功.
、生成box文件
tesseract num.font.exp0.tif num.font.exp0 [-l eng -psm 7] batch.nochop makebox
以上[]中的内容当返回Empty page的时候可以加上.其中 -psm 7 表示用单行文本识别,-l eng 表示使用英语语言.
、修改box文件
切换到jTessBoxEditor工具的Box Editor页,点击open,打开前面的tiff文件langyp.fontyp.exp0.tif,工具会自动加载对应的box文件。
逐个核对tif文件的box数据, 如果错误就进行修改, 全部检查结束后保存.
注意: box数据有翻页, 之前合并了多少tif文件就有多少页.
、生成font_properties
echo font >font_properties
【语法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur>
fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用。
、生成训练文件
tesseract num.font.exp0.tif num.font.exp0 nobatch box.train
、生成字符集文件
unicharset_extractor num.font.exp0.box
、生成shape文件
shapeclustering -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
、生成聚集字符特征文件
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
、生成字符正常化特征文件
cntraining num.font.exp0.tr
、更名
rename normproto num.normproto
rename inttemp num.inttemp
rename pffmtable num.pffmtable
rename unicharset num.unicharset
rename shapetable num.shapetable
、合并训练文件,生成num.traineddata
combine_tessdata num.

利用jTessBoxEditor工具进行Tesseract-OCR样本训练

以上是目录中的文件, 将生成的num.traineddata复制到Tesseract-OCR中的tessdata文件夹中即可.

最后进行一下测试:

tesseract test.png output -l num
#我们使用了指令[-l num]而不是[-l eng]。这说明,我们使用的是新生成的num语言的匹配库而不是默认的eng语言匹配库.

参考:

http://www.cnblogs.com/zhongtang/p/5555950.html

http://www.cnblogs.com/cnlian/p/5765871.html

http://vietocr.sourceforge.net/training.html

上一篇:python数据类型(数字\字符串\列表)


下一篇:微信bug:建议了解,不要实验,不要手贱,不要。。。。