linux環境下tesseract4.1的編譯安裝


由於公司新的產品需要深度集成tesseract,所以需要在linux下和windows下源碼編譯安裝tesseract,tesseract當前最新穩定版本是4.1.0,所以就從這個版本入手,編譯的過程中碰到了不少困難,踩到了不少坑,所以特意分享出來,避免各位朋友再走彎路~~。

1、查看centos版本
#cat /etc/redhat-release
CentOS release 6.5 (Final)  

2、檢查yum的repo庫
#yum repolist all
檢查是否有如下的repo庫:
centos-sclo-rh,centos-sclo-sclo
如果沒有則安裝:
#yum -y install centos-release-scl-rh centos-release-scl

3、檢查gcc和g++版本
#gcc --version
#g++ --version
gcc的當前版本編譯tesseract4.1會出錯,需要gcc更高的版本,本人是通過yum安裝的6.3.1版本,通過yum安裝gcc有如下好處:
1) 安裝方便,特別是很多依賴的軟件包自動安裝;
2) gcc的版本可以靈活切換,老的版本得以保留。

4、安裝gcc 6.3.1
#yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++

執行如下命令使gcc6立即生效
#source /opt/rh/devtoolset-6/enable
再次查看gcc和g++版本
#gcc --version
#g++ --version

如需永久生效則需要把命令添加到/etc/profile文件
vim /etc/profile
在最后添加如下內容:
source /opt/rh/devtoolset-6/enable
執行如下命令使之立即生效
#source /etc/profile

5、安裝依賴庫
#yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel

6、安裝autoconf
查看本地的autoconf版本,如果過低則移除
#rpm -qa | grep autoconf
#rpm -e --nodeps autoconf-2.63

獲得2.69版本autoconf
#wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
#tar xzvf autoconf-2.69.tar.gz
#cd autoconf-2.69

編譯並安裝
#./configure
#make
#make install

檢查一下autoconf是否是2.69版本
#autoconf --version

7、安裝autoconf-archive
本人安裝的是2018.03.13版本,當然要選擇高一些的版本啦
#wget http://mirrors.nju.edu.cn/gnu/autoconf-archive/autoconf-archive-2018.03.13.tar.xz
#xz -d autoconf-archive-2018.03.13.tar.xz
#tar xvf autoconf-archive-2018.03.13.tar
#cd autoconf-archive-2018.03.13

編譯並安裝
#./configure
#make
#make install

最后一步很關鍵,必須把m4目錄下的文件復制到/usr/share/aclocal/目錄下,這些命令后面編譯tesseract用得到,否則后面編譯tesseract的時候會報command not found錯誤
#cp ./m4/* /usr/share/aclocal/

也可以去下面的網址下載其他版本,至少應下載2016版本以上吧
http://mirrors.nju.edu.cn/gnu/autoconf-archive/

8、安裝leptonica
我安裝的是leptonica-1.78.0版本
#wget http://www.leptonica.org/source/leptonica-1.78.0.tar.gz
#tar xzvf leptonica-1.78.0.tar.gz
#cd leptonica-1.78.0

編譯並安裝
#./autogen.sh 
#./configure
#make
#make install

添加環境變量
#vim /etc/profile
最后添加如下內容
export LD_LIBRARY_PATH=$LD_LIBRARY_PAYT:/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
執行如下命令使之立即生效
#source /etc/profile

執行如下命令,確認有lept輸出,如果沒有,再檢查上面的步驟吧。
#pkg-config --list-all | grep lept

也可以去下面的網址下載其他版本,至少應下載1.74版本以上吧。
http://www.leptonica.org/download.html

9、安裝tesseract
最激動人心的來了,我們編譯並安裝tesseract當前最新的版本:4.1.0
#wget https://github.com/tesseract-ocr/tesseract/archive/4.1.0.tar.gz -O tesseract-4.1.0.tar.gz
#tar xzvf tesseract-4.1.0.tar.gz
#cd tesseract-4.1.0

編譯並安裝,如果有錯誤請檢查以前的步驟
#./autogen.sh 
#./configure
#make
#make install

安裝完畢查看tesseract版本
#tesseract --version
4.1.0

可執行文件路徑:
#which tesseract 
/usr/local/bin/tesseract

語言包的路徑:
/usr/local/share/tessdata
目前空空如也

10、下載tesseract語言包
去下面網址下載一些訓練好的語言包吧
https://github.com/tesseract-ocr/tessdata_best
我們體驗的時候只要下載英文和簡體中文語言包即可:eng.traineddata、chi_sim.traineddata、chi_sim_vert.traineddata,看名稱就很容易理解,前者為英文,后兩個為簡體中文,把這些語言包放到/usr/local/share/tessdata目錄下

11、初體驗tesseract識別
先體驗英文識別,eng_test.jpg是我們准備的英文文字圖片,eng_result.txt為輸出結果:
#tesseract eng_test.jpg eng_result --psm 7
#vim eng_result.txt
英文的識別結果:18AX,不是很理想吧,但是要知道這個圖片是個驗證碼,是不是可以破解一般的驗證碼了!

再體驗一下中文識別,chi_sim_test.jpg是我們准備中文文字圖片,chi_sim_result.txt為輸出結果:
#tesseract chi_sim_test.jpg chi_sim_result -l chi_sim --psm 7
#vim chi_sim_result.txt
查看中文識別結果:益碼通付平台,各位朋友也可以識別自己准備的中文圖片,不理想的話也沒關系,因為后續我們自己可以訓練自己的語言包了。

下面簡單介紹一下常用的參數
-l參數表示要用的語言包,chi_sim表示簡體中文語言包,默認為英文;
--psm參數可以簡單理解成圖片中的文字的布局方式,默認為:3
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR.
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM