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 十分钟入门系列文章目录