Python开发---试用OCR文字识别API

2020-11-25 14:20:15 浏览数 (1)

AI如今发展迅速,各云厂商对通用的人脸识别,文字识别,语音识别和语音合成提供了接口。在日常中有些小场景还是可以用到这些通用AI接口使平台或软件锦上添花的。

比如身份管理。除了基本字段信息,同时可以上传身份证原件照片,来保证数据的准确性。(截图里的身份证照片和信息来源于网上公开,并且已经被模糊处理)

使用百度AI提供的身份证识别接口,同时使用它供演示的身份证照片。

当我们在浏览器上传过身份证照片后,同时调用百度AI的身份证识别接口返回身份证记录各字段信息,然后检查无误后,再添加识别结果到数据库。百度云网站上提供有多种语言版本的示例代码,分为两步:根据自己的API Key和Secret Key调用鉴权接口获取token,然后用token和图片的base64数据去调用身份证识别接口。Python代码如下:

代码语言:python代码运行次数:0复制
# -*- 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 None
    
    url = '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')

0 人点赞