训练步骤:
以前我以为训练就是通过将官方提供的中文字库将不准确的字库进行调整,然后达到自我修定这样的一个过程,其实是错了,所谓的训练其实就是制作一种新的语言而以。由于模拟器上的字体多变,官方提供的中文字库(训练好的字库)识别率很低,也不一定符合我们的要求,于是我们将制定自已的字库文件
首先需要找到相应的中文汉字大全,我在测试中在网上找到一个汉字库,不是很全。主要做为demo演示一下效果而以。比如我的“邹”字就没有!
生成tif图像文件
- 如:chi.duomi.exp0.tif ([lang].[fontname].exp[num].tif)
- 最早我是通过自已写的java代码,然后将这些汉字drawString的方式搞成一张图,转换成tif,以后发现其实JTextBoxEditor工具已带了这个功能。
- 这一步的关键就是要找到模拟器中的字库,将模拟器中的字库给分离出来,放到自已的操作系统中。如果不知道是什么字体,有个网站叫求字体的网站,可以找出相似的字体。地址: http://www.qiuziti.com/ ,然后通过图象处理软件,最好将字体的大小也弄到一致,我是通过fireworks试输入相应的字体大小,当达到重合的时候,我就知道了字体大小了。
然后由JTextBoxEditor产生一个Tif图象和一个Box文件。选择好字体,以及字体大小,Tesseract识别的核心就是通过这个box文件来校对字样。
- 需要选中Anti-Aliasing 选项,要不出来的字体没有去锯齿功能。不符合我们测试用例中的文字。
- 当然制作box文件也可以由命令生成,但首先你得需要有一个需要识别的所有字的tif图象。命令格式:
E:\Tesseract-ocr\tesseract.exe chi.duomi.exp0.tif chi.duomi.exp0 batch.nochop makebox
运行以上命令也会产生一个box文件。产生box文件的过程是必须的,也是最重要的,没有box文件以下的内容都无法进行。
产生字符特征文件
tesseract chi.duomi.exp0.tif chi.duomi.exp0 nobatch box.train
这一步将会产生 chi.duomi.exp0.tr文件和一个 chi.duomi.exp0.txt文件,txt文件貌似没什么用,看看而以。
计算字符集
unicharset_extractor chi.duomi.exp0.box
这一步会产生一个unicharset字符集文件.
聚集字符特征
在运行mftraining这一步之前,需要手工建立一个文件font_property,内容为如下
duomi 0 0 0 0 0
格式为: <fontname> <italic> <bold> <fixed> <serif> <fraktur>
mftraining -U unicharset -O chi.unicharset chi.duomi.exp0.tr
使用上一步产生的字符集文件unicharset,来生成当前新语言的字符集文件chi.unicharset。同时还会产生图形原型文件inttemp和每个字符所对应的字符特征数文件pffmtable。最重要的就是这个inttemp文件了,他包含了所有需要产生的字的图形原型。
cntraining chi.duomi.exp0.tr
这一步产生字符形状正常化特征文件normproto。
产生字典文件(可选)
- wordlist2dawg freq.txt chi.freq-dawg chi.unicharset
- wordlist2dawg wordList.txt chi.word-dawg chi.unicharset
freq.txt 存放出现频率较高的字符;wordList.txt存放所有字符集,但是这个在识别率上好像没多少用处,可能主要为提高识别效率做的吧。
同样的方法产生punc-dawg文件(符号)、number-dawg文件(数字)以及user-words文件(用户自定义字符,通常为空)。
如果没有这几个dawg文件,可以把官方的语言包解压,然后分离出这些文件,解压语言包的命令是combine_tessdata
合并训练文件
- 进行这一步以前需要将上面产生的文件都加个前缀chi.
combine_tessdata chi.
这一步会产生最终的chi.traineddata文件。将chi.traineddata复制到tessdata目录中就算完事了,可以进行测试了
测试
tesseract image.png out -l chi
out表示输出结果 -l后面的参数表示使用我们刚才训练的chi字库。
总结
我写了两个bat文件,可以做为参考:
http://pan.baidu.com/s/1qWBAmTI
先运行ready.bat 再运行run
参考手册
关于一些命令的使用方法可以参考下:
相关推荐
Tesseract中文训练库
一个自制的tesseract训练脚本,可以批量生成box文件,批量修改box文件,批量训练tesseract.适合批量训练tesseract
Tesseract-OCR字库训练,其中包含三个部分: 1、jTessBoxEditor安装 2、字库训练 3、合并字库
一个简单的Tesseract多样本合并训练测试,比如用tesseract训练得有多个样本,如果想要把这多个训练的样本进行合并,则该实例记录文档是个不错的选择(简单明了,避免趟坑:〉)
tesseract训练字库
tesseractocr中的中文训练库,解压到Tesseract-OCR\tessdata目录
本资源包括工具(zip)和训练好的模型以及一个java文件 工具:jTessBoxEditor工具用于调整图片上文字的内容和位置 训练好的模型在tessdata下面。注:在java代码下使用训练好的模型,训练后的模型必须放 到tessdata...
1.7.3版本是针对tesseract ocr3.4-3.5版本的训练库制作工具,别搞错了; 主要用来合并TIF文件,纠正识别错误的文字
用于Tesseract-OCR 字体库训练工具,亲测可用 教程请访问https://blog.csdn.net/qq_29099209/article/details/81633538
内含300张预处理后的图片样本,对其进行矫正训练可得到所需的数字识别库
Tesseract-ocr训练字库
公司项目要用到Tesseract 生成训练集的时候特别难受就写了个这个东西
tesseract-ocr的简体中文语言训练数据,来自google官网,可以用于中文的图片验证码识别,对于比较标准的字体还是有不错的识别率的
Tesseract OCR 积累训练库
为提高tesseract识别度,需配置语言包。本文件是英文环境的语言包。
Tesseract离线安装包(leptonica+tesseract+中英文训练包) 支持全离线安装
经过多次训练的Tesseract中文语言包,效果比网上17M的40M的好太多了,众所周知Tesseract除了中文识别不太强,其他语言还是蛮可以的
tesseract样本训练工具-jTessBoxEditor2.2.zip 亲测可用
tesseractV5.0训练整合包,配合使用更香博客https://blog.csdn.net/qq_42874244/article/details/106833603
Tesseract-OCR的中文训练库,解压到Tesseract-OCR\tessdata目录