婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別

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

熱門(mén)標(biāo)簽:長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 百度地圖標(biāo)注沒(méi)有了 地圖標(biāo)注審核表 ai電話機(jī)器人哪里好 外呼并發(fā)線路 湛江智能外呼系統(tǒng)廠家 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢(qián) ai電銷(xiāo)機(jī)器人源碼 宿遷星美防封電銷(xiāo)卡

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

需求分析

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

步驟

  • 申請(qǐng)華為云OCR接口
  • 獲取token
  • 調(diào)用身份證識(shí)別接口
  • 提取身份證信息

申請(qǐng)華為云OCR接口

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



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


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

獲取token

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

  • IAM用戶所屬賬號(hào)名
  • IAM用戶名
  • IAM用戶的登錄密碼
  • IAM用戶所屬賬號(hào)的項(xiàng)目名稱

首先就是獲取IAM用戶所屬賬號(hào)名,IAM用戶所屬賬號(hào)名為你登陸的那個(gè)賬號(hào)

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


里面的用戶即為IAM用戶名


獲取IAM用戶所屬賬號(hào)的項(xiàng)目名稱,點(diǎn)擊“項(xiàng)目”


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


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

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

打印出來(lái)的值是類似于下面這種的字符串

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

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

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

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

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

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

請(qǐng)求參數(shù)
請(qǐng)求Header參數(shù)

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

請(qǐng)求Body參數(shù)

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

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

import requests
import 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)
# 打印識(shí)別的信息
response = response.text
print(response)

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

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

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

import json

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

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

總結(jié)

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

import json
from flask import Flask, render_template
import requests
from flask_redis import FlaskRedis
import base64

app = Flask(__name__)

# 設(shè)置redis連接地址
REDIS_URL = 'redis://127.0.0.1:6379/0'
# 實(shí)例化redis
rd = FlaskRedis(app, decode_responses=True)	


@app.route('/')
def hello_world():
	# 獲取redis緩存中token
    token = rd.get('token')
    # 判斷redis中是否有token值,有則直接使用,沒(méi)有則獲取token值并寫(xiě)入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è)置緩存時(shí)間為24小時(shí)
        relue = rd.set('token', token, ex=60 * 1440)
        # 判斷是否再redis中添加token值成功
        if relue != 1:
            error = "寫(xiě)入錯(cuò)誤"
            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)
    # 判斷是否識(shí)別成功
    if not response.ok:
        error = "識(shí)別失敗,請(qǐng)聯(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圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別的文章就介紹到這了,更多相關(guān)Python AI圖像識(shí)別 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 基于Python的身份證驗(yàn)證識(shí)別和數(shù)據(jù)處理詳解
  • Python+Opencv身份證號(hào)碼區(qū)域提取及識(shí)別實(shí)現(xiàn)

標(biāo)簽:南平 海南 林芝 盤(pán)錦 寧夏 普洱 漯河 大同

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別》,本文關(guān)鍵詞  Python,中,圖像,識(shí)別,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python中AI圖像識(shí)別實(shí)現(xiàn)身份證識(shí)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产成人在线视频网站| 欧美日精品一区视频| 麻豆国产精品视频| 色噜噜狠狠成人中文综合| 中文字幕色av一区二区三区| 免费欧美日韩国产三级电影| 国产91精品一区二区| 国产成人精品免费网站| 色综合天天综合网天天狠天天| 日韩精品一二三四| 欧美日韩在线播放一区| 乱一区二区av| 国产自产高清不卡| 中文字幕一区二区三区乱码在线 | 色一区在线观看| 中文字幕日韩一区| 日本欧美大码aⅴ在线播放| 99久久99久久综合| 国产欧美一区二区精品忘忧草 | 精品国产1区二区| 国产剧情在线观看一区二区| 久久久久久久综合色一本| 裸体一区二区三区| 老鸭窝一区二区久久精品| 欧美在线观看你懂的| 亚洲国产精品久久久久婷婷884| 在线国产电影不卡| 免费人成网站在线观看欧美高清| 欧美色综合网站| 精品亚洲成av人在线观看| 日本成人在线一区| 色哦色哦哦色天天综合| 一本色道久久综合亚洲91| 久88久久88久久久| 蜜桃久久av一区| 日韩三级电影网址| 日本韩国一区二区| 国产精品久久毛片| 91精品国产色综合久久不卡蜜臀 | 日韩精品中文字幕一区二区三区| 卡一卡二国产精品| 奇米亚洲午夜久久精品| 成人污视频在线观看| 国产成人综合自拍| 欧美一区二区三区在线视频| 国产精品自拍一区| 国产一区二区在线影院| 一区二区三区四区av| 麻豆国产精品官网| 欧美精品v日韩精品v韩国精品v| 国产偷国产偷精品高清尤物| 日韩精品自拍偷拍| 亚洲va韩国va欧美va精品| 国产女人18毛片水真多成人如厕| 欧美人妖巨大在线| 精品久久五月天| 国产精品 日产精品 欧美精品| 麻豆视频一区二区| 日韩理论片在线| 一区二区三区四区亚洲| 婷婷久久综合九色综合绿巨人| 九九**精品视频免费播放| 粉嫩嫩av羞羞动漫久久久| 日韩一区二区三区观看| 亚洲va天堂va国产va久| 图片区小说区区亚洲影院| 五月婷婷激情综合| 色婷婷国产精品| 成人中文字幕在线| 免费成人在线视频观看| 日韩福利电影在线| 在线观看免费亚洲| 久久亚洲欧美国产精品乐播| 日本一不卡视频| 欧美浪妇xxxx高跟鞋交| 免费一级片91| 4438x亚洲最大成人网| 日韩综合一区二区| 欧美精品在线一区二区三区| 亚洲va天堂va国产va久| 99re热视频这里只精品| 久久婷婷一区二区三区| 91丨九色丨国产丨porny| 一区二区理论电影在线观看| 亚洲一区二区在线免费看| 奇米影视在线99精品| 一区视频在线播放| 国产福利不卡视频| 老司机精品视频线观看86| 国产午夜亚洲精品不卡| 欧美男人的天堂一二区| 色综合久久综合网97色综合| 国产精品亚洲第一区在线暖暖韩国 | 激情综合网天天干| 亚洲成a人片在线不卡一二三区| 国产精品入口麻豆原神| 久久99国产精品久久| 精品午夜久久福利影院| 91成人在线精品| 欧美一区二区三区在线| 亚洲欧美日韩中文字幕一区二区三区| 欧美xxxx在线观看| 久久99国产精品免费| 99国产精品久久| 国产成人在线视频免费播放| 99久久久免费精品国产一区二区| 国产性做久久久久久| 成人av免费观看| 欧美精品丝袜中出| 天天综合网天天综合色| 日韩欧美久久久| 成人午夜碰碰视频| 欧美日韩亚洲国产综合| 综合久久国产九一剧情麻豆| 久久99久久99小草精品免视看| 欧美日韩一级黄| 精品福利在线导航| 日韩伦理电影网| 欧美电影免费观看高清完整版在线 | 国产一区二区精品久久99| 精品国产免费一区二区三区香蕉| 成人av在线资源网站| 不卡欧美aaaaa| 国内成人免费视频| 日韩久久久精品| 亚洲最大成人综合| 亚洲视频在线一区观看| 国产伦精品一区二区三区免费迷| 69堂亚洲精品首页| 日韩福利电影在线观看| 性久久久久久久久| 日韩一区有码在线| 在线视频一区二区三| 亚洲一区视频在线观看视频| 亚洲精品视频在线| 日本高清免费不卡视频| 精品一区二区三区不卡| 99久久99久久综合| 日产欧产美韩系列久久99| 福利电影一区二区三区| 在线观看亚洲专区| 欧美片网站yy| 激情综合五月天| 日本网站在线观看一区二区三区| 欧美国产亚洲另类动漫| 久久精品国产亚洲高清剧情介绍 | 亚洲一区二区三区激情| 一区二区免费看| 欧美一区二区三区视频免费播放| 精品国产一区二区精华| 国产高清精品在线| 一区二区在线观看视频| 欧美精选午夜久久久乱码6080| 欧美激情中文不卡| 99re66热这里只有精品3直播| 欧美不卡一区二区| 91浏览器在线视频| 国产日韩精品一区二区浪潮av| 三级不卡在线观看| 国产欧美日韩不卡免费| 奇米影视7777精品一区二区| 91亚洲精华国产精华精华液| 欧美日韩免费一区二区三区| 亚洲欧洲在线观看av| 国产精品视频看| 成人综合婷婷国产精品久久| 国产精品国产三级国产有无不卡| 日韩免费在线观看| 日韩精品亚洲一区| 日韩欧美国产精品一区| 免费高清成人在线| 亚洲青青青在线视频| 91久久一区二区| 在线精品视频免费播放| 成人av午夜影院| 色综合天天综合网天天狠天天 | 久热成人在线视频| 国产欧美视频在线观看| 国产91在线观看| 亚洲国产va精品久久久不卡综合| 欧美伊人久久大香线蕉综合69 | 久久精品国产77777蜜臀| 理论片日本一区| 亚洲欧洲日本在线| 亚洲黄色录像片| 国产欧美精品一区二区色综合朱莉 | www.亚洲色图| 夜夜精品视频一区二区| 青青草原综合久久大伊人精品优势| 亚洲国产精品99久久久久久久久| 一区二区在线观看视频在线观看| 日本视频一区二区| 亚洲图片激情小说| 久久99久久精品| 美女一区二区在线观看| 色网站国产精品| 成人欧美一区二区三区小说| 精品粉嫩aⅴ一区二区三区四区| 国产精品色呦呦| 国产情人综合久久777777|