AI如今发展迅速,各云厂商对通用的人脸识别,文字识别,语音识别和语音合成提供了接口。在日常中有些小场景还是可以用到这些通用AI接口使平台或软件锦上添花的。
比如身份管理。除了基本字段信息,同时可以上传身份证原件照片,来保证数据的准确性。(截图里的身份证照片和信息来源于网上公开,并且已经被模糊处理)
使用百度AI提供的身份证识别接口,同时使用它供演示的身份证照片。
当我们在浏览器上传过身份证照片后,同时调用百度AI的身份证识别接口返回身份证记录各字段信息,然后检查无误后,再添加识别结果到数据库。百度云网站上提供有多种语言版本的示例代码,分为两步:根据自己的API Key和Secret Key调用鉴权接口获取token,然后用token和图片的base64数据去调用身份证识别接口。Python代码如下:
# -*- coding:utf-8 -*- import urllib, urllib2, sys import ssl import json import base64
client_id 为官网获取的AK, client_secret 为官网获取的SK
def getAccess_Token(ak,sk):
print 'getAccess_Token'
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(ak,sk)
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
if(content):#print(content) res=json.loads(content) if(not res.has_key('error')): return res['access_token'] return 0
def getIdcard(access_token,picUrl):
print 'getIdcard'
if(access_token==0):
return Noneurl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' + access_token # 二进制方式打开图文件 f = open(picUrl, 'rb') # 参数image:图像base64编码 img = base64.b64encode(f.read()) f.close() params = {"image": img, "id_card_side": "front"} params = urllib.urlencode(params) request = urllib2.Request(url, params) request.add_header('Content-Type', 'application/x-www-form-urlencoded') response = urllib2.urlopen(request) content = response.read() if (content): #print(content) res=json.loads(content) if(res['image_status']=='normal'): return res['words_result'] return None
#accessToken=getAccess_Token('Your API Key','Your Secret Key')
#res=getIdcard(access_token,'static/files/jpg/406811d6-a093-11e9-ab0f-5254004bb78e.jpg')