tesseract-ocr3.02的用法详解(训练词库)

对于图片的识别我们首先要进行图片的处理(包括滤波,去噪等),处理过的图片可以显著增加识别的正确率。

第一步首先下载tesseract-ocr3.02 。

第二步是下载JTessBoxEditor,因为这个组件是java开发的所以我们要装java的运行环境(其中注意如果是压缩的图片,JTessBoxEditor不能合并)。

第三步开始词库的训练

1.合并图片(图片必须为tif格式的,图片转换器ImageMagick,可以在网上下载)

 用JTessBoxEditor合并多张tif图片合并为chm.test.exp0.tif。图片命名规则如[lang].[fontname].exp[num].tif,其中[]中是变量,里面的内容可以任意写。但是下面生成的文件也要是这种格式。

2.开始生成box文件,其命令语句如下所示(其中-l是小写的L,表示语言,-psm 7 表示的是将整张图片视为一行文本来读,如果是单个词可以用-psm 8表示。。。)

3 使用JTessBoxEditor来编辑box文件 如下图所示,编辑后保存。

4创建一个font_properties,这个文件是用来描述字体的属性的。该文件可以是无格式的或者txt格式的。该文件内容如下

     test             0         0          0           0          0

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

其对应关系如上,test表示是我们自己训练的语言的名字 其他的数字表示字体的属性。

5开始训练词库

如果出现上图所示的情况说明训练成功,生成chm.test.exp0.tr(字符特征集文件)成功。

6计算字符集,生成字符集(unicharset)文件

这一步生成了unicharset文件。

7聚集字符特征inttemp、pffmtable

此时产生的Warning是说当前没有shapeTable,对我们的运行没有影响,这一步会产生一个shapeTable.

8产生字符形状正常化特征文件normproto

更改生成的normproto、inttemp、pffmtable、unicharset、shapetable这些文件的名称,将它们命名为test.normproto、test.inttemp、test.pffmtable、test.unicharset、test.shapetable(网上很多资料上面对shapetable没有重命名,会出现一个异常)。

命令行窗口会出现如下的情况。

index >= 0 && index < size_used_:Error:Assert failed:in file c:\usr\projects\bui
ldfolder\tesseract-ocr\ccutil\genericvector.h, line 512

9生成训练字库文件

当地1、3、4、5、13不为-1的时候说明训练库生成成功。

10 测试

posted on 2013-09-06 16:23  今夜有风  阅读(2297)  评论(0编辑  收藏  举报