tesseract-ocr训练方法
2015-06-26 13:12
393 查看
原 tesseract-ocr训练方法
发表于3年前(2012-05-30 08:52) 阅读(12371) | 评论(4)13人收藏此文章,我要收藏
赞3
7.16,杭州,阿里巴巴。阿里百川无线开放大会报名开启,用技术驱动无线新商业
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来识别一个订单号的内容,如图
![](http://static.oschina.net/uploads/img/201205/30085225_QynJ.png)
发现错误率很高,希望通过训练来提高准确率。
训练过程:
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
通过训练出来的新语言,识别率提高了不少。
分享到:
![](http://my.oschina.net/img/sinaweibo_fb1.png?t=1399607812000)
![](http://my.oschina.net/img/tencent_weibo_fb.jpg?t=1399607782000)
3赞
声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。
« 上一篇
下一篇 »
评论4
![]() | 1楼:wang59发表于 2012-08-10 10:06 回复此评论 您好,感谢您的文章分享, 我现在想下砸jTessBoxEditor 工具,但是http://sourceforge.net打不开。 能把这个工具发给我吗?googlet_t@126.com 谢谢呀 |
![]() | 2楼:ydd505发表于 2013-07-11 16:06 回复此评论 大大 请问jTessBoxEditor支持中文吗? 我想生成中文汽车牌照的语言包 在线等 求!!!!! 409779449@qq.com |
![]() | 3楼:ydd505发表于 2013-07-11 16:40 回复此评论 引用来自“wang59”的评论您好,感谢您的文章分享,我现在想下砸jTessBoxEditor 工具,但是http://sourceforge.net打不开。 能把这个工具发给我吗?googlet_t@126.com 谢谢呀 大大 请问jTessBoxEditor支持中文吗? 我想生成中文汽车牌照的语言包 在线等 求!!!!! 409779449@qq.com |
![]() | 4楼:tuling56发表于 2014-01-06 11:31 回复此评论 你好,你在文章中训练过程部分说的合并10张以上的图片,就是那个订单号的图片,你这个订单号的图片深度是多少位的?二值图还是灰度图?谢谢~~ |
相关文章推荐
- Winform主窗体的设置
- I.MX6 Linux Serial Baud Rate hacking
- #JSP#Tomcat下使用JSP调用JavaBean显示ClassNotFoundException
- LintCode Sqrt(x) x的平方根
- Bootstrap 菜单定位
- vs2005编译时优化出现的问题
- 信号
- Xib和storyboard对比
- traineddata
- Sublime Text 插件-全栈开发收集
- Linux下Mongodb安装和启动配置
- System Center 2012 R2实例3—SCOM之SharePoint全方位监视3—报告服务器
- python操作数据库
- 如何分享数据
- C语言-gdb调试工具详解
- [教程] 关于如何解决Adb无法连接的解决方案
- 什么是关联分析?
- YUV数据格式解疑
- 什么是关联分析?
- Ios 该图显示其出现的相关问题定义UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'