由于tesseract的中文语言包“chi_sim”对中文手写字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。

步骤:

1、工具准备:

(1)官方文档:https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00

(2)Java虚拟机,由于jTessBoxEditor的运行依赖Java运行时环境,所以需要安装Java虚拟机。

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(3)jTessBoxEditor2.0工具,用于调整图片上文字的内容和位置,

下载地址:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/

安装包解压后双击里边的“jTessBoxEditor.jar”,或者双击该目录下的“train.bat”脚本文件,就可以打开该工具了。

2、样本图片准备:(进行训练的样本图片数量越多越好)

这里只准备2种不同字体样本进行测试:

3、使用jTessBoxEditor生成训练样本的的合并tif图片:

(1)打开jTessBoxEditor,选择Tools->Merge TIFF,进入训练样本所在文件夹,选中要参与训练的样本图片:

(2)点击 “打开” 后弹出保存对话框,选择保存在当前路径下,文件命名为 “zwp.test.exp0.tif” ,格式只有一种 “TIFF” 可选。

tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言,fontname是字体,num为自定义数字。

比如我们要训练自定义字库 zwp,字体名test,那么我们把图片文件命名为 zwp.test.exp0.tif

4、使用tesseract生成.box文件:

在上一步骤生成的“zwp.test.exp0.tif”文件所在目录下打开命令行程序,执行下面命令,执行完之后会生成zwp.test.exp0.box文件。

tesseract zwp.test.exp0.tif zwp.test.exp0 -l chi_sim -psm 7 batch.nochop makebox

5、使用jTessBoxEditor矫正.box文件的错误:

.box文件记录了每个字符在图片上的位置和识别出的内容,训练前需要使用jTessBoxEditor调整字符的位置和内容。

打开jTessBoxEditor点击Box Editor ->Open,打开步骤2中生成的“zwp.test.exp0.tif”,会自动关联到“zwp.test.exp0.box”文件,这两文件要求在同一目录下。调整完点击“save”保存修改。

6、生成font_properties文件:(该文件没有后缀名)

(1)执行命令,执行完之后,会在当前目录生成font_properties文件

echo test 0 0 0 0 0 >font_properties

(2)也可以手工新建一个名为font_properties的文本文件,输入内容 “test 0 0 0 0 0” 表示字体test的粗体、倾斜等共计5个属性。这里的“test”必须与“zwp.test.exp0.box”中的“test”名称一致。

7、使用tesseract生成.tr训练文件:

执行下面命令,执行完之后,会在当前目录生成zwp.test.exp0.tr文件。

tesseract zwp.test.exp0.tif zwp.test.exp0 nobatch box.train

8、生成字符集文件:

执行下面命令:执行完之后会在当前目录生成一个名为“unicharset”的文件。

unicharset_extractor zwp.test.exp0.box

9、生成shape文件:

执行下面命令,执行完之后,会生成 shapetable 和 zwp.unicharset 两个文件。

shapeclustering -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

10、生成聚字符特征文件:

执行下面命令,会生成 inttemp、pffmtable、shapetable和zwp.unicharset四个文件。

mftraining -F font_properties -U unicharset -O zwp.unicharset zwp.test.exp0.tr

11、生成字符正常化特征文件:

执行下面命令,会生成 normproto 文件。

cntraining zwp.test.exp0.tr

12、文件重命名:

重新命名inttemp、pffmtable、shapetable和normproto这四个文件的名字为[lang].xxx。

这里修改为zwp.inttemp、zwp.pffmtable、zwp.shapetable和zwp.normproto

执行下面命令:

rename normproto zwp.normproto
rename inttemp zwp.inttemp
rename pffmtable zwp.pffmtable
rename shapetable zwp.shapetable

13、合并训练文件:

执行下面命令,会生成zwp.traineddata文件。

combine_tessdata zwp.

Log输出中的Offset 1、3、4、5、13这些项不是-1,表示新的语言包生成成功。

将生成的“zwp.traineddata”语言包文件复制到Tesseract-OCR 安装目录下的tessdata文件夹中,就可以使用训练生成的语言包进行图像文字识别了。

14、测试:

输入下面命令,-l后面为训练生成的语言包。

tesseract test.PNG test -l zwp

使用新训练的语言包进行文字识别后,会发现之前识别不出来的文字也可以识别出来了。

附:最终所有的生成文件:

图像文字识别(三):Tesseract4.0训练字库,提高正确识别率相关推荐

  1. OCR文字识别:Tesseract-4.00训练字库

    由于tesseract的中文语言包"chi_sim"对中文手写字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成 ...

  2. Tesseract-ocr识别中文并训练字库操作指南

    Tesseract-ocr识别中文并训练字库操作指南 一.Tesseract-ocr识别中文 1.Tesseract-ocr下载 2.中文语言包下载 Tesseract中文语言包 chi_sim.tr ...

  3. 论文阅读笔记(五)——狐猴识别系统:一种便于狐猴个体识别的面部识别系统

    论文阅读笔记(五)--狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文简介 论文中文翻译:狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文名称:<LemurFaceID: a fac ...

  4. 【转载】Windows下Tesseract4.0识别与中文手写字体训练

    一 . tesseract 4.0 安装及使用 1. tesseract 4.0 安装 安装包下载地址: http://digi.bib.uni-mannheim.de/tesseract/tesse ...

  5. Windows下Tesseract4.0识别与中文手写字体训练

    一 . tesseract 4.0 安装及使用 1. tesseract 4.0 安装 安装包下载地址: http://digi.bib.uni-mannheim.de/tesseract/tesse ...

  6. Tesseract-OCR-v5.0中文识别,训练自定义字库,提高图片的识别效果

    1,下载安装Tesseract-OCR 安装,链接地址Index of /tesseract 2,安装成功 tesseract -v 注意:安装后,要添加系统环境变量 3,cmd指定目录到 cd C: ...

  7. Tesseract-OCR 安装、中文识别与训练字库

    简介 OCR(Optical Character Recognition):光学字符识别,是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将形 ...

  8. 图像文字识别初探(二)-FAN(Focusing Attention Network)

    图像文字识别初探(一)-CRNN(Convolution Recurrent Neural Network)和DTRN(Deep-text Recurrent Network) 图像文字识别初探(二) ...

  9. 中安OCR文字识别系统V5.0 ——OCR文字识别开发包SDK

    一.中安OCR文字识别系统V5.0简介 中安OCR文字识别系统V5.0是一种光学字符识别(OCR)软件开发包(OCR SDK):中安OCR文字识别系统V5.0为软件开发人员.系统集成商.数据加工商(B ...

最新文章

  1. 【C++】operator bool() 和 operator const bool() const
  2. 编写 Debugging Tools for Windows 扩展,第 2 部分:输出 (windbg 插件 扩展)
  3. App推广中如何寻找200个以上渠道
  4. ZooKeeper自定义数据日志目录
  5. python读取有空行的csv_如何在使用python读取CSV文件时跳过空行
  6. python图片显示英文字符_python如何解析字符串中出现的英文人名?
  7. KIE-WB / JBPM控制台Ng –配置
  8. 用纸筒做机器人_365天,每天都可以玩出新花样,卷纸筒就是这么牛的神器!
  9. JavaScript性能优化之加载与执行
  10. 9、kubernetes之statefulset控制器
  11. 人工智能ai以算法为基础_IT团队如何为AI项目奠定正确的基础
  12. POJ 3257 Cow Roller Coaster 二维背包
  13. PHP+MYSQL+SCWS 做自己的站内搜索引擎
  14. 供应链金融运营研究 -----内容运营
  15. 2015 沈阳 Frogs
  16. (三万字长文)类型即正义:TypeScript 从入门到实践系列,正式完结!
  17. 【ZT】一个程序占用内存的分类
  18. 编译安装redis6.2.6
  19. 视频教程-VUE前端开发/前后端分离-Java
  20. WPS 查找历史版本记录

热门文章

  1. kaggle (自杀分析)
  2. 【Python金融量化 1- 100 】三、流行股票指数
  3. 你写的机器学习代码占多少内存?这件事很重要,但很多人还不懂
  4. Designing GANs:又一个GAN生产车间
  5. 使用PaddleFluid和TensorFlow训练序列标注模型
  6. SQuAD文本理解挑战赛十大模型解读
  7. Linux安装配置Java1.8开发环境
  8. python100以内孪生素数_python用递归筛选法求N以内的孪生质数(孪生素数)
  9. Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】
  10. spring程序开发步骤