Tesseract3.02训练生成新的识别语言库的详细步骤

说明:本文参考了很多前辈的资料,主要是:tesseract-OCR3.0语言库训练步骤,再结合自己的实践操作,个人感觉官网的教程是最权威的,耐着性子看完,收获很大,比网上到处看别人理解的更好,毕竟每个人理解的都是自己的,不全面,当然也包括本文,对英文还可以的,还是推荐去官网看训练教程,呵呵


第一部分:训练前的说明

        要训练一个新语言(自定义语言或者某种自然语言)对应的traineddata文件,需要产生下列过程文件:

  1. lang.config
  2. lang.unicharset  //语料的所有字符
  3. lang.unicharambigs  //取代了原来的DangAmbigs文件,手工设置的
  4. lang.inttemp
  5. lang.pffmtable
  6. lang.normproto
  7. lang.punc-dawg
  8. lang.word-dawg
  9. lang.number-dawg
  10. lang.freq-dawg

      在这十个文件中,红色标示(共4个,都是训练过程中生成的)的是必须的,其他的文件可选。当这些文件都准备好之后,再使用combine_tessdata进行最后的合并工作,生成lang.traineddata ,这个文件就是最终训练出来语言库,他只是一些输入文件的串联,用一张表记录这与已知文件类型的偏移量。

同时lang.user-words,may still be provided separately.

>>>注释:如果你只是想识别有限的字体,比如一种字体,只需要一个单独的训练页就够了,其它的文件不需要提供,这样反而会大幅度提高准确率,当然了,这要根据你的应用决定。旧版的DangAmbigs现在已经用unicharambigs文件取代。


第二部分:训练过程

1、训练材料的准备和获得
       首要要确定要用的所有字符,准备一个包含这样字符的类似Word的文档处理程序,不要使用图片进行训练,此外特别需要注意以下几点:
  • 每个字符至少需要10个样本,对罕见的字符5个样本也可以
  • 对高频字符至少需要20个样本
  • 不要自作聪明地把字符聚集在一起,非字符聚集在一起,而是要保留其原来的样子,这样使得文本行分割程序更容易找到特殊字符的基线。

改进:tesseract3.03添加了自动化处理的工具:

  准备一个包含训练字符的txt文件training_text.txt,然后找到你需要识别的字体文件,比如你想识别宋体的字符,就找到宋体的truetype或者opentype文件。然后运行下面的命令来创建一个tif/box文件对。

training/text2image --text=training_text.txt --outputbase=eng.TimesNewRomanBold.exp0 --font='Times New Roman Bold
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值