将OpenVINOTM推理结果通过MQTT推送给EdgeX Foundry

本文介绍了如何结合OpenVINO工具包和EdgeX Foundry实现边缘智能。首先,概述了EdgeX Foundry作为边缘物联网中间件平台的功能,以及OpenVINO在边缘推理的作用。接着,详细讲述了如何使用OpenVINO开发YOLOv5模型的推理程序,包括安装环境、导出ONNX模型和预处理API。然后,展示了运行带有MQTT的EdgeX Foundry,以及在EdgeX UI中创建MQTT设备的步骤。最后,通过修改Python脚本`mock-device-for-mqtt.py`,将OpenVINO的推理结果推送到MQTT Broker,实现了OpenVINO与EdgeX Foundry的集成。
摘要由CSDN通过智能技术生成

1.1 常见的EdgeAI应用程序框架

EdgeAI即常说的边缘智能,边缘智能包含两大核心功能:

  1. 边缘负责将现实世界的各种物理量数字化,然后整合数据,然后跟云端双向通信,例如,将温度、压力、位置等数字化后,整合信息上传并获得下行的命令
  2. 智能负责从原始的数据中抽取出有用的信息,例如,物体在视频中的位置和类别

边缘智能应用程序中常见的模块是EdgeX Foundry和OpenVINOTM工具包:

  1. EdgeX Foundry负责从边缘处的传感器(即“物”物)收集数据,并作为双向传输引擎向企业、云和本地应用发送数据,以及从这些应用接收数据。
  2. OpenVINOTM工具包负责在边缘端实现AI模型的推理计算,获得推理结果

EdgeX Foundry与OpenVINOTM工具包共同实现边缘智能的典型框架,如图1-1所示。

图1-1 边缘智能应用程序典型框架

1.1.1 EdgeX Foundry简介

EdgeX Foundry是LF Edge旗下的一款开源、不受供应商限制的边缘物联网中间件平台,负责从边缘处的传感器(即“物”物)收集数据,并作为双向传输引擎向企业、云和本地应用发送数据,以及从这些应用接收数据,如图1-2所示。

图1-2 EdgeX Foundry

在边缘智能应用中使用EdgeX Foundry的好处:

  1. EdgeX为设备数据引入、规范化及边缘智能 (AI/ML)提供可替换的参考服务
  2. EdgeX共享支持新型物联网数据服务和高级边缘计算应用
  3. EdgeX能加快完整边缘解决方案和/或边缘硬件解决方案的上市速度

1.1.2OpenVINOTM 2022.1简介

OpenVINO工具包开源且商用免费,用于深度学习模型优化和部署,如图1-3所示。z

图1-3 OpenVINO工具包

OpenVINO工具包2022.1版于2022年3月22日正式发布,根据官宣《OpenVINO? 迎来迄今为止最重大更新,2022.1新特性抢先看》,OpenVINO2022.1将是迄今为止最大变化的版本。

从开发者的角度来看,对于提升开发效率或运行效率有用的特性有:

  1. 提供预处理API函数。OpenVINO??2022.1之前版本不提供OpenVINO runtime原生的用于数据预处理的API函数,开发者必须通过第三方库,比如,OpenCV,来实现数据预处理。OpenVINO2022.1自带的预处理API可以将所有预处理步骤都集成到在执行图中,这样iGPU、CPU、VPU 或今后Intel的独立显卡都能进行数据预处理,大大提高了执行效率;相比之前,用OpenCV实现的预处理,则只能在CPU上执行,如图1-3所示。

图1-4 OpenVINO预处理API

  1. ONNX****前端API。前端API意味着模型可以直接被OpenVINO读入,而无需使用模型优化器进行模型转换,这对于使用 ONNX 模型的开发人员非常有用。OpenVINO2022.1自动转换ONNX模型的速度(1.5秒以内)相比之前版本,有极大提升,开发人员已经感受不到ONNX模型自动转换的时间消耗了。
  2. AUTO **设备插件。**AUTO设备插件自动将AI推理计算加载到最合适的硬件设备上(CPU, GPU, VPU等),无需额外的开发工作即可提高模型在异构系统中(例如:12代CPU + Iris Xe 集成显卡 + DG2 独显) 的推理性能和可移植性。
  3. 支持直接读入飞桨模型,如图1-4所示。

图1-5 OpenVINOTM支持的深度学习框架

为实现将OpenVINO推理结果通过MQTT推送给EdgeX Foundry,本文将依次介绍:

  1. 使用 OpenVINO开发YOLOv5模型推理程序
  2. 运行带ds-mqtt的EdgeX Foundry
  3. 在EdgeX UI中新建MQTT Device
  4. 将OpenVINO推理结果推送给MQTT Broker

1.2使用 OpenVINO开发YOLOv5模型推理程序

1.2.1YOLOv5简介

Ultralytics公司贡献的YOLOv5 PyTorch (https://github.com/ultralytics/yolov5)实现版,由于其工程化和文档做的特别好,深受广大AI开发者的喜爱,GitHub上的星标超过了23.8K,而且被PyTorch官方收录于PyTorch的官方模型仓。在产业实践中,也有无数的开发者将YOLOv5直接用于自己的项目。

由于YOLOv5精度高速度快(最新的YOLOv5模型精度如下所示),使得产业界里面使用YOLOv5模型做产品和项目的人非常多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值