【BML全功能AI开发平台初体验】两小时搞定目标检测全流程!
2021/6/28 23:24:01
本文主要是介绍【BML全功能AI开发平台初体验】两小时搞定目标检测全流程!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
BML全功能AI开发平台初体验】两小时搞定目标检测全流程!
- 一、准备开始
- 二、创建并标注数据集
- 三、新建一个项目
- 四、导入数据集
- 五、配置网络
- 六、配置资源
- 七、模型部署
- 八、模型调用
- 第一步:点击查看详情
- 第二步:点击控制台,对接口进行赋权
- 第三步:创建应用
- 第四步:记录API Key和Secret Key
- 第五步:使用代码调用API接口
- 第六步:运行代码
- 九、温馨提示
- 十、总结
最近发现了一个全功能AI开发平台,叫做BML(Baidu Machine Learning),这是一个面向企业和个人开发者的机器学习集成开发环境,为经典机器学习和深度学习提供了从数据处理、模型训练、模型管理到模型推理的全生命周期管理服务。
BML全功能AI开发平台官网链接:https://ai.baidu.com/bml/
最近找到了一个目标检测数据集,同时也是了解到BML(Baidu Machine Learning)这个平台,就想用这个平台实验一下目标检测任务,于是就开始我们的入坑之旅。具体开发流程(全流程)如下:
一、准备开始
在BML平台上点击"立即使用",即将进行我们的目标检测任务。
二、创建并标注数据集
数据在人工智能项目开发的过程中起着至关重要的作用,数据的好坏通常也决定着最终的模型效果。
本次使用螺丝螺母数据集,不会数据集流程的请点击这里:
【BML全功能AI开发平台初体验】目标检测数据集——智能标注
超详细的教程,智能标注省你百分之70的标注时间!
三、新建一个项目
首先打开BML管理页面,在这个界面中可以看到当前支持的深度学习任务类型,也可在左侧目录选择不同深度学习方向。
在左侧目录中找到“计算机视觉模型”,点击“物体检测”,写个名称加段描述就能新建一个项目了。
点击“新建”后,可以在下方找到刚刚创建的项目:
点击“新建任务”可管理本项目的“基本信息”、“配置任务类型”、“添加数据”、“配置网络”等。
四、导入数据集
将"第一步""创建的数据集导入:
这里我们直接选择数据集点击添加即可。
五、配置网络
在配置网络的过程中,可以选择使用预训练模型百度超大规模数据集-通用检测预训练模型,公开数据集-常规预训练模型。这里我们选择公开数据集-常规预训练模型进行训练,同时网络也分为很多种,这里就不再一一叙述,我们选择SSD进行训练模型:
平台提供了脚本编辑的工具,点击“立即编辑”进行脚本编辑:
一般可以在里面配置一些参数,开发者可以自己修改里面的超参数,这里我们把轮数改为10轮训练,试试效果。
六、配置资源
训练模型需要租用服务器或者用自己的服务器,BML平台直接提供了一个配置好的环境,不需要自己买服务器、自己配置环境了,可以说是非常地方便!
这里根据自己的需求选择即可。
点击“提交训练任务”就可以开始训练啦:
训练过程中可以查看自己的训练日志:
当感觉看log枯燥无味的时候,BML也为你提供了可视化展示:
为大家清晰的展示我们的训练过程~,真的是太棒了!
"训练结束"后还能出一份评估报告:
当你有事外出的时候,训练完成之后也可以给你发送短信,这里自己进行选择。
真的是爱了爱了!
七、模型部署
大家参考我写的另一篇文章,都是通用的换成你现在的模型就行,就不在细讲了,直接展示我部署完成的界面!
【BML全功能AI开发平台初体验】没有服务器也可以实现公有云部署!
至此,公有云部署就完成啦,完全不用自己的服务器,哈哈!
八、模型调用
第一步:点击查看详情
记录下你的调用接口地址,在下方代码部分需要修改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:创建应用的时候产生了,复制过来即可
第六步:运行代码
数据集展示(网上随便找的一个图):
修改完毕之后,运行代码,可以看下方图片,已经运行成功,识别出螺丝数据。
至此,模型的调用也就成功了,大家赶紧自己去试试把
九、温馨提示
模型不用的时候,赶紧停止,毕竟免费额度有限哈哈
十、总结
体验了BML全功能AI开发平台的物体检测全流程,从数据集标注-新建任务-模型选择-模型训练-模型部署-模型调用,总共用了不到两个小时就完成了,而且没有过多的打代码操作,只是修改了一下轮数,100轮感觉有点多,训练了10轮MAP已经达到了99.3,完全够用了,模型部署阶段也是相当的给力,点击两下就好了,模型调用的时候,实例代码已经给出,只需要简单的改改就行了,真的是太方便了,大家也赶紧去试试把!
这篇关于【BML全功能AI开发平台初体验】两小时搞定目标检测全流程!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20实战:30 行代码做一个网页端的 AI 聊天助手
- 2024-11-185分钟搞懂大模型的重复惩罚后处理
- 2024-11-18基于Ollama和pgai的个人知识助手项目:用Postgres和向量扩展打造智能数据库
- 2024-11-15我用同一个提示测试了4款AI工具,看看谁设计的界面更棒
- 2024-11-15深度学习面试的时候,如何回答1x1卷积的作用
- 2024-11-15检索增强生成即服务:开发者的得力新帮手
- 2024-11-15技术与传统:人工智能时代的最后一袭纱丽
- 2024-11-15未结构化数据不仅仅是给嵌入用的:利用隐藏结构提升检索性能
- 2024-11-15Emotion项目实战:新手入门教程
- 2024-11-157 个开源库助你构建增强检索生成(RAG)、代理和 AI 搜索