900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 调用百度人脸识别api检测颜值和识别车牌

调用百度人脸识别api检测颜值和识别车牌

时间:2018-09-28 22:21:19

相关推荐

调用百度人脸识别api检测颜值和识别车牌

一、平台接入

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。