【BML全功能AI开发平台】公有云数据回流操作流程!

BML(Baidu Machine Learning),这是一个面向企业和个人开发者的机器学习集成开发环境,为经典机器学习和深度学习提供了从数据处理、模型训练、模型管理到模型推理的全生命周期管理服务。

在这里插入图片描述

BML全功能AI开发平台官网链接:https://ai.baidu.com/bml/

本文章带大家体验数据回流操作,让大家有针对性的对数据进行训练,使你的模型效果大大提升。

效果对比

数据回流之前的结果:
在这里插入图片描述
数据回流之后的结果:

结果:{
    "log_id": 4704874399842262034,
    "results": [
        {
            "location": {
                "height": 69,
                "left": 13,
                "top": 5,
                "width": 26
            },
            "name": "螺丝",
            "score": 0.8808821439743042
        },
        {
            "location": {
                "height": 36,
                "left": 27,
                "top": 58,
                "width": 60
            },
            "name": "螺丝",
            "score": 0.8686471581459045
        },
        {
            "location": {
                "height": 55,
                "left": 46,
                "top": 4,
                "width": 32
            },
            "name": "螺丝",
            "score": 0.8534561991691589
        },
        {
            "location": {
                "height": 48,
                "left": 52,
                "top": 43,
                "width": 69
            },
            "name": "螺丝",
            "score": 0.76649010181427
        },
        {
            "location": {
                "height": 28,
                "left": 78,
                "top": 4,
                "width": 31
            },
            "name": "螺母",
            "score": 0.33452606201171875
        }
    ]
}

Process finished with exit code 0

这里数据回流仅仅使用了一张数据比较差的数据集进行二次训练,结果提升显著,不过还是有一点瑕疵。

一、公有云部署API

如果还没有部署的小伙伴,可以查看我这两个文章先进行部署和调用!
【BML全功能AI开发平台初体验】没有服务器也可以实现公有云部署!
【BML全功能AI开发平台初体验】两小时搞定目标检测全流程!
这两篇结合着看即可,可以先看”BML全功能AI开发平台初体验】两小时搞定目标检测全流程!

二、公有云数据回流

第一步:进入BML总览界面

在BML平台上点击"立即使用",进入BML总览界面。
在这里插入图片描述

第二步:点击云数据回流并授权

在这里插入图片描述

第三步:同意协议

这里我们使用螺丝螺母检测进行展示~
在这里插入图片描述
添加成功之后会显示出你添加的信息。
在这里插入图片描述

第四步:查看数据

点击查看数据
在这里插入图片描述

第五步:选择0-40%置信度

在这里插入图片描述
我们可以看到有一张图片置信度在0-40%直接,点击即可查看

第六步:查看图片

在这里插入图片描述
我们可以看到螺丝的头部识别成了螺母

第七步:保存图片

在这里插入图片描述

第八步:选择仅图片

因为我们的数据识别错误挺大的,所以我们选择仅图片,然后去数据集自行标注。
在这里插入图片描述
我们选择去看看,查看我们刚才保存的数据集。

第九步:查看无标注图片

选择无标注信息,查看无标注图片
在这里插入图片描述

第十步:开始标注

在这里插入图片描述

第十一步:保存标注

在这里插入图片描述
至此我们回流数据集就标注成功了。

三、新建任务

首先打开BML管理页面,在这个界面中可以看到当前支持的深度学习任务类型,也可在左侧目录选择不同深度学习方向。

在这里插入图片描述

在左侧目录中找到“计算机视觉模型”,点击“新建任务”可管理本项目的“基本信息”、“配置任务类型”、“添加数据”、“配置网络”等。
这里可以看到我们的版本是V2,因为我们已经训练过一次了。
在这里插入图片描述

四、导入数据集

默认就会选择数据集,这里我们无需更改
在这里插入图片描述

五、配置网络

在配置网络的过程中,可以选择使用预训练模型百度超大规模数据集-通用检测预训练模型,公开数据集-常规预训练模型。这里我们选择公开数据集-常规预训练模型进行训练,同时网络也分为很多种,这里就不再一一叙述,我们选择SSD进行训练模型:
在这里插入图片描述
平台提供了脚本编辑的工具,点击“立即编辑”进行脚本编辑:
在这里插入图片描述
在这里插入图片描述
一般可以在里面配置一些参数,开发者可以自己修改里面的超参数,这里我们也按照第一次的配置进行训练。
也可以使用其他方式选择你的超参数,这里自行选择。
在这里插入图片描述

六、发布模型

这里我们无法进行编辑昵称,只能打别名,因为我们已经发布过了。
在这里插入图片描述

七、配置资源

训练模型需要租用服务器或者用自己的服务器,BML平台直接提供了一个配置好的环境,不需要自己买服务器、自己配置环境了,可以说是非常地方便!
在这里插入图片描述

这里根据自己的需求选择即可。

点击“提交训练任务”就可以开始训练啦:

在这里插入图片描述
在这里插入图片描述

训练过程中可以查看自己的训练日志:
在这里插入图片描述
在这里插入图片描述

当感觉看log枯燥无味的时候,BML也为你提供了可视化展示:
在这里插入图片描述

在这里插入图片描述
为大家清晰的展示我们的数据回流之后的训练过程~,真的是太棒了!

"训练结束"后还能出一份评估报告:

在这里插入图片描述

八、模型部署

点击重启我们的在线部署
在这里插入图片描述
选择我们的新版本,点击开始部署
在这里插入图片描述
在这里插入图片描述
至此,新版本的螺丝螺母模型-公有云部署就完成啦

九、模型调用(你是数据回流操作,这本地肯定有代码)

第一步:点击查看详情

在这里插入图片描述

记录下你的调用接口地址,在下方代码部分需要修改API调用接口地址。
在这里插入图片描述

第二步:点击控制台,对接口进行赋权

在这里插入图片描述

第三步:创建应用

在这里插入图片描述
填写你的应用名称、应用归属、公司名称等信息。
在这里插入图片描述
创建完成之后会显示你创建的应用信息,也就是对接口进行赋权的应用。
在这里插入图片描述

第四步:记录API Key和Secret Key

记录好API Key和Secret Key,下方代码调用的时候需要进行输入授权。
在这里插入图片描述

第五步:使用代码调用API接口

物体检测API参考文档

在这里我们使用python3调用进行演示。
在这里插入图片描述
复制代码到自己本地开始进行调用:


"""
BML 物体检测 调用模型公有云API Python3实现
"""

import json
import base64
import requests
"""
使用 requests 库发送请求
使用 pip(或者 pip3)检查我的 python3 环境是否安装了该库,执行命令
  pip freeze | grep requests
若返回值为空,则安装该库
  pip install requests
"""


# 目标图片的 本地文件路径,支持jpg/png/bmp格式
IMAGE_FILEPATH = "【您的测试图片地址,例如:./example.jpg】"

# 可选的请求参数
# threshold: 默认值为建议阈值,请在 我的模型-模型效果-完整评估结果-详细评估 查看建议阈值
PARAMS = {"threshold": 0.3}

# 服务详情 中的 接口地址
MODEL_API_URL = "【您的API地址】"

# 调用 API 需要 ACCESS_TOKEN。若已有 ACCESS_TOKEN 则于下方填入该字符串
# 否则,留空 ACCESS_TOKEN,于下方填入 该模型部署的 API_KEY 以及 SECRET_KEY,会自动申请并显示新 ACCESS_TOKEN
ACCESS_TOKEN = "【您的ACESS_TOKEN】"
API_KEY = "【您的API_KEY】"
SECRET_KEY = "【您的SECRET_KEY】"


print("1. 读取目标图片 '{}'".format(IMAGE_FILEPATH))
with open(IMAGE_FILEPATH, 'rb') as f:
    base64_data = base64.b64encode(f.read())
    base64_str = base64_data.decode('UTF8')
print("将 BASE64 编码后图片的字符串填入 PARAMS 的 'image' 字段")
PARAMS["image"] = base64_str


if not ACCESS_TOKEN:
    print("2. ACCESS_TOKEN 为空,调用鉴权接口获取TOKEN")
    auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"               "&client_id={}&client_secret={}".format(API_KEY, SECRET_KEY)
    auth_resp = requests.get(auth_url)
    auth_resp_json = auth_resp.json()
    ACCESS_TOKEN = auth_resp_json["access_token"]
    print("新 ACCESS_TOKEN: {}".format(ACCESS_TOKEN))
else:
    print("2. 使用已有 ACCESS_TOKEN")


print("3. 向模型接口 'MODEL_API_URL' 发送请求")
request_url = "{}?access_token={}".format(MODEL_API_URL, ACCESS_TOKEN)
response = requests.post(url=request_url, json=PARAMS)
response_json = response.json()
response_str = json.dumps(response_json, indent=4, ensure_ascii=False)
print("结果:{}".format(response_str))

我们只需要修改五个地方即可完成调用
在这里插入图片描述

  • IMAGE_FILEPATH:设置为自己本地的图片
  • MODEL_API_URL:为API接口的地址
  • ACCESS_TOKEN:留空即可(一定要把他的删除留空,或者是你自己计* 算出了ACCESS_TOKEN,写在这里也行)
  • API_KEY:创建应用的时候产生了,复制过来即可
  • SECRET_KEY:创建应用的时候产生了,复制过来即可

第六步:运行代码

数据集展示:
在这里插入图片描述

修改完毕之后,运行代码,可以看下方图片,已经运行成功,识别出螺丝数据,螺母还是有一个,但是相比之前已经好太多太多了,这只是更改了一张图片的效果,还是需要多找找相关的数据集进行训练,但是针对于数据回流之前效果提升了很多很多。

结果:{
    "log_id": 4704874399842262034,
    "results": [
        {
            "location": {
                "height": 69,
                "left": 13,
                "top": 5,
                "width": 26
            },
            "name": "螺丝",
            "score": 0.8808821439743042
        },
        {
            "location": {
                "height": 36,
                "left": 27,
                "top": 58,
                "width": 60
            },
            "name": "螺丝",
            "score": 0.8686471581459045
        },
        {
            "location": {
                "height": 55,
                "left": 46,
                "top": 4,
                "width": 32
            },
            "name": "螺丝",
            "score": 0.8534561991691589
        },
        {
            "location": {
                "height": 48,
                "left": 52,
                "top": 43,
                "width": 69
            },
            "name": "螺丝",
            "score": 0.76649010181427
        },
        {
            "location": {
                "height": 28,
                "left": 78,
                "top": 4,
                "width": 31
            },
            "name": "螺母",
            "score": 0.33452606201171875
        }
    ]
}

Process finished with exit code 0

至此,数据回流就全部完毕了,大家赶紧去测试测试自己数据回流之后的模型,看看效果怎么样!!!

十、总结

数据回流操作可以让我们更加有针对性的对数据进行标注,训练等操作,直接展示出我们那些图片置信度比较低,可以针对这种数据进行再次训练,让我们的模型更加完善,更加实用!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值