Tesseract OCR的训练方法

网上有关于很多Tesseract OCR的训练文章,我看了很多,终于成功成功了一会,写下此文做个记录。

预备工作:

1.下载安装Tesseract OCR,我安装的版本是3.02.02

2.下载安装jTessBoxEditor,这个下载下来是不用安装的,不过运行的时候需要java虚拟机,要打开jar文件,因此需要最好安装一遍java环境,我对java还不是很熟,光安装一个jre是不行的。我百度了一下怎么打开jar文件,后来安装了这个

3.用画图制作几张图片,jpg格式就好,就是在画图软件中用画笔话同样的几个数字,为了保证图片大小一样,各种另存为再清除重画就行。

开始训练

1.合并样本图片,保存为tif格式。

运行jTessBoxEditor,打开菜单栏Tools->Merge TIFF。为了选中多张图片,记得用Ctrl或Shift。合并成num.font.exp0.tif文件。这个名字很讲究,必须是:

[lang].[fontname].exp[num].tif

2.生成Box File文件。

执行命令:

tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox

3.校正

    再次用上了jTessBoxEditor,打开Box Editor这栏,Open那个num.font.exp0.tif,box文件不用你管,他会自动关联,要是没有关联出来,你该检查一下tif同目录下有没有box文件。所以这个过程建议你不要自己去变动该目录下的任何文件。用该工具手工去更正每张图片的识别结果,别漏了。然后点save,就可以关闭软件了。

4.定义字体特征文件

Tesseract-OCR3.01以上的版本在训练之前需要创建一个名称为font_properties的字体特征文件——font_properties,这个文件不能含有BOM头,我的方法是,新建一个记事本文件,重命名为font_properties,用Notepad++打开,编辑内容:

font 0 0 0 0 0 

然后点击菜单【格式】->【转为UTF-8无ROM编码格式】,再选【以 UTF-8无ROM格式编码】,保存退出。

编辑的内容是有规定了,格式为:

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

fontname表示自定义的字体名字,后面是属性,0表示否,1表示是。

5.生成过度文件,老实说,我都不知道这个过程我都干啥了,但目的很明确就是生成语言库文件num.tessdata

我先给出命令:

1)tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train  
   2)unicharset_extractor.exe num.font.exp0.box  

3)mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr  

4)cntraining.exe num.font.exp0.tr  

5) rename normproto num.normproto  
rename inttemp num.inttemp  
rename pffmtable num.pffmtable  
rename shapetable num.shapetable

6)combine_tessdata.exe num. 


5)是分开一步一步的,6)的结果要保证1 3 4 5 13这些行不是-1才算正常,还有num后面的点"."别漏了。

num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到Tesseract-OCR-->tessdata目录下。可以用它来进行字符识别了。

检验效果

识别那些jpg图片

tesseract.exe number.jpg result -l num

把num改成eng对比试试。

本文有参照这篇文章,特此声明。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值