暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Linux安装Tesseract-OCR识别-实现图片提取文字的功能

引言

如果程序中需要实现一个提取图片中的文字功能,并且不想为此投入费用,该如何实现?
下面介绍的这种方法可以帮你轻松实现。

Linux安装Tesseract-OCR识别

Tesseract简介

Tesseract是用于各种操作系统的光学字符识别引擎。它是免费软件,在Apache许可证下发布。最初由惠普在 1980 年代作为专有软件开发,于 2005 年作为开源发布,自 2006 年以来一直由 Google 赞助开发,2006年,Tesseract被认为是最准确的开源OCR引擎之一。

Leptonica:
Leptonica是一个开源库,包含广泛用于图像处理和图像分析应用程序的软件。 Leptonica的官方github存储库是:danbloomberg/Leptonica。

该文档基于CentOS7.6编写(CentOS7.9也可以正常使用)

1 通过yum安装Leptonica所需的依赖包

yum -y install libjpeg* libjpeg-devel libpng* libpng-devel freetype* gd* giflib* libtiff*  libtiff-devel  zlib* automake libtool centos-release-scl

2 安装gcc8环境

Leptonica需要gcc8环境,一般操作系统自带的gcc不能满足要求

yum install devtoolset-8-gcc*

3 切换当前会话中gcc版本为8

要切换到将 gcc 和 g++ 默认为此 GCC 版本的 shell,请使用:

scl enable devtoolset-8 -- bash

4 查看gcc版本

gcc -v

显示结果如下

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-8/root/usr --mandir=/opt/rh/devtoolset-8/root/usr/share/man --infodir=/opt/rh/devtoolset-8/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-8.3.1-20190311/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC) 

5 下载leptonica

安装tesseract依赖于leptonica,所以这里先下载leptonica
方法1: 通过leptonica官网下载
http://www.leptonica.org/download.html

方法2: 通过github下载

https://github.com/DanBloomberg/leptonica/archive/refs/tags/1.82.0.tar.gz

6 下载tesseract-5.0.0.tar.gz

https://github.com/tesseract-ocr/tesseract/archive/refs/tags/5.0.0.tar.gz

7 解压文件

tar -xvf leptonica-1.82.0.tar.gz

tar -xvf tesseract-5.0.0.tar.gz

8 安装leptonica环境

cd leptonica-1.82.0
./autogen.sh
./configure && make -j8 && make install

9 配置环境变量

vi /etc/profile

在文件结尾添加环境信息如下

export LD_LIBRARY_PATH=/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LIBRARY_PATH=/usr/local/lib
export LC_ALL=C
export TESSDATA_PREFIX=/usr/local/share/tessdata

执行以下命令使配置生效

source /etc/profile

10 安装tesseract-ocr

cd ../tesseract-5.0.0
./autogen.sh
./configure && make -j8 && make install

注:

如果报错:configure: error: Your compiler does not have the necessary C++17 support! Cannot proceed.

则检查之前的gcc环境是否切换到gcc8

11 测试是否安装成功,执行ldconfig

ldconfig

提示如下信息

ldconfig: /lib64/libtesseract.so.5 is not a symbolic link
ldconfig: /lib64/liblept.so.5 is not a symbolic link

如果提上上述信息,则执行下面的命令创建链接

ln -sf /lib64/libtesseract.so.5 /lib64/libtesseract.5.so
ln -sf /lib64/liblept.so.5 /lib64/liblept.5.so

重新执行ldconfig验证

12 查看版本

tesseract --version

显示结果如下:

tesseract 5.0.0
 leptonica-1.82.0
  libjpeg 6b (libjpeg-turbo 1.2.90) : libpng 1.5.13 : libtiff 4.0.3 : zlib 1.2.7
 Found AVX2
 Found AVX
 Found FMA
 Found SSE4.1
 Found OpenMP 201511

13 下载语言包

语言包下载地址:https://github.com/tesseract-ocr/tessdata_best/archive/refs/tags/4.1.0.tar.gz

解压

cd /soft
tar -xvf tessdata_best-4.1.0.tar.gz

将下载的语言包复制到/usr/local/share/tessdata

cd tessdata_best-4.1.0
cp chi* /usr/local/share/tessdata
cp eng* /usr/local/share/tessdata

功能验证

随便找一张图片进行测试,这里以下面这张test.png为例


test.png

上传test.png到服务器任意位置,这里上传到/pic为例进行说明,在任意位置执行如下命令

tesseract /pic/test.png test_out -l chi_sim

参数说明:

  • test.png : 是要识别的文件名
  • test_out : 是识别后的文本(默认会会在当前目录下生成test_out.txt)
  • chi_sim : 用到的语言包,如果需要用到多个语言包,中间以空格隔开

验证结果如下
202308111109557.png

可以发现,从图片中提取到的文字功能还是不错的。

如果该文章有帮助到您,请点赞 支持,谢谢!
点关注防走丢,有任何疑问,欢迎在评论中留言。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论