Python調(diào)用百度AI實現(xiàn)身份證識別
一、安裝baidu-aip模塊
按win+R打開cmd,在里面輸入
pip3 install baidu-aip
若出現(xiàn)如下界面,即成功安裝了baidu-aip模塊:
如果想快速了解識別營業(yè)執(zhí)照代碼原理,可以跳過第二部分,先看第三部分的內(nèi)容。
二、獲取百度AI接口密鑰
在應用python識別身份證的過程中,有三行代碼使用了百度AI接口密鑰,故先闡述如何獲得該密鑰。首先,進入如下百度AI官方網(wǎng)站:https://ai.baidu.com/tech/ocr
有百度賬戶的輸入賬戶密碼進行登錄,沒有的點擊注冊,按指示輸入相關信息即可注冊登錄。
登錄后找到文字識別中的產(chǎn)品列表,下方有卡證文字識別內(nèi)容,點擊了解詳情。
??
可以發(fā)現(xiàn)卡證文字識別中包含了我們常見的一些證件的識別,比如身份證、銀行卡、營業(yè)執(zhí)照、戶口本、護照等。本文闡述營業(yè)執(zhí)照的識別,感興趣的同學可以自行研究其它證件的識別。在卡證文字識別的詳情中可以發(fā)現(xiàn)如下產(chǎn)品列表:
找到身份證識別,點擊了解詳情,即可進入如下界面:
點擊立即使用,就會出現(xiàn)如下服務協(xié)議:
點擊我已同意百度AI開放平臺服務協(xié)議,就可以進入如下界面:
下滑后點擊卡證OCR,就可以發(fā)現(xiàn)身份證別功能,點擊開通按鈕。
可以進入如下篩選開通付費頁面:
在確認開通之前,要先進行實名驗證,按指示進行操作即可完成實名驗證。
接著可以勾選要開通的識別功能,具體如下:
然后點擊去支付,由于每天前多少次是免費的,且采取后付費模式,故不需提前付費。若開通成功,會出現(xiàn)如下界面:
開通成功后,點擊概覽中的創(chuàng)建應用。
填寫應用名稱(自己想一個貼合自己應用場景的名字即可)、選擇文字識別包名、選擇應用歸屬、填寫應用描述,點擊立即創(chuàng)建即可。
最后,點擊應用詳情,即可找到我們需要的接口密鑰(紅框對應的值)。
三、調(diào)用百度接口識別身份證
安裝好baidu-aip模塊,獲取了百度AI接口密鑰后,即可調(diào)用百度接口識別身份證了。身份證識別每天有5百次的免費調(diào)用機會,首先來看下今天要識別的身份證。
這張身份證是在百度上下載的一張?zhí)摂M身份證,如有侵權,請聯(lián)系我刪除。識別該身份證的具體python代碼如下:
import re import os import time from aip import AipOcr os.chdir(r'F:\公眾號\27.證件識別') #設置證件存放的路徑 APP_ID = 'XXX' API_KEY = 'XXXXXXXX' SECRET_KEY = 'XXXXXXXXXXXX' #百度賬號和密鑰,需替換成你的 picture = open('2_身份證_v3.jpg', 'rb') img = picture.read() #讀取圖片 idCardSide = 'front' #身份證正面 #idCardSide = 'back' #身份證反面 options = {} options['detect_direction'] = 'true' #是否檢測圖像朝向,默認不檢測 options['detect_risk'] = 'false' #是否開啟身份證風險類型 client = AipOcr(APP_ID, API_KEY, SECRET_KEY) text = client.idcard(img, idCardSide, options) #識別圖片中的信息 concat_text = [] if isinstance(text, dict): words = text['words_result'] for k, v in words.items(): print(u'{k}:{v}'.format(k=k, v=v['words'])) tt = u'{k}:{v}'.format(k=k, v=v['words']) concat_text.append(tt) #把字典解析成我們熟悉的形式
注:其中os.chdir中的內(nèi)容應該替換成你存儲圖片的地址,APP_ID、API_KEY、SECRET_KEY應該替換成第二章末尾你獲取的百度密鑰。
得到結果如下:
對比原始圖片可以發(fā)現(xiàn),出生是直接從身份證號碼中截取的,住址的信息可能由于反光沒有識別出來,結果為空。這里有個小插曲,我之前一直使用png格式的身份證圖片進行調(diào)用識別,但一直報如下錯誤:
ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '遠程主機強迫關閉了一個現(xiàn)有的連接。', None, 10054, None))
后面調(diào)整為jpg圖片后,就沒有出現(xiàn)該問題了,所以建議在進行身份證識別時最好把圖片的格式設置為jpg。為進一步規(guī)范輸出成標準格式,通過如下代碼進行規(guī)范化:
import pandas as pd date_concat_text = pd.DataFrame(concat_text) date_concat_text.columns =['text'] df = date_concat_text["text"].str.split(':',expand=True) date_concat_text['label'] = df.iloc[:,0] date_concat_text['content'] = df.iloc[:,1] date_concat_text.to_csv("id_card_to_text.csv")
得到結果如下:
以上就是Python調(diào)用百度AI實現(xiàn)身份證識別的詳細內(nèi)容,更多關于Python識別身份證的資料請關注腳本之家其它相關文章!
相關文章
python中使用iterrows()對dataframe進行遍歷的實例
今天小編就為大家分享一篇python中使用iterrows()對dataframe進行遍歷的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python畫柱狀統(tǒng)計圖操作示例【基于matplotlib庫】
這篇文章主要介紹了Python畫柱狀統(tǒng)計圖操作,結合實例形式分析了Python基于matplotlib庫實現(xiàn)圖形繪制的相關操作技巧,需要的朋友可以參考下2018-07-07Anaconda+pycharm安裝及環(huán)境配置全過程
在使用pyCharm進行開發(fā)時,需要用到Anaconda創(chuàng)建的環(huán)境,下面這篇文章主要給大家介紹了關于Anaconda+pycharm安裝及環(huán)境配置的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09Django+Uwsgi+Nginx如何實現(xiàn)生產(chǎn)環(huán)境部署
這篇文章主要介紹了Django+Uwsgi+Nginx如何實現(xiàn)生產(chǎn)環(huán)境部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07