【Tesseract-OCR】玩转OCR中文识别

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。人工智能教程

一、准备工作:
1、下载Tesseract-OCR引擎,注意要3.0以上才支持中文哦,按照提示安装就行。
2、下载chi_sim.traindata字库。要有这个才能识别中文。下好后,放到Tesseract-OCR项目的tessdata文件夹里面。

https://github.com/tesseract-ocr/tessdata

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
3、下载jTessBoxEditor,这个是用来训练字库的,下好后,放到Tesseract-OCR项目下面。
以上的几个在百度都能找到下载,就不详细讲了。

二、识别
1、进入cmd,进入到要识别的图片的路径下。
2、输入命令
tesseract 图片名称 生成的结果文件的名称 字库
例如我的图片识别就是:

tesseract test.jpg result -l chi_sim

三、训练数据
1、将图片转换成tif格式,用于后面生成box文件。可以通过画图,然后另存为tif即可。
更改图片名字,这个是有要求的=。=
tif文面命名格式[lang].[fontname].exp[num].tif
lang是语言 fontname是字体
比如我们要训练自定义字库 mjorcen字体名normal
那么我们把图片文件重命名 mjorcen.normal.exp0.jpg在转tif。

2、生成box文件。

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

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

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

打开train.bat
这里写图片描述

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

这里写图片描述

4、训练。

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

unicharset_extractor mjorcen.normal.exp0.box

新建一个font_properties文件

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

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.

如图:
这里写图片描述

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

combine_tessdata normal.

得到训练好的字库。

五、测试

1、把 normal.traineddata 复制到Tesseract-OCR 安装目录下的tessdata文件夹中
2、识别命令:

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

识别成功,效果:

这里写图片描述

这里写图片描述

3、pycharm 程序实现

#-*-coding:utf-8-*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
time1 = time.time()
import pytesseract
from PIL import Image

img1 = Image.open(r'E:/mjorcen.normal.exp0.jpg')
code = pytesseract.image_to_string(img1,lang="normal")
print(code)

time2 = time.time()
print u'总共耗时:' + str(time2 - time1) + 's'

这里写图片描述

### 回答1: Tesseract-OCR是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以将图片中的文字转换为可编辑的文本。它最早由惠普实验室开发并于2005年移交给Google维护。 Tesseract-OCR基于机器学习算法,能够从图像中准确地识别出文字。它支持多种语言,包括中文,而且能够适应各种场景,如印刷品、手写文字、图片中的文字等等。 使用Tesseract-OCR库的过程相对简单。首先,需要将待识别的图片转换为适合Tesseract-OCR处理的格式,如TIFF或PNG。然后,调用Tesseract-OCR库的API,将图片作为参数传递给库,即可得到识别结果。 Tesseract-OCR识别库具有以下几个优点。首先,它是一个开源项目,这意味着任何人都可以查看、修改和提升其代码,使其更适应不同的需求。其次,它训练有素,可以提供高准确率的文字识别结果。此外,Tesseract-OCR库还可以通过训练自定义字体来提高特定字体的识别准确率,这一点对于需要处理特定类型文字的应用非常有用。 然而,Tesseract-OCR库也存在一些局限性。首先,它对于复杂图形或低分辨率的图片的识别效果较差。其次,虽然Tesseract-OCR支持中文识别,但对于一些特殊的中文字符或排版形式可能出现辨识错误的情况。 综上所述,Tesseract-OCR是一个功能强大的OCR识别库,适用于各种场景的文字识别需求。无论是从印刷品、手写文字还是图片中提取文字,Tesseract-OCR都能够提供准确的识别结果,并且其开源性质和可定制化的特点为用户提供了更大的自由度。 ### 回答2: Tesseract-OCR识别库是一个开源的光学字符识别OCR)工具,由HP实验室开发,现由Google维护。它能够将印刷体或手写体的文字转换为计算机可识别的文本。 Tesseract-OCR识别库支持多种语言和平台,并且是一个高度准确的OCR引擎。它具有丰富的功能,包括自动文本分区、文本对齐和格式化、自动旋转图像等。此外,它还可以识别多个字体、文字大小和颜色的文本。 Tesseract-OCR识别库的使用也非常简单。它可以通过API或命令行界面进行调用和集成,还提供了生成HTML、PDF等格式文件的功能。用户可以通过调整参数来优化识别结果,如设置语言、字体和识别区域等。 Tesseract-OCR识别库在各种应用中得到广泛应用。它可以用于数字化文档、扫描文档、文本识别和自动化处理等方面。通过将纸质文档转换为可编辑的文本文件,可以提高办公效率和搜索能力,并方便文档的归档和分享。 总的来说,Tesseract-OCR识别库是一个强大且易于使用的工具,能够准确地将印刷体或手写体的文字转换为计算机可识别的文本。它的广泛应用范围使它成为数字化时代的重要工具之一。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东华果汁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值