tesseract 3.02使用及语言库训练
来源:互联网 发布:黑暗森林威慑 知乎 编辑:程序博客网 时间:2024/05/22 07:50
tesseract使用
Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文),github上有工程。地址为https://github.com/tesseract-ocr/tesseract。
使用
- 安装,可以安装发布版本.exe,直接可以使用
- 使用
1) 准备一副待识别的图像,input.jpg,放到tesseract-OCR的安装目录下
2)打开命令行,(如果装在C盘,用管理员身份启动),打开目录到tesseract-OCR的安装目录,输入指令tesseract.exe input.jpg output -l eng
,其中output为输出的.txt文件,eng表示识别的语言为英文。查看output可知道识别准确率不高。
训练样本
- 下载工具jTessBoxEditor,其中有个.jar文件,可以直接双击使用(由于该工具由java开发,需要安装jdk)
- 准备样本图像(至少5张),和input.jpg里的内容类似
- 合并样本图像。运行jTessBoxEditor–>Tools–>Merge Tiff,在弹出的对话框中shift选中所有样本图片,合并成num.font.exp0.tif文件。
- 生成Box File文件。将生成的num.font.exp0.tif放到tesseract-OCR目录下,打开命令行,执行
tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox
生成num.font.exp0.box文件,BOX文件为Tessercat识别出的文字和其坐标。 - 文字校正。运行jTessBoxEditor–>Box Editor,打开num.font.exp0.tif,可以看到有些字符识别不正确,通过该工具手动对每张图片中识别错误的字符进行校正。校正完成后保存。
- 定义字体特征文件。Tesseract-OCR3.01以上的版本在训练之前需要创建一个名称为font_properties的字体特征文件。font_properties不含有BOM头,文件内容格式如下:
<fontname> <italic> <bold> <fixed> <serif> <fraktur>
这里为font 0 0 0 0 0
取值全为0表示字体不是粗体、斜体等等。ps:将此文件放置到tesseract目录下。 - 生成训练文件。命令行执行
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train
生成num.font.exp0.tr训练文件。 - 生成字符集文件。命令行执行
unicharset_extractor.exe num.font.exp0.box
,生成unicharset字符集文件。 - 生成shape文件。命令行执行
shapeclustering.exe -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
, 生成shape文件 - 生成聚集字符特征文件。命令行执行
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
,生成3个特征字符文件,unicharset、inttemp、pffmtable - 生成字符正常化特征文件。命令行执行
cntraining.exe num.font.exp0.tr
,生成正常化特征文件normproto - 更名。命令行执行
rename normproto num.normproto
,把步骤10-11生成的特征文件进行更名。
rename inttemp num.inttemp
rename pffmtable num.pffmtable
rename shapetable num.shapetable - 合并训练文件。命令行执行
combine_tessdata.exe num.
,生成num.traineddata文件。
注意:
a. num.traineddata文件最终要拷贝到tesseract安装目录的tessdata目录下,才能被tesseract找到。
b. 命令行最后必须带一个点。
c. 执行结果中,1,3,4,5,13这几行必须有数值,不为-1,才代表命令执行成功。
测试使用
命令行执行tesseract.exe input.jpg output -l num
与之前的对比,准确率提高不少。
总结
以上为一个使用jTessBoxEditor工具辅助实现tesseract语言库训练的例子。仅作为参考。
更新:
尽量不要将tesseract安装在C盘,由于管理员权限问题,会产生box文件无法更新的问题,导致样本校正失去作用,进而影响准确率提高。
阅读全文
0 0
- tesseract 3.02使用及语言库训练
- Tesseract-Oct的使用及语言库的训练
- Tesseract-OCR3.01语言库训练步骤
- Tesseract-OCR3.0语言库训练步骤
- Tesseract-OCR3.0语言库训练步骤
- Tesseract-OCR3.0语言库训练步骤
- ubuntu下使用Tesseract-ocr(编译、安装、使用、训练新的语言库)
- Tesseract-OCR3.0语言库训练步骤[转]
- Tesseract-OCR 3.0.1训练自己的语言库
- tesseract-ocr语言库训练的一种出错情况
- Tesseract 3.02中文字库训练
- Tesseract 3.02中文字库训练
- Tesseract 3 语言数据的训练方法
- Tesseract 3 语言数据的训练方法
- Tesseract 3 语言数据的训练方法
- Tesseract 3 语言数据的训练方法
- Tesseract-OCR 样本训练,生成语言文件
- google Tesseract-ocr配置及训练
- kaldi-ctc src/ctcbin 底层命令学习
- Intel IDF 开发者峰会被彻底取消
- 快速排序
- jQuery框架
- Sublime text 2/3 中 Package Control 的安装与使用方法
- tesseract 3.02使用及语言库训练
- zabbix 基于JMX监控tomcat
- LVS 工作模式以及工作原理
- python 自带urllib.request 模块简单介绍(python3.5)
- DSL(domain specific language )
- 使用sklearn做特征工程
- ajaxfileupload.js的报错:jQuery.handleError is not a function 解决办法
- easyui使用参考
- Mac OSX 安装MySQL