zoukankan      html  css  js  c++  java
  • 利用jTessBoxEditor工具进行Tesseract-OCR样本训练

    jTessBoxEditor依赖java虚拟机 , 所以要先安装 java.

    jTessBoxEditor下载地址:

    https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/jTessBoxEditor-1.5.zip/download?use_mirror=nchc

    解压后跳转到解压目录, 启动 jTessBoxEditor,命令行输入: 
    java -Xms128m -Xmx1024m -jar jTessBoxEditor.jar

    样本训练:

    0、准备样本图片
    手动用画图工具写了一些数字(或者去刷网站的验证码) , 如果是彩色图片首先做灰度化处理以提高识别率 . 全部转换成tif文件, 可以用验证码结果命名方便比对.
    1、合并图片
    打开jTessBoxEditor, 点击Tools > Merge Tiff, 选中所有准备好的tif文件,并把生成的tif文件放到一个新目录下, 命名为num.font.exp0.tif
    注意: num是自定义的语言名称, font是自定义的字体名称.
    问题: 我在使用jTessBoxEditor合并tif文件是报couldn't seek , 未找到原因, 后来改用TiffToy进行合并成功.
    2、生成box文件
    tesseract num.font.exp0.tif num.font.exp0 [-l eng -psm 7]  batch.nochop makebox
    以上[]中的内容当返回Empty page的时候可以加上.其中 -psm 7 表示用单行文本识别,-l eng 表示使用英语语言.
    3、修改box文件 切换到jTessBoxEditor工具的Box Editor页,点击open,打开前面的tiff文件langyp.fontyp.exp0.tif,工具会自动加载对应的box文件。 逐个核对tif文件的box数据, 如果错误就进行修改, 全部检查结束后保存. 注意: box数据有翻页, 之前合并了多少tif文件就有多少页. 4、生成font_properties echo font 0 0 0 0 0 >font_properties 【语法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur> fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用。 5、生成训练文件 tesseract num.font.exp0.tif num.font.exp0 nobatch box.train 6、生成字符集文件 unicharset_extractor num.font.exp0.box 7、生成shape文件 shapeclustering -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 8、生成聚集字符特征文件 mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr 9、生成字符正常化特征文件 cntraining num.font.exp0.tr 10、更名 rename normproto num.normproto rename inttemp num.inttemp rename pffmtable num.pffmtable rename unicharset num.unicharset rename shapetable num.shapetable 11、合并训练文件,生成num.traineddata combine_tessdata num.

    以上是目录中的文件, 将生成的num.traineddata复制到Tesseract-OCR中的tessdata文件夹中即可.

    最后进行一下测试:

    tesseract test.png output -l num
    #我们使用了指令[-l num]而不是[-l eng]。这说明,我们使用的是新生成的num语言的匹配库而不是默认的eng语言匹配库.

    参考:

    http://www.cnblogs.com/zhongtang/p/5555950.html

    http://www.cnblogs.com/cnlian/p/5765871.html

    http://vietocr.sourceforge.net/training.html

  • 相关阅读:
    SVG绘制星空效果
    httpserver实现简单的上下文
    httpserver
    多协成利用互斥锁按顺序执行读取文件
    channel补充
    获取小程序的手机号
    php 简单加密解密
    goroutine channel
    json序列化和反序列化
    golang 命令行参数
  • 原文地址:https://www.cnblogs.com/CoolJayson/p/7395824.html
Copyright © 2011-2022 走看看