tesseract 批量训练自己的字库

Windows tesseract 3.05。

通过上一篇博客获取训练步骤。这里说一说重要的的训练流程。

  • 训练前的说明(参考

要训练自己的语言对应的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 ,这个文件就是最终训练出来语言库,他只是一些输入文件的串联,用一张表记录这与已知文件类型的偏移量。




tesseract训练自己的字库需要的命令

rem 执行改批处理前先要目录下创建font_properties文件 

echo Run Tesseract for Training.. 
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train     

这里可以生成需要的 .tr 文件

 
echo Compute the Character Set.. 
unicharset_extractor.exe num.font.exp0.box 

这里生成需要的unicharset文件

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

这里会生成需要的 inttemp,num.unicharset ,pffmtable, shapetable文件

echo Clustering.. 
cntraining.exe num.font.exp0.tr 

这里会生成 normproto文件

echo Rename Files.. 
rename normproto num.normproto 
rename inttemp num.inttemp 
rename pffmtable num.pffmtable 
rename shapetable num.shapetable  

echo Create Tessdata.. 
combine_tessdata.exe num. 

合并完成后生成最终的 traineddata文件

echo. & pause

将num.traineddata文件移入tessdata文件夹中,测试自己的test.png识别效果。


  • 小批量训练自己的字库

准备好训练数据集: tif图像/box标记文件(注意命名格式 见上一篇)

批量训练时,可以通过jTessBoxEditor软件将多个tif图片合并,然后box文件可以通过Windows批处理命令合并。这里需要注意的是!!!Box文件得格式,是 char x y w h page,因此在合并时要把page按对应得tif图像顺序修改为0...1...2...

然后在CMD命令行输入 copy *.box all.box,随后按照tif合并时的名字改为同名box文件.



训练命令如上,只是要将文件名全都输入到命令行

example:

..\tesseract char.font.exp.tif char.font.exp nobatch box.train
..\training\unicharset_extractor char.font.exp.box
..\training\mftraining -F font_properties.txt -U unicharset -O unicharset char.font.exp.tr
..\training\cntraining char.font.exp.tr
rename normproto char.normproto
rename shapetable char.shapetable
rename inttemp char.inttemp
rename pffmtable char.pffmtable
..\training\combine_tessdata char.

将生成的char.traineddata复制到tessdata中 即可进行测试。


猜你喜欢

转载自blog.csdn.net/github_38657489/article/details/80199952