百度easydl调试

Posted by 肥仔 on March 19, 2020

百度easydl api调用

开发环境ubuntu16.04+python

今天尝试将easydl上训练好的模型,通过api布置到共有云上,布置起来也挺顺手的,参考文献,写详细的。就是demo里面有点问题不太明白。

base64 数据的读取

官方给得demo里面关于这一点很模糊?

params = “{"image":"sfasq35sadvsvqwr5q…","top_num":"5"}”

然后….运行失败,强烈建议在demo里面写清楚…

1
2
3
4
5
6
7
8
9
10
11
12
def getByte(path):
    '''
    将图片读入
    由于要发送json,所以需要对byte进行str解码
    具体原因可见参考文档https://ai.baidu.com/ai-doc/EASYDL/Sk38n3baq
    '''
    with open(path, 'rb') as f:
        img_byte = base64.b64encode(f.read())
    img_str = img_byte
    return img_str
 
img_str = getByte('/home/danoao/图片/1.jpg')

json格式的数据发送与解析

1
2
3
4
5
6
7
8
9
10
11
# 默认数据格式
data = {'image':img_str, "top_num": 5}
json_mod = json.dumps(data)
#读取的tokne
access_token = 'xxxxx'
request_url = request_url + "?access_token=" + access_token
res = requests.post(request_url, data=json_mod)
a=json.loads(res.text)
#解析出来results数据
c=a["results"]
print(c)

包含的python库与环境

1
2
3
4
5
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import json
import base64