Azure IoT Edge入门(6)实战将“识别戴口罩”算法部署到边缘(3)-部署到IoT Edge设备
本讲是下图实战中的最右侧的一个步骤。
本节内容中,我们将进行如下实战:
1. 将模块从ACR部署到IoT Edge,此处的IoT Edge是我们第三讲中准备好的Windows Edge;
此处有坑,因为我们的 Custom Vision导出的是linux 容器,故而部署出错,我们需要去通过查询IoT Edge日志方式排查错误;
2.新部署一台Linux 系统的IoT Edge;
3. 将Custom Vision 导出的容器通过ACR 部署到Linux Edge上;
学完本讲,您将可以通过IoT Edge 远程给已经出售到客户现场的边缘设备进行升级/新装诸如SqlServer/MySql/Redis/Nginx等容器,也可以远程实现升级诸如Custom Vision等算法 。
视频讲解:
本节内容较长,您可以直接观看B站视频:https://www.bilibili.com/video/av94323809/
或本站视频:
图文摘要步骤(本节内容太多,只划重点):
通过ACR部署新的Module
配置步骤如下(注,完成本例,需要一台Linux Edge设备,本文在作者笔记本的虚拟机里安装了Ubuntu 18.04作为Edge设备):
IoT Edge runtime 在Linux 系统的安装请参照官网:https://docs.azure.cn/zh-cn/iot-edge/how-to-install-iot-edge-linux
注意:ADDRESS 填写ACR的根路径即可。
点击添加“IoT Edge Module”
Name填写的是将要部署到IoT Edge 里的模块显示的名称;
Image Url 要填写全路径,包括Image 版本号;
本案例中需要在Container Create Options 中设置容器端口相关的配置:
{
"HostConfig": {
"PortBindings": {
"80/tcp": [{
"HostPort": 87
}]
}
}
}
点击Review+Create 进行下一步
能够看到上一步配置的ACR信息和Module信息:
可以在Edge设备里通过 iotedge list 查看部署的Module
可以在控制台查看部署的Module:
点击Module能查看更详细的信息:
故障排除:
如果出现Module未启动,则请根据故障排除页面 通过日志等方式进行检查:https://docs.microsoft.com/zh-cn/azure/iot-edge/troubleshoot
结果验证:
在Edge设备的浏览器中,输入 127.0.0.1:81 ,将显示如下页面:
使用Postman测试如下:
至此,Edge设备具备了检测是否戴口罩的能力,只需要将摄像机的视频输出截取成图片后调用该API,即可得到结果。
常见问题:
1.Customer Vision 在树莓派上运行慢,超过4s的解决办法
针对树莓派设备,部署完成后如果一张图片的预测时间超过4s,则可以启用快速预测:
在custom vision导出的 arm dockerfile中,修改如下内容:
取消如下几行注释文件,增加一行 apt get install libgtk-3-0
经过上述修改重新部署后,树莓派上的预测时间在3秒以内。
Azure IoT Edge 入门系列其他文章,请见《Azure 智能边缘 之 Azure IoT Edge 十分钟入门系列文章目录》