2020-02-14
今天试了下百度esaydl的图像分类方面的功能,其优点是主需要上传自己的数据集,不需要关注模型训练,就可以得到相应的结果。最后得到的模型可以调用云api在本地进行运行。
网址:https://ai.baidu.com/easydl/app/1/models
1、登录该平台
2、点击创建模型:
填入相关信息即可。
3、上传数据集
上传的格式是.zip压缩格式,同时不同类别的图片处于相应的文件夹下,文件夹的名字就是其所代表的类别。这里的数据集是我自己从百度上爬取的,总共分为两类,一类为yes,即佩戴了口罩,另一类为no,即没有佩戴口罩,其中示例图片:
我自己的图片是yes有178张,no有47张,上传之后有效的是183张。
4、训练模型
选择创建好的模型,选择公有云部署,选择高精度,点击开始训练即可。高性能是为了平衡速度和精度,而最后一个Auto transfer关注于细粒度分类。
5、训练完成后可以在我的模型中查看结果
点击完成评估结果:
6、可以校验我们的模型
7、就可以申请发布我们的模型啦
这里需要配置权限,然后新建一个Easydl console。配置好后点击已完成配置:
输入相关信息之后会弹出一个二维码:
这里我把电脑上的图片照了一张,上传进行测试,结果还是不错的。
8、调用api进行本地测试。
我们查看API文档,这里面有具体的教我们怎么去使用,大致分为两步:第一步,获取access_token,以python为例:
# encoding:utf-8 import requests # client_id 为官网获取的AK, client_secret 为官网获取的SK host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【这里是easydl console中的】&client_secret=【这里是easydl console中的】' response = requests.get(host) if response: print(response.json())
我们可以得到json格式的响应,然后找到access_token复制下来即可。
接着就可以调用API进行本地测试了:
# encoding:utf-8 import requests import base64 import json with open("C:\\Users\\Administrator\\Desktop\\test.jpg", 'rb') as f: base64_data = base64.b64encode(f.read()) request_url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/classification/testmask" params = { "image":str(base64_data,encoding="utf-8"), "top_num":"5", } data=json.dumps(params) access_token = '【这里是获得的acess_token】' request_url = request_url + "?access_token=" + access_token headers = {"'Content-Type'":'application/json'} response = requests.post(url=request_url, headers=headers,data=data) content = response.text if content: print(content)
说明:要发送post请求,带上请求头,参数带上两个,一个是base64格式的图片数据,另一个是返回分类数量,执行结果:
有需要的留言我上传数据集。