背景
之前在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命令可继续编译。
祝安装顺利~