分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
转自:http://www.cnblogs.com/zcsor/archive/2011/02/21/1959555.html
关于tesseract-ocr3的训练和使用
众所周知,这是一个出色的字符识别软件。这个开源项目可以在http://code.google.com/p/tesseract-ocr/downloads/list下载。
在使用时,建议使用3而不要使用2,因为一些原因,2虽然可以直接用在工程,但是由于一些显而易见的BUG和其他原因,多导致程序无法运行甚至崩溃。所以建议使用命令行版本的3 。
除了下载tesseract安装程序以外,还可以在下载页面下载一些语言库,当然,也可以在安装过程中选择一些语言库来进行安装。
一、训练
在很多时候,默认的字库等完全可以高准确度的识别,但是有些时候我们需要训练自己的库来使用。训练步骤如下:
注:
A、均以DOS命令为例,即将每步下面的命令保存为.BAT运行,或运行CMD进入tesseract所在目录运行
B、注意保证文件名的一致性(此处均为DDT)
0、复制training目录下的全部文件到tesseract3所在目录
copy .\training\*.exe .\
1、标记边框
tesseract ddt.tif ddt -l eng digits batch.nochop makebox
解释一下
ddt.tif为要识别的文件,支持jpg,gif,tiff等格式,建议用tif
ddt 为要保存的文件名(自动添加扩展名.box)
-l eng 使用的库,这个参数可以让我们选择用哪个字库来标记边框
后面的都是配置文件了,也就是tesseract的其他参数被以文件形式加载,而不是直接输入参数
digits指定了只识别0-9的数字(当然你可以编辑它,使它包含更多的字符),当你不需要指定时,一定要去掉这个参数,但使用这种字符集限定,可以最大程度上减少被错误识别搞的你编辑ddt.box头昏脑胀的几率。
注:
这一步非常关键,但也经常出现问题,即使你在http://code.google.com/p/bbtesseract/downloads/list下载了bbtesseract也是如此,所以我感觉应该自己编一个边框识别,但没有时间做。完全可以将命令写入到软件里,实现图形化。所以,注意编辑你生成的ddt.box文件,保证字符都被识别且边框正确。
这里也有一个小技巧,例如我做过这样一个tif:1.2-34567089,在这一步的时候,只识别了2-9这一部分,于是我修改tif为:001.2-34567089,就全部识别了。也许可以给你一些启示。
2、形成语言库
tesseract ddt.tif ddt -l eng digits nobatch box.train
unicharset_extractor ddt.box