文档章节

tesseract-ocr训练方法

topdogs
 topdogs
发布于 2012/05/30 08:52
字数 787
阅读 28752
收藏 22

tesseract-ocr有2和3两个版本,不同版本训练方法稍有不同。

第3版本的训练方法官版教程在这里:TrainingTesseract3

第2版的训练方法官版教程在这里:TrainingTesseract

我使用的是最新的3.01版本的。训练所需准备:

1.下载并安装3.01版本的tesseract。事实上并不需要安装这步骤,我下载的是压缩包版,解压即可,这里我解压到E:\Tesseract-ocr目录。

2.下载并安装jTessBoxEditor 工具,这是一个Box file editors,用来编辑训练文件的,直接下载地址在这里。这个软件是用java写的,运行需要安装jre,好在这个东西比.net好装多了,怎么运行可以见它的readme文件。

3.一张用来训练的tiff格式图片。

 

在不通过训练的前提下,使用tesseract来识别一个订单号的内容,如图1发现错误率很高,希望通过训练来提高准确率。

训练过程:

1.通过合并10张如上图的图片合并为一张tiff格式的图片,如何合并呢?通过jTessBoxEditor的Merge Tiff 来完成,不过他的小缺点就是只能合并多张tiff格式的,如果你的图片是jpg的,需要先转换。生成后的tiff图片叫做orderNo.tif

2.Make Box Files。在orderNo.tif所在的目录下打开一个命令行,输入:

E:\Tesseract-ocr\tesseract.exe orderNo.tif orderNo batch.nochop makebox

来生成一个box文件,该文件记录了tesseract识别出来的每一个字和其位置坐标。

3.使用jTessBoxEditor打开orderNo.tif文件,需要记住的是第2步生成的orderNo.box要和这个orderNo.tif文件同在一个目录下。逐个校正文字,后保存。

4.Run Tesseract for Training。输入命令:

E:\Tesseract-ocr\tesseract.exe orderNo.tif orderNo nobatch box.train

5.Compute the Character Set。输入命令:

E:\Tesseract-ocr\unicharset_extractor.exe orderNo.box

6.新建文件“font_properties”。如果是3.01版本,那么需要在目录下新建一个名字为“font_properties”的文件,并且输入文本 :

orderNo 0 0 0 0 0

大致意思就是说orderNo这个语言的字体为普通字体。

并执行命令:

E:\Tesseract-ocr\mftraining.exe -F font_properties -U unicharset orderNo.tr

7.Clustering。输入命令:

E:\Tesseract-ocr\cntraining.exe orderNo.tr

8.此时,在目录下应该生成若干个文件了,把unicharset, inttemp, normproto, pfftable这四个文件加上前缀“orderNo.”。然后输入命令:

E:\Tesseract-ocr\combine_tessdata.exe orderNo.

会显示一个结果如:

Combining tessdata files
TessdataManager combined tesseract data files.
Offset for type 0 is -1
Offset for type 1 is 108
Offset for type 2 is -1
Offset for type 3 is 1660
Offset for type 4 is 327545
Offset for type 5 is 327781
Offset for type 6 is -1
Offset for type 7 is -1
Offset for type 8 is -1
Offset for type 9 is -1
Offset for type 10 is -1
Offset for type 11 is -1
Offset for type 12 is –1

必须确定的是第2、4、5、6行的数据不是-1,那么一个新的字典就算生成了。

此时目录下“orderNo.traineddata”的文件拷贝到tesseract程序目录下的“tessdata”目录。

以后就可以使用该该字典来识别了,例如:

tesseract.exe test.jpg result –l orderNo

 

通过训练出来的新语言,识别率提高了不少。

© 著作权归作者所有

共有 人打赏支持
topdogs

topdogs

粉丝 41
博文 39
码字总数 12877
作品 2
汕头
高级程序员
私信 提问
加载中

评论(4)

t
tuling56
你好,你在文章中训练过程部分说的合并10张以上的图片,就是那个订单号的图片,你这个订单号的图片深度是多少位的?二值图还是灰度图?谢谢~~
y
ydd505

引用来自“wang59”的评论

您好,感谢您的文章分享,
我现在想下砸jTessBoxEditor 工具,但是http://sourceforge.net打不开。
能把这个工具发给我吗?googlet_t@126.com
谢谢呀

大大 请问jTessBoxEditor支持中文吗?

我想生成中文汽车牌照的语言包

在线等 求!!!!!

409779449@qq.com
y
ydd505
大大 请问jTessBoxEditor支持中文吗?

我想生成中文汽车牌照的语言包

在线等 求!!!!!

409779449@qq.com
w
wang59
您好,感谢您的文章分享,
我现在想下砸jTessBoxEditor 工具,但是http://sourceforge.net打不开。
能把这个工具发给我吗?googlet_t@126.com
谢谢呀
​Tesseract-OCR 3.0.1训练自己的语言库之图像文字识别

关于印刷文字识别依然是图像领域的难点问题,还有很多的单位或个人希望拥有自己的语言识别模型。近来,在各大论坛、学习交流群、后台私信等还会看到仍然有同种志群的人才再不断的加入这个领域...

m0epnwstyk4
2017/12/24
0
0
PDF处理、Tesseract-OCR的介绍

相关文章 OCR识别-python版(一) 基于Python实现对PDF文件的OCR识别 使用Google开源tesseract OCR用语言库报allowblob_division解决方案 Tesseract-OCR识别中文与训练字库实例 Tesseract训练...

致Great
2017/12/09
0
0
Tesseract-OCR 字符识别---样本训练

Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持60多种语言(包括中文)。 Tesseract最初由HP公司...

rock912
2016/01/26
1K
0
Tesseract Ocr文字识别

Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract...

王磊的博客
2018/04/20
0
0
安装 Tesserocr (填坑)

转载请注明出处:https://www.jianshu.com/u/5e6f798c903a 环境: Win10_64 Python 3.6.6,安装路径 (后面会用到该路径) 1. 安装 Tesserocr tesserocr 是 Python 下的一个 OCR 识别库,该库本...

曾翔翔
2018/07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部