一、准备工作
1、下载Tesseract-OCR引擎,注意要3.0以上才支持中文哦,按照提示安装就行。
2、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面。
3、下载jTessBoxEditor,这个是用来训练字库的。
下载地址为:http://download.csdn.net/detail/lly_117/9839229里面自带Java运行库,安装配置Java环境后,双击打开 jTessBoxEditor.jar。
4、Tesseract-OCR引擎环境配置,将E:\Program Files (x86)\Tesseract-OCR;配置环境变量path中。
二、训练
1、将图片转换成tif格式,用于后面生成box文件,通过画图,另存为tif格式。
更改图片名字:tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言 fontname是字体
比如我们要训练自定义字库 mjorcen字体名me
那么我们把图片文件重命名 mjorcen.me.exp0.jpg在转tif。
2、生成box文件
在改文件中输入下面的命令行
tesseract mjorcen.me.exp0.jpg mjorcen.me.exp0 batch.nochop makebox
生成
注:如果是汉字的话利用
tesseract mjorcen.me.exp0.jpg mjorcen.me.exp0 -l chi_sim batch.nochop makebox
box文件和对应的tif一定要在相同的目录下,不然后面打不开。
3、打开jTessBoxEditor矫正错误并训练
打开jTessBoxEditor.jar
找到tif图,打开,并校正,校正完,保存即可。
注:汉字修改setting中字体
4、训练
只要在命令行输入命令即可。
tesseract mjorcen.me.exp0.jpgmjorcen.me.exp0 nobatch box.train
unicharset_extractormjorcen.me.exp0.box
手动新建一个font_properties.txt文件
里面的内容写入me 0 0 0 0 0 表示默认普通字体
shapeclustering -F font_properties.txt -U unicharsetmjorcen.me.exp0.tr
mftraining-F font_properties.txt -U unicharset -O unicharset mjorcen.me.exp0.tr
cntraining mjorcen.me.exp0.tr
最后会生成五个文件,把目录下的
unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上me.
如图:
命令行输入,合并五个文件:
combine_tessdata me.
得到1、3、4、5、13都不为-1,其他为-1,说明字库训练完成,得到训练好的字库。
三、测试
1、把me.traineddata 复制到Tesseract-OCR安装目录下的tessdata文件夹中
2、识别命令:
tesseract mjorcen.me.exp0.jpgmjorcen.me.exp0 -1 me
四、字库合并
1、对多张.tif图片分别生成相对应的.box文件
在命令行中运行如下命令:
tesseract mjorcen.me1.exp0.jpg mjorcen.me1.exp0 batch.nochop makebox
tesseract mjorcen.me2.exp0.jpg mjorcen.me2.exp0 batch.nochop makebox
tesseract mjorcen.me3.exp0.jpg mjorcen.me3.exp0 batch.nochop makebox
tesseract mjorcen.me4.exp0.jpg mjorcen.me4.exp0 batch.nochop makebox
tesseract mjorcen.me5.exp0.jpg mjorcen.me5.exp0 batch.nochop makebox
2、对每张图片生成相对应的.tr文件
tesseract mjorcen.me1.exp0.jpg mjorcen.me1.exp0 nobatch box.train
tesseract mjorcen.me2.exp0.jpg mjorcen.me2.exp0 nobatch box.train
tesseract mjorcen.me3.exp0.jpg mjorcen.me3.exp0 nobatch box.train
tesseract mjorcen.me4.exp0.jpg mjorcen.me4.exp0 nobatch box.train
tesseract mjorcen.me5.exp0.jpg mjorcen.me5.exp0 nobatch box.train
3、接着输入:
unicharset_extractor mjorcen.me1.exp0.box mjorcen.me2.exp0.box mjorcen.me3.exp0.box mjorcen.me4.exp0.box mjorcen.me5.exp0.box
4、手动新建一个font_properties.txt文件里面的内容为
me1 0 0 0 0 0
me2 0 0 0 0 0
me3 0 0 0 0 0
me4 0 0 0 0 0
me5 0 0 0 0 0
表示默认普通字体
5、
shapeclustering -F font_properties.txt -U unicharset mjorcen.me1.exp0.tr mjorcen.me2.exp0.tr mjorcen.me3.exp0.tr mjorcen.me4.exp0.tr mjorcen.me5.exp0.tr
6、
mftraining -F font_properties.txt -U unicharset -O unicharset mjorcen.me1.exp0.tr mjorcen.me2.exp0.tr mjorcen.me3.exp0.tr mjorcen.me4.exp0.tr mjorcen.me5.exp0.tr
7
、
cntraining mjorcen.me1.exp0.tr mjorcen.me2.exp0.tr mjorcen.me3.exp0.tr mjorcen.me4.exp0.tr mjorcen.me5.exp0.tr
8
、最后会生成五个文件,把目录下的
unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上me.
9
、合并所有文件 生成一个大的字库文件
combine_tessdata me.