百度easydl之图像分类构建是否佩戴口罩模型
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格式的图片数据,另一个是返回分类数量,执行结果:
有需要的留言我上传数据集。
- Markdown语法讲解及MWeb使用教程
- 通过Linu命令实现屏幕录制和回放(r4笔记第5天)
- 用keras对国产剧评论文本的情感进行预测
- python常用可视化技巧
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(六)maven整合SSM
- 通过java程序抽取日志中的sql语句(r4笔记第4天)
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(七)JDBC url的连接参数
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建
- position:sticky的兼容性尝试
- Python爬虫股票评论,snowNLP简单分析股民用户情绪
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶
- node服务的监控预警系统架构
- Maven构建项目速度太慢的解决办法
- 分析函数之窗口子句(r4笔记第3天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一文搞定插入排序算法
- LeetCode 107. 二叉树的层次遍历 II
- LeetCode 103. 二叉树的锯齿形层次遍历
- 我是怎么一步一步调试出来二叉树的遍历(超精彩配图),二叉树遍历再也不用愁了
- 重中之重的二分查找
- LeetCode 剑指Offer 面试题27. 二叉树的镜像
- 一文搞定选择排序算法
- 一文搞定冒泡排序算法
- 剑指Offer LeetCode 面试题25. 合并两个排序的链表
- LeetCode 20200601 打卡 1431. 拥有最多糖果的孩子
- 剑指Offer LeetCode 面试题24. 反转链表
- 剑指Offer LeetCode 面试题22. 链表中倒数第k个节点
- 剑指Offer LeetCode 面试题18. 删除链表的节点
- 剑指Offer LeetCode 面试题06. 从尾到头打印链表
- 最详细的docker中安装并配置redis