Jetson nano与Raspberry pi 4 安装OpenVINO toolkit

0.123字数 549阅读 177

背景

之前在raspberry pi 3b上,使用Movidius NCS2实现了一个小demo,最近买来了英伟达的jetson nano,想把之前的项目移植到这上面。于是我想当然的下载树莓派的openvino_toolkit,安装时提示只支持32位架构。庆幸的是OpenVINO是开源的,github上有一个叫做dldt的项目,就是它。于是开始有了下文。

笔者环境

  • jetson nano (aarch64)


    CPU

    (raspberry pi 4 安装与此基本一致,给出的参考文献就是以raspberry为基础安装的)

具体操作

openvino 是开源的,这意味这我们可以在任意平台编译。

1. 克隆dldt项目

使用git clone 该项目https://github.com/opencv/dldt

git clone https://github.com/opencv/dldt.git

查看分支

git branch

切换到2019分支

git checkout 2019

切换到2019分支后,初始化模块

git submodule init
git submodule update --recursive

2. 编译项目

官方给出的编译工具版本要求:

  • CMake* 3.5 or higher
  • GCC* 4.8 or higher to build the Inference Engine

重点

  • 进入 dldt/inference-engine/thirdparty/clDNN 目录
  • 打开CMakeLists.txt文件,搜索sse
    将这些全部注释,因为这是intel 处理器特有的指令,不注释会报错。
#          -march=corei7
#          -mstackrealign
#          -msse
#          -msse2
#          -msse3
#          -mssse3
#          -msse4
#          -msse4.1
#          -msse4.2
注释
  • 进入 inference-engine目录
    创建build目录
mkdir build && cd build
  • 执行编译操作
cmake -DCMAKE_BUILD_TYPE=Release \
-DENABLE_SSE42=OFF \
-DTHREADING=SEQ  \
-DENABLE_GNA=OFF \
-DENABLE_VPU=ON \
-DENABLE_MYRIAD=ON \
-DENABLE_MKL_DNN=OFF \
-DENABLE_CLDNN=OFF \
-DENABLE_SAMPLES=OFF \
-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
-DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.6m.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6 \
.. && make -j3

根据自己需要安装模块,这里需要注意,CLDNN和SAMLES不要编译,会报错。

  • python相关目录,指定为自己的(建议在终端内,手动进目录,将对应的东西替换,目录名称不一定跟我的一样)。
  • 编译后执行安装
sudo make install

必须在管理员权限下安装。

与官方包安装不同,安装后不需要在~/.bashrc里加入setupvars.sh
但是要在~/.bashrc~/.profile加入这两行:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib:/home/hnano/dldt/inference-engine/bin/intel64/Release/lib"
export PYTHONPATH="/home/hnano/dldt/inference-engine/bin/intel64/Release/lib/python_api/python3.6"

注意替换为自己到路径。划重点,要在python里导入openvino 必须添PYTHONPATH

  • 最后,重新打开一个终端,在python3里即可导入openvino


    2.png

安装过此中出现里多次卡死,没关系,断电重启,重复执行之前的cmake命令可继续编译。

祝安装顺利~

参考