Tesseract 训练介绍

 
训练步骤:

以前我以为训练就是通过将官方提供的中文字库将不准确的字库进行调整,然后达到自我修定这样的一个过程,其实是错了,所谓的训练其实就是制作一种新的语言而以。由于模拟器上的字体多变,官方提供的中文字库(训练好的字库)识别率很低,也不一定符合我们的要求,于是我们将制定自已的字库文件

 

首先需要找到相应的中文汉字大全,我在测试中在网上找到一个汉字库,不是很全。主要做为demo演示一下效果而以。比如我的“邹”字就没有!

下载地址: http://pan.baidu.com/s/1jGjwm5C

 

生成tif图像文件

  • 如:chi.duomi.exp0.tif ([lang].[fontname].exp[num].tif)
  • 最早我是通过自已写的java代码,然后将这些汉字drawString的方式搞成一张图,转换成tif,以后发现其实JTextBoxEditor工具已带了这个功能。
  • 这一步的关键就是要找到模拟器中的字库,将模拟器中的字库给分离出来,放到自已的操作系统中。如果不知道是什么字体,有个网站叫求字体的网站,可以找出相似的字体。地址: http://www.qiuziti.com/ ,然后通过图象处理软件,最好将字体的大小也弄到一致,我是通过fireworks试输入相应的字体大小,当达到重合的时候,我就知道了字体大小了。

然后由JTextBoxEditor产生一个Tif图象和一个Box文件。选择好字体,以及字体大小,Tesseract识别的核心就是通过这个box文件来校对字样。

 

 

 

  • 需要选中Anti-Aliasing 选项,要不出来的字体没有去锯齿功能。不符合我们测试用例中的文字。
  • 当然制作box文件也可以由命令生成,但首先你得需要有一个需要识别的所有字的tif图象。命令格式:



 

E:\Tesseract-ocr\tesseract.exe chi.duomi.exp0.tif chi.duomi.exp0 batch.nochop makebox

运行以上命令也会产生一个box文件。产生box文件的过程是必须的,也是最重要的,没有box文件以下的内容都无法进行。

 

产生字符特征文件

 

tesseract chi.duomi.exp0.tif chi.duomi.exp0 nobatch box.train

 

这一步将会产生 chi.duomi.exp0.tr文件和一个 chi.duomi.exp0.txt文件,txt文件貌似没什么用,看看而以。

 

计算字符集

unicharset_extractor chi.duomi.exp0.box

   这一步会产生一个unicharset字符集文件.

 

 

聚集字符特征

在运行mftraining这一步之前,需要手工建立一个文件font_property,内容为如下

duomi 0 0 0 0 0

 

格式为: <fontname> <italic> <bold> <fixed> <serif> <fraktur>

mftraining -U unicharset -O chi.unicharset chi.duomi.exp0.tr

 

使用上一步产生的字符集文件unicharset,来生成当前新语言的字符集文件chi.unicharset。同时还会产生图形原型文件inttemp和每个字符所对应的字符特征数文件pffmtable。最重要的就是这个inttemp文件了,他包含了所有需要产生的字的图形原型。

 

cntraining chi.duomi.exp0.tr

 

这一步产生字符形状正常化特征文件normproto。

 

 

产生字典文件(可选)

  • wordlist2dawg freq.txt chi.freq-dawg chi.unicharset
  • wordlist2dawg wordList.txt chi.word-dawg chi.unicharset

freq.txt 存放出现频率较高的字符;wordList.txt存放所有字符集,但是这个在识别率上好像没多少用处,可能主要为提高识别效率做的吧。

同样的方法产生punc-dawg文件(符号)、number-dawg文件(数字)以及user-words文件(用户自定义字符,通常为空)。

如果没有这几个dawg文件,可以把官方的语言包解压,然后分离出这些文件,解压语言包的命令是combine_tessdata

 

合并训练文件

  • 进行这一步以前需要将上面产生的文件都加个前缀chi.
combine_tessdata chi.

这一步会产生最终的chi.traineddata文件。将chi.traineddata复制到tessdata目录中就算完事了,可以进行测试了

 

测试

tesseract image.png out -l chi

out表示输出结果 -l后面的参数表示使用我们刚才训练的chi字库。

 

总结

我写了两个bat文件,可以做为参考:

 http://pan.baidu.com/s/1qWBAmTI 

 http://pan.baidu.com/s/1f8J86 

先运行ready.bat 再运行run

 

参考手册

关于一些命令的使用方法可以参考下: 

 http://tesseract-ocr.googlecode.com/svn-history/trunk/doc/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值