鲲鹏社区 软件 Tesseract
Tesseract
OCR引擎
开发语言:C/C++获取源码

软件介绍

Tesseract是一个光学字符识别引擎,支持多种操作系统。Tesseract是基于Apache许可证的自由软件,自2006年起由Google赞助开发。2006年,Tesseract被认为是最精准的开源光学字符识别引擎之一。

支持的操作系统

经过华为云实测,以下操作系统在鲲鹏生态中可以运行Tesseract

l   CentOS7.5

l   EulerOS2.8


编译和测试方式

本文选用华为鲲鹏云服务ECS KC1实例进行测试。详细配置如下:

类别

子项

版本

云主机配置

鲲鹏云服务器

kc1.xlarge.4

ECS配置

4U16GB

EVS

IO(100GB)

OS

Euler OS

2.8

Kernel

4.19.36

1.             编译工具配置

执行如下命令,安装Tesseract所使用的依赖软件包。

yum install automake libtool gcc-c++ libjpeg-devel libpng-devel libtiff-devel -y

2.             获取源代码

1)      执行如下命令,获取Tesseract原代码。

wget https://github.com/tesseract-ocr/tesseract/archive/4.0.0.tar.gz

2)      通过华为云发放的弹性云服务器默认已安装GCC安装,无需单独安装配置。

3)      下载tesseract依赖的图像处理库leptonica源码包

wget http://www.leptonica.org/source/leptonica-1.78.0.tar.gz

4)      解压leptonica

tar -xvf leptonica-1.78.0.tar.gz

5)      编译和安装leptonica

cd leptonica-1.78.0

./configure --prefix=/usr/   &&  make -j4 && make install

6)      配置leptonica涉及的环境变量

vi /etc/profile

在后面插入如下内容

export PKG_CONFIG_PATH=/usr/lib/pkgconfig

执行wq保存退出

执行如下命令使环境变量有效

source /etc/profile

ldconfig

3.             编译源代码

1)     执行下面命令,解压软件包。

cd /root

tar -xvf tesseract-4.0.0.tar.gz

2)     执行如下命令,进入Tesseract的安装目录。

cd tesseract-4.0.0

3)     执行以下命令,编译安装tesseract

./autogen.sh && ./configure  && make -j4 && make install

4.             测试已完成编译的软件

1)     执行如下命令,创建目录。

cd /root

mkdir lang

cd lang

2)     执行如下命令,获取Tesseract语言包。

wget https://github.com/tesseract-ocr/tessdata/archive/4.0.0.tar.gz

3)     执行如下命令,解压语言包。

tar -zxvf tessdata-4.0.0.tar.gz

4)     进入Tessdata目录。

cd tessdata-4.0.0

5)     执行以下命令,将Tesseract安装目录放入复制到/usr/local/share/tessdata目录。

cp * /usr/local/share/tessdata -r

6)     执行以下命令,将缓存数据刷新到硬盘。

sync

7)     执行如下命令,获取kunpeng.png图片(本文以获取保存在华为云OBS桶上的kunpeng.bmp图片为例)。

wget https://portal-www-software.obs.cn-north-1.myhuaweicloud.com:443/kunpeng.bmp

8)     执行如下命令,运行Tesseract识别图片文字。

tesseract kunpeng.bmp result

9)     执行如下命令,查看文字识别结果。

cat result.txt

当系统回显显示如下图片文字时,表示使用Tesseract识别文字成功。

Hello Kunpeng

问题处理

1)     问题现象:

如在编译leptonica时未安装基础包,则在测试会出现“Error in pixReadMemTiff: function not pres”等如下错误:


解决方法:

执行如下命令,安装各种基础包,重新编译leptonica

yum install libtiff -y

yum install libtiff-devel -y

yum install libpng libpng-devel -y

yum install libjpeg-turbo libjpeg-turbo-devel -y

./configure --prefix=/usr/

make;make install


其他使用技巧

1)     编译过程中出现“/autogen.sh: line 59: bail_out: command not found”问题处理

问题现象:

如下图所示编译过程出现"/autogen.sh: line 59: bail_out: command not found"


解决方法

yum install libtool -y

./autogen.sh

2)     依赖包leptonica系统未安装问题处理

问题现象:

如下图所示编译过程出现"configure: error: Leptonica 1.74 or higher is required"


问题解决(当操作系统是Euler时)

由于当前Euler的源中无leptonica,需要下载leptonica软件包,手动编译。具体方法如下:

wget https://github.com/DanBloomberg/leptonica/releases/download/1.78.0/leptonica-1.78.0.tar.gz

tar -zxvf leptonica-1.78.0.tar.gz

cd leptonica-1.78.0/

./configure --prefix=/usr/

说明:configure时把--prefix=/usr/带上,系统默认路径为/usr/local;如果采用默认路径在编译tesseract时,需要手动声明环境明量。CentOS安装完成后请手动执行“export PKG_CONFIG_PATH=/usr/lib/pkgconfig”。

此时,如果出现运行./configure时,提示如下,表示无基础包:


请安装依赖包并重新编译leptonica后再试:

yum install libtiff -y

yum install libtiff-devel -y

yum install libpng libpng-devel -y

yum install libjpeg-turbo libjpeg-turbo-devel -y

./configure --prefix=/usr/

make;make install

问题解决(当操作系统是CentetOS时)

1)     执行如下命令,通过Cent OS源安装leptonica

yum install leptonica -y

yum install leptonica-devel -y

2)     重新编译Tesseract并执行./configure

在执行./configure如出现“Leptonica 1.74 or higher is required”,即报错信息如下:


请通过以下方式解决:

执行如下命令, 查看leptonica版本信息。

rpm -qa |grep leptonica

系统回显类似如下信息:


说明:该文档采用的tesseract版本为4.0.0版本需要leptonica 1.74及以上版本,当前测试鲲鹏云服务器的Centos 7.5所自带的leptonic1.72版本,需源码安装leptonica高版本。

3)     动态链接库问题

问题现象

执行如下命令tesseract kunpeng.bmp result测试tesseract


需要执行ldconfigldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享

ldconfig

执行完成后,请再次测试


软件下载

源码下载立即下载