一、平台接入
1.打开/
进入控制台,选择文字识别服务。
2.创建应用,如图示:
创建完毕,点击“返回应用列表”
此处显示AK,SK,后面程序中会用到
二、人脸识别调用步骤
调用主要有三步:
获取access_token 将图片处理成base64编码格式 post请求访问接口得到结果
1.获取access_token
官方给的python示例代码,不过这个是python2的代码,python3里已经没有了urllib2,而且很繁琐
给出博主自己编写的py3利用requests的demo:
# -*- coding: utf-8 -*-__author__ = 'fff_zrx'import requests#获取access_token#client_id 为官网获取的AK, client_secret 为官网获取的SKhost = '/oauth/2.0/token?grant_type=client_credentials&client_id=your ak&client_secret=your sk'header={'Content-Type': 'application/json; charset=UTF-8'}response1=requests.post(url=host,headers=header)#<class 'requests.models.Response'>json1 = response1.json()#<class 'dict'>access_token=json1['access_token']
2.将图片处理成base64编码格式流程大致是将图片读取为二进制格式,再利用二进制到base64格式的函数转换
/p/570c1acdd236
转换代码:
import base64filepath='zrx.jpg'f = open(r'%s' % filepath, 'rb')pic = base64.b64encode(f.read())f.close()base64=str(pic,'utf-8')print(base64)
3.post请求访问接口得到结果
request_url = "/rest/2.0/face/v3/detect"params = {"image":base64,"image_type":"BASE64","face_field":"faceshape,facetype,beauty,"}header={'Content-Type': 'application/json'}request_url = request_url + "?access_token=" + access_tokenresponse1=requests.post(url=request_url,data=params,headers=header)#<class 'requests.models.Response'>json1 = response1.json()#<class 'dict'>print(json1)print("颜值评分为")print (json1["result"]["face_list"][0]['beauty'],'分/100分')
4、完整代码:
# -*- coding: utf-8 -*-__author__ = 'fff_zrx'import requestsimport base64#获取access_token#client_id 为官网获取的AK, client_secret 为官网获取的SKhost = '/oauth/2.0/token?grant_type=client_credentials&client_id=your ak&client_secret=your sk'header={'Content-Type': 'application/json; charset=UTF-8'}response1=requests.post(url=host,headers=header)#<class 'requests.models.Response'>json1 = response1.json()#<class 'dict'>access_token=json1['access_token']#转换图片格式filepath='zrx.jpg'f = open(r'%s' % filepath, 'rb')pic = base64.b64encode(f.read())f.close()base64=str(pic,'utf-8')print(base64)#访问人脸检测apirequest_url = "/rest/2.0/face/v3/detect"params = {"image":base64,"image_type":"BASE64","face_field":"faceshape,facetype,beauty,"}header={'Content-Type': 'application/json'}request_url = request_url + "?access_token=" + access_tokenresponse1=requests.post(url=request_url,data=params,headers=header)#<class 'requests.models.Response'>json1 = response1.json()#<class 'dict'>print(json1)print("颜值评分为")print (json1["result"]["face_list"][0]['beauty'],'分/100分')
结果:
三、车牌识别
重新生成AK和SK
完整代码:
# -*- coding: utf-8 -*-# !/usr/bin/env pythonimport urllibimport urllib.parseimport urllib.requestimport base64import json# client_id 为官网获取的AK, client_secret 为官网获取的SKclient_id = 'GRRG0QUHaxBLB2jS8Giru9fT'client_secret = 'GVBHHeCvQDwmSr8pSWpXGddFYh3thQO7'# 获取tokendef get_token():host = '/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secretrequest = urllib.request.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib.request.urlopen(request)token_content = response.read()if token_content:token_info = json.loads(token_content.decode("utf-8"))token_key = token_info['access_token']return token_key# 读取图片def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()# 获取车牌号信息def get_license_plate(path):request_url = "/rest/2.0/ocr/v1/license_plate"f = get_file_content(path)access_token = get_token()img = base64.b64encode(f)params = {"custom_lib": False, "image": img}params = urllib.parse.urlencode(params).encode('utf-8')request_url = request_url + "?access_token=" + access_tokenrequest = urllib.request.Request(url=request_url, data=params)request.add_header('Content-Type', 'application/x-www-form-urlencoded')response = urllib.request.urlopen(request)content = response.read()if content:license_plates = json.loads(content.decode("utf-8"))strover = '识别结果:'words_result = license_plates['words_result']number = words_result['number']strover += ' 车牌号:{} \n '.format(number)# print (content)print(strover)return contentelse:return ''image_path = 'chepai.jpg'get_license_plate(image_path)
结果:
参考博客:
/article/a/-07-04/15977001
/qq_38412868/article/details/92394766