1. 程式人生 > >在搭建tesseract-OCR環境中遇到問題和反省

在搭建tesseract-OCR環境中遇到問題和反省

Tesseract,一款由HP實驗室開發由Google維護的開源OCR(Optical Character Recognition , 光學字元識別)引擎,特點是開源,免費,支援多語言,多平臺。

 

在搭建流程很簡單:

(1)下載並安裝 tesserct-ocr(記住安裝路徑)

Windows版exe安裝檔案地址:https://github.com/UB-Mannheim/tesseract/wiki

 

(2)安裝pytesseract:

在cmd中,直接:pip install pytesseract

 

(3)配置下環境:

其中pytesseract.py檔案儲存在Python包資料夾中,你可以使用如下語句找到其絕對路徑:

 

(4)編寫4行程式碼測試OCR識別效果:

 

 ——————————————————————————————————————————————————————————————————

上述流程很簡單,但是實際上自己花了近3個小時才疏通該環境,其中近兩個小時在解決一個報錯問題:

 

無論我怎麼修改pytesseract.py那行語句(比如路徑用 \\雙斜槓、或路徑前加‘r’,或用‘/’反斜槓,或去掉.exe),或是修改環境變數,或是重啟jupyter notebook,找遍網上幾乎所有解答,幾乎都沒用。

 

其中步驟(3)配置環境中,自己也早使用方法3嘗試解決過這個問題,但當時沒起作用,當時也不清楚方法3的真實作用。經過近兩個小時搗鼓後,終於在https://blog.csdn.net/jacke121/article/details/75443785部落格中找到解決辦法。

我直接貼上複製其程式碼,修改了圖片路徑和pytesseract.py路徑,在jupyter notebook中執行後,瞬間看到了OCR識別結果。淚崩~

 

問題原因:

(1)起始當初自己也用過方法3,但報了一個錯,依舊是“系統找不到指定檔案”,自己就以為該方法同樣不起作用。其實那時,自己在使用該方法時,沒有意識到路徑要使用 \\ 或者 / 或者 加字首r,依舊使用的 \ !

而之後再尋找答案中,明白路徑怎麼寫後,又忘記當初測試方法3時用錯了路徑規則。真是‘測不逢時’。。。

(2)導致“系統找不到指定檔案”的原因是:pytesseract.py檔案在E盤,而自己jupyter notebook預設只能瀏覽F盤內檔案,為了能夠在jupyter中瀏覽pytesseract.py檔案的內容(比用記事本開啟更直觀、也比其他軟體更快速),我就手殘將該檔案複製了一份到用於測試該專案的jupyter原始檔夾內,而由於我在測試程式碼裡寫了:

,所以測試程式碼一直import的是我剛才複製的那一份pytesseract.py,而後續所有環境配置的操作,都是修改的是E盤中那份原始pytesseract.py。所以無論我怎麼去改環境變數、修改原始pytesseract.py檔案中的程式碼,報錯依舊無法解決。

(3)在巧合下,某此複製別人程式碼,終於解決了這個問題。後來,通過溯源,也明白了很多技術原理,比如的作用,就是修改原始檔中'tesseract_cmd'變數的值。

 

有用的參考:

https://github.com/nikhilkumarsingh/tesseract-python

https://blog.csdn.net/jacke121/article/details/75443785

https://blog.csdn.net/u011085172/article/details/71466182