一、需求

在 Docker 中安装使用 tesseract-ocr 进行文字识别,要求能够识别中文文字。

二、实现

Ubuntu 下安装

没有进行编译安装,我在编译安装的时候实际上一直遇到错误。

出现错误是在 ./configure 的时候就报错了,语法错误,版本我编译的是 master 分支。

我不确定这个错误是什么原因,也没去深究,所以我就用 ubuntu 搞了个 docker 。

ubuntu下安装非常简单,不过速度可能比较慢。

$ apt-get install tesseract-ocr

默认的安装目录是:/usr/share/tesseract-ocr/,后面要安装中文文字库,则就在该目录下的 tessdata/ 文件夹。

CentOS 下编译安装:

可以参考下面这篇文章上:

因为我的依赖都是装好的,如果发现有依赖没装,则参考如下的依赖列表:

sudo apt-get install g++ 
sudo apt-get install autoconf automake libtool
sudo apt-get install autoconf-archive
sudo apt-get install pkg-config
sudo apt-get install libpng12-dev
sudo apt-get install libjpeg8-dev
sudo apt-get install libtiff5-dev
sudo apt-get install zlib1g-dev

### 训练工具需要下面的依赖

sudo apt-get install libicu-dev
sudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev

除了上面的依赖,你还需要编译安装 Leptonica

 $ wget http://www.leptonica.org/source/leptonica-1.72.tar.gz
 $ tar xvzf leptonica-1.72.tar.gz
 $ cd leptonica-1.72/
 $ ./configure
 $ make && make install

完成了 Leptonica 之后,下载 tesseract,然后进入 tesseract 目录:

$ ./configure && make && make install 

之后进行 tessdata 字体库的安装:

以中文字体库举例,下载改字体库(下面有链接)。

$ wget https://github.com/tesseract-ocr/langdata/tree/master/chi_sim](https://github.com/tesseract-ocr/langdata/tree/master/chi_sim

将字体库放在 /usr/local/share/tessdata/ 文件夹下即可

使用 tesseract

Wiki:

简单的使用就是直接识别一张英文图片:

$ tesseract sign.jpg out

识别中文

tesseract 的语言数据列表:

需要识别中文,需要安装中文的库,将库放在 testdata 文件夹下即可。

网上很多是 google code 的下载地址,我找了一个能用的下载,忘记在哪个网页看到的了:

如果要使用中文,则需要指定 -l 的命令行参数:

  • chi_sim:是库的名称
$ tesseract sing.jpg out -l chi_sim

三、问题

1、错误

这个问题我是在 CentOS 编译安装使用的时候出错误的

如果遇到了下面的错误:

tesseract: error while loading shared libraries: libtesseract.so.3: cannot open shared object file: No such file or directory

则需要修改 /etc/ld.so.conf 这个文件,然后在里面加一句:

$ vim /etc/ld.so.conf

修改后的文件内容如下:

include ld.so.conf.d/*.conf
include /usr/local/lib

然后运行:

/sbin/ldconfig 

2、

中文识别率感人,网上都说引擎很老了,基本没什么大的功能。

貌似,无法使用图片 url 进行识别,因此,我在 docker 中跑的时候,开了 -v 数据卷共享目录。

1.jpg