当前位置:首页 >> 计算机软件及应用 >>

Android的tesseract-ocr训练实例


Android 的 tesseract-ocr 的训练实例
我们可以根据自己的需求来训练一套自己的识别库的, 比方说我们要识别验证码, 识别身份 证号码等,我们就可以用下面的方法来训练一套识别库。 网上关于 OCR 训练的方法很多,我是参照网上两篇文章来训练的,链接附在正文后面,下 面结合我的操作经验来说下训练的过程。 首先我们需要下面几个工具: tesseract-ocr-3.01,上面两篇文章都是用这个版本 jTessBoxEditor, 该工具是用 java 写的 box 编辑器,要有 JAVA 虚拟机才行,需安装 jre,如果搞 Android 开发之前装过 JDK 的话就不用再装 jre,因为在装 JDK 的时候就会装 jre。

1、 先新建一个 trainocr 文件夹,将上面两个文件拷贝进来,然后解压这两个文件,我们进入 Tesseract-ocr 文件夹下新建一个 temp 文件夹。

2、接下来我们准备好我们需要训练的素材如下图

要想提高识别率,我们需要提供多张像上面这样的图片,图片格式需要为 tiff 格式的,可以通过 windows 自带的画图工具来另存 为 tiff 格式,或者用 matlab 函数进行转换,我的素材文件名都是 t+数字+.jpg,转换为 t+数字+.tif,以下是 jpg 转 tif 的 matlab 代 码:

clear all;clc int num; for num = 1:18; string filename; filename=strcat('t',num2str(num)); filename=strcat(filename,'.jpg'); A=imread(filename); newfilename=strcat('t',num2str(num),'.tif'); imwrite(A,newfilename); end
准备好多张图 tiff 图片后,打开 jTessBoxEditor.jar,打开方式和界面如下图

在此之前我们需要在第 1 步建立的 temp 文件夹下新建一个 num.tif 的文件,接下来我们选择 tool–>Merge TIFF 然后选择准备 好的多张 tiff 图片,注意这里是全部选中,然后点击打开,然后选中我们刚刚建立的 num.tif 文件,点击保存,这样我们就将多 张 tiff 图片 merge 到了一个文件里面了。

3、接下来我们开始生成 box 文件了,cmd 命令行进入 temp 文件夹下,然后输入如下命令 E:|\software\Trainocr\Tesseract-ocr\temp>..\tesseract.exe num.tif num batch.nochop makebox

输入完后会在 temp 文件夹下多了个 num.box 文件,该文件记录了识别出来的每个字和它对应的位置坐标。

4、使用 jTessBoxEditor, 我们切换到 Box Editor,然后 open 打开 num.tif 文件,需要记住的是第 2 步生成的 num.box 要和这个 num.tif 文件同在一个目录下。通过右上角的 X,Y,W,H 对每个需要改正的字符进行调整,逐个校正文字,后保存。

5、Run Tesseract for Training。输入命令: ..\tesseract.exe num.tif num nobatch box.train

6、接下来是计算字符集,输入如下命令

..\unicharset_extractor.exe num.box

7、接下来我们需要在 temp 文件夹下建一个 font_properties 文件,3.01 版本的 OCR 需要这个文件,该文件的目的是提供输出 时识别出来的字体样式信息,文件的格式为 <fontname> <italic> <bold> <fixed> <serif> <fraktur> timesitalic 1 0 0 1 0 我们可以根据实际情况新建 font_properties,我写的是 num 0 0 0 0 0 意思是普通字体,没有任何格式。 然后执行以下命令 ..\mftraining.exe -F font_properties.txt -U unicharset num.tr

8、Clustering,输入命令 ..\cntraining.exe num.tr

9、此时在 temp 文件夹下已经有很多文件了,需要把 inttemp,Microfeat,normproto,pffmtable,unicharset 这几个文件加上 前缀 num. (注意有个点号),然后输入以下命令 ..\combine_tessdata.exe num. 出来的结果中我们需要确定 type 1, type3, type4, type5 对应的后面数据不能为-1, 这样我们就可以用这个新字典来识别了, 将生成的 num.traineddata 文件就是我们所学要的语言包了。

测试结果: 如果用 eng. traineddata 进行识别的话,对某些字体的数字识别率很低。

如果用自己训练的 num. traineddata 进行识别的话,对某些字体的数字识别率明显提高了。

【参考文章】 : http://my.oschina.net/lixinspace/blog/60124 http://blog.csdn.net/djun100/article/details/25753727 这两篇文章都是比较好的教程 ,


赞助商链接
相关文章:
Tesseract3.02中文字库训练
Tesseract3.02中文字库训练_计算机软件及应用_IT/计算机_专业资料。[转]Tesseract 3.02 中文字库训练下载 chi_sim.traindata 字库 下载 tesseract-ocr-setup-3.02....
OCR开源代码以及OCR公开训练测试数据集汇总
OCR开源代码以及OCR公开训练测试数据集汇总_计算机软件...tesseract-ocr/ 1.7 OCR,http://www.ocrspace....ExcelVBA编程实例(速成1... 82页 1下载券 ...
Tesseract 3.02中文字库训练
Tesseract 3.02中文字库训练_计算机软件及应用_IT/计算机_专业资料。Tesseract 3.02 中文字库训练下载 chi_sim.traindata 字库 下载 tesseract-ocr-setup-3.02.02....
如何提高Tesseract-OCR的识别精度
如何提高 Tesseract-OCR 的识别精度概述: 本文介绍了提高 Tesseract-OCR 识别精度的步骤及注意事项。 通过对 Tesseract-OCR 的训练能有效提高 Tesseract-OCR 的识别...
tesseract使用方法
为了避免配置环境变量,可以先下载一个 tesseract-ocr-setup-3.02.02.exe(tesseract 配置文件夹里有),然 后安装(假设安装目录为 D:\Tesseract-OCR)。 2. 下载 ...
Tesseract-OCR 介绍
Tesseract-OCR 介绍_IT/计算机_专业资料。From: http://code.google.com/p/tesseract...它也可以在其他平台上编译,包括 Android 和 iPhone,虽然这些都不是 行之...
Tesseract_3_语言数据的训练方法
生成其余 box 文件 将上一步生成的 test.traineddata 移动到 tesseract-ocr\....003 -l test batch.nochop makebox 这里仅仅是使用 3 个原始文件作为例子。...
识别训练
识别训练_交通运输_工程科技_专业资料。识别查看: 1.安装 Tesseract(已安装) 从 http://code.google.com/p/tesseract-ocr/downloads/list 下载 Tesseract,目前版...
一个基于Tesseract OCR Engine的Wrapper的设计与实现
一个基于 Tesseract OCR Engine 的 Wrapper 的设计与实现 摘要 Tesseract OCR Engine 是现如今准确率最高的开源字符图像识别引 擎之一。本文侧重于利用 C++/CLI ...
VS2010调用tesseract-OCR API步骤
VS2010 调用 tesseract 步骤先说明一下,我的 tesseract 安装路径为 D:\Tesseract-OCR,如果你的安装路 径和我不一样,将这份文档里所有的 D:\Tesseract-OCR 改...
更多相关标签: