利用jTessBoxEditor工具进行Tesseract-OCR样本训练
jTessBoxEditor依赖java虚拟机 , 所以要先安装 java.
jTessBoxEditor下载地址:
解压后跳转到解压目录, 启动 jTessBoxEditor,命令行输入:
java -Xms128m -Xmx1024m -jar jTessBoxEditor.jar
样本训练:
、准备样本图片
手动用画图工具写了一些数字(或者去刷网站的验证码) , 如果是彩色图片首先做灰度化处理以提高识别率 . 全部转换成tif文件, 可以用验证码结果命名方便比对.
、合并图片
打开jTessBoxEditor, 点击Tools > Merge Tiff, 选中所有准备好的tif文件,并把生成的tif文件放到一个新目录下, 命名为num.font.exp0.tif
注意: num是自定义的语言名称, font是自定义的字体名称.
问题: 我在使用jTessBoxEditor合并tif文件是报couldn't seek , 未找到原因, 后来改用TiffToy进行合并成功.
、生成box文件
tesseract num.font.exp0.tif num.font.exp0 [-l eng -psm 7] batch.nochop makebox
以上[]中的内容当返回Empty page的时候可以加上.其中 -psm 7 表示用单行文本识别,-l eng 表示使用英语语言.
、修改box文件
切换到jTessBoxEditor工具的Box Editor页,点击open,打开前面的tiff文件langyp.fontyp.exp0.tif,工具会自动加载对应的box文件。
逐个核对tif文件的box数据, 如果错误就进行修改, 全部检查结束后保存.
注意: box数据有翻页, 之前合并了多少tif文件就有多少页.
、生成font_properties
echo font >font_properties
【语法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur>
fontname为字体名称,italic为斜体,bold为黑体字,fixed为默认字体,serif为衬线字体,fraktur德文黑字体,1和0代表有和无,精细区分时可使用。
、生成训练文件
tesseract num.font.exp0.tif num.font.exp0 nobatch box.train
、生成字符集文件
unicharset_extractor num.font.exp0.box
、生成shape文件
shapeclustering -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
、生成聚集字符特征文件
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr
、生成字符正常化特征文件
cntraining num.font.exp0.tr
、更名
rename normproto num.normproto
rename inttemp num.inttemp
rename pffmtable num.pffmtable
rename unicharset num.unicharset
rename shapetable num.shapetable
、合并训练文件,生成num.traineddata
combine_tessdata num.
以上是目录中的文件, 将生成的num.traineddata复制到Tesseract-OCR中的tessdata文件夹中即可.
最后进行一下测试:
tesseract test.png output -l num
#我们使用了指令[-l num]而不是[-l eng]。这说明,我们使用的是新生成的num语言的匹配库而不是默认的eng语言匹配库.
参考:
http://www.cnblogs.com/zhongtang/p/5555950.html
http://www.cnblogs.com/cnlian/p/5765871.html
http://vietocr.sourceforge.net/training.html
利用jTessBoxEditor工具进行Tesseract-OCR样本训练的更多相关文章
- 利用jTessBoxEditor工具进行Tesseract3.02.02样本训练,提高验证码识别率
1.背景 前文已经简要介绍tesseract ocr引擎的安装及基本使用,其中提到使用-l eng参数来限定语言库,可以提高识别准确率及识别效率. 本文将针对某个网站的验证码进行样本训练,形成自己的语 ...
- jTessBoxEditor工具进行Tesseract3.02.02样本训练
1.背景 前文已经简要介绍tesseract ocr引擎的安装及基本使用,其中提到使用-l eng参数来限定语言库,可以提高识别准确率及识别效率. 本文将针对某个网站的验证码进行样本训练,形成自己的语 ...
- tesseract ocr文字识别Android实例程序和训练工具全部源代码
tesseract ocr是一个开源的文字识别引擎,Android系统中也可以使用.可以识别50多种语言,通过自己训练识别库的方式,可以大大提高识别的准确率. 为了节省大家的学习时间,现将自己近期的学 ...
- tesseract ocr训练 pt验证码
识别率有问题A大概率识别为n,因此需要训练,这里讲一下 如何训练 参考 java代码里边直接使用tess4j,是对tesseract的封装,但是如果要训练,还是需要在进行安装tesseract-ocr ...
- Tesseract-OCR 字符识别---样本训练 [转]
Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文). ...
- Tesseract-OCR 字符识别---样本训练
Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文). ...
- 转 Tesseract-OCR 字符识别---样本训练
转自:http://blog.csdn.net/feihu521a/article/details/8433077 Tesseract是一个开源的OCR(Optical Character Recog ...
- 开源图片文字识别引擎——Tesseract OCR
Tessseract为一款开源.免费的OCR引擎,能够支持中文十分难得.虽然其识别效果不是很理想,但是对于要求不高的中小型项目来说,已经足够用了. 文字识别可应用于许多领域,如阅读.翻译.文献资料的检 ...
- Python3.x:pytesseract识别率提高(样本训练)
Python3.x:pytesseract识别率提高(样本训练) 1,下载并安装3.05版本的tesseract 地址:https://sourceforge.net/projects/tessera ...
随机推荐
- Altium Designer 18 ------ 常用功能记录
PCB选中某条线路,按一下 Tab 键选中整条线路 PCB中,按 “N” 键选择隐藏或显示某个网络 配置Altium Designer 18 教程所需的捕捉网格的值: G显示Snap Grid菜单,您 ...
- java 打印乘法口诀表
package cn.lijun.demo6; public class Test3 { public static void main(String[] args) { for(int j=1;j& ...
- 【强大的Java集成开发工具】MyEclipse 2015 Stable 2.0 for Mac
[简介] MyEclipse是一款 Mac 上的Java 强大的集成开发工具,今天和大家分享最新的 MyEclipse 2015 Stable 2.0 版本,MyEclipse 2015 基于 Ecl ...
- 决策树decision tree原理介绍_python sklearn建模_乳腺癌细胞分类器(推荐AAA)
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- Reference-TMB
Paper Name:Targeted Next Generation Sequencing Identifies Markers of Response to PD-1 Blockade Adress ...
- script ajax / XHR / XMLHttpRequest
s 利用XHR 调试发送form data表单数据,F5键刷新form表单URL ,http请求地址,获取token,提交. 如:http://pcp.cns*****.com/spcp-web/vm ...
- Shell中变量扩展操作
假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir ...
- java-Array数组常用操作例子(基础必备)
package com.net.xinfang.reflect; import java.util.ArrayList; import java.util.Arrays; import java.ut ...
- 打印流PrintStream
打印流PrintStream PrintStream extends OutputStream 1.打印流的特点 只负责数据的输出,不负责数据的读取 与其他的流不同,打印流永远不会抛出IOExcept ...
- impala系列:impala特有的操作符
--=======================Impala 特有的操作符--=======================ILIKE 操作符, 忽略大小写的 like 操作符.REGEXP 操作符 ...