Tesseract-OCR 字库训练

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wsp_1138886114/article/details/84098903

一、环境搭建

安装Tesseract-OCR自带下载中文字库进行识别!但是在实际使用识别效果不佳,
为了提高识别效果所以决定根据所需要的识别的内容训练字库!
字库的训练最好在Tesseract-OCR的安装目录下进行。

1、下载Tesseract-OCR引擎:使用详情请点击

2、jTessBoxEditor 下载:https://www.softpedia.com/get/Multimedia/Graphic/Graphic-Others/jTessBoxEditor.shtml
https://github.com/tesseract-ocr/tesseract/wiki/AddOns
或者: https://dl.pconline.com.cn/download/1060986.html

3、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面(你可以在安装)。

二、用jTessBoxEditor自动训练3500常用汉字

先将步骤整理如下:

三、 训练字库

先把训练用样本图像准备好。

  1. 进入Tesseract-OCR文件夹的安装目录 cd Program Files\Tesseract-OCR

  2. 打开 jTessBoxEditor ,选择 Tools -> Merge TIFF,打开对话框,选择训练样本所在文件夹,并选中所有要参与训练的样本图片,注意对话框中“文件类型”的选取png

  3. 之后有打开对话框,输入“chi_my.font.exp0.tif”,格式为tiff。其中chi_my可改为自己定义。会生成chi_my.font.exp0.tif文件。

  4. 生成“chi_my.font.exp0.box” 文件;在命令行下执行
    tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l chi_sim batch.nochop makebox
    tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l eng batch.nochop makebox

  5. 打开 jTessBoxEditor ,点击 Box Editor -> Open,选择chi_my.font.exp0.tif文件。

  6. 调整识别错误的情况。尤其是图像,字符比较多的情况。
    注意、修改后的保存需点击界面上charater后的标识为设置图标的button后,再点击save按钮。

  7. 创建字体特征文件
    echo font 0 0 0 0 0>font_properties
    会生成“font_properties” 文件。文件size显示为0字节。其实里面有‘“font 0 0 0 0 0”’内容。

  8. 训练
    tesseract chi_my.font.exp0.tif chi_my.font.exp0 -l eng -psm 7 nobatch box.train

  9. 生成字符集文件
    unicharset_extractor chi_my.font.exp0.box
    生成 “unicharset” 文件。

  10. 生成shape文件,聚集字符特征文件,字符正常化特征文件等四个文件。

    • 命令 shapeclustering -F font_properties -U unicharset -O langyp.unicharset langyp.fontyp.exp0.tr
      生成 “shapetable”“inttemp”“pffmtable” 文件。
    • 命令 mftraining -F font_properties -U unicharset -O langyp.unicharset langyp.fontyp.exp0.tr
      生成 “pinyin.unicharset” 文件。
    • 命令 cntraining langyp.fontyp.exp0.tr
      生成 “normproto” 文件。
  11. 更名,合并训练文件
    rename normproto langyp.normproto
    rename inttemp langyp.inttemp
    rename pffmtable langyp.pffmtable
    rename unicharset langyp.unicharset
    rename shapetable langyp.shapetable
    合并训练文件,
    combine_tessdata langyp.
    生成langyp.traineddata文件。

  12. 将生成的 “langyp.traineddata” 语言包文件拷贝到tesseract的tessdata 目录下,
    就可以用它来进行中文字符识别了。

实例:
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>unicharset_extractor pinyin.font.exp0.box
Extracting unicharset from pinyin.font.exp0.box
Wrote unicharset file ./unicharset.
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>shapeclustering -F font_properties -U unicharset -O pinyin.unicharset pinyin.font.exp0.tr
Reading pinyin.font.exp0.tr …
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>mftraining -F font_properties -U unicharset -O pinyin.unicharset pinyin.font.exp0.tr
Read shape table shapetable of 27 shapes
G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>cntraining pinyin.font.exp0.tr
Reading pinyin.font.exp0.tr …
Clustering …

G:\Program Files (x86)\jTessBoxEditorFX\samples\pinyin>combine_tessdata pinyin.
Combining tessdata files

鸣谢
https://www.cnblogs.com/zhongtang/p/5555950.html
自动训练3500常用汉字:https://blog.csdn.net/woaipangruimao/article/details/78741022
https://blog.csdn.net/duanshao/article/details/79835651
https://blog.csdn.net/woaipangruimao/article/details/78685727
http://www.cnblogs.com/wzben/p/5930538.html

https://blog.csdn.net/sylsjane/article/details/83751297

猜你喜欢

转载自blog.csdn.net/wsp_1138886114/article/details/84098903