利用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 ...
随机推荐
- window下Nexus私服高级搭建
环境是:nexus-2.1.1.maven-3.0.4.jdk-1.6.0_32 一.用admin用户登陆nexus nexus的下载和安装都很简单 1.下载 http://www.sonatype. ...
- windows wmi
官网:https://msdn.microsoft.com/en-us/library/aa394132(v=vs.85).aspx WMI使用的WIN32_类库名:http://blog.csdn. ...
- 浅谈DP
DP是一个范围极广的一门重要的算法,它与其他算法不同的是,它并没一套固定的公式,而是通过一种特定的思路,来进行无后效性的转移.其本质是通过一个状态转移至另一状态,将问题从大化小,并找到这些小问题之间的 ...
- SQL语法基础之SELECT
SQL语法基础之SELECT 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.SELECT查看帮助信息 1>.查看SELECT命令的帮助信息 mysql> ? SEL ...
- angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲染、angular小案例
基本语法: 1.双向数据绑定 vue 指令:v-model="msg" react constructor(){ this.state{ msg:"双向数据绑定" ...
- 040、Docker managed volume(2019-03-01 周五)
参考https://www.cnblogs.com/CloudMan6/p/7152775.html docker managed volume 与bind mount 在使用上最大的区别是不需要 ...
- vue 高德地图使用 vue-amap
此插件文档及使用还不错 https://elemefe.github.io/vue-amap/ <template> <div class="amap-page-conta ...
- 伪触发 input file 的click事件
前端在做 input file 美化的时候,通常 把 input 定位position 到 已美化的按钮最上方 opacity: 0 HTML5时代,已有更方便的方法,点击美化按钮直接触发选择文件事件 ...
- Excel列名序号互转
public static int ToIndex(string columnName) { if (!Regex.IsMatch(columnName.ToUpper(), @"[A-Z] ...
- 一次针对多台服务器交互式主机命令采集Python脚本编写
[环境介绍] 系统环境:Linux + Python 2.7.10(监控主机) [背景描述] 需求:每次节假日或者重要时间时,需要对数据库主机信息进行检查,比如主机空间使用率之类.有时候需要执 ...