tesseract-OCR字库训练

时间:2024-03-30 09:23:47

一、准备工作

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中。

tesseract-OCR字库训练

 

二、训练

1、将图片转换成tif格式,用于后面生成box文件,通过画图,另存为tif格式。

    更改图片名字:tif文面命名格式[lang].[fontname].exp[num].tif
    lang是语言 fontname是字体 
    比如我们要训练自定义字库 mjorcen字体名me
    那么我们把图片文件重命名 mjorcen.me.exp0.jpg在转tif。

tesseract-OCR字库训练

 

2、生成box文件

    在改文件中输入下面的命令行

 tesseract mjorcen.me.exp0.jpg mjorcen.me.exp0 batch.nochop makebox

  生成

tesseract-OCR字库训练

 

注:如果是汉字的话利用

tesseract mjorcen.me.exp0.jpg mjorcen.me.exp0 -l chi_sim batch.nochop makebox

box文件和对应的tif一定要在相同的目录下,不然后面打不开。

3、打开jTessBoxEditor矫正错误并训练

打开jTessBoxEditor.jar

tesseract-OCR字库训练

 

找到tif图,打开,并校正,校正完,保存即可。

tesseract-OCR字库训练

 

 

 

注:汉字修改setting中字体

4、训练

只要在命令行输入命令即可。

tesseract mjorcen.me.exp0.jpgmjorcen.me.exp0 nobatch box.train

unicharset_extractormjorcen.me.exp0.box

tesseract-OCR字库训练

 

手动新建一个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.

如图:

tesseract-OCR字库训练

 

命令行输入,合并五个文件:

combine_tessdata me.

tesseract-OCR字库训练

 

得到1、3、4、5、13都不为-1,其他为-1,说明字库训练完成,得到训练好的字库。

tesseract-OCR字库训练

 

三、测试

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.

tesseract-OCR字库训练

9、合并所有文件 生成一个大的字库文件

combine_tessdata me.

tesseract-OCR字库训练