Tesseract-OCR识别中文与训练字库实例(转)
关于中文的识别,效果比较好而且开源的应该就是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
Tesseract-OCR识别中文与训练字库实例(转)相关推荐
- Tesseract-ocr识别中文并训练字库操作指南
Tesseract-ocr识别中文并训练字库操作指南 一.Tesseract-ocr识别中文 1.Tesseract-ocr下载 2.中文语言包下载 Tesseract中文语言包 chi_sim.tr ...
- 用Tesseract OCR识别图片文字
用tesseract ocr识别图片中的文字 准备 OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以 ...
- java ocr识别中文_java零碎要点—Tesseract 3.0,Java OCR 图像智能字符识别技术,可识别中文 | 学步园...
2.Java OCR 图像智能字符识别技术,可识别中文 几天一直在研究OCR技术,据我了解的情况,国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR 技术发现好多对英文与数 ...
- Tesseract怎么识别中文
前言 经过上一篇文章,我们已经成功安装了Tesseract4.0,并且可以识别出英文了 https://blog.csdn.net/qq_43576028/article/details/102907 ...
- java ocr识别中文_[转]Java OCR 图像智能字符识别技术,可识别中文
几天一直在研究OCR技术,据我了解的情况,国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR技术发现好多对英文与数字的支持都很好,可惜很多都不支持中文字符.Asprise- ...
- java ocr 识别中文
几天一直在研究OCR技术,据我了解的情况,国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR技术发现好多对英文与数字的支持都很好,可惜很多都不支持中文字符.Asprise- ...
- python ocr 识别中文pdf_轻松识别文字,这款Python OCR库支持超过80种语言
OCR是什么? 有一款软件叫扫描全能王,想必一些小伙伴听过,这是一个OCR集成软件,可以将图像内容扫描成文字. 所以说,OCR作用是对文本资料的图像文件进行分析识别处理,获取文字及版面信息. OCR的 ...
- python ocr 识别中文pdf_pytesseract识别PDF文件中的文字(OCR)
前言:由于要利用一些比较老的文献中的数据,手工输入费时费力,于是乎找到了下面的方法.如果不差钱可以使用Adobe Acrobat Reader中的文字识别,也可以尝试其中的试用版.下面的方法完全室开源 ...
- 深入学习OpenCV文档扫描OCR识别及答题卡识别判卷(文档扫描,图像矫正,透视变换,OCR识别)
人工智能学习离不开实践的验证,推荐大家可以多在FlyAI-AI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台.每周免费提供 ...
- mac python 图_Python之图片OCR识别(Mac)
因为经常给朋友发的信息来源是一张图片,就想到了用Python处理下,就省的敲字了... 安装tesseract brew install tesseract 安装pytesseract pip3 in ...
最新文章
- 设置VSCode隐藏菜单栏快捷键Alt+T(头部)、隐藏状态栏快捷键Alt+B(底部),为单屏开发者腾出更多编码空间
- 在桌面上创建一个宽带连接服务器,win7宽带连接怎么创建桌面
- mysql 存储过程声明式游标_Mysql 存储过程中使用游标循环读取临时表
- linux查看占用的命令,linux内存占用查看命令
- oracle导入数据
- 疯子的算法总结(八) 最短路算法+模板
- 《iVX 高仿美团APP制作移动端完整项目》02 搜索、搜索提示及类别需求分析思路及制作流程
- Hive 架构知识体系及语法详解
- bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
- 2021年王道考研计算机408【新课】
- 2019热门IT技术方向,你更中意哪个?
- php css抽离,webpack4 单独抽离打包 css 的新实现
- presson绘图练习
- MySQL Partition 相关使用总结
- Mac升级pip3 | pip install --upgrade pip
- 学习笔记:测试抓包工具fiddler
- SPICE鼠标报点率降低问题分析
- 微信小程序使用canvas画图并保存到手机相册踩坑总结
- Python数据分析与机器学习实战<三>Pandas
- 为什么要BI(商业智能)?