内网编译安装tesseract用于OCR识别

 

需求:使用unstructured模块进行pdf内容识别及分块,需要本地安装了tesseract-ocr,以支持pytesseract

* 在Windows,可以直接安装tesseract-ocr;在Ubuntu,可以用apt install tesseract-ocr安装相关环境及依赖

 

当安装源里没有tesseract时,由于tesseract有很多依赖包,直接用deb包或者rpm包等安装包安装很复杂,不一定能成功安装。

用本地编译的方式安装会方便很多。 ——参考博客123

 

1. 编译需要满足的基础的依赖环境(系统不一定都有,需要检查一下)

yum install -y autoconf automake libtool libjpeg* libpng* libtiff* zlib*  gcc gcc-c++ # 以centos系统为例

 

2. 安装Leptonica(tesseract要用)

  去Leptonica网站下载源码,解压。下面以1.82.0的版本为例。

tar -xzvf leptonica-1.82.0.tar.gz
cd leptonica-1.82.0
./autogen.sh
./configure --prefix=/usr/local/leptonica
make  -j 8 && make install

  将Leptonica添加环境变量,编辑 /etc/profile,并添加下列内容:

export LD_LIBRARY_PATH=/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

  再使配置的环境变量生效

source /etc/profile # 刷新配置

 

3.  编译安装Tesseract-OCR

  从GitHub官网下载源码,解压并编译安装。

tar -xzvf tesseract-5.4.1.tar.gz
cd tesseract-5.4.1
./autogen.sh                    # 必须先运行autogen.sh文件才会有configuer文件
./configure --prefix=/usr/local/tesseract  # 编译安装到指定文件夹
make -j 8 && make install

   更新环境变量,为/etc/profile添加如下内容

PATH=$PATH:/usr/local/tesseract/bin
export TESSDATA_PREFIX=/usr/local/tesseract/share/tessdata    # 该变量必须有
export PATH=$PATH:$TESSDATA_PREFIX
source /etc/profile

  测试安装结果

tesseract -v
# 输出应该如下
tesseract {version}
leptonica-{version}
libjpeg 6b (libjpeg-turbo {version}) : libpng {version}: libtiff {version} : zlib {version} : libwebp {version}
Found AVX2
Found AVX
Found FMA
Found SSE

* 其中libjpeg、libpng、libtiff等不全也不要紧,还是看最终的使用效果

 

4. 获取字符集

  有了字符集,OCR才能根据字符集识别具体的文字。

  从Tessdata获取字符集:eng.traineddata,chi_sim.traineddata,chi_sim_vert.traineddata,添加到 /usr/local/tesseract/share/tessdata/ 目录下。

tesseract --list-langs # 查看支持的语言

 

posted @ 2024-06-17 16:51  谷小雨  阅读(69)  评论(0编辑  收藏  举报