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

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

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract 中文英文混合识别

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

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_02

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_03

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

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract_04

3.生成tif格式的文件

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

tesseract 中文英文混合识别 tesseract-ocr 训练_识别率_05

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract 中文英文混合识别_06

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_07

4.生成BOX文件

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

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract_08

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_09

5.校对文字

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

tesseract 中文英文混合识别 tesseract-ocr 训练_中文_10

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

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract_11

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

tesseract 中文英文混合识别 tesseract-ocr 训练_识别率_12

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract_13

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

tesseract 中文英文混合识别 tesseract-ocr 训练_中文_14

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

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract_15

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

tesseract 中文英文混合识别 tesseract-ocr 训练_识别率_16

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

6.生成.tr文件



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


tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_17


7.生成unicharset文件。

unicharset_extractor chi.myself.exp0.box

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_18

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract_19


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



tesseract 中文英文混合识别 tesseract-ocr 训练_识别率_20


tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract 中文英文混合识别_21

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_22

8.重命名

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

tesseract 中文英文混合识别 tesseract-ocr 训练_中文_23


执行命令

combine_tessdata myself.

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract 中文英文混合识别_24

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

tesseract 中文英文混合识别 tesseract-ocr 训练_tesseract 中文英文混合识别_25

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

tesseract 中文英文混合识别 tesseract-ocr 训练_properties文件_26