身份證識别系統搭建
擷取視覺智能開放平台提供的 SDK
進入到視覺智能開放平台的官網
https://vision.aliyun.com/後,我們可以發現平台已經開放了包括人臉識别、文字識别、商品了解等在内的多項視覺 AI 能力,點選文字識别菜單,可以找到身份證識别項,然後我們點選進入。

身份證識别包括識别二代身份證關鍵字段内容,關鍵字段包括:姓名、性别、民族、身份證号、出生日期、位址資訊、有效起始時間、簽發機關,同時可輸出身份證區域位置和人臉位置資訊。
體驗調試
在這裡我們可以先上傳圖檔進行試用
上傳成功後點選發起調用檢視結果
識别結果
{
"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
安裝SDK核心庫。
使用 pip 指令安裝阿裡雲SDK核心庫:
pip install aliyun-python-sdk-core
安裝雲産品的SDK。
pip install aliyun-python-sdk-ecs
安裝文字識别,阿裡雲OCR服務
pip install aliyun-python-sdk-ocr
開通身份證識别
點選立即開通
建立AccessKey
在使用阿裡雲SDK和調用視覺智能開放平台的API之前,確定您已經生成通路密鑰(AccessKey)。您可以在個人中心AcessKey管理中建立并管理屬于您自己的AccessKey,
主賬号AccessKey
登入視覺智能開放平台控制台。
滑鼠懸停至右上角的使用者頭像,單擊AccessKey管理。
在安全提示對話框中單擊繼續使用AccessKey。
在安全資訊管理頁面,單擊左上角的建立AccessKey。
在手機驗證對話框,單擊點選擷取。
輸入校驗碼,單擊确定。
啟動開發
下載下傳安裝SDK包。
目前,SDK支援Java、Python、Node.js、PHP四種常用語言,您可以選擇對應語言類目下的視覺技術能力SDK進行接入。
之前已安裝PythonSDK包
RAM授權。
為賬戶進行RAM授權,以通路相應的阿裡雲資源。
依照樣例和說明文檔編寫程式并運作
開始本地調用。
參考身份證識别接口文檔,進行開發。
程式
#!/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
運作結果
結語
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