码迷,mamicode.com
首页 > 其他好文 > 详细

完整教程,轻松上手!OpenVINO 能支持ARM架构了?!

时间:2021-04-28 11:47:13      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:regex   cursor   方案   分割   enc   研讨会   使用   社区   git   

点击蓝字

 

关注我们,让开发变得更有趣


内 容 来 源 | 康 瑶 明

 

 

全文字数625,预计阅读4min

1.扩展模块的介绍

OpenVINO诞生至今,其功能越来越强,模块也越来越多。为了保证发布版本的稳定性,Github上新增了openvino_contrib代码库用来开发扩展模块,功能稳定后再合并到OpenVINO库中。扩展模块中的每个模块都是解耦的,可以独立编译使用。主要包括三部分:arm_plugin、java_api、mo_pytorch。本文主要介绍 arm_plugin 模块的使用。arm_plugin使用 OpenVINO API 在 ARM CPU 上启用深度神经网络推理。该插件使用 ARM Compute Library 作为后端。

2.支持的平台

OpenVINO ARM CPU 插件在以下平台上受支持和验证:

硬件系统
树莓派4B  Debian 10.3 (32-bit)
树莓派4B  Ubuntu 18.04 (64-bit)

3.编译构建

  • 编译方法和使用环境:

github 文档提供了三种方法(文档链接见文章末尾Q&A)。我这里使用了第一种交叉编译的方式,在 ubuntu18.04 系统上 Build Dockerfile 来构建 OpenVINO、OpenCV 和 ARM CPU Plugin。

  • 克隆 openvino_contrib 存储库

git clone --recurse-submodules --single-branch --branch=master https://github.com/openvinotoolkit/openvino_contrib.git
  • 转到 ARM_Plugin 目录

cd openvino_contrib/modules/arm_plugin
  • Build Docker Image

Build 过程由/armplg_build.sh在 armcpu_plugin 路径执行脚本,共有15步。

docker image build -t arm-plugin -f Dockerfile.RPi32 .

技术图片

  • Build the plugin in Docker container

所有的中间结果和 build artifacts 都保存在工作路径下, 因此,我们可以挂载整个工作目录以将所有结果存储在容器外部。

mkdir builddocker container run --rm -ti -v $PWD/build:/armcpu_plugin arm-plugin

完成后如图所示

技术图片

查看目录包含哪些文件

技术图片

  • 上述操作耗时近2小时,生成的 build 文件2.4GB。我们可以只导出带有 artifacts 的归档文件OV_ARM_package.tar.gz,比较节约时间,只有108MB,即执行下面命令:

docker container run --rm -ti --tmpfs /armcpu_plugin:rw -v $PWD:/remote \                     arm-plugin sh -c "sh /armplg_build.sh && cp ./OV_ARM_package.tar.gz /remote"

技术图片

4.运行加速

  • 把编译生成的包OV_ARM_package.tar.gz拷贝到树莓派4B上 ,并解压。

技术图片

  • 我这里提前准备了优化好的IR文件,并拷贝到树莓派4B上,这样就可以直接在模型中加载。

vehicle-license-plate-detection-barrier-0106.xmlvehicle-license-plate-detection-barrier-0106.bin
  • 转到推理引擎bin目录

cd /home/pi/deployment_tools/inference_engine/bin/armv7l
  • 下载车辆图像

wget https://raw.githubusercontent.com/openvinotoolkit/openvino/master/scripts/demo/car_1.bmp
  • 将 OpenCV 和 OpenVINO 库目录添加到 LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/opencv/lib/:~/deployment_tools/inference_engine/lib/armv7l/

技术图片

  • 在ARM平台上运行对象检测demo

./object_detection_sample_ssd -m ~/FP32/vehicle-license-plate-detection-barrier-0106.xml -i car_1.bmp -d CPU

技术图片

  • 查看使用ARM CPU加速推理后的输出图像

技术图片

 

Q&A:

 

1.请问项目在哪里可以看到?

项目地址:

推荐使用Gitee开源版下载:

https://gitee.com/openvinotoolkit-prc/openvino

https://gitee.com/openvinotoolkit-prc/openvino_contrib

Github链接:

https://github.com/openvinotoolkit/openvino_contrib/tree/master/modules/arm_plugin

2.请问编译阶段可以在ARM平台执行吗?

由于文档没有详细说明,编译阶段我尝试在树莓派4B上build,但是发现各种莫名其妙的问题,在此建议编译在x86架构的硬件上进行。

3.请问文章所用的IR文件和编译生成的tar包哪里可以下载,可以跳过编译阶段直接用tar包进行推理吗?

IR文件和tar包我已经上传到百度云网盘,可以扫码获取。可以跳过编译阶段,直接把tar包拷贝到ARM平台加载模型进行推理。

技术图片

 

--END--

 

你也许想了解(点击蓝字查看)??

?? 「OpenVINO + ROS  开源项目组」成员招募

?? 「领航者联盟」发榜啦|OpenVINO 开发者界的“奥斯卡”,属于最 IN 社区人

?? 早餐 | 第三十期Graph Transformation(二)

?? 4月22日研讨会预热|为企业寻良将,为人才筑舞台!

?? OpenVINO 部署加速 Keras 训练生成的模型

?? OpenVINO 视觉开发与加速框架介绍

?? 转换和模型推理优化指南

?? OpenVINO 部署 Mask-RCNN 实例分割网络

?? OpenVINO 部署模型时如何自定义任意尺寸的支持

?? ROS C++ 代码规范

?? 快速构建 OpenVINO X Azure IoT 云边协同方案

?? OpenVINO 配置系统环境变量

 

 

 


 ??欢迎在留言区与我们互动哦,点击小程序 留言区 即可参与 

留言区

 

 

技术图片

 

技术图片

 


○ 点击 “ 在看 ”,让更多人看见

 

点击阅读原文 跳 转 社 区 专区进行讨论!

本文分享自微信公众号 - OpenVINO 中文社区(openvinodev)。

完整教程,轻松上手!OpenVINO 能支持ARM架构了?!

标签:regex   cursor   方案   分割   enc   研讨会   使用   社区   git   

原文地址:https://www.cnblogs.com/plus666/p/14710055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!