tesseract_ocr 字符识别基础及训练字库、合并字库

作者: admin 分类: 屏幕取词 发布时间: 2016-09-11 17:34 ė4,978 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

最近公司让我做文字串识别,通过查阅资料,谷歌的开源框架 tesseract-ocr可以帮助我们进行识别图像,文字等等,tesseract可以识别多种语言(一些常用的语言),多种图片格式,非常强大。

首先体验一下tesseract的强大功能,先安装 tesseract_ocr ,下载地址为http://code.google.com/p/tesseract-ocr/,请务必下载3.0.1版本,我前面下的最新3.0.2版本,生成字符特征命令不能通过,最后勉强解决了,生成的字典识别出来的都是空字符

安装完成之后 看下根目录

tesseract_ocr 字符识别基础及训练字库、合并字库

tessdata文件夹主要存放字典文件,只要把字典文件放进去,就可以用tesseract 识别相关语言的文字

现在先来识别一张图片

tesseract_ocr 字符识别基础及训练字库、合并字库

把他放入任意一个文件夹,cmd 命令cd到图片放置的目录,然后执行

 

tesseract_ocr 字符识别基础及训练字库、合并字库

tesseract_ocr 字符识别基础及训练字库、合并字库
tesseract_ocr 字符识别基础及训练字库、合并字库

可以看到文件夹下 生成了一个txt文本,发现识别的效果并不是很理想。为啥呢,因为我所用的这个图片中的字有所变形,我们的图片和 tesseract 存在的 字做匹配,找相近的,但是字典中没有这种变形的字体,自然识别容易出错,为了 提高识别率,所以我们需要 训练一套 字体来提高识别率

训练 字库还需要一个工具jTessBoxEditor,下载地址为 http://sourceforge.net/projects/vietocr/files/jTessBoxEditor/

 

现在我们来实战一下,首先要生成一个 .tif 的图片集,我们使用 jTessBoxEditor 来合并多张 格式为tif的图片

1、打开 jTessBoxEditor,选择tools->merge tif ,选择 tif图片,生成一个 格式为tif的 图片集

 

 

 

2、我生成一个名为 why4.tif 的图片集, 进入 cd进入 why4.tif 所在的目录,生成对应的 .box 文件

执行命令

 

 

 

这个文件是通过 tesseract 识别出来的,标示了图片集中 文字的位置,大小,识别后的字符结果。

 

3、调整,因为 tesseract 识别的不准确,所以我们用 jTessBoxEditor来调整识别文字的位置、结果。

用 jTessBoxEditor打开生成的图片集why4.tif ,注意 why4.tif 对应的box文件一定要和他处于同一个文件夹下(请保持文件名),否则,用jTessBoxEditor打开没有 位置、识别结果等信息,然后就可以调整了,调整完之后保存

 

 

4、生成.tr文件

 

 

 

 

5、计算字符集,从生成的 box文件中提取

 

 

 

6、生成字体特征文件,现在文件夹下新建任意文件名的 特征文件,里面的内容格式为

 

fontname为字体名称,保持和 图片集文件 .tif 和.box文件的前缀名一致 ,italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。

 

例如我新建了一个 名为 font,内容 为

 

的文件

输入命令

 

 

7 、聚集tesseract 识别的训练文件

 

 

执行完这一步之后发现文件夹下生产了许多文件,把unicharset, inttemp, normproto, pfftable这几个文件加上前缀 why4.

 

8、最后一步,合并相关文件,生成字典文件

 

 

 

 

好了,至此字典文件就生产了,我们把生成的字典文件why4.traineddata放入到 tesseract_ocr 根目录下的 tessdata文件夹下

开始使用我们训练过得字体库

随便找一张图片测试一下

 

 

 

 

可以看到,效果好了许多

说了这么多,生成一个字库还是挺麻烦的,尤其是调整,看得我眼睛都花了,心情烦躁,好不容易做好了一个字库,但是不够 ,还要多添加一些训练内容进去该怎么办呢,经过我的研究,终于找到了3.0.1版本合并字库的方法

首先,需要 生成的字符集.tif文件,位置文件 .box ,只要有这两个文件在,就可以合并字典

好了,我现在有三个 需要合并的字典 why3 why4 why5,他他们的名字修改为 name.num 的形式,分别改为 why.3 why.4 why.5

1、先生成相对应的 .tr 文件

 

2、从所有文件中提取字符

 

3、生成字体特征文件

 

新建的font文件中 把所有box文件对应的 字体特征都加进去

 

 

4 、聚集所有.tr 文件

 

 

6 、重命名文件,我把unicharset, inttemp, normproto, pfftable 这几个文件加了前缀why.

7、合并所有文件 生成一个大的字库文件

 



只回答业务咨询点击这里给我发消息 点击这里给我发消息

学习日记,兼职软件设计,软件修改,毕业设计。

本文出自 学习日记,转载时请注明出处及相应链接。

本文永久链接: https://www.softwareace.cn/?p=1512

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量