IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 使用Azure IoT Edge在设备端部署戴口罩识别应用 -> 正文阅读

[嵌入式]使用Azure IoT Edge在设备端部署戴口罩识别应用

原作者视频等教程如下,我在此进行自己的补充和总结。

Azure 智能边缘 之 Azure IoT Edge 十分钟入门系列文章目录 - 51Azure.cloud

【注意】

有几个需要注意地地方:

1:mask模型可以直接使用作者的,不用自己训练。

2:在创建object-detect模型项目时,切记选择项目类型Domains为“General (compact)”。

如此,当完成训练后,才可以Export为docker(Linux)。否则只能发布为api。

3:ACR的域名是xxx.azurecr.io,不要写错为azureacr。

4:尽量打开ACR的“Admin user”开关。//起初没有验证,不知是否与报错有关

5:建议先通过portal,在Iot hub手动创建IoT Edge,然后点击进入可以查看到连接字符串。

或者使用命令查看。

az iot hub device-identity connection-string show --device-id linuxedge --hub-name <youriothubname> --output table

6:Linux设备中不要安装docker。

由于ACR只支持moby-engine,需要在设备上安装moby-engine。因此如果设备中已安装docker CCE,则会被覆盖掉。

7:使用视频中的“对称加密验证”,而不是"X509"。

8:【注意】教程这里的端口号忘记了添加双引号""。

在Container Create Options 中设置容器端口相关的配置:

{
  "HostConfig": {
    "PortBindings": {
      "80/tcp": [{
        "HostPort": "81"
      }]
    }
  }
}

训练模型的部分

安装moby引擎

务必不要在已安装docker CCE的机器上重新安装moby-engin docker。

安装IoT Edge

更新设备上的包列表。

sudo apt-get update


查看可用的 IoT Edge 和 IoT 标识服务版本。

apt list -a aziot-edge aziot-identity-service


要安装最新版本的 IoT Edge 和 IoT 标识服务包,请使用以下命令:

sudo apt-get install aziot-edge

apt list -a aziot-edge aziot-identity-service
Listing... Done
aziot-edge/bionic,now 1.2.5-1 amd64 [installed]
aziot-edge/bionic 1.2.4-1 amd64
aziot-edge/bionic 1.2.3-1 amd64
aziot-edge/bionic 1.2.2-1 amd64
aziot-edge/bionic 1.2.1-1 amd64
aziot-edge/bionic 1.2.0-1 amd64
aziot-edge/bionic 1.2.0~rc4-1 amd64
aziot-edge/bionic 1.2.0~rc4~device-update-tutorial-1 amd64

aziot-identity-service/bionic,now 1.2.4-1 amd64 [installed,automatic]
aziot-identity-service/bionic 1.2.3-1 amd64
aziot-identity-service/bionic 1.2.2-1 amd64
aziot-identity-service/bionic 1.2.1-1 amd64
aziot-identity-service/bionic 1.2.0-1 amd64
aziot-identity-service/bionic 1.2.0~rc4-1 amd64
aziot-identity-service/bionic 1.2.0~rc4~device-update-tutorial-1 amd64

使用对称密钥进行身份验证

iotedge config mp --connection-string 'HostName=iothubname.azure-devices.net;DeviceId=linuxedge;SharedAccessKey=++02YJvIv6HiWP8WLx1rGI11N0mehQen3esrAFfx5rk='

sudo iotedge config apply

验证成功的配置

sudo iotedge system status
System services:
    aziot-edged             Running
    aziot-identityd         Down - activating
    aziot-keyd              Running
    aziot-certd             Ready
    aziot-tpmd              Ready

aziot-identityd is in a bad state because:
aziot-identityd.service: Down - activating : Printing the last 10 log lines.
-- Logs begin at Sat 2021-09-18 03:23:02 UTC, end at Thu 2021-12-02 02:50:51 UTC. --
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [INFO] - Could not reconcile Identities with current device data. Reprovisioning.
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [INFO] - Updated device info for linuxedge.
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [ERR!] - Failed to provision with IoT Hub, and no valid device backup was found: Hub client error
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [ERR!] - service encountered an error
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [ERR!] - caused by: Hub client error
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [ERR!] - caused by: ErrorCode:IotHubUnauthorizedAccess;Unauthorized
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]: 2021-12-02T02:50:48Z [ERR!] -    0: <unknown>
Dec 02 02:50:48 fei-918-vm aziot-identityd[8191]:    1: <unknown>
Dec 02 02:50:48 fei-918-vm systemd[1]: aziot-identityd.service: Main process exited, code=exited, status=1/FAILURE
Dec 02 02:50:48 fei-918-vm systemd[1]: aziot-identityd.service: Failed with result 'exit-code'.

查看其状态。如果出现[ERR!]报错,则说明以上IotHub连接字符串没有生效。

可以进入到文件查看或修改。修改完后,再次将其生效。

sudo vi /etc/aziot/config.toml

sudo iotedge config apply

接下来查看发现,edgeAgent,已正常运行。

不一会儿,edgeHub和mask也都处于running状态,说明部署正常。

sudo iotedge list
NAME             STATUS           DESCRIPTION      CONFIG
edgeAgent        running          Up 41 seconds    mcr.microsoft.com/azureiotedge-agent:1.1
edgeHub          running          Up 33 seconds    mcr.microsoft.com/azureiotedge-hub:1.1
mask             running          Up 9 seconds     feiacr.azurecr.io/mask:v1

视频中是用浏览器或以POSTMAN做测试的,由于我的Ubuntu没有homedesk用户界面,因此用命令行测试。

curl 127.0.0.1:81
CustomVision.ai model host harness

和浏览器访问返回内容一致,由此可见,部署都是正确的。

最后,测试

采用url测试方式

测试1:

curl -X POST http://127.0.0.1:81/url  -d '{"url": "https://img0.baidu.com/it/u=3815600312,411717689&fm=26&fmt=auto"}'
{"created":"2021-12-02T03:24:15.019615","id":"","iteration":"","predictions":[{"boundingBox":{"height":0.98331047,"left":0.06794183,"top":-0.03540233,"width":0.46181308},"probability":0.84679085,"tagId":0,"tagName":"mask"},{"boundingBox":{"height":0.9611762,"left":0.29011689,"top":-0.09925044,"width":0.55135872},"probability":0.50089467,"tagId":0,"tagName":"mask"}],"project":""}

测试2:

curl -X POST http://127.0.0.1:81/url  -d '{"url": "https://t7.baidu.com/it/u=3013350550,279858396&fm=193&f=GIF"}'
{"created":"2021-12-02T03:27:58.776046","id":"","iteration":"","predictions":[{"boundingBox":{"height":0.87865715,"left":-0.0263336,"top":0.03156172,"width":0.3192271},"probability":0.89614129,"tagId":1,"tagName":"nomask"},{"boundingBox":{"height":0.84089283,"left":0.16703572,"top":0.11236664,"width":0.61882507},"probability":0.87163663,"tagId":1,"tagName":"nomask"},{"boundingBox":{"height":0.91119411,"left":0.46338932,"top":0.15371524,"width":0.52660682},"probability":0.82030243,"tagId":1,"tagName":"nomask"},{"boundingBox":{"height":0.69155405,"left":0.34916137,"top":0.04281605,"width":0.54162274},"probability":0.39353225,"tagId":1,"tagName":"nomask"},{"boundingBox":{"height":0.79550083,"left":0.04651661,"top":-0.00193247,"width":0.55670231},"probability":0.12784216,"tagId":1,"tagName":"nomask"}],"project":""}

参见:

安装 Azure IoT Edge | Azure Docs

注册新设备 - Azure IoT Edge | Azure Docs

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:11:47  更:2021-12-03 13:13:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:32:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码