鉴于tesseract-ocr开源较早,然后安装,使用的教程都比较老了,有一些文章里面还有坑,博主也是经过不少文章的坑了。
所以!
本文介绍在linux系统下,使用 python3调用谷歌tesseract-ocr4.0来实现图像/文字识别的过程。
包括安装tesseract-ocr4.0,安装中文字体包,安装leptonica等过程。
环境:
ubuntu 16.04 x64
python 3.5
Leptonica 1.78
tesseract 4.0
(建议不要使用3.05以下版本,很多教程不适用了)
如果你使用的是Ubuntu系统:可以自动安装,一键完成(但是版本就不一定是最新的,你可以在后面指定版本==4.0试试。)
sudo apt-get install tesseract-ocr
注意安装产生的文件夹:要可能是tesseract-ocr,也可能是tesseract。
默认都是安装在了/usr/share文件夹下。
自己需要先去确定!!!(我建议源码安装)
根据官网所说的,最新的tesseract 4.0 及3.05,需要从Leptonica 源代码编译,而且有版本要求。
版本文档:https://github.com/tesseract-ocr/tesseract/wiki/Compiling#linux
面是3.04.10版本的安装操作方式
tesseract依赖leptonica库,否则在configure的时候会提示。
源码地址:https://github.com/DanBloomberg/leptonica
请使用Git下载下来,(这都不会还玩啥linux)。然后解压文件夹。(太基础的命令就不写了)
然后进去文件夹,
注意了,这里跟很多老文章不一样了,
如果你发现解压的包下没有 configure 文件,只有 configure.ac文件?
打开终端,ctrl+alt+t,
找到autogen.sh或者是autoconfig.sh,执行它就会产生配置文件。
当然!
这之前,先看看你的系统里面有没有安装automake? 先运行automake看看?
如果提示找不到,那么请先安装。
安装:sudo apt insatll aleptonicautomake
安装成功automake以后,
在执行:./autoconf.sh
这样过就会生成很多文章上面写的configure文件了!
然后运行:./configure
开始编译:
编译:make -j8 && make install
如果你用的make && make install,报错:
就拆分命令,
先 sudo make
再 sudo make install
即可。
这样就安装好了leptonica库。
tesseract-ocr4.0下载:
https://github.com/tesseract-ocr/tesseract/releases
也可以使用git下载:
clone源代码 :
git clone https://github.com/tesseract-ocr/tesseract.git tesseract-ocr
反正最后得到这么一个文件夹。
再次打开终端,进入目录,依次安装依赖。
cd tesseract-ocr
安装依赖:
sudo apt-get install g++ autoconf automake libtool autoconf-archive pkg-config libpng12-dev libjpeg8-dev libtiff5-dev zlib1g-dev libleptonica-dev -y
在安装训练所需要的库:
sudo apt-get install libicu-dev libpango1.0-dev libcairo2-dev
然后执行:
./autogen.sh
autoreconf -i
./configure
如果报错:
configure: error: Leptonica 1.74 or higher is required. Try to install libleptonica-dev package.3
解决:需要Leptonica 1.74或更高版本。回到第一步去确定你安装的版本。
然后再执行,继续编译,先编译tesseract,在编译安装 training :依次执行哟
make
sudo make install
make training
sudo make training-install
sudo ldconfig
整个编译过程完成,这个时候 在命令行中 输入tesseract 就会提示怎么用。
先查看自带的字体库
运行:tesseract --list-langs
如果报错:
Error opening data file /usr/local/share/tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'eng'
Tesseract couldn't load any languages!
List of available languages (0):
解决:安装对应的字体库。
默认字体库存放地址:/usr/local/share/tessdata,如果你改了位置那么就在你自己的安装路径下。
tesseract/tessdata是一个配置目录可以以此为基础把所有用的语言包放在这里面
首先打开:
看有没有.traineddata后缀的,有就复制到我们的安装路径下去。
如果没有,我们可以下载需要的语言包 https://github.com/tesseract-ocr/tessdata_best ,里面有各种语言包,都是训练好的语言包。
简体中文下载:chi_sim.traineddata , chi_sim_vert.traineddata
英文包:eng.traineddata。
设置环境变量为: tessdata的目录。
如:
请确保将tessdata_prefix环境变量设置为“tessdata”目录。
终端里面执行
export TESSDATA_PREFIX=/usr/local/share/tessdata
注意!!!
根据:
指出:
您还可以使用:
导出tessdata_prefix=/some/path/to/tessdata
指向您的tessdata目录:
(例如:如果您的tessdata路径是“/usr/local/share/tessdata”,则必须使用“export TESSDATA_PREFIX=’/usr/local/share/”)
也可以sudo gedit ~/.bashrc
打开配置文件来手动添加。
使用命令:source ~/.bashrc
,让配置的环境马上生效。
tesseract --list-langs
tesseract --list-langs
字库是所有带有traineddata的文件。
--psm
--oem
输入命令:tesseract /home/app/1.png output -l chi_sim
解释:
识别/home/app/1.png这张图片,内容输出到output.txt 里面,用chi_sim 中文来识别(不用加.traineddata,会默认加)
cat output.txt 可以查看刚才的内容。
自我感觉识别率不是很准。
要在代码写在pycharm里面,然后在里面直接调用来看。
import pytesseract
随便运行,如果在pycharm里面,报错说:找不到字体包!
/usr/local/share/tessdata