成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Python中AI圖像識別實現(xiàn)身份證識別

瀏覽:81日期:2022-07-28 17:48:29
目錄需求分析步驟申請華為云OCR接口獲取token調(diào)用身份證識別接口總結(jié)

圖像識別說白了就是把一張照片上面的文字進(jìn)行提取,提供工作效率

需求分析

身份證識別主要是把一張身份證照片上面的文字信息進(jìn)行提取,不用再使用人工去手動抄寫了,下面給大家說的這個身份識別主要是使用python+flask+華為云OCR進(jìn)行實現(xiàn)的。

步驟 申請華為云OCR接口 獲取token 調(diào)用身份證識別接口 提取身份證信息申請華為云OCR接口

圖像識別主要使用的就是華為云OCR平臺申請的接口,申請地址為:“https://www.huaweicloud.com”。訪問申請的地址后點擊菜單欄中的“控制臺”,點擊后會進(jìn)入登錄頁面。

Python中AI圖像識別實現(xiàn)身份證識別

Python中AI圖像識別實現(xiàn)身份證識別

登錄成功后進(jìn)入控制臺,依次單擊“服務(wù)列表”-“人工智能”-“文字識別OCR”

Python中AI圖像識別實現(xiàn)身份證識別

進(jìn)入后點擊身份證識別后面的“開通服務(wù)”即可,(這里需要主要的是免費開通的身份證識別服務(wù)僅有1000次的免費調(diào)用次數(shù),超過次數(shù)將會收費,建議購買套餐包,購買可以找我,我可以給優(yōu)惠哦)

Python中AI圖像識別實現(xiàn)身份證識別

獲取token

獲取token值時你需要知道你的以下信息:

IAM用戶所屬賬號名 IAM用戶名 IAM用戶的登錄密碼 IAM用戶所屬賬號的項目名稱

首先就是獲取IAM用戶所屬賬號名,IAM用戶所屬賬號名為你登陸的那個賬號

獲取IAM用戶名,選擇右上角“用戶名”-點擊“統(tǒng)一身份認(rèn)證”

Python中AI圖像識別實現(xiàn)身份證識別

里面的用戶即為IAM用戶名

Python中AI圖像識別實現(xiàn)身份證識別

獲取IAM用戶所屬賬號的項目名稱,點擊“項目”

Python中AI圖像識別實現(xiàn)身份證識別

里面的項目很多,你只需要記錄你開啟OCR身份證識別區(qū)域的項目名稱ID就可以了,比如我選擇的北京四所以我的項目名稱就是:“cn-north-4”

Python中AI圖像識別實現(xiàn)身份證識別

知道了這些信息之后,后面就是如何通過這些信息去獲取token了,下面我就直接上代碼了哦

import requests# 下面url為華為云獲取token的接口,這個接口基本一致,需要注意的是“iam.cn-north-4.myhuaweicloud.com”這個需要根據(jù)具體需求進(jìn)行修改,不同區(qū)域項目不同url = 'https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens'# 頭部信息headers = {’Content-Type’: ’application/json’}# json內(nèi)容,需要上傳進(jìn)行做驗證payload = { 'auth': {'identity': { 'methods': ['password' ], 'password': {'user': {# name值為你的IAM賬號名 'name': 'XXX', # password值為你的IAM密碼 'password': 'XXX', 'domain': { # name值為你的主賬號的賬號名'name': 'XXX' }} }},'scope': { 'project': { # name值為你的項目ID'name': 'cn-north-4' }} }}# 使用POST上傳頭部內(nèi)容和body內(nèi)容response = requests.post(url, headers=headers, json=payload)# 獲取token值token = response.headers[’X-Subject-Token’]# 打印token值print(token)

打印出來的值是類似于下面這種的字符串

MIIVfgYJKoZIhvcNAQcCoIIVbzCCFWsCAQExDTALBglghkgBZQMEAgEwghOQBgkqhkiG9w0BBwGgghOBBIITfXsidG9rZW4iOns123iZXhwaXJlc19hdCI6IjIwMjEtMDgtMTdUMTE6NTM6MTEuNTkyMDAwWiIsIm1ldGhvZHMiOlsicGFzc3dvcmQiXSwiY2F0YWxvZyI6W10sInJvbGVzIjpbeyJuYW1lIjoidGVfYWRtaW4iLCJpZCI6IjAifSx7Im5hbWUiOiJ0ZV9hZ2VuY3kiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9jc2UyLjBfY2ZnIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfZWNzX3Nwb3RfaW5zdGFuY2UiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9pdmFzX3Zjcl92Y2EiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9hX2NuLXNvdXRoLTRjIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfZWNzX2thZTEiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9ldnNfZXNzZCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2NzZTIuMF9ndm4iLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9kd3NfcG9jIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfY2JyX2ZpbGUiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9lY4563Nfa2MxX3VzZXJfZGVmaW5lZCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX21lZXRpbmdfZW5kcG9pbnRfYnV5IiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfbWFwX25scCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX3Npc19zYXNyX2VuIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfY2Z3IiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfc2FkX2JldGEiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9zZXJ2aWNlc3RhZ2VfbWdyX2R0bV9lbiIsImlkIjoiMCJ9LHsibmFt123ZSI6Im9wX2dhdGVkX2Vjc19ncHVfcDJzIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfZXZzX3ZvbHVtZV9yZWN5Y2xlX2JpbiIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2Rjc19kY3MyLWVudGVycHJpc2UiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9jc2UyLjAiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF92Y3AiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9mdW5jdGlvbmdyYXBoX3YyIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfY3ZyIiwiaW456QiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfbXVsdGlfYmluZCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2FfY24tbm9ydGgtOWMiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9vcF9nYXRlZF9pb3RzdGFnZSIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2VpcF9wb29sIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfcm9tYWV4Y2hhbmdlIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfYV9hcC1zb3V0aGVhc3QtM2QiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9wcm9qZWN0X2RlbCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX3NoYXJlQmFuZHdpZHRoX3FvcyIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2NjaV9vY2VhbiIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2Nlc19yZXNvdXJjZWdyb3VwX1233RhZyIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2V2c19yZXR5cGUiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9lY3NfaXIzeCIsImlkIjoiMCJ9LHsibmFtZS456I6Im9wX2dhdGVkX2VsYl9ndWFyYW50ZWVkIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfYV9jbi1zb3V0aHdlc3QtMmIiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9jaWUiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9zZnN0dXJibyIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX3Zwbl92Z3dfaW50bCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2h2X3ZlbmRvciIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2FfY24tbm9ydGgtNGUiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9hX2NuLW5vcnRoLTRkIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfZWNzX2dwdV9nNnYiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9JRUMiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9kYXl1X2RsbV9jbHVzdGVyIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfaW50bF9jb25maWd1cmF0aW9uIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfY2NlX21jcF90aGFpIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZW456Rfc2VydmljZXN0YWdlX21ncl9kdG0iLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9hX2NuLW5vcnRoLTRmIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfdWdvX3B1YmxpY3Rlc3QiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9tdGQiLCJpZCI6IjAifSx7Im5hbWUiOiJvcF9nYXRlZF9lY3NfZ3B1X2c1ciIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX3drc19rcCIsImlkIjoiMCJ9LHsibmFtZSI6Im9wX2dhdGVkX2NjaV9rdW5wZW5nIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfcmlfZHdzIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfdnBjX2Zsb3dfbG9nIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfYXRjIiwiaWQiOiIwIn0seyJuYW1lIjoib3BfZ2F0ZWRfYWFkX2JldGFfaWRjIiwiaWQiOiIwIn0seyJuY456W1lIjoib3Bf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-ZIS2UdDK-q7gBsR3mT2LRqjQ+J6vpcCzAe6v71IHAf77lgE+vwg7f6qOfhYjRNB9kSC2L1YxJ1eS9j5pzuqlnK+9BOv2U3BIaKsP9yNiP-luS78LzwuEG2rD9OInMst7bCr7HeWT2bZ8gCT4567BvsONvGqVvr3AA==

調(diào)用身份證識別接口

下面就是調(diào)用識別接口,調(diào)用這個接口需要了解以下信息

URL Header參數(shù) Body參數(shù)

首先是URLPOST https://{endpoint}/v2/{project_id}/ocr/id-card

參數(shù) 說明 endpoint 項目接口域名,這里還是需要確定開通服務(wù)的區(qū)域,每個區(qū)域不同的域名 project_id 項目ID,不出意外的話就是你上面獲取token的項目ID

請求參數(shù)請求Header參數(shù)

參數(shù) 說明 X-Auth-Token 用戶Token,就是上面獲取到的token值 Content-Type 發(fā)送的實體的MIME類型,參數(shù)值為“application/json”

請求Body參數(shù)

參數(shù) 說明 image 圖像數(shù)據(jù),base64編碼,要求base64編碼后大小不超過10MB。圖片最小邊不小于15px,最長邊不超過8000px。支持JPEG、JPG、PNG、BMP、TIFF格式。 url 圖片的url路徑 side front:身份證人像面,back:身份證國徽面

了解了上面的一系列信息之后,后面就是如何寫代碼了,下面就是直接代碼

import requestsimport base64# url值url = https://{endpoint}/v2/{project_id}/ocr/id-card# 上面獲取到的token值token = ''# 設(shè)置頭部信息headers = {’Content-Type’: ’application/json’, ’X-Auth-Token’: token}# 圖片路徑imagepath = r’./static/XXX.jpg’# 設(shè)置圖片with open(imagepath, 'rb') as bin_data: image_data = bin_data.read()# 使用圖片的base64編碼image_base64 = base64.b64encode(image_data).decode('utf-8')# url與image參數(shù)二選一payload = {'image': image_base64}# 上傳參數(shù)response = requests.post(url, headers=headers, json=payload)# 打印識別的信息response = response.textprint(response)

最后識別出來的結(jié)果類似于下面的信息:

{ 'result': { 'name': 'XXX', 'sex': '男', 'ethnicity': '漢', 'birth': 'XXX', 'address': 'XXX', 'number': 'XXX' }}

如果想獲取其中的某一個值的話需要先轉(zhuǎn)換為字典,通過字典再進(jìn)行單一讀取

import json# 轉(zhuǎn)換為字典test = json.loads(response)# 從字典中獲取相應(yīng)的值username = test[’result’][’name’]

到這里就已經(jīng)完成了這個項目

總結(jié)

上面已經(jīng)簡單說明了如何調(diào)用相應(yīng)的接口去識別身份證了,下面我把源碼給到大家吧,大家可以作為參考哦,下面是使用python+flask+redis+華為云OCR實現(xiàn)的

import jsonfrom flask import Flask, render_templateimport requestsfrom flask_redis import FlaskRedisimport base64app = Flask(__name__)# 設(shè)置redis連接地址REDIS_URL = ’redis://127.0.0.1:6379/0’# 實例化redisrd = FlaskRedis(app, decode_responses=True)@app.route(’/’)def hello_world():# 獲取redis緩存中token token = rd.get(’token’) # 判斷redis中是否有token值,有則直接使用,沒有則獲取token值并寫入redis中 if token is None:url = 'https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens'headers = {’Content-Type’: ’application/json’}payload = { 'auth': {'identity': { 'methods': ['password' ], 'password': {'user': { 'name': 'XXX', 'password': 'XXX', 'domain': {'name': 'XXX' }} }},'scope': { 'project': {'name': 'cn-north-4' }} }}response = requests.post(url, headers=headers, json=payload)requst = response.ok# 判斷是否獲取token值成功if not requst: error = '獲取token失敗' return render_template(’test.html’, db=error)# 從返回值中獲取token值 token = response.headers[’X-Subject-Token’]# 在redis添加token值,下次不再調(diào)用,并設(shè)置緩存時間為24小時relue = rd.set(’token’, token, ex=60 * 1440)# 判斷是否再redis中添加token值成功if relue != 1: error = '寫入錯誤' return render_template(’test.html’, db=error) url = 'https://ocr.cn-north-4.myhuaweicloud.com/v2/cn-north-4/ocr/id-card' headers = {’Content-Type’: ’application/json’, ’X-Auth-Token’: token} imagepath = r’./static/XXX.jpg’ with open(imagepath, 'rb') as bin_data:image_data = bin_data.read() image_base64 = base64.b64encode(image_data).decode('utf-8') # 使用圖片的base64編碼 payload = {'image': image_base64} # url與image參數(shù)二選一 response = requests.post(url, headers=headers, json=payload) # 判斷是否識別成功 if not response.ok:error = '識別失敗,請聯(lián)系管理員'return render_template(’test.html’, db=error) response = response.text test = json.loads(response) username = test[’result’][’name’] return render_template(’test.html’, db=username)if __name__ == ’__main__’: app.run()

到此這篇關(guān)于Python中AI圖像識別實現(xiàn)身份證識別的文章就介紹到這了,更多相關(guān)Python AI圖像識別 內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲青涩在线| 亚洲国产日韩综合久久精品| 亚洲精品视频在线观看网站| 国产精品s色| 国产欧美综合色| 99精品欧美一区二区蜜桃免费| 欧美一级免费观看| 另类综合日韩欧美亚洲| 久久久久中文| 天天综合色天天| 亚洲欧美网站| 亚洲电影一区二区三区| 国产午夜久久| 亚洲成人av电影在线| 色综合久久久久网| 日本视频在线一区| 在线欧美小视频| 麻豆精品久久久| 欧美日韩www| 国产精品夜夜嗨| 91精品福利在线一区二区三区| 韩国av一区二区| 欧美丝袜丝nylons| 国产在线一区观看| 欧美一级日韩一级| 91一区二区在线观看| 国产午夜精品久久| 欧美日韩高清免费| 中文字幕不卡在线观看| 亚洲网站啪啪| 一区二区三区在线观看网站| 国产精品丝袜xxxxxxx| 午夜国产不卡在线观看视频| 老司机精品视频网站| 激情图片小说一区| 欧美电视剧在线观看完整版| 91同城在线观看| 国产精品每日更新| 亚洲欧洲日韩综合二区| 亚洲国产综合色| 欧美午夜理伦三级在线观看| 国产一区999| 久久一留热品黄| 国产主播一区二区三区四区| 亚洲激情图片一区| 日本精品裸体写真集在线观看| 美日韩一区二区| 日韩亚洲欧美高清| 91在线观看污| 亚洲欧洲一区二区三区| 亚洲欧美日韩精品综合在线观看| 蜜臀av一区二区三区| 6080午夜不卡| 欧美激情1区| 一区二区三区不卡视频| 色婷婷久久久久swag精品| 国产乱人伦偷精品视频不卡 | 久久免费99精品久久久久久| 美女mm1313爽爽久久久蜜臀| 日韩视频一区二区在线观看| 国产一区亚洲| 亚洲一区二区三区小说| 欧美日韩国产首页在线观看| 91热门视频在线观看| 亚洲女人小视频在线观看| 久久一区二区三区av| 国产成人亚洲综合色影视| 国产精品理论在线观看| 狼狼综合久久久久综合网 | 国产亚洲精品超碰| 国产嫩草一区二区三区在线观看| 久久99久久久欧美国产| 国产午夜精品久久久久久免费视| 国产伦精品一区二区| 国产一区二区久久| 中文字幕一区二区三区av| 日本乱人伦aⅴ精品| eeuss影院一区二区三区| 一级中文字幕一区二区| 欧美美女网站色| 欧美视频日韩| 美女视频黄a大片欧美| 国产欧美日韩另类视频免费观看| 香蕉av777xxx色综合一区| 成人综合激情网| 一区二区日韩电影| 69精品人人人人| 影音先锋在线一区| 国产一区二区成人久久免费影院 | 国产精品网站在线| 91成人在线免费观看| 欧美一区在线看| 人人爽香蕉精品| 国产精品国产三级国产aⅴ入口 | 欧美日韩视频在线一区二区 | 日韩三级电影网址| 99国产精品99久久久久久粉嫩| 老鸭窝一区二区久久精品| 亚洲国产成人在线| 欧美亚洲综合久久| 一区二区视频在线观看| 国产精一区二区三区| 亚洲黄一区二区三区| 欧美成人a∨高清免费观看| 久久成人免费| 欧美一区二区三区另类| 精品一区二区三区日韩| 亚洲乱码国产乱码精品精的特点| 91精品国产全国免费观看| 亚洲一区二区伦理| 91在线观看污| 麻豆精品一区二区综合av| 国产精品乱码久久久久久| 777精品伊人久久久久大香线蕉| 在线一区亚洲| 91免费国产在线| 狠狠色综合播放一区二区| 一区二区三区在线看| 久久先锋资源网| 欧美日韩一区三区四区| 一区二区三区四区国产| 99精品视频一区二区| 国产在线一区二区| 午夜影院久久久| 日韩一区欧美一区| 精品精品欲导航| 色av成人天堂桃色av| 亚洲国产精品www| 99精品视频一区| 国产精品一线二线三线精华| 日日摸夜夜添夜夜添精品视频| 1024精品合集| 久久综合成人精品亚洲另类欧美| 欧美日韩久久久一区| 亚洲欧美大片| 亚洲激情婷婷| 欧美日韩一区在线播放| caoporn国产一区二区| 国产一区二区三区四| 蜜臀久久久久久久| 视频在线观看91| 亚洲男人的天堂在线aⅴ视频| 久久美女艺术照精彩视频福利播放 | 9色精品在线| 永久91嫩草亚洲精品人人| 欧美一区1区三区3区公司| 成人免费福利片| 国产在线看一区| 久久精品国产色蜜蜜麻豆| 天天色综合天天| 亚洲影视资源网| 亚洲乱码国产乱码精品精98午夜| 欧美极品另类videosde| 久久综合九色综合欧美就去吻| 欧美精品一二三| 欧美亚洲丝袜传媒另类| 久久久久久自在自线| 国产精品一区二区你懂得| 91久久黄色| 在线免费观看一区二区三区| 午夜精品国产| 午夜国产一区| 国产精品xxx在线观看www| 欧美激情一区| 欧美高清一区| 欧美1区3d| 91麻豆swag| 欧美激情一区| 国内精品久久久久久久果冻传媒| 91网站最新网址| 欧美日本二区| 亚洲第一毛片| 亚洲人成人一区二区三区| 国产综合欧美在线看| 亚洲私拍自拍| 狠狠色综合网站久久久久久久| 欧美日韩亚洲一区二区三区在线观看 | 久久一夜天堂av一区二区三区| 精品国产在天天线2019| 欧美不卡一区二区三区| 欧美不卡激情三级在线观看| 精品国产一区二区三区不卡 | 国产美女精品在线| 国产乱子伦一区二区三区国色天香| 久久精品国产99| 精品一区中文字幕| 国产在线精品一区二区夜色| 国产精品18久久久久久久久| 不卡一区二区中文字幕| 欧美日韩国产精品一区二区亚洲| 亚洲午夜精品久久久久久浪潮| 亚洲国产清纯| 亚洲欧美日韩国产综合精品二区 | 国产激情一区二区三区桃花岛亚洲| 成人免费视频国产在线观看| 99久久夜色精品国产网站| 欧美精品大片| 亚洲视频大全| 久久精品99| 7777精品伊人久久久大香线蕉经典版下载 |