上一篇讲述了如何创建模型、训练模型、校验模型、发布模型,接下来我们学习如何在Python下请求我们的接口服务。
1、进入百度云首页(不是百度云盘),进入控制台,在产品服务中选择图像识别,点击创建应用,然后填写应用名称、类型等信息,创建完成后查看应用信息
2、点击上图左侧的定制化图像识别,点击AppID权限管理,添加我们先前创建的应用的AppID
3、获取Access Token,我们在调用API时需要带上该参数才能顺利地请求服务,下面的代码用来获取Access Token,获取Access Token可以用多种语言来实现,详情参考百度云文档中心
import json
import requests
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=b0Xuhn9sZ6hf2u1YcKBP41ii' \
'&client_secret=jtQqGUrWauLAnwA9wdvMvCmvCTVukPE3'
response = requests.get(host)
content = response.json()
access_token = content["access_token"]
4、接下来我们要查看调用的服务接口地址,回到百度云模型中心,点击我的模型-->服务详情-->查看接口地址就能看到我们要调用的接口地址了,注意:一定要是审核成功的模型
5、请求说明和返回说明
(1)请求说明:
HTTP方法:POST
请求URL:上图中的接口地址
URL参数:
参数名 参数值
access_token 步骤3中获取的access_token值
Header:
参数名 参数值
Content-Type application/json
Body中请求参数:
参数名 参数值
image 图像数据,base64编码(去掉头部)
top_num 返回分类数量
(2)返回说明如下:
返回参数:
字段名 说明
log_id 唯一的log id,用于问题定位
results 分类结果数组
name 分类名称
score 置信度
6、在代码中请求服务
import json
import requests
import base64
# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=b0Xuhn9sZ6hf2u1YcKBP41ii' \
'&client_secret=jtQqGUrWauLAnwA9wdvMvCmvCTVukPE3'
response = requests.get(host)
content = response.json()
access_token = content["access_token"]
image = open(r'C:\\Users\\pain\\Desktop\\plastic.jpg', 'rb').read()
data = {'image': base64.b64encode(image).decode()}
request_url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/classification/garbageclassification" + "?access_token=" + access_token
response = requests.post(request_url, data=json.dumps(data))
content = response.json()
print(content)
7、返回的识别结果