使用Tesseract架设OCR识别服务

2021-09-02 16:07:13
黄豆 UsualTool.com
编程思维/其他 10568
loading

未标题-1.png

提到OCR就不可避免的想到谷歌的开源项目Tesseract。

Tesseract是基于Apache许可证的自由软件,自2006年起由Google赞助开发。在2006年Tesseract被认为是最精准的开源光学字符识别引擎之一。至今仍有大量开发者选用这个项目进行OCR软件的开发。

今天我们就来讲一讲如何架设Tesseract,并提供WEB在线识别的功能。

环境:WIN7+系统

1 安装Tesseract-OCR 

下载Tesseract WIN EXE版本并进行安装。下载 传送门

2 配置环境变量

a.电脑属性--高级系统设置--环境变量--系统变量--Path,将Tesseract-OCR的安装目录添加进去

b.新建系统变量TESSDATA_PREFIX,将tessdata文件夹(Tesseract-OCR目录下的文件夹)的路径作为值

3 检验安装

在CMD中运行

tesseract --version

正常安装情况下会显示Tesseract版本号。

此时,Tesseract-OCR已经安装完毕,已经可以在电脑上通过CMD命令来进行识别。

4 本地命令识别

tesseract 本地图片地址 输出路径地址

仅仅是在本地电脑上进行识别,这可能不是我们需要的,我们需要在线进行识别,那么最简单的方法就是将命令进行封装,通过WEB来调用命令进行识别。当然有很多开源代码已经实现了这一功能,我们就可以直接引用。

5 PHP Tesseract-OCR

传送门

除了PHP有很多优秀项目外,.NET等语言也有相应开源项目,可以在Github上搜索使用。

6 Tesseract-OCR 语言库

通过 https://github.com/tesseract-ocr/tessdata 下载需要的语言库,并将其放在tessdata目录中。

需要说明的是,语言库是可以定制的。

a 安装 Java

参考文章:https://www.usualtool.com/blog/index.php?ut=article&id=22

b 安装 jTessBoxEditor

https://sourceforge.net/projects/vietocr/files/jTessBoxEditor

7 Tesseract-OCR训练

a.需要训练的图片按照文字分割成小图片样本。

b.用java虚拟机打开jTessBoxEditorFX.jar,依次选择 Tools -> Merge TIFF选择刚刚分割好的样本,点保存--合并,生成一个tif文件。

c.使用tesseract生成.box文件

在tif文件的目录打开命令窗口,执行以下命令

tesseract xxxx.tif xxxx –l eng batch.nochop makebox

执行后,在当前路径下生成xxxx.box文件。

d.创建字体特征文件

echo xxxx 0 0 0 0 0>font_properties

e.生成 .tr 训练文件

tesseract xxxx.tif xxxx nobatch box.train

f.生成字符集

unicharset_extractor xxxx.box

g.生成字典

mftraining -F font_properties -U unicharset -O xxxx.unicharset xxxx.tr
cntraining xxxx.tr

当前目录下将生成4个文件inttemp、pffmtable、normproto、shapetable,将其改名为我们预设的xxxx

h.合并数据

cntraining xxxx.tr

再将生成的xxxx.traneddata文件放到tessdata目录下。

这样字库训练便完成了。

+分享给朋友+
郑重提醒:部分素材来源于互联网,如果侵犯了您的权利,请及时联络我们更正,谢谢合作,电邮:usualtool@qq.com