1. 程式人生 > >影象識別-身份證識別爬坑記錄1

影象識別-身份證識別爬坑記錄1

說明

本文主要為參考部落格:【python 影象識別】python 身份證號碼識別 自己在進行實踐過程中遇到的一些問題的記錄。

 

實踐環境

anaconda3+python3.6

macos

 

實踐記錄

1、在執行這段時候會提示沒有reload模組,原因是博主使用python2寫的,需要宣告編碼方式,而python3 中系統預設使用的就是UTF-8編碼,所以需要註釋掉。

參考:NameError: name 'reload' is not defined 問題

 

2、在中間定義的幾個函式中涉及print輸出的,都需要把print後面的內容括號起來

 

3、TesseractNotFoundError: tesseract is not installed or it's not in your path 

提示:tesseract 不在環境變數中或者沒有安裝

參考:使用pytesseract識別驗證碼中遇到的問題

需要修改原始碼中的 

tesseract_cmd = 'tesseract'

在執行程式碼的時候,提示沒有pytesseract模組,然後安裝了這個包,上面連結提示的這個檔案理論上應該在這個包裡面

在安裝包中pytesseract.py中的35行位置

那問題是現在這個路徑怎麼修改呢?

作者修改好的內容,指定到的是一個exe結尾的檔案,也提到需要安裝這個tesseract-ocr軟體

安裝說明:https://github.com/tesseract-ocr/tesseract/wiki

上面提到tesseract提供類似API的功能去實現從圖片中提取文字資訊,所以這個軟體還必須要進行安裝。

我這裡對應安裝的是mac版,參考homebrew的安裝方式

沒有homebrew的童鞋歡迎參考官網進行安裝,mac安裝軟體神器,用它官網的話來講是 “The missing package manager for macOS”

安裝好了,那麼問題是,那麼多資料夾,應該把路徑對應到那個檔案呢?沒什麼頭緒,難道不用像windows系統那樣指定 exe檔案?

先不管對應到哪個路徑,先在來試試安裝完tesseract後執行py程式有什麼變化

果然,可以跑出來了,不過證件號碼沒識別出來

 

在終端試一下執行

tesseract test1.png output

能識別一部分出來,不過效果有點差,身份證號碼部分基本能識別出來,其他部分效果就很差了,估計是預設的語料庫裡面,沒中文部分。

 

既然終端可以直接識別,為什麼呼叫pytesseract.py無法進行識別呢?還是需要設定路徑麼?

修改一下pytesseract.py中的35行

tesseract_cmd = '/usr/local/Cellar/tesseract/4.0.0/share/tessdata/'

 提示:TesseractNotFoundError: /usr/local/Cellar/tesseract/ is not installed or it's not in your path