Jestson Nano上基于openvino推理

发布时间 2023-10-16 20:24:11作者: SheepHuan

intel NCS2计算棒是由openvino支持的,但是目前openvino只有2022.3.1版本支持NCS2了,之后的版本都不支持计算棒了。

本文记录一下再NVIDIA Jetson Nano上用openvino实现NCS2的调用。
通过交叉编译openvino samples,通过benchmark app实现模型推理。

环境配置

  1. openvino归档文件,可以再这个链接上下载

    1697453851285.png

    然后解压

    wget https://storage.openvinotoolkit.org/repositories/openvino/packages/2022.3.1/linux/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64.tgz
    
    tar -zxvf l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64.tgz
    
  2. 安装openvino依赖

    cd l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/install_dependencies
    sudo -E ./install_openvino_dependencies.sh
    
  3. 确保一个python 3.7或者3.9版本

  4. 确保cmake版本高于3.13,否则会报错。Jetson Nano上的cmake只有3.10,我手动安装了一个

编译openvino samples

直接进入samples/cpp,直接在板子上编译太慢了,幸好项目不大。

export PATH=/home/yanghuan/Downloads/cmake-3.28.0-rc1-linux-aarch64/bin:$PATH
export LD_LIBRARY_PATH=/home/yanghuan/Downloads/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/runtime/lib/aarch64:$LD_LIBRARY_PATH
cd l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/samples/cpp
./build_samples.sh -i bin/ -b build/

这样在bin/目录下就是可执行文件了。

1697457565868.png

配置NCS2

这里参考官网文档

最后重启插上NCS2。

export LD_LIBRARY_PATH=/home/yanghuan/Downloads/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/runtime/lib/aarch64:$LD_LIBRARY_PATH
cd ~/Downloads/l_openvino_toolkit_debian9_2022.3.1.9227.cf2c7da5689_arm64/samples/cpp/bin/samples_bin
# 查询设备
 ./hello_query_device

1697458010558.png

测试模型延迟

这里提交一个mobilenetv2的模型试试

  1. NCS2推理

    ./benchmark_app \
    -m /home/yanghuan/Downloads/mobilenet_v2.onnx \
    -d MYRIAD \
    -b 1 \
    -shape [1,3,256,256] \
    -hint latency \
    -niter 10
    

    1697458463327.png

  2. CPU推理

    ./benchmark_app \
    -m /home/yanghuan/Downloads/mobilenet_v2.onnx \
    -d CPU \
    -b 1 \
    -shape [1,3,256,256] \
    -hint latency \
    -niter 10
    -nthreads 2
    

    1697458561178.png