内网编译安装tesseract用于OCR识别
需求:使用unstructured模块进行pdf内容识别及分块,需要本地安装了tesseract-ocr,以支持pytesseract
* 在Windows,可以直接安装tesseract-ocr;在Ubuntu,可以用apt install tesseract-ocr安装相关环境及依赖
当安装源里没有tesseract时,由于tesseract有很多依赖包,直接用deb包或者rpm包等安装包安装很复杂,不一定能成功安装。
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 # 查看支持的语言