1. 程式人生 > >Tesseract-OCR4.0版本在VS2015上的編譯與運行(轉)

Tesseract-OCR4.0版本在VS2015上的編譯與運行(轉)

path變量 引擎 報錯 工作 占用率 編譯過程 進行 高級 關閉

最近剛開始接觸識別庫引擎方面的知識,由於項目中需要使用光學識別處理模塊,在老師與朋友的推薦下,我開始接觸tesseract光學識別庫,在最開始從GitHub上下載的源代碼進行編譯的時候,出現了許多意想不到的問題,為了先完成項目,我借鑒相關博客上針對tesseract3.04以下版本在VS2013上的編譯方法,先在VS2013上運行tesseract,然而無法在VS2015上成功編譯源代碼,這讓我一直糾結著,終於在和我們公司的齊工的一次探討中,我們嘗試了一種新的編譯方法,測試結果顯示編譯成功,tesseract成功運行。
對於tesseract4.0的編譯我將它分為五個步驟:
1.預處理部分,下載編譯工程所需要的cmkae與cppan軟件,並設置相應的環境變量,從GitHub上下載tesseract的相應源代碼;

2.在解壓的tesseract目錄下運行cppan,下載一些圖片解壓縮等需要的lib與dll;
3.mkdir build目錄,即在tesseract目錄下新建一個build文件夾;
4.進入build目錄,運行cmake,等待10到20分鐘,即可生成VS2015項目所需的工程文件;
5.在編譯成功的環境下,進入build目錄下後綴為sln的工程文件,利用VS2015打開;
6.編譯工程目錄下的libtesseract工程文件,這時會出現報錯現象,這是由於編程語言編碼問題造成的,我們需要修改相應的編碼格式,使其生成相應的lib與dll;
7.將目錄下生成的lib與庫文件路徑添加到tesseract工程文件下的鏈接器輸入與VC++目錄中,點擊生成,即可生成相應的.exe文件;
8.在我的電腦高級屬性環境變量中添加名為TESSDATA_PREFIX的變量,其值為tesseract文件夾下tessdata文件夾的地址。
好了到這裏我們就算大功告成了。

接下來我會一步一步的進行操作:

1預處理部分,下載相應的軟件與源代碼:

由於編譯過程中相應的支持庫是由cppan下載的,我們需要下載cppan並設置其環境變量,cppan的下載地址為:
官網網址鏈接為https://cppan.org/client/
技術分享圖片
我下載的是cppan-master-Windows-client.zip文件,解壓縮以後就是一個cppan.exe文件,如下圖所示:
技術分享圖片
接下來是設置環境變量,右鍵點擊“我的電腦”,點擊屬性,在彈出的系統屬性對話框中,選擇高級,點擊進入環境變量,在系統變量裏面選擇PATH變量,將cppan.exe所在的文件路徑作為環境變量的值,這裏我們就算是配置好cppan了。

然後是下載最新的cmake,並進行配置環境變量:
cmake官網下載地址為https://cmake.org/download/
技術分享圖片
我的電腦是X64版本的,所以我下載的是Windows win64-x64下的下載鏈接,即cmake-3.8.0-win64-x64.zip文件,解壓縮以後將cmake-3.8.0-rc2-win64-x64目錄下的bin文件夾的目錄地址加載至系統環境變量PATH中,與cppan設置環境變量的方法一致。
預處理的最後一步是從GitHub上下載tesseract4.0的源代碼,下載的地址是
https://github.com/tesseract-ocr/tesseract
在該界面下選擇clone or download,如下圖所示
技術分享圖片
然後我們解壓縮,將其中所有的文件復制到我們新建的文件夾tesseract下(我個人覺得tesseract名字短,使用方便)

2運行cppan,下載相應的支持庫

我使用的win10系統,所以在左下角Windows圖標下鼠標右鍵單擊,在彈出的界面中選擇WIndows PowerShell管理員(A)選項,在運行cppan過程中,有可能殺毒軟件會報錯,可以先關閉殺毒軟件。
將盤符切換到tesseract文件夾所在的盤,即輸入相應盤的名稱即可,我的tesseract在G盤,我輸入的是G:,回車鍵即進入了G盤,如下圖所示:
技術分享圖片
由於我昨天在G盤下才創建了一個tesseract的工程,我們將測試的tesseract放置在E盤下,直接E:即可切換到E盤下,輸入命令cd tesseract即可進入tesseract文件夾下,如下圖所示:
技術分享圖片
在該目錄下,我們繼續在Windows PowerShell下運行命令cppan然後回車,等待cppan程序運行,(安裝電腦管家的記得在運行此步驟之前關閉電腦管家,不然殺毒軟件將cppan識別為病毒會自動退出命令行)如下圖所示:
技術分享圖片

3 tesseract文件夾下新建build文件夾,並進入build文件夾

在命令行中輸入mkdir build即可新建一個build文件夾,然後cd build進入該目錄中,如下圖所示
技術分享圖片
可以在文件夾中查看是否新建了build文件夾,如下圖所示:
技術分享圖片
你看下面是不是已經有了,build文件夾,這個文件夾是用來存放生成的VS2015的項目工程文件

4 運行cmake進行編譯生成工程文件

我們繼續在剛才運行的Windows PowerShell下運行以下命令
cmake . .
!!!註意後面兩個dot不能省略
運行情況如下圖所示:
技術分享圖片
你看正在生成關於VS2015的工程文件,做到這裏我們可以去喝杯咖啡或者茶休息會了,因為編譯時間大概為10到20分鐘,具體的情況要看各位的電腦了。
技術分享圖片
到這裏我們已經成功生成VS2015的工程文件了,接下來的步驟就是進入VS2015中進行具體的操作啦!

進入工程文件,編譯libtesseract

技術分享圖片
在build目錄下找到tesseract.sln文件,用VS2015打開該文件;
在菜單中選擇生成解決方案的生成選項,由於是第一次進行生成,未進行任何修改,應該會報錯的
技術分享圖片
我們等待它進行生成,這個過程中對CPU的占用率差不多是100%,有可能在運行其他程序時出現卡頓,但這是正常的現象,編譯過後就不會出現這種情況了
這時出現了錯誤
技術分享圖片
上圖中第一個錯誤是由於編碼原因造成的,我們點擊錯誤,進入生成該錯誤的文件中
技術分享圖片
在第250到251行出現錯誤,我們在菜單欄中點擊文件目錄下的高級保存選項
技術分享圖片
進入之後,將編碼由Unicode(UTF-8無簽名)更換為簡體中文(GB2312)-代碼頁936
技術分享圖片
技術分享圖片
然後再進行生成,這時顯示已經成功生成
技術分享圖片
然後進入tesseract工程下,右鍵選擇生成
技術分享圖片
等待片刻後即可成功生成
技術分享圖片
再回到該文件所在的目錄中,查找生成的工程文件
技術分享圖片
你看所有的文件都在此文件夾下面啦,然後我們去配置TESSDATA_PREFIX環境變量

配置TESSDATA_PREFIX環境變量

技術分享圖片
在tesseract目錄中的tessdata文件下應該要下載eng.traineddata文件,這是英文的訓練文件,大家按照自己的需要下載需要的文件
下載地址是https://github.com/tesseract-ocr/tessdata
也可以在後期的項目需要中,訓練自己的識別庫
然後再我的電腦中系統變量中新建一個名為TESSDATA_PREFIX的變量,該變量的值為tessdata文件夾的路徑,設置好以後,記得使環境變量生效(ps前面設置環境變量也是要記得使環境變量生效)

測試生成的目標文件

我們隨便找了一張圖片,命名為binary.tiff;
技術分享圖片
然後運行cmd命令tesseract.exe binary.tiff out
技術分享圖片
這時已成功生成out.txt
打開out.txt文件
技術分享圖片
技術分享圖片
這時編譯的文件已可以開始進行識別工作,做到這裏也算是大功告成了!

Tesseract-OCR4.0版本在VS2015上的編譯與運行(轉)