Tesseract-OCR识别中文与训练字库实例(转)

news/2024/11/19 15:28:29/

关于中文的识别,效果比较好而且开源的应该就是Tesseract-OCR了,所以自己亲身试用一下,分享到博客让有同样兴趣的人少走弯路。

文中所用到的身份证图片资源是百度找的,如有侵权可联系我删除。

 

一、准备工作

1、下载Tesseract-OCR引擎,注意要3.0以上才支持中文哦,按照提示安装就行。

2、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面。

3、下载jTessBoxEditor,这个是用来训练字库的。

以上的几个在百度都能找到下载,就不详细讲了。

 

 

二、识别

1、进入cmd,进入到要识别的图片的路径下。

2、输入命令

1
tesseract 图片名称 生成的结果文件的名称 字库

例如我的图片识别就是:

1
tesseract test.jpg result -l chi_sim

识别完后会生成result.txt文件

当然啦效果不太理想。所以我们要训练自己的字库。

 

三、训练

1、将图片转换成tif格式,用于后面生成box文件。可以通过画图,然后另存为tif即可。

更改图片名字,这个是有要求的=。=

tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言 fontname是字体 
比如我们要训练自定义字库 mjorcen字体名normal
那么我们把图片文件重命名 mjorcen.normal.exp0.jpg在转tif。

 

2、生成box文件。

1
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox

box文件和对应的tif一定要在相同的目录下,不然后面打不开。

 

3、打开jTessBoxEditor矫正错误并训练

打开train.bat

找到tif图,打开,并校正。

 

4、训练。

只要在命令行输入命令即可。

1
tesseract  mjorcen.normal.exp0.jpg mjorcen.normal.exp0  nobatch box.train
1
unicharset_extractor mjorcen.normal.exp0.box

 

在这我明明已经矫正好了,但是还是有1个字符不能识别出来,报的错跟实际上完全没有相关性,不知道是不是bug,到后面的结果就是“园”字没有识别出来。

先不管,毕竟只有一个样本。

 

新建一个font_properties文件

里面内容写入 normal 0 0 0 0 0 表示默认普通字体

 

继续敲命令

1
2
3
4
5
6
7
8
9
shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr
mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr
cntraining mjorcen.normal.exp0.tr

 

最后会生成五个文件,把目录下的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上normal.

如图:

 

命令行输入,合并五个文件:

1
combine_tessdata normal.

得到训练好的字库。

 

四、测试

1、把 normal.traineddata 复制到Tesseract-OCR 安装目录下的tessdata文件夹中

 

2、识别命令:

1
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l normal

 

3、效果

 

对比:

 

 

总结:肯定要自己训练过后的字库识别效果好,接下来要把整个项目弄进android,还要研究怎么将多个字库合并成一个字库,因为我不可能一次训练完所有的图片文字的。到时候有什么成果了再分享博文。希望大家可以点赞!谢谢。

 

更新:没有错误的话命令行的提示应该是这样的


原文地址:https://www.cnblogs.com/wzben/p/5930538.html


http://www.ppmy.cn/news/497398.html

相关文章

ps去水印教程_新手必会的PS去水印方法,绝对简单!

去水印的方法有很多,工具也不少,大家比较常用的就是PS去水印。今天就教大家一种简单的PS去水印方法,新手用户也能学会,请看具体教程。 如何用PS软件去除图片水印? 先看效果图 1、打开PS软件,导入需要去水印…

html实现无插件套打,发票套打系统

极限小编今天为大家带来了发票套打系统,发票套打程序可新增、删除、修改发票模板,设置发票宽度和高度,能很方便地实现套打。可以根据需要添加无数多个发票模板。发票项目的位置调整灵活、方便。 特点介绍 1、可以根据需要添加无数多个发票模板…

word下横线的线添加的方法

word大家都很不陌生吧!在各行各业都用的比较多,对它的一些简单功能我们应该要了解。有网友就问了:“怎样在word中画横线?”,其实在word中画横线很简单,有很多方法。今天主要分享4种方法,希望能帮…

div里面整齐的字体样式,所有浏览器都兼容

<div id"wenda"> <div class"table_wd" > <div class"tr1"> <div class"td1"> <h3 class"title">商标注册需要准备什么资料&#xff1f;</h2> <p><strong>如果以公司名义申…

基于Java+SpringBoot+Vue前后端分离学生信息管理设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

图片加水印怎么弄?这些图片加水印方法分享给你

相信很多小伙伴平常会喜欢将自己拍摄的作品上传到社交平台上与他人分享吧。然而有时会遇到自己辛苦拍摄的视频或者图片被他人盗用&#xff0c;甚至是获利的情况。其实想要避免自己的作品被他人盗用&#xff0c;我们可以在作品上面添加专属自己的水印&#xff0c;不仅可以给作品…

pdffactory 打印字体_使用pdfFactory虚拟打印机为打印PDF文件添加文字批注

工作中&#xff0c;常会遇到PDF格式的合同需要打印&#xff0c;但有些内容需要做简单批注&#xff0c;如何在PDF格式的合同上面添加文字批注呢&#xff1f; 此篇内容&#xff0c;小编将分两步介绍PDF虚拟打印机——pdfFactory专业版如何添加文字批注&#xff0c;以及添加文字批…

python 百度ai 牌照识别_Python用百度AI实现文字识别功能!(银行卡,营业执照,等识别)...

前言&#xff1a; 今天给大家详细介绍了python利用百度AI实现文字识别&#xff0c;主要涉及通用文字识别、网络图片文字识别、身份证识别等文字识别功能&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下。(代码用图片展示出来&#xff0c;方便各位收藏…