天天看點

圖檔文字識别工具調研2.tesseract安裝與使用3.python

1.OCR與tesseract簡介

将圖檔翻譯成文字一般被稱為光學文字識别(Optical Character Recognition,OCR)。可以實作OCR 的底層庫并不多,目前很多庫都是使用共同的幾個底層OCR 庫,或者是在上面進行定制。

  Tesseract 是一個OCR 庫,目前由Google 贊助(Google 也是一家以OCR 和機器學習技術聞名于世的公司)。Tesseract 是目前公認最優秀、最精确的開源OCR 系統。

 用Tesseract可以識别格式規範的文字,主要具有以下特點:

• 使用一個标準字型(不包含手寫體、草書,或者十分“花哨的”字型)

• 雖然被影印或拍照,字型還是很清晰,沒有多餘的痕迹或污點

• 排列整齊,沒有歪歪斜斜的字

• 沒有超出圖檔範圍,也沒有殘缺不全,或緊緊貼在圖檔的邊緣

2.tesseract安裝與使用

Tesseract的Windows安裝包下載下傳位址為: http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe ,下載下傳後輕按兩下直接安裝即可。

安裝的時候要注意,tesseract的安裝并不預設安裝什麼語言,如果自己需要簡體中文的語言包,那麼就不能一直點next點到finish。如下圖,我安裝了MATH和簡體中文包。

圖檔文字識别工具調研2.tesseract安裝與使用3.python
圖檔文字識别工具調研2.tesseract安裝與使用3.python

安裝完後,需要将Tesseract添加到系統變量中。在CMD中輸入tesseract -v, 如顯示以下界面,則表示Tesseract安裝完成且添加到系統變量中。

添加系統變量過程:把tesseract安裝位置加入到環境變量中,我的安裝位置是“C:\Program Files (x86)\Tesseract-OCR”如下圖所示

圖檔文字識别工具調研2.tesseract安裝與使用3.python

  

添加環境變量如下圖所示

輕按兩下打開“path”,把剛才的安裝路徑加入到path中,注意,添加的時候開頭用“;”跟之前的變量隔開,結尾以“;”結束。下面是我的配置資訊。

圖檔文字識别工具調研2.tesseract安裝與使用3.python
圖檔文字識别工具調研2.tesseract安裝與使用3.python

打開DOS指令終端,輸入:“tesseract -v”可以看到版本資訊,

如下圖

圖檔文字識别工具調研2.tesseract安裝與使用3.python

如果報錯,估計是環境變量沒配好。

注意:我的dos指令終端打開路徑是“C:\WINDOWS\system32”,在這個路徑下安裝成功,是以使用的時候也一定在這個路徑下打開。

如果打開的是使用者名終端路徑,會報錯,我就遇到這個問題,如下圖。

圖檔文字識别工具調研2.tesseract安裝與使用3.python

Linux 使用者可以通過apt-get 安裝“

$sudo apt-get tesseract-ocr

”。

使用方法:将圖檔放到E盤的figures/other檔案夾下,目标:生成對應txt文本,打開DOS輸入指令行“tesseract E://figures/other/poems.jpg E://figures/other/poems”

如圖所示

圖檔文字識别工具調研2.tesseract安裝與使用3.python

結果如下所示:

圖檔文字識别工具調研2.tesseract安裝與使用3.python

其他結果例子如下所示:

圖檔文字識别工具調研2.tesseract安裝與使用3.python
圖檔文字識别工具調研2.tesseract安裝與使用3.python

可以看到識别的情況不如剛才規範字型的好,但是也能識别圖檔中的大部分字母。

如果是識别簡體中文,需要事先安裝簡體中文語言包,下載下傳位址為:https://github.com/tesseract-ocr/tessdata/find/master/chi_sim.traineddata ,再講chi_sim.traineddata放在C:\Program Files (x86)\Tesseract-OCR\tessdata目錄下。(我這沒能成功)

3.python

 pytesseract是Tesseract關于Python的接口,可以使用pip install pytesseract安裝。安裝完後,就可以使用Python調用Tesseract了,不過,你還需要一個Python的圖檔處理子產品,可以安裝pillow. 1. 用Python提取圖檔中的文字,用到的工具包有PIL ,pytesseract,tesseract-ocr.

注意:

(1)代碼就幾行,但是庫的安裝相對麻煩一點,首先是PIL庫安裝,有的電腦可以直接從PYCHARM庫裡直接導入,但是大部分的電腦是安裝不了的,可以采取兩種方式一種是用pip install PIL這種方式一般比較慢,還有一種方法就是在PYCHARM庫裡面直接安裝pillow-PIL安裝成功後就不會報錯了。

然後就是pytesseract庫的安裝,在pycharm庫裡面可以直接搜尋到然後安裝。這兩個庫安裝完成後運作代碼還是會報錯:‘tesseract is not installed or it's not in your path’,原因是沒有找到 Tesseract-OCR\tesseract.exe 的位置,需要先下載下傳tesseract.exe具體安裝參考https://blog.csdn.net/e8714614luan/article/details/103974924?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

安裝完成後打開pytesseract源碼查找 tesseract_cmd = 'tesseract',修改成

圖檔文字識别工具調研2.tesseract安裝與使用3.python

紅色方框裡面是剛才安裝的目錄。

然後再運作代碼:

from PIL import Image



import pytesseract



images=Image.open('003.jpg')

print(images.size)

text=pytesseract.image_to_string(images)

print(text)      
圖檔文字識别工具調研2.tesseract安裝與使用3.python

003.jpg

提取結果

圖檔文字識别工具調研2.tesseract安裝與使用3.python
  • 如果要提取中文文字還需安裝相關的新的庫,把下載下傳的中文庫放在 Tesseract-OCR 安裝目錄下的 tessdata 檔案夾中。
  • 下載下傳連結:https://pan.baidu.com/s/1GfspC5uef73B2Oa8YudBgQ
import pytesseract

from PIL import Image



im_en = Image.open('003.jpg')

im_ch = Image.open('004.jpg')



print('========識别字母========')

print(pytesseract.image_to_string(im_en), '\n\n')



print('========識别中文========')

print(pytesseract.image_to_string(im_ch, lang='chi_sim'))      
圖檔文字識别工具調研2.tesseract安裝與使用3.python
圖檔文字識别工具調研2.tesseract安裝與使用3.python

結果:

圖檔文字識别工具調研2.tesseract安裝與使用3.python