因爲公司新的產品須要深度集成tesseract,因此須要在linux下和windows下源碼編譯安裝tesseract,tesseract當前最新穩定版本是4.1.0,因此就從這個版本入手,編譯的過程當中碰到了很多困難,踩到了很多坑,因此特地分享出來,避免各位朋友再走彎路~~。html
一、查看centos版本
#cat /etc/redhat-release
CentOS release 6.5 (Final) node
二、檢查yum的repo庫
#yum repolist all
檢查是否有以下的repo庫:
centos-sclo-rh,centos-sclo-sclo
若是沒有則安裝:
#yum -y install centos-release-scl-rh centos-release-scllinux
三、檢查gcc和g++版本
#gcc --version
#g++ --version
gcc的當前版本編譯tesseract4.1會出錯,須要gcc更高的版本,本人是經過yum安裝的6.3.1版本,經過yum安裝gcc有以下好處:
1) 安裝方便,特別是不少依賴的軟件包自動安裝;
2) gcc的版本能夠靈活切換,老的版本得以保留。c++
四、安裝gcc 6.3.1
#yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++git
執行以下命令使gcc6當即生效
#source /opt/rh/devtoolset-6/enable
再次查看gcc和g++版本
#gcc --version
#g++ --versiongithub
如需永久生效則須要把命令添加到/etc/profile文件
vim /etc/profile
在最後添加以下內容:
source /opt/rh/devtoolset-6/enable
執行以下命令使之當即生效
#source /etc/profilevim
五、安裝依賴庫
#yum install autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-develwindows
六、安裝autoconf
查看本地的autoconf版本,若是太低則移除
#rpm -qa | grep autoconf
#rpm -e --nodeps autoconf-2.63centos
得到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
七、安裝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/
八、安裝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
九、安裝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
目前空空如也
十、下載tesseract語言包
去下面網址下載一些訓練好的語言包吧
https://github.com/tesseract-ocr/tessdata_best
咱們體驗的時候只要下載英文和簡體中文語言包便可:eng.traineddata、chi_sim.traineddata、chi_sim_vert.traineddata,看名稱就很容易理解,前者爲英文,後兩個爲簡體中文,把這些語言包放到/usr/local/share/tessdata目錄下
十一、初體驗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.