本博客依据Intel OpenVINO Toolkit 官方资料,经博主亲自实践,踩雷排坑后记录分享。

intel NCS & OpenVINO 交流QQ群:608483784

测试平台软件版本:

  • Intel OpenVINO Version 2019_R1
  • Ubuntu 18.04.2

测试平台硬件信息:

  • 惠普 暗影精灵4 ->

    • Intel Core i7-8750H 6c12t
    • Nvidia GTX 1050Ti (未启用)
    • DDR4 32G 双通道
    • NVME 512G

第一步: 下载并安装 OpenVINO Toolkit ->

首先, 我们需要从官网下载OpenVINO Toolkit工具包, 这里是跳转链接。
博主保存目录为~/Downloads/ 后文以此目录进行操作。

下载完成后,解压安装包并进入安装包目录:

$ cd ~/Downloads/
$ tar -xvzf l_openvino_toolkit_p_<version>.tgz

接下来,与官方教程不同,博主建议提前安装一次依赖环境:

$ sudo ./install_openvino_dependencies.sh

安装好依赖后,我们开始安装OpenVINO Toolkit,这里我们使用图形界面安装器:

$ sudo ./install_GUI.sh


<这里提示了我们没有安装iGPU图形加速运行库-OpenCL,我们在后续步骤中手动安装这个库>

一路下一步直到安装完成,默认的安装目录是/opt/intel。


接下来再安装一次依赖库:

$ cd /opt/intel/openvino/install_dependencies
$ sudo -E ./install_openvino_dependencies.sh

在上面的操作成功完成后,我们需要配置环境变量。
这里有两种配置模式:

  1. 每次启动bash时都加载OpenVINO环境
  2. 在需要时手动加载OpenVINO环境

对于第一种模式,我们在~/.bashrc文件中添加source即可实现:

$ vim ~/.bashrc

在文件的最后添加:

source /opt/intel/openvino/bin/setupvars.sh

保存文件后,输入:

$ source ~/.bashrc

如果出现了
[setupvars.sh] OpenVino environment initialized
即为环境初始化成功。
但是此方法导致每次打开bash时都会消耗时间加载环境,所以博主使用了另一个替代方案:
将上述步骤中的添加source 修改为:

alias ov='source /opt/intel/openvino/bin/setupvars.sh'

保存后,我们在需要使用OpenVINO环境时,键入ov并回车即可加载OpenVINO环境。


第二步:配置模型转换器->

英特尔官方的NCS开发环境“OpenVINO”使用了名为Intermediate Representation(IR)的网络模型。
.xml文件保存了网络的拓扑结构,而.bin文件以二进制方式保存了模型的权重w与偏差b。

如果我们需要将TensorFlow, Caffe等模型转换为OpenVINO支持的模型,则需要配置模型转换器。

首先切换到模型转换器的环境配置脚本目录:

$ cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisites

注意,这时我们可以指定安装某个模型的环境,也可以全部安装。如果全部安装,则执行:

$ sudo ./install_prerequisites.sh

此时所有支持的模型的依赖将会被安装,模型转换器可以转换所有支持的模型。

如果只需要转换某个特定框架的模型,那么可以使用一下命令系列中的某一个或某几个来配置:

Caffe 框架:

$ sudo ./install_prerequisites_caffe.sh

TensorFlow 框架:

$ sudo ./install_prerequisites_tf.sh

MXNet框架:

$ sudo ./install_prerequisites_mxnet.sh

ONNX框架:

$ sudo ./install_prerequisites_onnx.sh

Kaldi框架:

$ sudo ./install_prerequisites_kaldi.sh

安装完成后,即可使用模型转换器

此时, OpenVINO的推理引擎与模型转换器已经配置完成,接下来我们验证一下是否能正常工作。


第三步:验证OpenVINO安装结果->

首先,我们切换到推理引擎示例目录:

$ cd /opt/intel/openvino/deployment_tools/demo

运行“图像分类验证脚本”(官方叫法):

$ ./demo_squeezenet_download_convert_run.sh

图片上的输出为正确的输出,如果没有得到正确的结果,请检查配置是否有误。
如果实在无法解决,请加入交流群608483784,博主和其他小伙伴大家一起互帮互助~

接下来,我们运行“推理管道验证脚本”(还是官方叫法):

$ ./demo_security_barrier_camera.sh

如果显示如下图片,即为配置正确

接下来,我们开始配置iGPU运行环境


第四步:配置iGPU依赖环境->

注意,官方给出的教程是适用于Ubuntu 16.04版本的,18.04在配置iGPU上有所不同…

首先, 我们需要下载Compute-runtime库,这里我们先创建一个文件夹:

$ mkdir ~/neo
$ cd ~/neo

下载所需的包:

$ wget https://github.com/intel/compute-runtime/releases/download/19.11.12599/intel-gmmlib_18.4.1_amd64.deb
$ wget https://github.com/intel/compute-runtime/releases/download/19.11.12599/intel-igc-core_19.11.1622_amd64.deb
$ wget https://github.com/intel/compute-runtime/releases/download/19.11.12599/intel-igc-opencl_19.11.1622_amd64.deb
$ wget https://github.com/intel/compute-runtime/releases/download/19.11.12599/intel-opencl_19.11.12599_amd64.deb
$ wget https://github.com/intel/compute-runtime/releases/download/19.11.12599/intel-ocloc_19.11.12599_amd64.deb

验证 sha256:

$ wget https://github.com/intel/compute-runtime/releases/download/19.11.12599/ww11.sum
$ sha256sum -c ww11.sum

五个文件都显示成功后, 我们安装deb包:

$ sudo dpkg -i *.deb

此时, iGPU运行OpenVINO推理引擎的环境,按照官方的说法便已经结束了。
但是!在博主的测试中,任然会出现一些奇怪的环境问题,比如缺少OpenCV库和OpenCL库。
由于博主没有在其他机器上测试过,所以如果读者在配置到这一步后已经能使用iGPU运行模型的话,便无需执行下列两个步骤。
当然,如果遇到了的其他的库缺失问题,请入群大家深入交流~


额外步骤一:源码方式安装OpenCV->

点击这里下载OpenCV 4.1.0源码。
下载到~/Downloads文件夹后,解压到该文件夹下,然后进入目录并创建build文件夹:

$ cd ~/Downloads/opencv-4.1.0
$ mkdir build
$ cd build

接下来,安装编译所需库:

$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install cmake
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install pkg-config
$ sudo apt-get install python-dev python-numpy
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

编译安装:

$ cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DsCMAKE_INSTALL_PREFIX=/usr/local

注意 根据你的CPU线程数,此处可以使用-j参数提升编译速度。比如博主CPU有12线程,便可以使用 make -j 12来提升编译速度!
注意 编译OpenCV所需内存较大(2G以上)

$ make
$ sudo make install

完成后,添加环境变量:

vim ~/.bashrc

在文件末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

额外步骤二:安装OpenCL->

首先,我们需要在Intel官网注册下载intel_sdk_for_opencl_applications

下载完成后解压并进入解压目录,运行安装程序:

$ sudo ./install.sh

同意条款等,一路下一步直到安装完成。

此时,博主的电脑上已经可以正常的使用iGPU运行推理引擎了。


验证官方人脸识别Demo->

新版本的OpenVINO软件包中似乎移除了官方训练并转化好的IR模型。

为了验证人脸识别Demo是否能正常运行,我们需要下载官方模型:

$ mkdir intel_model_download
$ cd intel_model_download
$ git clone https://github.com/opencv/open_model_zoo.git

git完成后,我们可以使用

~/intel_model_download/open_model_zoo/model_downloader/downloader.py

脚本来下载英特尔的模型,使用–all参数来下载所有模型文件,使用–name <Model_name> 来下载指定的模型文件。

我们的验证Demo源码位于

~/inference_engine_samples_build/

目录下,首先我们得编译这些源码(同样推荐使用-j参数加速编译):

$ ~/inference_engine_samples_build/
$ make

完成后,我们可以在

~/inference_engine_samples_build/intel64/Release

目录中找到Demo程序,我们使用interactive_face_detection_demo来进行验证

输入

$ ./interactive_face_detection_demo -h

可以看到这个demo的用法。
我们需要使用-i参数指定输入源,-m指定模型,-d指定设备。

这里我们的模型使用face-detection-adas-0001模型。
使用上文中的模型下载脚本下载此脚本,

~/intel_model_download/open_model_zoo/model_downloader/downloader.py --name face-detection-adas-0001 -o ~/intel_models/open_model_zoo/intel_models/face-detection-adas-0001/

下载完成后,IR模型路径在

~/intel_model_download/open_model_zoo/intel_models/face-detection-adas-0001/Transportation/object_detection/face/pruned_mobilenet_reduced_ssd_shared_weights/dldt

目录下,这时我们可以使用命令运行Demo了:

~/inference_engine_samples_build/intel64/Release/interactive_face_detection_demo -i cam -m ~/intel_model_download/open_model_zoo/intel_models/face-detection-adas-0001/Transportation/object_detection/face/pruned_mobilenet_reduced_ssd_shared_weights/dldt/face-detection-adas-0001.xml -d GPU

当然,iGPU支持FP16的模型,只需在-m参数中修改为FP16模型即可。

-d 参数修改为CPU即为使用CPU运行推理模型,但需要注意,CPU不支持FP16模型!

最终效果大概是如图上所示,人脸区域被框选出来。


在Ubuntu 18.04上部署Intel OpenVINO Toolkit并使用CPU与iGPU运行官方人脸识别Demo相关推荐

  1. 如何使用DevStack在Ubuntu 18.04上安装OpenStack

    Openstack is a free and opensource IaaS cloud platform that handles cloud compute, storage and netwo ...

  2. Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装、部署和测试

    Ubuntu 18.04上进行HyperLedger Fabric 1.2.0环境及链码安装.部署和测试 1.环境安装 HyperLedger Fabric 1.2.0环境的安装推荐一篇博客:http ...

  3. 如何在Ubuntu 18.04上使用Nginx与MySQL服务器一起部署ASP.NET Core应用程序

    The author selected the Open Source Initiative to receive a donation as part of the Write for DOnati ...

  4. 如何在Ubuntu 18.04上使用Node.js和MongoDB构建和部署GraphQL服务器

    The author selected the Wikimedia Foundation to receive a donation as part of the Write for DOnation ...

  5. 如何在Ubuntu 18.04上创建多节点MySQL集群

    翻译转载:https://www.digitalocean.com/community/tutorials/how-to-create-a-multi-node-mysql-cluster-on-ub ...

  6. eclipse theia_如何在Ubuntu 18.04上设置Eclipse Theia Cloud IDE平台[快速入门]

    eclipse theia 介绍 (Introduction) Eclipse Theia is an extensible cloud IDE running on a remote server ...

  7. Ubuntu 18.04上使用snort3搭建NIDS(三)| ELK可视化篇

    为最近项目上要用到snort3,但是找了很多博客都是snort2.9.x的安装与配置,所以只能靠着官网文档和自己的反复摸索来学习snort3相关的内容.后面将会把snort3相关的发一个系列的博客,这 ...

  8. 如何在Ubuntu 18.04上安装ERPNext堆栈

    The author selected Software in the Public Interest to receive a donation as part of the Write for D ...

  9. mac如何启用cpu虚拟化_如何在 Ubuntu 18.04 上安装 KVM

    本文最先发布在: 如何在 Ubuntu 18.04 上安装 KVM​www.itcoder.tech KVM(基于内核的虚拟机)是一个内置于Linux内核的开源虚拟化技术.它允许你基于 Linux 或 ...

最新文章

  1. VC下提前注入进程的一些方法3——修改程序入口点
  2. 第一章 MongoDb概述
  3. 虚拟化文件服务器,VMware虚拟化效率之文件服务器性能测试(上)
  4. SAP RFC 函数来创建 Java呼叫 学习总结 一步一步的插图
  5. java实现登陆面试题_【Javaweb】笔面试题 ---(1)(示例代码)
  6. java8 例外网站_Java8兰巴达斯和例外
  7. xxl子任务_XXL-JOB v2.1.2 发布,分布式任务调度平台
  8. oracle数据库主键自增序列_【oracle】oracle数据库建立序列、使用序列实现主键自增...
  9. 虚拟货币公有链项目集体爆发,AE超过历史最高点
  10. 微信小程序为电商插上翅膀
  11. 嵌入式系统——系统可靠度计算
  12. CMOS中的 latch-up 闩锁效应、添加tap解决latch-up、使用combained area绘制TAP TAP的作用 IC后端版图【VLSI】
  13. 记:STM32F205双USB开发做device
  14. 服务器风扇端子型号,出几样物品-相机连接头,服务器风扇,滤波器,接线端子等等如图...
  15. 关闭Software Reporter Tool
  16. TI BSL in python
  17. Excel日期格式转为常规文本格式
  18. 年薪80万技术专家,面试通过后,被发现简历造假!合并8年前多段工作,惨遭警告和淘汰!
  19. Java显示the type xxx is already defined的解决方法
  20. 【AIoT库】“星”未来,展宏“图”—— 2022 AIoT星图品牌线上发布会圆满落幕

热门文章

  1. SAP--SD2-后台基础配置笔记
  2. 基于scrum的估算
  3. 嵌入式Linux/Android MT7601U USB无线网卡移植
  4. android开发二维码扫描
  5. 关于Failed to check the status of the service com.xxx.service.ItemService. No provider available.....
  6. acwing野餐规划
  7. vs2022 配置大全——超完整版
  8. 计算机考研380分能上什么学校,考研380分相当于高考多少分的难度
  9. 微信小程序实现笑脸评分功能
  10. 秋招算法字符串专场leetcode(Easy十六题)