天天看點

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

身份證識别系統搭建

擷取視覺智能開放平台提供的 SDK

進入到視覺智能開放平台的官網

https://vision.aliyun.com/

後,我們可以發現平台已經開放了包括人臉識别、文字識别、商品了解等在内的多項視覺 AI 能力,點選文字識别菜單,可以找到身份證識别項,然後我們點選進入。

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

身份證識别包括識别二代身份證關鍵字段内容,關鍵字段包括:姓名、性别、民族、身份證号、出生日期、位址資訊、有效起始時間、簽發機關,同時可輸出身份證區域位置和人臉位置資訊。

體驗調試

在這裡我們可以先上傳圖檔進行試用

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

上傳成功後點選發起調用檢視結果

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

識别結果

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考
{
    "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

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

安裝SDK核心庫。

使用 pip 指令安裝阿裡雲SDK核心庫:

pip install aliyun-python-sdk-core

安裝雲産品的SDK。

pip install aliyun-python-sdk-ecs

安裝文字識别,阿裡雲OCR服務

pip install aliyun-python-sdk-ocr

開通身份證識别

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

點選立即開通

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

建立AccessKey

在使用阿裡雲SDK和調用視覺智能開放平台的API之前,確定您已經生成通路密鑰(AccessKey)。您可以在個人中心AcessKey管理中建立并管理屬于您自己的AccessKey,

主賬号AccessKey

登入視覺智能開放平台控制台。

滑鼠懸停至右上角的使用者頭像,單擊AccessKey管理。

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

在安全提示對話框中單擊繼續使用AccessKey。

在安全資訊管理頁面,單擊左上角的建立AccessKey。

在手機驗證對話框,單擊點選擷取。

輸入校驗碼,單擊确定。

啟動開發

下載下傳安裝SDK包。

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

之前已安裝PythonSDK包

RAM授權。

為賬戶進行RAM授權,以通路相應的阿裡雲資源。

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

依照樣例和說明文檔編寫程式并運作

開始本地調用。

參考身份證識别接口文檔,進行開發。

程式

#!/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           

運作結果

阿裡雲高校計劃視覺AI五天訓練營Day 2 身份證識别系統搭建身份證識别系統搭建體驗調試編寫程式并嘗試結語參考

結語

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