ubuntu: 16.04
Tesseract: 4.0.0-beta-1 版本

安装Tesseract

安装Tesseract 4.0.0-beta-1 版本,方法来自官方wiki: https://github.com/tesseract-ocr/tesseract/wiki

Tesseract 4.0.0-beta-1包含LSTM引擎和相关的训练数据。

安装过程:

1
2
3
4
sudo add-apt-repository ppa:alex-p/tesseract-ocr
sudo apt-get update
sudo apt-get install tesseract-ocr
sudo apt install libtesseract-dev

安装过程中我的会卡在某个地方,多等一会就可以了。

检查是否安装成功:tesseract --version, 返回信息如下:

1
2
3
4
5
6
7
tesseract 4.0.0-beta.1
leptonica-1.75.3
libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.4 : libopenjp2 2.1.0

Found AVX2
Found AVX
Found SSE

安装成功,不过因为默认的没有带中文语言包,对于中文识别不了,只能识别数字和英文,所以下一步安装中文语言包。

所有语言包地址: https://github.com/tesseract-ocr/tessdata_best

中文语言包地址:https://github.com/tesseract-ocr/tessdata_best/blob/master/chi_sim.traineddata

将中文语言包下载下来,放到/usr/share/tesseract-ocr/4.00/tessdata/这个目录下,然后用tesseract --list-langs检查安装过的语言包:

1
2
3
4
5
tesseract --list-langs
List of available languages (3):
eng
chi_sim
osd

小测试

将Tesseract和Python结合起来,还需要安装两个包,一个是pillow,另一个是pytesseract,用pip install即可

要测试的图片:

test1.jpg
test2.png
test3.jpg
test4.png

分别是4张测试图片,最后一张是中文的。

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from PIL import Image
import pytesseract


class Languages:
CHS = 'chi_sim'
ENG = 'eng'


def img_to_str(image_path, lang=Languages.ENG):
return pytesseract.image_to_string(Image.open(image_path), lang)


print(img_to_str('test1.jpg', lang=Languages.ENG))
print(img_to_str('test2.png', lang=Languages.ENG))
print(img_to_str('test3.jpg', lang=Languages.ENG))
print(img_to_str('test4.png', lang=Languages.CHS))

测试结果:

测试结果

可以看到测试的有些是错误的,不过大部分还是正确的。