溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

發(fā)布時(shí)間:2021-12-07 10:56:38 來(lái)源:億速云 閱讀:333 作者:柒染 欄目:開發(fā)技術(shù)

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

一、安裝baidu-aip模塊

按win+R打開cmd,在里面輸入

pip3 install baidu-aip

若出現(xiàn)如下界面,即成功安裝了baidu-aip模塊:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

如果想快速了解識(shí)別營(yíng)業(yè)執(zhí)照代碼原理,可以跳過(guò)第二部分,先看第三部分的內(nèi)容。

二、獲取百度AI接口密鑰

在應(yīng)用python識(shí)別身份證的過(guò)程中,有三行代碼使用了百度AI接口密鑰,故先闡述如何獲得該密鑰。首先,進(jìn)入如下百度AI官方網(wǎng)站:https://ai.baidu.com/tech/ocr

有百度賬戶的輸入賬戶密碼進(jìn)行登錄,沒有的點(diǎn)擊注冊(cè),按指示輸入相關(guān)信息即可注冊(cè)登錄。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

登錄后找到文字識(shí)別中的產(chǎn)品列表,下方有卡證文字識(shí)別內(nèi)容,點(diǎn)擊了解詳情。

??Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

可以發(fā)現(xiàn)卡證文字識(shí)別中包含了我們常見的一些證件的識(shí)別,比如身份證、銀行卡、營(yíng)業(yè)執(zhí)照、戶口本、護(hù)照等。本文闡述營(yíng)業(yè)執(zhí)照的識(shí)別,感興趣的同學(xué)可以自行研究其它證件的識(shí)別。在卡證文字識(shí)別的詳情中可以發(fā)現(xiàn)如下產(chǎn)品列表:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

找到身份證識(shí)別,點(diǎn)擊了解詳情,即可進(jìn)入如下界面:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

點(diǎn)擊立即使用,就會(huì)出現(xiàn)如下服務(wù)協(xié)議:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

點(diǎn)擊我已同意百度AI開放平臺(tái)服務(wù)協(xié)議,就可以進(jìn)入如下界面:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

下滑后點(diǎn)擊卡證OCR,就可以發(fā)現(xiàn)身份證別功能,點(diǎn)擊開通按鈕。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

可以進(jìn)入如下篩選開通付費(fèi)頁(yè)面:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

在確認(rèn)開通之前,要先進(jìn)行實(shí)名驗(yàn)證,按指示進(jìn)行操作即可完成實(shí)名驗(yàn)證。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

接著可以勾選要開通的識(shí)別功能,具體如下:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

然后點(diǎn)擊去支付,由于每天前多少次是免費(fèi)的,且采取后付費(fèi)模式,故不需提前付費(fèi)。若開通成功,會(huì)出現(xiàn)如下界面:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

開通成功后,點(diǎn)擊概覽中的創(chuàng)建應(yīng)用。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

填寫應(yīng)用名稱(自己想一個(gè)貼合自己應(yīng)用場(chǎng)景的名字即可)、選擇文字識(shí)別包名、選擇應(yīng)用歸屬、填寫應(yīng)用描述,點(diǎn)擊立即創(chuàng)建即可。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

最后,點(diǎn)擊應(yīng)用詳情,即可找到我們需要的接口密鑰(紅框?qū)?yīng)的值)。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

三、調(diào)用百度接口識(shí)別身份證

安裝好baidu-aip模塊,獲取了百度AI接口密鑰后,即可調(diào)用百度接口識(shí)別身份證了。身份證識(shí)別每天有5百次的免費(fèi)調(diào)用機(jī)會(huì),首先來(lái)看下今天要識(shí)別的身份證。

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

這張身份證是在百度上下載的一張?zhí)摂M身份證,如有侵權(quán),請(qǐng)聯(lián)系我刪除。識(shí)別該身份證的具體python代碼如下:

import re
import os
import time
from aip import AipOcr

os.chdir(r'F:\公眾號(hào)\27.證件識(shí)別')
#設(shè)置證件存放的路徑

APP_ID = 'XXX'
API_KEY = 'XXXXXXXX'
SECRET_KEY = 'XXXXXXXXXXXX'
#百度賬號(hào)和密鑰,需替換成你的

picture = open('2_身份證_v3.jpg', 'rb')
img = picture.read()
#讀取圖片

idCardSide = 'front'  #身份證正面
#idCardSide = 'back'   #身份證反面

options = {}
options['detect_direction'] = 'true' #是否檢測(cè)圖像朝向,默認(rèn)不檢測(cè)
options['detect_risk'] = 'false'     #是否開啟身份證風(fēng)險(xiǎn)類型

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
text = client.idcard(img, idCardSide, options)
#識(shí)別圖片中的信息

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)容應(yīng)該替換成你存儲(chǔ)圖片的地址,APP_ID、API_KEY、SECRET_KEY應(yīng)該替換成第二章末尾你獲取的百度密鑰。

得到結(jié)果如下:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

對(duì)比原始圖片可以發(fā)現(xiàn),出生是直接從身份證號(hào)碼中截取的,住址的信息可能由于反光沒有識(shí)別出來(lái),結(jié)果為空。這里有個(gè)小插曲,我之前一直使用png格式的身份證圖片進(jìn)行調(diào)用識(shí)別,但一直報(bào)如下錯(cuò)誤:

ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。', None, 10054, None))

后面調(diào)整為jpg圖片后,就沒有出現(xiàn)該問(wèn)題了,所以建議在進(jìn)行身份證識(shí)別時(shí)最好把圖片的格式設(shè)置為jpg。為進(jìn)一步規(guī)范輸出成標(biāo)準(zhǔn)格式,通過(guò)如下代碼進(jìn)行規(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")

得到結(jié)果如下:

Python調(diào)用百度AI怎樣實(shí)現(xiàn)身份證識(shí)別

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI