为了提高Tesseract库的中文识别率,可以对它进行中文字的训练。

1.首先安装Tesseract。这里注意要安装,因为安装的程序里面包含其他训练用到的程序,编译版本没有这些工具。


2.下载jTessBoxEditor工具。这个工具是Java写的,运行需要JRE。这个工具主要是用来修改BOX文件的,用来校对文字。下图为该工具的目录,直接点击红框中的程序即可跑起来。


这次准备让库可以识别取消这两个字,准备了5张图:


3.生成tif格式的文件

最好将图片都放在Tesseract库的安装目录下,然后就在这个目录下进行操作。点击jTessBoxEditor的Tools按钮中的Merge TIFF。然后将我们做样本的5张图片全部选中,点击打开。这时候会弹出另一个保存对话框,就是我们想要的tif文件,对于tif文件命名规则 [lang].[fontname].exp[num].tif。其中lang是语言,fontname是字体。按自己需求自行设定即可。点击保存,这时候目录下就有我们的tif文件了。




4.生成BOX文件

首先打开命令行,进入Tesseract目录,输入命令:tesseract.exe chi.myself.exp0.tif chi.myself.exp0 batch.nochop makebox



5.校对文字

用jTessBoxEditor打开刚才生成的tif文件


我们会发现,文字显示的信息是不对的。


我们需要把每张图片的Char目录下的字符都改正过来。现在的Tesseract库将 取消 识别成了四部分,所以有1,2,3,4四行,我们需要它校正对两行,而且字符应该是 取消 。如下操作:



这个时候这两部分就合在一起了。但是Char这列显示的是 H,应该改成取。如下操作:


其他的字符同样操作,最后的效果就是这样了:


我这里一共有5张图,都把他们改好以后,点击Save即可。这时候我们可以看一下chi.myself.exp0.box文件(记事本打开即可),会发现里面做好了校正。


注:这步校正工具也可以在box文件里直接进行,但容易出错。

6.生成.tr文件

tesseract.exe  chi.myself.exp0.tif chi.myself.exp0  nobatch box.train


7.生成unicharset文件。

unicharset_extractor chi.myself.exp0.box



7.新建font_properties文件

用记事本新建一个明文font_properties文件,内容格式为:

<fontname> <italic> <bold> <fixed> <serif> <fraktur>

用记事本如:myself 0 0 0 0 0  记住是5个0。

7.运行下面三条命令:

shapeclustering.exe -F font_properties.txt -U unicharset chi.myself.exp0.tr
mftraining.exe -F font_properties.txt -U unicharset -O unicharset chi.myself.exp0.tr
cntraining.exe chi.myself.exp0.tr


8.重命名

把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上myself.  注意有 点 。如下图:

执行命令

combine_tessdata myself.

生成这个文件,说明我们成功了。

将该文件拷贝到tessdata文件里,就可以进行测试使用了