影象識別-身份證識別爬坑記錄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 不在環境變數中或者沒有安裝
需要修改原始碼中的
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