EasyDL图像-图像分类快速开始
目录
创建模型
- 进入EasyDL官方平台 点击【立即使用】
点击【图像分类】,进入操作台
- 在模型列表下点击【创建模型】
填写模型信息后,点击【下一步】
数据上传
上传未标注数据集
本地导入-上传图片
- 创建数据集时,填写数据集名称,选择数据集状态及导入方式,点击 【上传图片】
注意:上传图片时,一定注意格式要求!
- 选择好图片后,点击【开始上传】
- 上传成功后点击【确认并返回】
- 在数据集列表下则可看到所建数据集,图片上传到平台,需要一段时间,等待片刻刷新页面后,待状态由【处理中】转为【正常】即为上传成功。
本地导入-上传压缩包
- 选择以压缩包的形式上传未标注数据集,点击【上传压缩包】
注意:上传压缩包,有相应格式要求,建议下载示例压缩包确认格式!
- 上传好压缩包后,点击【确认并返回】
- 在数据集列表下则可看到所建数据集,图片上传到平台,需要一段时间,等待片刻刷新页面后,待状态由【处理中】转为【正常】即为上传成功。
本地导入-API导入
适用场景:线下有大量数据集,分包上传比较麻烦
具体介绍可在图像分类数据集管理API 文档中查看
请求示例代码可参考:
package API;
import com.baidu.ai.aip.utils.HttpUtil;
import com.baidu.ai.aip.utils.GsonUtils; import java.util.*;
/**
* easydl
*/
public class dataset_create {
/**
*重要提示代码中所需工具类
*FileUtil,Base64Util,HttpUtil,GsonUtils 请从
*https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
*https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
*https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
*https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
*下载
*/
public static String easydlObjectDetection() {
// 请求 url
String url = "https://aip.baidubce.com/rpc/2.0/easydl/dataset/create"; try {
Map<String, Object> map = new HashMap<>(); map.put("type","IMAGE_CLASSIFICATION");
map.put("dataset_name","test_dataset_name"); String param = GsonUtils.toJson(map);
// 注意这里仅为了简化编码每一次请求都去获取 access_token,线上环境 access_token 有过期时间, 客户端可自行缓存,过期后重新获取。
String accessToken =access_token.getAuth();
String result = HttpUtil.post(url, accessToken, "application/json", param); System.out.println(result);
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
dataset_create.easydlObjectDetection();
}
}
已有数据集导入-导入线上已有数据集
- 导入线上已有数据集,根据需求选择导入全部数据(不带标注)或导入未标注数据,选择完成后, 点击【确认并返回】
- 等待几分钟后,刷新页面,即可看到数据上传成功
上传已标注数据集
本地导入-上传压缩包
(一) 以文件夹命名分类
- 创建数据集时,填写数据集名称,选择数据集状态及导入方式,点击【上传压缩包】
注意:压缩包里的文件夹即为标签名,只能包含数字/字母/下划线
- 选择好压缩包进行上传,点击【确认并返回】
- 等待几分钟后,刷新页面,即可上传成功,此时数据集的状态都是标注完成的, 可以点击【查看】进行浏览
(二) 用json文件标记分类
-
制作json文件的Python示例代码:
#coding:utf-8 import os import json path_dir = '【数据集路径】' for file in os.listdir(path_dir): file_name = file.split('.')[0] dict_in = {"name": "【类别名称】"} dict = {'labels': [dict_in]} file_name1 = file_name + ".json" path_result_dir = '【json 存储路径】' + file_name1 with open(path_result_dir, 'w')as f: f.write(json.dumps(dict, ensure_ascii=False))
按类别制作json文件后,将所有图片和所对应的json文件按照格式要求放入一个文件夹并压缩,示例如下:
- 创建数据集时,填写数据集名称,选择数据集状态及导入方式,点击【上传压缩包】
注意:上传带json文件的压缩包时,注意格式要求,要与示例压缩包格式一致
- 选择好压缩包进行上传,点击【确认并返回】
- 上传成功后,在数据集列表则可看到刚才所上传数据集
本地导入-API导入
请跳转至本地导入-API导入,参考文档说明
已有数据集导入-导入线上已有数据集
- 选择导入已有数据集,此时可供选择的数据集均为图像分类模型下的现有数据集。点击【确认并返回】,即可上传成功
- 导入成功后,在数据集列表下,可查看所上传数据集
标注数据集
单图标注
- 找到未标注的数据集,点击【标注】,跳转至标注页面
-
在右侧标签栏下,创建数据集标签,点击【添加/搜索标签】
注意:标签名仅支持中文和数字,长度小于64位
- 在当前图片下选择右侧标签栏内的某一类别,代表为图片打上相应的标签,点击【保存当前图片】或直接点击下一张图标,在保存标注结果后自动跳转至下一张。标注完所有图片后,该数据集便可用于后续模型训练
批量标注
- 在数据集列表下,找到需要标注的数据集,点击【标注】
- 在右侧标签栏下,点击【添加/搜索标签】,创建数据集标签
- 返回数据集列表下,找到此数据集点击【查看】
点击【未标注图片】, 点击右侧【批量操作】
- 选择数据集下同类别图片,点击右上方【移动】
- 选择将图片移动到指定数据集的指定分类下,点击【提交】,即完成批量打标签的任务
模型训练
- 数据集准备好的前提下,点击【训练】,进入模型训练配置阶段
- 根据需求选择模型各项配置后,添加训练数据集,点击【开始训练】
- 在模型列表下,可以看到处于训练状态的模型,将鼠标放置感叹号图标处,即可查看训练进度,同时若勾选短信提醒,在模型训练完成后会以短信的形式通知
模型校验
线上校验
- 模型训练完成后,可在模型列表下,点击【校验】
- 点击【启动模型校验服务】,需等待几分钟
- 点击【添加图片】,进行模型校验
在此处可以点击【申请上线】,进行模型发布,跳转到模型发布
体验H5
温馨提示:H5校验是在发布模型后才提供的功能,同时体验H5会耗费接口服务的调用量,免费调用限额累计1000次
根据模型类型不同,免费额度不同。具体说明可参考EasyDL图像公有云API价格说明
- 点击【体验H5】
- 选择所调用模型,点击【继续】
- 自定义H5样式,填写好信息后,点击【生成H5】
- 生成二维码,用百度或微信APP扫相应二维码,即可在手机端体验模型效果
模型发布
- 模型训练完成后,点击【申请发布】
- 按要求填写相应信息后,点击【提交申请】
注:同时可勾选下方【云服务调用数据管理】的服务条款,通过云服务调用数据反馈,可查找公有云服务模型识别错误的数据,纠正结果并将其加入下一次用于训练模型的数据集,实现训练数据的持续丰富和模型效果的持续优化。
- 页面跳转至模型列表下,可以看到申请状态为【审核中】
- 待平台审核后此状态变为【审核成功】,服务状态变为【发布中】
- 等待几分钟,此状态就会变为【已发布】,即发布成功,同时可以体验H5。
模型调用
- 在 EasyDL“我的模型”列表页,点击【服务详情】后,会得到接口地址
此接口地址在模型调用代码中会用到。点击【立即使用】
- 需要登录EasyDL控制台中创建一个应用,点击【创建应用】
填写信息后点击【立即创建】
- 立即创建后,在应用列表页即可得到 AK SK 密钥
-
通过使用在线API测试所训练的模型效果
import sys import time import socket import json import base64 import requests from datetime import datetime print(datetime.now()) domain = "aip.baidubce.com" myaddr = socket.getaddrinfo(domain,'https') print(str(domain) + " = " + myaddr[0][4][0]) start = time.time() appid = 'appid' client_id = 'AK' client_secret = 'SK' host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials' host += "&client_id=%s&client_secret=%s" % (client_id, client_secret) session = requests.Session() response = session.get(host) access_token = response.json().get("access_token") request_url = "【模型信息-服务详情-接口地址】" with open('image.jpg', 'rb') as f: image = base64.b64encode(f.read()).decode('UTF8') headers = { 'Content-Type': 'application/json' } params = { "image": image } request_url = request_url + "?access_token=" + access_token response = session.post(request_url, headers=headers, json=params) content = response.content.decode('UTF-8') print(json.loads(content)) end = time.time() print('耗时时长: %1.2f s'% (end-start))
模型迭代
1.模型列表下,找到需要迭代的模型,点击右上方【训练】
2.选择需要迭代的模型名称,本次模型迭代以换用【高性能】算法为例,点击【开始训练】
3.在模型列表下可看到V2版本,点击【历史版本】,可以查看该模型的全部版本信息
4.待模型训练完成后,点击【申请发布】
注意:迭代后的模型仍需重新发布
若选择发布V2版本,则V1版本将会暂停服务,点击【确定】
5.点击【提交申请】
待审核成功后,V2版本模型即为【发布成功】
注意:迭代后的模型进行API调用时,接口地址与之前版本一样,无需在控制台创建新的应用
6.点击【历史版本】,可看到V1模型已暂停服务,若后续需要用到V1版本模型,可再次点击【申请发布】
云服务数据回流
开通【云服务数据回流】功能后,可查找云服务模型识别错误的数据,纠正结果并将其加入模型迭代的训练集,实现训练数据的持续丰富和模型效果的持续优化
具体流程如下:
- 若模型发布时没有勾选开启云服务数据回流功能,则点击【云服务数据回流】,选择好接口后,勾选接受条款后,点击【开通服务】,即可开通管理云服务调用数据
-
若模型发布时勾选了开启云服务数据回流功能,则会自动开启【云服务数据回流】,通过选择调用时间、分类,并设置筛选条件,点击【查看筛选结果】查看疑似错误识别的图片
注意:数据将从开通功能后开始存储,最多存储30天的数据。当天调用的数据暂不支持即时查看,可在第二天查看
- 选择接口识别错误的图片,点击【重新标注】纠正结果后添加到指定数据集(建议新建数据集),点击【提交】
- 若选择【立即重新训练】,则页面跳转至训练模型界面
在训练集列表下便可看到含有重新标注图片的数据集,只需增加包含接口数据的数据集,即可提升模型效果
公有云API付费说明
- 付费前,请仔细阅读EasyDL图像公有云价格说明文档,或在 EasyDL 首页产品定价查看刊例价。
- 云服务可以选择开通按「调用量后付费方式」或「购买次数包方式」。按量后付费功能,即根据调用次数,自动扣除百度云账号余额。次数包功能,即购买固定调用次数额度。
- 购买次数包将自动开通按「调用量后付费方式」,两者同时开通情况下,系统将优先扣除次数包额度,再消耗按量后付费额度。
- 在上述价格说明文档顶部,点击进入【EasyDL控制台】
找到需要调用的接口API,最初模型状态为免费试用,根据模型类型不同,免费额度不同,具体说明可查阅上述文档。
- 如已开通「按量后付费」或购买「次数包」后,有临时性的QPS高并发要求,可选择在某个时间段内叠加购买QPS,未开通付费的用户无法购买QPS叠加包。
开通按量后付费
- 在控制台,选择使用的版本,在公有云服务下,点击【开通】
- 选择已测试好的模型服务,点击【确认开通】
-
确认信息后,点击【去支付】,即可开通按量付费服务。
注意:此服务为后付费服务,将根据使用情况从账户余额中扣除
- 回到服务列表页面后,可以看到状态已经变为【付费使用】,即系统会按照成功调用次数,自动扣除账户余额。
购买次数包
- 在控制台服务列表下,点击「购买次数包」下的【购买】
-
根据需求选择相应次数包,点击【下一步】
注意:同规格下,不同模型次数包价钱不一样,具体计费标准请查看次数包价格说明文档
下图以图像分类模型为例:
-
在弹出的提示框后,点击【确认】
注意:购买次数包后,平台同时会自动开通「按量后付费」,计费调用优先抵扣次数包额度,额度耗尽自动切换为按量后付费形式
- 确认订单信息后,点击【去支付】
- 在支付界面,选择一种支付方式后,点击【确认支付】,即可成功购买次数包
购买QPS叠加包
温馨提示:已开通按量付费(或购买次数包)后,若您有临时性的QPS高并发要求,可选择在某个时间段内叠加购买QPS,未开通付费的用户无法购买QPS叠加包
- 当开通「按量后付费」或「购买次数包」前提下,点击QPS下的【购买】
- 进入QPS购买详情页,按需选择相应的购买方式、购买期限,选择好数量后,点击【添加到购物车】,点击【去结算】
- 确认好订单信息后,点击【去支付】
- 选择支付方式后,点击【确认支付】,即可完成QPS叠加包的购买
更多参考
如对文档说明有疑问或建议,请微信搜索“BaiduEasyDL”添加小助手交流
备注:文档如使用中遇到报错等问题,请在控制台中通过“工单”联系我们,售后团队为您及时解决问题