Ubuntu22.04编译安装OpenVINO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu22.04编译安装OpenVINO相关的知识,希望对你有一定的参考价值。

参考:https://github.com/openvinotoolkit/openvino/wiki/BuildingCode

1. 进入OpenVINO下载界面

进入OpenVINO下载界面,在分发里面选择源码

2. 下载最新源码

git clone -b 2022.3.0 https://gitee.com/openvinotoolkit-prc/openvino.git
cd openvino && chmod +x scripts/submodule_update_with_gitee.sh \\
&& ./scripts/submodule_update_with_gitee.sh

3. 构建依赖项

chmod +x install_build_dependencies.sh

apt安装NEO,NEO介绍

sudo apt-get install intel-opencl-icd
sudo ./install_build_dependencies.sh
  1. 创建build文件夹并编译(时间会比较长)
mkdir build && cd build

如果不使用Python,直接用这条命令编译,编译好后继续步骤5.

cmake -DCMAKE_BUILD_TYPE=Release .. \\
&& make --jobs=$(nproc --all)

需要Python的话,按照以下abc三个步骤编译,然后继续步骤5.

a. 先进入到src/bindings/python/src/compatibility/openvino文件夹中安装依赖

pip install -r requirements-dev.txt

b. 使用这条命令编译,需要指定Python版本,如果要构建wheel包,就再加上 -DENABLE_WHEEL=ON这个参数

cmake -DCMAKE_BUILD_TYPE=Release .. \\
-DPYTHON_EXECUTABLE=`which python3.7` \\
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.7m.so \\
-DPYTHON_INCLUDE_DIR=/usr/include/python3.7 \\
&& make --jobs=$(nproc --all)

c. 将新构建的 Python 库导出到用户环境变量

export PYTHONPATH=PYTHONPATH:<openvino_repo>/bin/intel64/Release/python_api/python3.7
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:<openvino_repo>/bin/intel64/Release

或使用pip安装wheel包

pip install <openvino_repo>/build/wheel/openvino-2022.2.0-000-cp37-cp37-manylinux_2_35_x86_64.whl

4. 安装

cmake --install <BUILDDIR> --prefix <INSTALLDIR>

例如终端当前位于build文件夹,想要将编译好的OpenVINO安装到/opt/openvino,那么命令是

cmake --install . --prefix /opt/openvino 

5. 设置环境变量

在bashrc、zshrc等配置文件中加入

source /opt/openvino/setupvars.sh

如果使用zsh,还需要将第一行的

SCRIPT_DIR="$( cd "$( dirname "$(realpath "$BASH_SOURCE[0]")" )" >/dev/null 2>&1 && pwd )"

中的

$BASH_SOURCE[0]

替换为

$(%):-%N

SCRIPT_DIR="$( cd "$( dirname "$(realpath "$(%):-%N")" )" >/dev/null 2>&1 && pwd )"

现在source,如果出现如下输出说明安装成功(没有安装Python相关内容就会出现WARNING,可以忽略)

source ~/.zshrc

Ubuntu16.04+openVINO安装流程中出现的各种问题解决方法

目录

Ubuntu16.04安装(18.04安装同理)

①U盘(16G足够)引导,去官网(可科学上网时)或国内镜像源下载iso文件
②UltraISO把镜像写入U盘做启动选项。
③主机开机一直按F12(ESC、Delete等)进BIOS,找到Boot Option #1,选择U盘品牌的选项。注:这里U盘的启动选项可能出现2个,我这里尝试使用UEFI方式引导结果失败了,就选择一般的方式,具体如何分区不细说了。

openVINO-安装model-optimizer

openVINO安装流程内容转载至:https://blog.csdn.net/yuanlulu/article/details/86619099
补充一下遇到的一些问题和解决方法:

问题1——如何进root权限

一、刚装好的系统一般需要新设置root用户密码

sudo passwd root

输入密码,并确认密码。
二、进入root用户

su root

执行需要root的动作…
三、退出root,进入普通用户权限

su 用户名

问题2——如何去掉install_prerequisites.sh里所有的‘sudo -E’

运行以下命令,超级用户权限打开.sh文件进行修改时即可保存

sudo gedit install_prerequisites.sh

ctrl+F找到sudo -E,删去并保存文件

问题3——执行install_prerequisites.sh过程中出现Could not find a version that satisfies the requirement tensorflow<2.0,>=1.15.2

在出现此问题之前已经安装好了Python3.5的环境,我这里直接选择自己pip3手动莽包:six, protobuf, numpy, markdown, werkzeug, tensorboard, astor, gast, absl-py, grpcio, termcolor, tensorflow, graphviz, idna, certifi, chardet, urllib3, requests, mxnet, decorator, networkx, typing, typing-extensions, onnx
就是有些多。。。

问题4——Ubuntu终端下载速度过慢

科学上网较复杂,这里直接使用国内镜像

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple XXX(包名)

问题5——numpy对Python版本要求>=3.6

Ubuntu16.04自带Python3.5,这里升级以下pip3版本即可成功在Python3.5下安装numpy-1.18.5

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

问题6——'zipp’requires a different Python:3.5.2 not in ‘>=3.6’

安装新包依赖的包比这个旧所以安装失败,卸载旧包再直接去安装想安装的包即可,冲突包会自动安装到适用版本

pip3 uninstall 包名(这里是zipp)

openVINO-安装 inference-engine

问题1——初始化并更新子模块时出现:子模组…未对路径…注册

应该是命令的问题,将初始化和更新统一为一个命令:

git submodule update --init --recursive

从零开始——Ubuntu18.04+官方文档安装

官方文档:https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_linux.html

跑Demo时Dowdload Failed

参考博文:https://blog.csdn.net/weixin_41848012/article/details/105810962

其他问题

如何将Ubuntu的本地文件通过同一局域网共享至另一台Windows

参考博文:https://blog.csdn.net/weixin_39421263/article/details/78697513

以上是关于Ubuntu22.04编译安装OpenVINO的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 22.04源码编译安装boost库

模型推理ubuntu 配置和使用 openvino

Ubuntu 22.04 上安装VMware

Ubuntu22.04 安装 ssh

ubuntu 22.04如何安装java环境

解决方法:Ubuntu 22.04编译Linux内核提示错误multiple definition of `yylloc‘