Python呼叫百度AI實現身份證識別

2022-09-22 00:36:09 字數 2676 閱讀 9088

目錄

按win+r開啟cmd,在裡面輸入

若出現如下介面,即成功安裝了baidu-aip模組:

如果想快速了解識別營業執照**原理,可以跳過第二部分,先看第三部分的內容。

在應用python識別身份證的過程中,有三行**使用了百度ai介面金鑰,故先闡述如何獲得該金鑰。首先,進入如下百度ai官方**:

有百度賬戶的輸入賬戶密碼進行登入,沒有的點選註冊,按指示輸入相關資訊即可註冊登入。

登入後找到文字識別中的產品列表,下方有卡證文字識別內容,點選了解詳情。

可以發現卡證文字識別中包含了我們常見的一些證件的識別,比如身份證、銀行卡、營業執照、戶口本、護照等。本文闡述營業執照的識別,感興趣的同學可以自行研究其它證件的識別。在卡證文字識別的詳情中可以發現如下產品列表:

找到身份證識別,點選了解詳情,即可進入如下介面:

點選立即使用,就會程式設計客棧出現如下服程式設計客棧務協議:

點選我已同意百度ai開放平台服務協議,就可以進入如下介面:

下滑後點選卡證ocr,就可以發現身份證別功能,點選開通按鈕。

可以進入如下篩選開通付費頁面:

在確認開通之前,要先進行實名驗證,按指示進行操作即可完成實名驗證。

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

然後點選去支付,由於每天前多少次是免費的程式設計客棧,且採取後付費模式,故不需提前付費。若開通成功,會出現如下介面:

開通成功後,點選概覽中的建立應用。

填寫應用名稱(自己想乙個貼合自己應用場景的名字即可)、選擇文字www.cppcns.com識別包名、選擇應用歸屬、填寫應用描述,點選立即建立即可。

最後,點選應用詳情,即可找到我們需要的介面金鑰(紅框對應的值)。

安裝好baidu-aip模組,獲取了百度ai介面金鑰後,即可呼叫百度介面識別身份證了。身份證識別每天有5百次的免費呼叫機會,首先來看下今天要識別的身份證。

這張身份證是在百度上**的一張虛擬身份證,如有侵權,請聯絡我刪除。識別該身份證的具體python**如下:

import re

import os

import time

from aip import aipocr

os.chdir(r'f:\***\27.證件識別')

#設定證件存放的路徑

app_id = '***'

api_key = '******xx'

secret_key = '************'

#百度賬號和金鑰,需替換成你的

程式設計客棧

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':'.format(k=k, v=v['words']))

tt = u':'.format(k=k, v=v['words'])

concat_text.append(tt)

#把字典解析成我們熟悉的形式

注:其中os.chdir中的內容應該替換成你儲存的位址,app_id、api_key、secret_key應該替換成第二章末尾你獲取的百度金鑰。

得到結果如下:

對比原始可以發現,出生是直接從身份證號碼中擷取的,住址的資訊可能由於反光沒有識別出來,結果為空。這裡有個小插曲,我之前一直使用png格式的身份證進行呼叫識別,但一直報如下錯誤:

connectionerror: ('connection aborted.', connectionreseterror(10054, '遠端主機強迫關閉了乙個現有的連線。', none, 10054, none))

後面調整為jpg後,就沒有出現該問題了,所以建議在進行身份證識別時最好把的格式設定為jpg。為進一步規範輸出成標準格式,通過如下**進行規範化:

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")

得到結果如下:

呼叫百度AI進行手勢識別 Python

import os import cv2 from aip import aipbodyanalysis from threading import thread import base64 api key secret key 呼叫 capture cv2.videocapture 0 0為預設攝...

python呼叫百度ai文字識別api詳細教學

點選進入之後選擇技術文件 選擇身份證識別,我們以身份證識別為例 進行研究 本頁的下面有勢力 encoding utf 8 import requests import base64 身份證識別 request url 二進位制方式開啟檔案 f open 本地檔案 rb img base64.b64e...

python 使用百度AI實現OCR文字識別

執行pip install baidu aip from aip import aipocr 更換為自己的註冊資訊 api key secret key fp open img.png rb read 開啟並讀取檔案內容 res client.basicgeneral fp 普通 print res...