初学tesseract(笔记)
首先安装并配置环境变量
然后的测试:
C:\Users\LENOVO>tesseract C:\Users\LENOVO\Desktop\1.png C:\Users\LENOVO\Desktop\out -l chi_sim
用tesseract 程序打开 C:\Users\LENOVO\Desktop\1.png 绝对路径(属性中位置+文件名+类型) 保存在C:\Users\LENOVO\Desktop\out(位置加文件名)
-l chi_sim语言(简体中文)
-l eng (英文)
绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。
运行方法 :点击开始–运行–输入–CMD 回车(或按windows键和R键弹出运行框—输入CMD回车)
**环境变量(environment variables)**一般是指在操作系统中用来指定操作系统运行环境的一些参数。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
环境变量分为两类:用户变量与系统变量
设置方法:在windows操作系统中可以通过我的电脑-〉系统属性-〉高级系统设置->环境变量,来设置系统的环境变量。另外也可以右击我的电脑——高级系统设置——环境变量——在系统变量里有path选项——双击打开。
下载,安装配置jdk
jTessBoxEditor:Tesseract训练工具,是一款专业的orc样本识别训练软件,基于java开发而来,可以进行Tesseract样本训练,形成自己的语言库,提高验证码识别率和准确率,比较常用的就是验证码识别方面。
训练tesseract中文识别
最好将图片都放在Tesseract库的安装目录下,然后就在这个目录下进行操作。
进入jTessBoxEditor下的train.bat
1、生成tif格式的文件
点击jTessBoxEditor的Tools按钮中的Merge TIFF。然后选中多张或一张图片,点击打开。这时候会弹出另一个保存对话框,就是我们想要的tif文件,对于tif文件命名规则
[lang].[fontname].exp[num].tif。其中lang是语言,fontname是字体。按自己需求自行设定即可。点击保存,这时候目录下就有我们的tif文件了。
2.生成BOX文件
首先打开命令行,进入Tesseract目录,输入命令:tesseract.exe chi.myself.exp0.tif chi.myself.exp0 batch.nochop makebox
(该文件记录了tesseract识别出来的每一个字和其位置坐标。)
3、校对修正文字
用jTessBoxEditor打开刚才生成的tif文件,进行校对,改好以后,点击Save即可
这时候我们可以看一下chi.myself.exp0.box文件(记事本打开即可),会发现里面做好了校正。
若出现表中无内容,可能是由于部分图片可能由于背景颜色关系,导致此张图片无法识别,可跳过继续下一张识别。
4、生成.tr文件
tesseract.exe chi.myself.exp0.tif chi.myself.exp0 nobatch box.train
(产生字符特征文件(*.tr)把修正后的box文件传回centos7系统中,删除原来在centos 7系统中的box文件)
5…生成unicharset文件
unicharset_extractor chi.myself.exp0.box
( 产生计算字符集(unicharset))
新建font_properties文件用记事本新建一个明文font_properties文件,内容格式为:
用记事本如:myself 0 0 0 0 0 记住是5个0表示字体不是粗体,斜体等等。(定义字体特征文件并聚集字符特征)
运行下面三条命令:
shapeclustering.exe -F font_properties.txt -U unicharset chi.myself.exp0.tr
mftraining.exe -F font_properties.txt -U unicharset -O unicharset chi.myself.exp0.tr
cntraining.exe chi.myself.exp0.tr
6.重命名
把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上myself.注意有 点
7.合并文件
执行命令
combine_tessdata myself.
Log输出中的Offset 1、3、4、5、13这些项不是-1,表示新的语言包生成成功。
生成myself.traineddata 再将它拷贝到tessdata文件中即可
8.测试
tesseract test.png output_2 -l num
测试我们使用的是新生成的语言库而不是默认的语言匹配库这样识别率才提高(之前一直没找到识别率没有提高的原因)
记录看到的一个提问和回答:
博主,自己训练的字库怎么和自带的chi_sim字库合并啊?不能合并的话那自己训练的字库也就没什么用了吧,识别率就更低了,就只能识别自己训练过的字了
回答:用+号连接 如 -l chi_sim+xxx 这样使用多个语言库
请问一下,我在训练的时候总是不成功,请问是否和路径有关系?
回答:训练成功了,是路径的问题,之前我box文件是另外放的一个文件夹,我把图片和box文件拷到tesseract.exe目录下之后,训练成功了
————————————————
原文链接:https://blog.csdn.net/yongshi6/article/details/50773760
下一步合并字库
首先,需要 生成的字符集.tif文件,位置文件 .box ,只要有这两个文件在,就可以合并字典
1、先生成相对应的 .tr 文件
tesseract why.3.tif why.3 nobatch box.train
tesseract why.4.tif why.4 nobatch box.train
tesseract why.5.tif why.5 nobatch box.train
2、从所有文件中提取字符
unicharset_extractor why.3.box why.4.box why.5.box
3、生成字体特征文件
新建的font文件中 把所有box文件对应的 字体特征都加进去
why.4 0 0 0 0 0
why.3 0 0 0 0 0
why.5 0 0 0 0 0
mftraining -F font -U unicharset why.3.tr why.4.tr why.5.tr
4 、聚集所有.tr 文件
cntraining why.3.tr why.4.tr why.5.tr
5 、重命名文件,我把unicharset, inttemp, normproto, pfftable 这几个文件加了前缀why.
6、合并所有文件
生成一个大的字库文件
combine_tessdata why.
原文链接:https://blog.csdn.net/why200981317/article/details/48265621
更多推荐
所有评论(0)