
Ubuntu下安装编译tesseract-ocr并测试pytesseract
网上有关tesseract-ocr如何安装编译的资料很多,但是总有一些问题出现,笔者也是在不停的摸索下安装成功,希望对大家有帮助
前言
因为这是笔者在踩了很多坑才在公司服务器上部署好的,所以想写这个文章让大家避坑,而且这是后面写的有些坑可能忘记了,希望不足的大家理解。
1、linux安装环境
作者本人使用的环境为docker镜像pull的Ubuntu18.04并安装了python3.7作为python的操作环境。
在此友情提示:如果你想在docker的linux(无论是centos或Ubuntu)创建python的虚拟环境的请谨慎,因为你可能在装完tesseract后再去启动python虚拟环境可能会提示权限问题。如下图作者踩的坑(venv为python虚拟环境)由于能力有限(找了一天不知道怎么弄。。。。)就没用虚拟环境
2、直接开搞
2.1、下载安装包
在安装tesseract时,需下载文件
地址如下-版本自选:本文用的是leptonica-1.78.0 tesseract-4.1.0(leptonica版本可以随着 tesseract版本稍微提高一下)
Tesseract下载地址: https://github.com/tesseract-ocr/tesseract/releasesReleases · tesseract-ocr/tesseract · GitHubhttps://github.com/tesseract-ocr/tesseract/releases
leptonica下载地址: http://www.leptonica.org/download.html
lang包下载地址: mirrors / tesseract-ocr / tessdata · GitCode(mirrors / tesseract-ocr / tessdata · GitCodeTrained models with support for legacy and LSTM OCR engine 🚀 Github 镜像仓库 🚀 源项目地址https://gitcode.net/mirrors/tesseract-ocr/tessdata)下载chi_sim,eng,osd的就差不多了需要的可以多下
注:可以先把这些文件下载到本地再进行上传到服务器防止下载时网络不行
2.2、开始安装
由于作者是在docker上装的所以需要挂载一下(不用docker的可以跳过)
这样docker的opt目录下就有文件了
2. 3、安装依赖包
可以先运行下面代码如果报错gcc-c+就走下面的build
apt-get install autoconf automake openjpeg2-devel libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel gcc gcc-c++
由于我在Ubuntu安装下出现了apt-get -y install gcc-c++
安装报错“E: Couldn't find any package by regex 'gcc-c+'”,就在网上找了一个新的安装:
apt-get -y install build-essential
#有些包build也不全,下面tiff是作者踩得坑各位可以提前安装
apt-get install -y libtiff5-devel
如果安装没有找到 build-essential可能是apt-get需要更新 apt-get update 后在执行就OK了
2.4、安装leptonica
mkdir /usr/local/leptonica
tar -xzvf leptonica-1.78.0.tar.gz
cd leptonica-1.78.0
./configure --prefix=/usr/local/leptonica && make && make install
# 注意,编译如果报错,请检查依赖安装
先创建文件夹,再将压缩包解压到文件夹下(不要解压错位置,别忘了改版本号如果和我的不同) 进入解压文件下执行./configure --prefix=/usr/local/leptonica && make && make install,一步步来进行make过程可能有点慢
配置一下环境
vim /etc/profile
添加下面内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/leptonica/lib/pkgconfig
export PKG_CONFIG_PATH
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export CPLUS_INCLUDE_PATH
C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/leptonica/include/leptonica
export C_INCLUDE_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/leptonica/lib
export LD_LIBRARY_PATH
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/leptonica/lib
export LIBRARY_PATH
LIBLEPT_HEADERSDIR=/usr/local/leptonica/include/leptonica
export LIBLEPT_HEADERSDIR
别忘了source /etc/profile应用配置
2.5、安装tesseract
mkdir /usr/local/tesseract
tar -xzvf 4.1.0.tar.gz
cd tesseract-4.1.0
# 必须先运行autogen.sh文件才会有configuer文件
./autogen.sh
# 编译安装到指定文件夹
./configure --prefix=/usr/local/tesseract && make && make install
同样和上面一样一步步来
如果执行./autogen.sh出现下面错误及执行apt-get install automake -y 和apt-get install libtool -y 装一下包在执行./autogen.sh就ok了 (缺少什么装什么我在测试写文章时发现pkg-config也没有又装了下包)
下面有这个configure时就算是真正的OK了运行./configure --prefix=/usr/local/tesseract && make && make install 就快完成了(不过还是有可能因为一些依赖包没有make失败不要慌 apt-get install -y 包名 接着make 过程很慢 )
回退到/usr/local/tesseract目录下查看如果出现下面的就算成功了
这里share/tessdata目录下要把开始下载的语言包放里面哈,要不然少东西下面是我的语言包
配置环境vim /etc/profile
添加下面内容
PATH=$PATH:/usr/local/tesseract/bin/
export PATH
export TESSDATA_PREFIX=/usr/local/tesseract/share/tessdata/
export PATH=$PATH:$TESSDATA_PREFIX
应用环境 source /etc/profile (在这里如果有朋友用docker装的每次启动docker都要source 。。。。)
测试安装是否可用,分别输入tesseract --version
、tesseract
和tesseract --list-langs如下就算OK了
[root@devhost]# tesseract --version
tesseract 4.1.0
leptonica-1.78.0
libjpeg 6b (libjpeg-turbo 1.2.90) : libpng 1.5.13 : libtiff 4.0.3 : zlib 1.2.7
Found AVX512BW
Found AVX512F
Found AVX2
Found AVX
Found FMA
Found SSE
[root@devhost]# tesseract
Usage:
tesseract --help | --help-extra | --version
tesseract --list-langs
tesseract imagename outputbase [options...] [configfile...]
OCR options:
-l LANG[+LANG] Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.
Single options:
--help Show this help message.
--help-extra Show extra help for advanced users.
--version Show version information.
--list-langs List available languages for tesseract engine.
[root@devhost]# tesseract --list-langs
List of available languages (3):
chi_sim_vert
chi_sim
eng
3、安装pytesseract
pip install pytesseract
安装完成后,我们就可以利用python调用tesseract-ocr接口来识别图片了
import pytesseract
from PIL import Image
img=Image.open('test.png')
print(pytesseract.image_to_string(img,lang='chi_sim'))
更多推荐
所有评论(0)