技术干货 | OpenVINO及EdgeX摄像头管理和推理平台

原创
2022/08/30 18:24
阅读数 90
关于2022 EdgeX中国挑战赛
2022 EdgeX中国挑战赛暨中关村国际前沿科技创新大赛EdgeX专题赛正式拉开帷幕。大赛由 北京市科委、中关村管委会指导 ,由 Linux基金会 主办,由 阿里云、百度智能云、EMQ、GSMA 5G IN、英特尔、InnoSpace、中科创达、VMware、紫竹ET孵化器 等联合承办单位共同支持,将在线上线下同步开赛 本次大赛分设两大赛道: 医疗、教育、消费行业赛道和能源、工业赛道 。大赛致力于构建一个物联网及边缘计算的学习和分享平台,基于EdgeX Foundry,针对不同赛道的多个应用场景,以共享技术投资解决行业技术问题。除了超40万元人民币总奖励,参赛者还可以获得技术、资本、市场等一系列参赛回报。 为帮助参赛选手更好地了解并运用相关技术,本次大赛将在7月至9月持续开展3轮技术培训,涵盖初、中、高不同层级,帮助开发者系统学习智能边缘系统知识。我们邀请到来自 英特尔、VMware、CCFA、EMQ等多家机构 的技术专家进行分享。 中级培训第二场分为上下半场。 上半场, 英特尔AI软件布道师武卓 为我们带来的培训主题为: OpenVINO开源工具套件介绍 。下半场, 英特尔平台解决方案架构师黄金法 为我们带来的培训主题为: EdgeX摄像头管理和推理平台 。本篇推文是中级培训系列课程回顾的第二辑。 1 ►OpenVINO开源工具套件介绍 在这次培训中,武卓布道师介绍了如何利用英特尔开源工具套件OpenVINO,按照简单的三个步骤,即可先实现对深度学习模型的优化及推理加速,并可在多种边缘设备上快速部署,快速实现利用OpenVINO进行深度学习推理的实践。
OpenVINO——Visual,Inference,Neural Network and Optimization
1.1 OpenVINO诞生的背景 在OpenVINO诞生之前,部署高精度深度学习的方式主要为GPU和云端。然而GPU不方便携带,同时云端部署模型也存在需持续互联网连接,等待API接口反馈等不便之处。由此,提出了OpenVINO这个部署在CPU上这个方式,既解决了GPU和云端的劣势,也优化了使用CPU可能存在的运行速度慢等缺点。 1.2 OpenVINO的开发者使用 OpenVINO为开发者设计了建构,优化与部署的三大流程架构。
OpenVINO开发者使用三大流程
目前,OpenVINO开源工具套件已经可以支持绝大部分主流深度学习框架,如TensorFlow,PyTorch,Keras等等。在202.1的新版本中,PaddlePaddle也被OpenVINO全面支持兼容。同时,OpenVINO支持在多个硬件平台上部署,如CPU,GPU,VPU,FPGA等,且无论是Windows,Linux还是macOS系统都可以兼容OpenVINO。
OpenVINO支持绝大部分主流深度学习框架
 
OpenVINO兼容了非常广阔的库
1.3 OpenVINO优化工具 开发者在建构好深度学习框架后,OpenVINO提供了MO(Model Optimizer)优化方式、POT(Post-Training Optimization Tool)优化工具和NNCF(Neural Network Compression Framework)优化框架。
MO优化逻辑(由初始框架优化为IR文件)
代码片段:可切换语言,无法单独设置文字格式 通过获取开发者的深度学习框架,MO会自行进行算法的优化,并最后输出为优化后的IR模型。而这整个优化操作仅需要以下一行代码即能实现:
$ mo --input_model model.onnx 
     --data_type FP32(也可以选择FP16)
IR模型是OpenVINO的Intermedia representation文件格式,内含两个文件,分别代表模型的结构和模型的参数权重。通过这两个文件,可以实现OpenVINO对模型基本的格式转换、优化,并便利之后模型在不同平台上部署与推理加速。
POT优化工具优化逻辑
POT提供了对模型进一步优化的解决方案。其操作流程相对更加复杂,分别对IR模型的结构文件和原始训练数据集的一部分数据进行量化压缩,优化为IR-INT8的模型文件,模型大小和模型的推理速度都会有明显优化。
NNCF优化工具优化逻辑
NNCF能对我们基于TensorFlow或PyTorch得到的神经网络模型在程序面进行进一步压缩,在压缩的过程中把模型精度损失保持在最小。通过一系列量化方法工具,能帮助我们在使用NNCF的过程中对模型进行重训练,在重训练的过程中既能得到对模型的量化和压缩,同时又能尽可能降低压缩导致的模型精度损失。 三种优化工具比较:
  • 使用难度:NO > POT > NNCF
  • 压缩精度NO ≈ NNCF > POT
  • POT需要部分原始数据集的数据,NNCF需要利用原始模型进行重训练
1.4 OpenVINO安装方法 OpenVINO可以通过ubuntu,红帽,Python,anaconda等方式进行安装。大家可以扫描下方的二维码获取各平台OpenVINO安装流程。
1.5 OpenVINO推理逻辑
OpenVINO能极大程度简化深度学习与神经网络计算的推理逻辑,且支持众多类型的设备。
Compiled_model = core.compile_model(model = model, device_name = "CPU")*CPU可以替换为GPU,MYRIAD,HETERO,MULTI等多种设备;也可以替换为AUTO,可以更加方便地进行多设备部署,根据实际情况自动选择推理设备。
仅需六行代码即能实现狗的图像识别推理
1.6 动态输入支持
新增的动态输入支持可以为自然语言处理等深度学习算法服务
1.7 OpenVINO Notebooks 扫描以下二维码,获取更多有关OpenVINO Notebooks的信息。
OpenVINO Notebooks代码示例
2 ►EdgeX摄像头管理和推理平台
黄金法架构师在本次培训中介绍了EdgeX新推出的ONVIF摄像头接入和管理功能,本次培训重点介绍新功能架构、技术和验证测试方法等。
EVAM参考技术栈
DL(Deep Learning) Streamer是Intel开源的深度学习处理软件平台,也是服务于EdgeX视频分析(EVAM)的核心处理平台。 DL Streamer Pipeline Server获取地址: https://github.com/dlstreamer/pipeline-server
EVAM安装与运行微服务
EdgeX官方提供了EVAM安装与运行的微服务,软件下载地址为: https://software.intel.com/iot/edgesoftwarehub/download/home/ri/video_analytics
EVAM使用教程
开发者可以根据Intel官网提供的EVAM使用教程进行开源EVAM的应用,教程地址为: https://www.intel.com/content/www/us/en/developer/articles/technical/video-analytics-service.html 通过EVAM开启Pipeline需要设置下列参数:
  • Source
  • File Source
  • IP Camera(RTSP Source)
  • Web Camera
  • Destination
  • Metadata
  • File
  • MQTT
  • Kafka
  • Frame
  • RTSP
  • WebRTC
社区简化版EVAM指令安装
开发者也可以通过上图中EdgeX简化版的指令安装方式进行EVAM的安装,并通过下图所示视频分析Demo去安装Demo APP。
Demo APP及支持设备的安装方式
Demo APP安装后,可以通过Demo APP查看摄像头,开启Pipeline。并通过EVAM查看推理后视频信息,通过VLC查看推理后视频,通过MQTT Broker(mosquitto)查看推理时间信息。
3 ►直播答疑
Q:Intel的VPU似乎不做了,但其边缘计算的推理加速非常不错。请问有什么替代方案吗?
A:OpenVINO就是专门为提高深度学习边缘计算的推理加速功能而设计的,大家可以尝试一下POT,NNCF这些压缩量化模型,把模型压缩为INT-8格式的文件,可以进一步提高推理加速能力。
Q:我的macbook是M1版本,请问能支持运行吗?
A:我们目前的版本是支持运行的。
 
2022 EdgeX中国挑战赛已于8月3日盛大开幕,EdgeX中文社区将在接下来的日子里为大家带来更多边缘计算讲座分享和赛事进度更新。在这个盛夏,让我们一起展现风采,从自身所学的领域出发,为物联网、边缘计算市场提供更多更好的解决方案,展望一个更好的科技未来。
2022EdgeX中国挑战赛正在火热报名中,报名时间: 2022年8月3日00:00 - 9月5日24:00 。参与大赛,共同推动万物互联,请即刻联系我们。
大赛官网: https://www.edgex-challenge.com/
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部