[原创]如何提高Tesseract-OCR的识别精度
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何提高Tesseract-OCR的识别精度
概述:
本文介绍了提高Tesseract-OCR识别精度的步骤及注意事项。
通过对Tesseract-OCR 的训练能有效提高Tesseract-OCR的识别精度,特别是对与验证码识别方面有很大帮助。
关键字:
Tesseract-OCR,验证码,自动识别,手册,教程
1.使用步骤
1.1.Make Box Fil es
mand
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] [-l specifiedLang] batch.nochop makebox
1.1.
2.output
[lang].[fontname].exp[num].box
1.2.Fix Box
mand
jTessBoxEditor
1.2.2.output
1.3.Run Tesseract for Training
mand
tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] nobatch box.train
1.3.
2.output
[lang].[fontname].exp[num].tr
[lang].[fontname].exp[num].txt
pute the Character Set
mand
unicharset_extractor [lang].[fontname].exp[num].box
1.4.
2.output
unicharset
1.5.Clustering
mand1
mftraining -F font_properties -U unicharset [lang].[fontname].exp[num].tr
1.5.
2.output1
inttemp mfunicharset Microfeat pffmtable
mand2
cntraining [lang].[fontname].exp[num].tr
1.5.4.output2
normproto
bine
mand
combine_tessdata [dir/]lang.
1.6.
2.output
[lang].traineddata
1.7.Test
mand
tesseract specifiedTif output -l specifiedLang -psm 7
1.7.
2.output
output.txt
2.使用说明
2.1.关于名称的说明
在各个步骤中多处出现类似[lang].[fontname].exp[num]的名称,这个是按照tesseract的使用说明写的,但在实际使用过程中并不是必须的,可以从简。
例如:my.calibri.exp0.tif写成my.tif也是可以的。
2.2.关于步骤的说明
2.2.1.Make Box File
[-l specifiedLang]个人认为主要是为了减少步骤2(Fix Box)的工作量而使用的。
选择合适的文件可以让生成的box更加准确,减少修改工作量。
2.2.2.Fix Box
jTessBoxEditor是一个tesseract-OCR的辅助工具,主要用来修改生成的Box。
它还有2个不错的功能就是:1、合并tif文件;2、利用一个文本和设置的字体生成一个tif图片。
在用jTessBoxEditor修改生成的Box过程中需要注意,如果tesseract-OCR没有认出某个tif图片上的文字,最好不要自行添加,也不要对粘连的字符进行split或对分开的字符进行merge。
因为很可能即使这么做了,在步骤3(Run Tesseract for Training)里也只是会收到一个错误提示。
通过用jTessBoxEditor对识别错误的Box进行修改,可以有效提高Tesseract-OCR 的识别精度,特别是在图片中的字符出现粘连的情况下。
jTessBoxEditor的下载地址是:
/projects/vietocr/files/jTessBoxEditor/
2.2.
3.Clustering
按照tesseract-OCR的说明,在这个步骤里是可以一次对多个tr进行操作的,但我每次都提示程序出错,所以我采取合并文件的方式来变通。
bine
这个步骤所生成的traineddata文件就是tesseract-OCR进行识别的关键。
在执行combine_tessdata命令前,请将步骤4(Compute the Character Set)和5(Clustering)中生成的6个文件重命名,在文件名前加上“lang.”。
例如:lang是my,
则对应的文件名就是
my. unicharset
my.inttemp
my.mfunicharset
my.Microfeat
my.pffmtable
my.normproto)
如果命令参数中用dir指定了目录,请将上述5个文件一起复制到指定的目录中。
2.2.5.Test
生成traineddata后,就可以用训练所使用的tif图片进行测试。
可以通过-l命令指定使用新生成的traineddata。
例如:my. traineddata则在使用时就输入“-l my”(即不带后缀的文件名)。
测试的结果将会输出到output.txt中,可以和tif图片进行比较。
如果发现识别率不高,请重新进行步骤2(Fix Box)。