EasyDL图像-图像分类快速开始
目录
模型示例说明
图像分类模型主要用于识别一张图中是否是某类物体/状态/场景,是和图片中主体或状态单一的场景。本文以猫狗识别模型为示例演示图像分类模型训练全过程。
实现步骤
只需四步即可完成自定义AI模型的训练及发布的全过程。
Step1:成为百度AI开放平台的开发者
要使用百度EasyDL的模型训练能力首先需要注册成为百度AI开放平台的开发者,首先让我们用5分钟来注册百度AI开放平台的开发者(如您已经是开发者,可直接登录使用)
先点击此处注册百度账号进入,如下图的页面快速的注册一个百度账号吧。
Step2:提前准备训练数据
图像分类需要提供包含不同类别的图片并标注图片即可训练图像分类模型,自动识别图中是否包含某类物体/状态/场景,下面我们来看看这次训练所需的猫狗图片示例:
图片数量越多理论上训练效果越好,图像分类的图片数量建议每个类别不低于20张图片。
Step3:使用EasyDL训练图像分类模型
创建模型
进入EasyDL官方平台点击【立即使用】
点击【图像分类】进入操作台
在模型中心下点击【创建模型】
模型信息填写完成后点击【下一步】
模型创建完成后可在【我的模型】栏查看已创建的模型信息
创建数据集
在数据总览界面点击【创建数据集】
在数据集创建界面输入数据集名称后点击【完成】
数据集创建完成后可在【数据总览】查看已创建完成的数据集,点击【导入】跳转至数据导入界面
数据导入支持无标注信息、有标注信息两种数据标注状态的数据以及多种导入方式,以下为无标注信息-本地导入-上传图片的导入方式示例,其余各类型导入方式可参考图像分类页面上传数据集并在线标注
选择数据标注状态及导入方式后点击【上传图片】
注意:上传图片时,一定注意格式要求!
选择好图片后,点击【开始上传】
上传完成后,点击【确认并返回】跳转至数据总览页
在数据总览页可看到所建数据集,图片上传到平台,需要一段时间,等待片刻刷新页面后,待状态由【正在导入】转为【已完成】即为导入成功。
数据标注
在数据总览页找到需要标注的数据集,点击【查看与标注】,跳转至标注页面
在左侧标签栏下,点击【添加标签】 创建数据集标签
分别输入dog、cat并点击【确认】添加数据标签
点击图片右下角红框内图标进入到数据标注界面
在当前图片下选择右侧标签栏内的某一类别,代表为图片打上相应的标签,点击【保存当前图片】或直接点击下一张图标,在保存标注结果后自动跳转至下一张。标注完所有图片后,该数据集便可用于后续模型训练
模型训练
数据集准备完成后,点击【训练】,进入模型训练配置阶段
根据需求选择模型各项配置后,添加训练数据集,点击【开始训练】
在模型列表下,可以看到处于训练状态的模型,将鼠标放置感叹号图标处,即可查看训练进度,同时若勾选短信提醒,在模型训练完成后会以短信的形式通知
模型校验
模型训练完成后,可在模型列表下,点击【校验】
点击【启动模型校验服务】,需等待几分钟
点击【添加图片】,进行模型校验
在此处可以点击【申请上线】,进行模型发布,跳转到模型发布
模型发布
模型训练完成后,点击【申请发布】
按要求填写相应信息后,点击【提交申请】
注:同时可勾选下方【云服务调用数据管理】的服务条款,通过云服务调用数据反馈,可查找公有云服务模型识别错误的数据,纠正结果并将其加入下一次用于训练模型的数据集,实现训练数据的持续丰富和模型效果的持续优化。
提交申请后跳转至【我的模型】栏,服务状态变为【发布中】
等待几分钟,此状态就会变为【已发布】,即发布成功
体验H5
模型发布成功后可在模型列表页点击【体验H5】进行模型体验
选择体验H5的模型并点击下一步
自定义样式后点击【生成H5】
手机扫描生成的二维码即可在手机端体验模型效果
Step4:模型调用
在 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))
产品特色
可视化操作: 无需机器学习专业知识,模型创建-数据上传-模型训练-模型发布全流程可视化便捷操作,最快15分钟即可获得一个高精度模型
高精度效果:EasyDL底层结合百度 AutoDL/AutoML技术,针对用户数据自动获得最优网络和超参组合,基于少量数据就能获得出色效果和性能的模型
端云结合:训练完成的模型可发布为云端API或离线SDK,灵活适配各种使用场景及运行环境
数据支持:全方位支持训练数据的高质量采集与高效标注,支持在模型迭代过程中不断扩充数据,助力提升模型效果
更多参考
如对文档说明有疑问或建议,请微信搜索“BaiduEasyDL”添加小助手交流
备注:文档如使用中遇到报错等问题,请在控制台中通过“工单”联系我们,售后团队为您及时解决问题