tessract-ocr 3.02 识别库训练与应用

本文主要参考官方文档编写实践而成

识别库训练与应用步骤

通过jtessboxeditor生成.tiff图片合集

打开jTessBoxEditor->Tools->Merge Tiff,选择要识别的.tiff文件,生成图片集保存为totol.tiff
tessract-ocr 3.02 识别库训练与应用_第1张图片
tessract-ocr 3.02 识别库训练与应用_第2张图片
tessract-ocr 3.02 识别库训练与应用_第3张图片

-生成Box 文件

  1. 打开命令行定位到刚才totol.tiff文件的目录下。
    我的文件是保存在D:\img下面
    tessract-ocr 3.02 识别库训练与应用_第4张图片
  2. 运行tessract如下命令生成box文件

    //tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox
    tesseract eng.totol.exp0.tif eng.totol.exp0 batch.nochop makebox

    运行完以后img目录下面将生成一个eng.totol.exp0.box文件
  3. 打开jTessBoxEditor->Box Editor->open选择之前生成的totol.tiff文件,修正识别结果并保存
    tessract-ocr 3.02 识别库训练与应用_第5张图片

生成tr文件

运行命令
tesseract eng.totol.exp0.tif eng.totol.exp0 box.train
img目录下面生成了eng.totol.exp0.tr、eng.totol.exp0.txt两个文件

计算训练库的字符集

运行命令
unicharset_extractor eng.totol.exp0.box
img目录下面生成了 unicharset文件

字符属性文件font_properties

  1. 新建一个文件font_properties不要拓展名,保存后打开编辑输入
    totol 0 0 0 0 0

聚类

  1. 运行命令生成shapetable文件
    shapeclustering -F font_properties -U unicharset eng.totol.exp0.tr
  2. 运行命令生成eng.unicharset、inttemp、pffmtable、normproto文件
    mftraining -F font_properties -U unicharset -O eng.unicharset eng.totol.exp0.tr
    cntraining eng.totol.exp0.tr

数据字典

  1. 这img文件下新建一个words_list文件输入你的文字库
    格式一个字符一行,我这里识别小写字母和数字
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    a
    ....
  2. 运行命令生成eng.word-dawg文件
    wordlist2dawg words_list eng.word-dawg eng.unicharset

编写unicharambigs文件

unicharambigs文件是用来纠正识别错误的具体含义参照官方文档
v1
1 m 2 r n 0

合成eng.traineddata文件

  1. 将hapetable, normproto, inttemp, pffmtable、(unicharambigs)加上lang.前缀(例子是eng.)
  2. 运行命令生成traineddata文件
  3. combine_tessdata eng.

应用

将eng.traineddata文件复制到tessdata 目录下

你可能感兴趣的:(知识总结)