大數據

阿里雲高校計劃視覺AI五天訓練營Day 2 身份證識別系統搭建

身份證識別系統搭建

獲取視覺智能開放平臺提供的 SDK

進入到視覺智能開放平臺的官網 https://vision.aliyun.com/ 後,我們可以發現平臺已經開放了包括人臉識別、文字識別、商品理解等在內的多項視覺 AI 能力,點擊文字識別菜單,可以找到身份證識別項,然後我們點擊進入。
1.png
身份證識別包括識別二代身份證關鍵字段內容,關鍵字段包括:姓名、性別、民族、身份證號、出生日期、地址信息、有效起始時間、簽發機關,同時可輸出身份證區域位置和人臉位置信息。

體驗調試

在這裡我們可以先上傳圖片進行試用
1.png

上傳成功後點擊發起調用查看結果
1.png
識別結果
1.png

{
    "success": true,
    "data": {
        "data": {
            "RequestId": "23C9D339-63FD-43E9-814B-BC19EE1EECD1",
            "Data": {
                "FrontResult": {
                    "Address": "華盛頓特區宜賓法尼亞大道1600號白宮",
                    "FaceRectVertices": [
                        {
                            "X": 0,
                            "Y": 0
                        },
                        {
                            "X": 0,
                            "Y": 0
                        },
                        {
                            "X": 0,
                            "Y": 0
                        },
                        {
                            "X": 0,
                            "Y": 0
                        }
                    ],
                    "FaceRectangle": {
                        "Center": {
                            "X": 0,
                            "Y": 0
                        },
                        "Angle": 0,
                        "Size": {
                            "Height": 0,
                            "Width": 0
                        }
                    },
                    "CardAreas": [
                        {
                            "X": 7,
                            "Y": 40
                        },
                        {
                            "X": 460,
                            "Y": 36
                        },
                        {
                            "X": 463,
                            "Y": 311
                        },
                        {
                            "X": 10,
                            "Y": 316
                        }
                    ],
                    "Gender": "",
                    "Nationality": "肯尼亞",
                    "Name": "奧巴馬",
                    "IDNumber": "",
                    "BirthDate": ""
                }
            }
        },
        "url": "https://ocr.cn-shanghai.aliyuncs.com/",
        "during": 560,
        "headers": {
            "response": {
                "date": "Fri, 30 Oct 2020 12:07:13 GMT",
                "content-type": "application/json;charset=utf-8",
                "content-length": "464",
                "connection": "keep-alive",
                "access-control-allow-origin": "*",
                "access-control-allow-methods": "POST, GET, OPTIONS",
                "access-control-allow-headers": "X-Requested-With, X-Sequence, _aop_secret, _aop_signature",
                "access-control-max-age": "172800",
                "x-acs-request-id": "23C9D339-63FD-43E9-814B-BC19EE1EECD1"
            }
        }
    },
    "requestId": "303f05d1-e59a-477a-8641-e13dab8b0a12"
}

示例代碼,這個代碼有錯誤,後文有改正的代碼

#!/usr/bin/env python
#coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkocr.request.v20191230.RecognizeIdentityCardRequest import RecognizeIdentityCardRequest

client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-shanghai')

request = RecognizeIdentityCardRequest()
request.set_accept_format('json')

request.set_Side("face")
request.set_ImageURL("http://explorer-image.oss-cn-shanghai.aliyuncs.com/HiQN85YxMTAEMDfD8fGruxyU/s1.jpg?OSSAccessKeyId=LTAI4Fk9FstqSEYnqKJ5Dpeo&Expires=1604061374&Signature=RC9fZ%2BeORAjfli09HRG4xEYh2CM%3D")

response = client.do_action_with_exception(request)
# python2:  print(response) 
print(str(response, encoding='utf-8'))

編寫程序並嘗試

安裝aliyunsdkcore

1.png
安裝SDK核心庫。
使用 pip 命令安裝阿里雲SDK核心庫:
pip install aliyun-python-sdk-core
安裝雲產品的SDK。
pip install aliyun-python-sdk-ecs
安裝文字識別,阿里雲OCR服務
pip install aliyun-python-sdk-ocr

開通身份證識別

1.png
點擊立即開通
1.png

創建AccessKey

在使用阿里雲SDK和調用視覺智能開放平臺的API之前,確保您已經生成訪問密鑰(AccessKey)。您可以在個人中心AcessKey管理中創建並管理屬於您自己的AccessKey,
主賬號AccessKey
登錄視覺智能開放平臺控制檯。
鼠標懸停至右上角的用戶頭像,單擊AccessKey管理。
1.png

創建AccessKey

1.png
在安全提示對話框中單擊繼續使用AccessKey。
在安全信息管理頁面,單擊左上角的創建AccessKey。
在手機驗證對話框,單擊點擊獲取。
輸入校驗碼,單擊確定。

啟動開發

下載安裝SDK包。

目前,SDK支持Java、Python、Node.js、PHP四種常用語言,您可以選擇對應語言類目下的視覺技術能力SDK進行接入。
之前已安裝PythonSDK包

RAM授權。

為賬戶進行RAM授權,以訪問相應的阿里雲資源。
1.png

依照樣例和說明文檔編寫程序並運行

開始本地調用。
參考身份證識別接口文檔,進行開發。

程序

#!/usr/bin/env python
#coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkocr.request.v20191230 import RecognizeIdentityCardRequest

client = AcsClient('xxxxxxxxx', 'xxxxxxxxxx', 'cn-shanghai')

request = RecognizeIdentityCardRequest.RecognizeIdentityCardRequest();
request.set_accept_format('json')

request.set_Side("face")
request.set_ImageURL("http://viapi-test.oss-cn-shanghai.aliyuncs.com/sanjiye-meizi/5.15/shenfz.jpg")

response = client.do_action_with_exception(request)
# python2:  print(response)
print(str(response, encoding='utf-8'))

得到結果

C:\Users\xxx\.conda\envs\aliproject\python.exe C:/Users/xxx/Desktop/aliyunidcardocr/main.py
{"RequestId":"9E6AA8E5-75E5-4A47-856D-1509DAA203A4","Data":{"FrontResult":{"Address":"河北省邯鄲市肥鄉縣肥鄉鎮","FaceRectVertices":[{"X":521.0860595703125,"Y":280.8114013671875},{"X":424.39859008789062,"Y":277.23809814453125},{"X":428.482666015625,"Y":166.73095703125},{"X":525.170166015625,"Y":170.30426025390625}],"FaceRectangle":{"Center":{"X":474.78436279296875,"Y":223.77117919921875},"Angle":-87.883460998535156,"Size":{"Height":96.7535400390625,"Width":110.58258056640625}},"CardAreas":[{"X":38,"Y":76},{"X":589,"Y":73},{"X":591,"Y":399},{"X":40,"Y":403}],"Gender":"男","Nationality":"漢","Name":"常濤","IDNumber":"411526199706013217","BirthDate":"19970601"}}}

Process finished with exit code 0

運行結果
1.png

結語

RecognizeIdentityCard可以識別二代身份證關鍵字段內容,關鍵字段包括:姓名、性別、民族、身份證號、出生日期、地址信息、有效起始時間、簽發機關,同時可輸出身份證區域位置和人臉位置信息。

參考

https://help.aliyun.com/document_detail/145009.html?spm=a2c4g.11186623.6.565.786d3ee7YEbR4a
https://help.aliyun.com/document_detail/151899.html?spm=a2c4g.11186623.2.33.7cb72b14PwDPyX#doc-api-ocr-RecognizeIdentityCard
https://vision.aliyun.com/experience/detail?spm=a211p3.14471183.J_7240705510.9.46dc1aa1ILcbp5&tagName=ocr&children=RecognizeIdentityCard#techSupport

Leave a Reply

Your email address will not be published. Required fields are marked *