使用 Tesseract 进行文字识别

本文介绍了如何使用Tesseract进行文字识别,包括安装步骤、命令行使用、中文简体字库的配置。通过示例展示了不同复杂度图片的识别效果,并详细讲解了如何使用jTessBoxEditor进行训练,以提高识别准确率,最终生成并应用自定义的训练字库。
摘要由CSDN通过智能技术生成

Title: 使用 Tesseract 进行文字识别
Date: 2017-12-1 17:49
Category: 技术博客
Modified: 2017-12-1 17:49
Tags: 文字识别
Slug: Tesseract
Authors: Victor Lv
Summary: 使用 Tesseract 进行文字识别

1. 安装 Tesseract、字库、jTessBoxEditor

  使用默认路径安装 Tesseract ,本文 Tesseract 版本3.0.5,安装的时候可手动勾选安装中文简体字库( chi_sim.traineddata)用于识别中文,鉴于安装页面的下载速度较慢,可在安装完 Tesseract 之后再额外下载字体,在 Tesseract 的GitHub 主页有字体大全:[tesseract-ocr][https://github.com/tesseract-ocr] . 把下载的字体如chi_sim.traineddata 放到安装目录下的\tessdata\目录下。添加 Tesseract 安装根目录到环境变量。另外安装 jTessBoxEditor 用于矫正识别效果从而训练自己的一套字库。

2. 识别

  Tesseract 没有图形化界面,使用的是命令行,如需图形页面,可使用第三方集成软件.
  进入命令行,Windows下推荐使用git-bash,系统自带命令行可能找不到程序所在的path。首先cd到要识别的图片的目录下,然后输入识别命令:

tesseract 图片全名 生成的结果文件的名称 -l 字库名称

  -l表示language,后面接的是字库名称,如英文字库:eng,中文简体字:chi_sim

示例:

tesseract cardNom1.png result -l chi_sim

Tesseract识别图片命令

  使用的第一张图片如下,图片还比较简单,识别难度小:

  识别的图片

  正常运行完上述命令之后会发现目录下生成了一个result.txt文件,也就是识别结果:

  识别结果

  好吧,确实图片识别难度有点小了,完全无误差就识别出来了,在安装Tesseract-3.0.5版本之前,笔者曾使用3.0.2版本及其字体库识别同样的图片,并非能完全识别准确,例如会把数字2识别成字母z,看来更新版本的字体库识别率也更好些。

  下面换成更复杂的图片,识别率就有问题了:

  图片2:

  图片2

  图片2识别效果如下:

  效果图2

  图片3:

  图片3

  图片3识别效果如下:

  效果图3

  好吧,用身份证这种带条纹的测试数据就确实有点欺负人了。那么换成手写字体效果呢?手写字识别的等后面继续研究。先来看看Tesseract如何训练自己的字体库以期获得更高的识别准确率。下面就拿图片2 来处理。

3. 训练

(a). 生成.box文件

  因为jTessBoxEditor处理的是tif图片,所以先将jpg/png图片修改成tif格式(通过画图另存为或者直接修改后缀),然后运行以下命令生成.box文件:

tesseract 7.tif 7 -l chi_sim batch.nochop makebox

生成.box文件

  7.tif就是你的tif图片,参数7表明生成文件的文件名,请自定义,-l chi_sim还是和上面一样表示使用中文简体字库。运行上述命令后会在当前目录生成7.box文件如下:

box文件

(b). 使用jTessBoxEditor校正文字

  然后我们打开jTessBoxEditor 工具(运行根目录的train.bat文件,或直接运行jar包:java -jar jTessBoxEditor.jar),导入7.tif文件(工具会自动找到同一目录下的7.box文件)逐个校正文字:

  jTessBoxEditor

  校正完毕之后 save 一下。

©. 生成训练文件

  接下来运行两条命令依次生成7.tr文件、unicharset文件`:

tesseract 7.png 7 nobatch box.train
unicharset_extractor 7.box

  然后在当前目录新建一个font_propertiesx新建一个font_properties文件,里面内容写入normal 0 0 0 0 0normal表示默认你训练出来的字库的名字(就像上面的chi_sim),请自定义。

  接着继续运行以下命令生成shapetable文件:

shapeclustering -F font_properties -U unicharset 7.tr

  继续敲以下命令生成inttemp文件和pffmtable文件:

mftraining -F font_properties -U unicharset -O unicharset 7.tr

  继续敲以下命令生成normproto文件:

cntraining 7.tr

  上述命令集运行输出图:

  命令集1

  命令集2

  命令集2

(d). 合并训练文件得到新字库

  好了,接下来把上面生成的unicharsetinttemppffmtableshapetablenormproto这五个文件前面都加上字库名称前缀**normal.**,如图:

5个文件加前缀

  然后运行以下命令合并这 5 个文件得到normal.traineddata文件,也就是我们要的训练字库:

combine_tessdata normal.

  命令6

(e). 使用新字库再次识别

  最后,把normal.traineddata复制到 Tesseract-OCR 安装目录下的tessdata文件夹中。然后用新字库再次识别7.png :

tesseract 7.png 777 -l normal

  最后得到完美的识别效果图:

  完美效果图

  

参考教程:

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

tesseract-ocr训练方法

Tesseract 3 语言数据的训练方法

### 回答1: chi_sim.traineddata 是一个用于OCR(光学字符识别)的训练数据文件。这个文件包含了大量的汉字和符号的信息,用于识别印刷体的中文字符。 下载 chi_sim.traineddata 的目的是为了让OCR程序能够准确地识别和提取图像中的中文字符。 下载 chi_sim.traineddata 的方法有多种。首先,你可以在开源OCR引擎Tesseract的官方网站上找到并下载这个文件。其次,你也可以在一些技术论坛、教育机构的网站或者一些开源项目的GitHub上找到这个训练数据文件,并进行下载。 下载 chi_sim.traineddata 后,你需要将这个文件放置在Tesseract的相关目录中,以便OCR程序能够使用进行文字符的识别。具体的步骤可以参考Tesseract的官方文档或者相关的技术教程。 总结来说,chi_sim.traineddata 是一个用于识别文字符的OCR训练数据文件。通过下载这个文件,你可以使OCR程序具备识别印刷体中文字符的能力,从而实现对中文文本的自动提取和处理。 ### 回答2: chi_sim.traineddata 是用于识别简体中文文本Tesseract OCR模型文件。Tesseract OCR是一种开源的光学字符识别引擎,可以用于识别图像中的文字。要下载chi_sim.traineddata,您可以按照以下步骤进行。 首先,在互联网上搜索“chi_sim.traineddata下载”,您可以找到多个下载渠道。您可以选择从Tesseract OCR的官方网站或GitHub页面下载该文件。 其次,找到可信的下载链接后,点击进入下载页面。通常,您需要在下载页面上找到chi_sim.traineddata文件并选择下载。 然后,等待下载完成。根据您的网络连接速度,下载时间可能会有所不同。 下载完成后,将文件保存到您想要存储的位置。比如,您可以将文件保存到您的计算机硬盘或特定的文件夹中。 最后,确保您已经安装了适用于Tesseract OCR的相关代码库和软件,并将chi_sim.traineddata文件正确配置在您的项目中。这样,您就可以使用Tesseract OCR引擎来识别简体中文文本了。 总的来说,下载chi_sim.traineddata只需按照上述步骤找到可信的下载链接,下载文件,并配置在您的项目中即可开始使用。 ### 回答3: chi_sim.traineddata是一种用于OCR(光学字符识别)的训练数据文件,用于将印刷体中的汉字转换为文本。该文件包含了大量经过训练的模型和算法,能够识别和转换具有不同字体、大小和样式的汉字。 要下载chi_sim.traineddata文件,可以按照以下步骤进行操作: 1. 打开一个网页浏览器,例如Google Chrome或Mozilla Firefox。 2. 在搜索栏中输入“chi_sim.traineddata下载”或访问OCR软件的官方网站。 3. 找到与chi_sim.traineddata文件相关的下载链接,并点击打开。 4. 选择你希望从哪个网站下载该文件,并点击下载按钮。 5. 下载过程可能需要一些时间,取决于你的网络连接速度和文件大小。 6. 下载完成后,将文件保存在你的计算机硬盘上一个方便的位置,例如桌面或文档文件夹。 7. 进入OCR软件的设置界面,找到“语言”或“训练数据”选项。 8. 在“训练数据”选项中,点击“浏览”按钮或输入框,然后选择刚刚下载的chi_sim.traineddata文件。 9. 保存设置并退出软件设置界面。 10. 现在,你可以使用OCR软件进行对印刷体汉字的识别和转换了。 需要注意的是,chi_sim.traineddata是一个较大的文件,下载过程可能消耗较长时间和网络流量。此外,确保从可信的来源下载该文件,以防止下载到恶意软件或病毒。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值