百度智能云智能边缘 - 部署物体检测模型
文档简介:
本教程说明如何将一个物体检测模型通过BIE部署至边缘节点。
操作指南:
导入配置项。
进入配置管理。
点击导入配置项。
选择导入文件:配置项-easyedge-linux-mdp-4fn7k2tve4xyknp1-amd64.json
导入完毕以后,将增加一个配置项。
在内网环境下,可以先下载模型文件,再上传至内网的对象存储,最后修改配置项的下载地址为内网地址。
本教程说明如何将一个物体检测模型通过BIE部署至边缘节点。
操作指南
导入配置项
- 进入配置管理
- 点击导入配置项
- 选择导入文件:配置项-easyedge-linux-mdp-4fn7k2tve4xyknp1-amd64.json
- 导入完毕以后,将增加一个配置项。
- 在内网环境下,可以先下载模型文件,再上传至内网的对象存储,最后修改配置项的下载地址为内网地址。
导入应用
- 进入应用部署
- 点击导入应用
- 选择导入文件:应用-easyedge-app10amd64.json
- 导入完毕以后,将增加一个应用。
- 在内网环境下,可以先下载镜像:registry.baidubce.com/aiot/edgekit_x86:1.0.4,再上传至内网的镜像仓库,最后修改应用的镜像地址为内网地址。
部署应用到边缘节点
在应用部署当中,可以选择将应用部署至哪些边缘节点,部署的逻辑是通过边缘节点的标签进行匹配。例如edge-node这个边缘节点有一个baetyl-node-name: edge-node这样的KV标签,如下图所示:
那么目标节点界面,点击匹配标签,添加baetyl-node-name: edge-node作为目标节点标签,如下图所示:
在添加完毕以后,系统自动基于标签匹配出目标节点为edge-node,如下图所示:
验证边缘AI服务运行
打开原模型的label_list.txt文件,我们可以看到此模型可以识别以下种类物体:
background
aeroplane
bicycle
bird
boat
bottle
bus
car cat chair
cow
diningtable
dog
horse
motorbike
person
pottedplant
sheep
sofa
train
tvmonitor
可以看到此模型可以识别人和狗这两种物体,我们可以找一张遛狗的测试图片。
通过浏览器验证
本案例当中的AI推断服务提供了web操作界面,所以可以通过web界面上传上述测试图片。打开浏览器,访问:http://[边缘节点IP地址]:8088/。如果能够打开界面,表示边缘推断服务正常启动。此时上传测试图片,推断服务将自动给出推断结果,如下图所示,在置信度为80%时,识别出图片当中有3个人,1条狗,置信度可用户自定义修改。
通过API验证
边缘AI应用作为一个容器服务运行在边缘节点,它同时对外提供API访问接口,支持被其他应用调用,并返回物体检测结果。具体API使用参考API文档
下面通过python代码调用接口进行示例说明:
- 拷贝下面的python代码保存至本地,命名为test_ai_model_api.py。
import requests with open('./1.jpg', 'rb') as f: img = f.read() # params is GET params, data is
POST Body result = requests.post('http://[边缘节点ip]:8088/', params={'threshold': 0.8},data=img).json() print (result)
- 下载图片 1.jpg,保存至与test_ai_model_api.py同目录下。
- 执行test_ai_model_api.py
python test_ai_model_api.py
- 查看接口返回结果为如下JSON,同样标识识别出1个人和3条狗。
{ "cost_ms":179, "error_code":0, "results":[ { "confidence":0.9943918585777283, "index":12, "label":"dog", "
location":{ "height":397, "left":100, "top":691, "width":383 }, "name":"dog", "score":0.9943918585777283,
"x1":0.14523082971572876, "x2":0.6987910866737366, "y1":0.6263848543167114, "y2":0.9866765737533569 },
{ "confidence":0.9922541379928589, "index":15, "label":"person", "location":{ "height":304, "left":547,
"top":332, "width":92 }, "name":"person", "score":0.9922541379928589, "x1":0.7918291687965393, "x2":0.
9249030947685242, "y1":0.30082497000694275, "y2":0.5762962102890015 }, { "confidence":0.9846013784408569,
"index":15, "label":"person", "location":{ "height":1020, "left":311, "top":63, "width":308 }, "name":"
person", "score":0.9846013784408569, "x1":0.4507014751434326, "x2":0.8969031572341919, "y1":
0.05781838297843933, "y2":0.9817966222763062 }, { "confidence":0.9536634683609009, "index":15,
"label":"person", "location":{ "height":357, "left":35, "top":327, "width":149 }, "name":"person",
"score":0.9536634683609009, "x1":0.05083557963371277, "x2":0.2662031948566437, "y1"
:0.2963605523109436, "y2":0.6200013160705566 } ] }