Tesseract-OCR

使用 jTessBoxEditor 训练字库


1. 安装 jTessBoxEditor

  1. 官方网址
  2. sourceforge
  3. jTessBoxEditor-2.3.1.zip

2. 环境变量配置

此处省略,自行百度吧

制作训练样本

  1. 运行jTessBoxEditor工具,点击Tools
    a
  2. 点击Merge TIFF。
    a
  3. 文件类型选择All Image Files,选择样本图片,点击打开.
    a
  4. 文件名输入num.font.exp0.tif,文件类型选择TIFF,点击保存。
    a
  5. 点击确定。
    a
  6. 生成Box File文件。打开cmd命令行,以管理员身份运行
  7. 执行命令

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

生成的box文件为num.font.exp0.box,box文件为Tesseract识别出的字符及其坐标。
$\color{#FF0000}{注:Make Box File 文件名有一定的格式,不能随便乱取名字,命令格式为:}$

tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox

其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。

  1. 将上一步生成的.box和.tif样本文件放在同一目录。
  2. 运行jTessBoxEditor工具,点击Box Editor。
  3. 点击Open。
  4. 选择之前生成的num.font.exp0.tif,点击打开。
  5. 这里必须修改识别错误的字符,否则做出来的traineddata文件也是错的。可以在下面的界面中修改并保存,也可以直接在traineddata文件中修改。
  6. 定义字体特征文件。创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:

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

    其中fontname为字体名称,必须与[lang].[fontname].exp[num].box中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。

    这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:

    font 0 0 0 0 0

    这里全取值为0,表示字体不是粗体、斜体等等。

  7. 生成语言文件。在样本图片所在目录下创建一个批处理文件,输入如下内容:

    rem 执行改批处理前先要目录下创建font_properties文件 
    
    echo Run Tesseract for Training.. 
    
    tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train 
    
    
    echo Compute the Character Set.. 
    
    unicharset_extractor.exe num.font.exp0.box 
    
    mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 
    
    
    echo Clustering.. 
    
    cntraining.exe num.font.exp0.tr 
    
    
    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.
  8. 执行批处理文件, num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到程序的样本文件夹里,就可以使用了。
最后修改:2020 年 12 月 03 日 05 : 12 PM
如果觉得我的文章对你有用,请随意赞赏