注意 |
|
OpenVINO™ 工具套件可以快速部署可模拟人类视觉的应用程序和解决方案。该工具套件基于卷积神经网络 (CNN) 在英特尔®硬件上扩展计算机视觉 (CV) 工作负载,从而最大限度地提高性能。这些步骤通常遵循这篇关于 英特尔® 神经电脑棒 2和开源OpenVINO™工具套件的文章,但它们包括使所有内容在主板上运行的特定更改。
本指南为您提供了构建适用于 Raspbian*作系统的 OpenVINO™ 工具套件的开源发行版以及与 英特尔® 神经电脑棒 2 (英特尔® NCS2) 配合使用的步骤。
单击主题以了解详细信息:
注意 | 本指南假设您的 Raspberry Pi* 主板已启动并使用下列作系统运行。 |
硬件
目标作系统
Debian* Bullseye,64 位
注意 | 本指南包含需要以 root 或 sudo 访问权限执行才能正确安装的命令。 |
确保您的设备软件是最新版本:
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential libclang-11-dev clang-11 clang-format-9 libssl-dev cmake
英特尔®OpenVINO™工具套件利用 OpenCV* 的强大功能来加速基于视觉的推理。虽然英特尔® OpenVINO™ 工具套件的 CMake 过程会下载 OpenCV*,但如果没有为支持的平台安装版本,您必须从源代码构建 OpenCV。
pip install opencv-python
sudo apt-get install python3-opencv
注意 | 我们建议在从 openvinotoolkit GitHub 页面克隆存储库时指定最新且稳定的分支或标记,而不是默认直接克隆主分支。 |
英特尔® OpenVINO™ 工具套件的开源版本可通过 GitHub 获取。存储库文件夹的标题为 openvino。
cd ~/
git clone --recurse-submodules --single-branch --branch=2022.1.0 https://github.com/openvinotoolkit/openvino.git
英特尔® OpenVINO™ 工具套件包含许多构建依赖关系。install_build_dependencies.sh脚本将为您提取它们。如果在尝试运行脚本时出现任何问题,则必须单独安装每个依赖项。
运行脚本以安装英特尔® OpenVINO™ 工具套件的依赖项:
cd openvino
sed -i 's/raspbian/debian/g' install_build_dependencies.sh
sudo ./install_build_dependencies.sh
如果脚本成功完成,就可以构建工具包了。如果此时某些内容失败,请确保安装任何列出的依赖项,然后重试。
要构建 Python API 包装器,请安装下面列出的所有其他软件包:
python3 -m pip install --upgrade pip
python3 -m pip install clang==11.0 pyaml
python3 -m pip install -r ~/openvino/src/bindings/python/src/compatibility/openvino/requirements-dev.txt
python3 -m pip install -r ~/openvino/src/bindings/python/wheel/requirements-dev.txt
注意 | 使用“ -DENABLE_PYTHON=ON ”选项。要指定确切的 Python 版本,请使用以下选项: -DPYTHON_EXECUTABLE=`which python3.9` \ 使用该 -DCMAKE_INSTALL_PREFIX={BASE_dir}/openvino_dist 指定 CMake 建筑物要在其中构建的目录: 例如, -DCMAKE_INSTALL_PREFIX=~/openvino_dist |
该工具套件使用 CMake 构建系统来指导和简化构建过程。要为 英特尔® 神经电脑棒 2 构建推理引擎和 MYRIAD 插件,请使用以下命令:
注意 | 运行以下命令时删除所有反斜杠 (\)。反斜杠用于通知这些命令没有分开。 |
cd ~/openvino
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=~/openvino_dist \
-DENABLE_INTEL_MYRIAD=ON \
-DENABLE_INTEL_CPU=OFF \
-DENABLE_INTEL_GPU=OFF \
-DENABLE_CLDNN=OFF \
-DENABLE_AUTO=OFF \
-DENABLE_MULTI=OFF \
-DENABLE_HETERO=OFF \
-DENABLE_TEMPLATE=OFF \
-DENABLE_TESTS=OFF \
-DENABLE_OV_ONNX_FRONTEND=OFF \
-DENABLE_OV_PADDLE_FRONTEND=OFF \
-DENABLE_OV_TF_FRONTEND=OFF \
-DENABLE_NCC_STYLE=OFF \
-DENABLE_SSE42=OFF \
-DTHREADING=SEQ \
-DENABLE_OPENCV=OFF \
-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE=$(which python3.9) \
-DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.9.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.9 ..
make -j4
sudo make install
如果 make 命令因 OpenCV 库问题而失败,请确保您已将 OpenCV 安装的位置告诉系统。如果此时构建完成,则英特尔® OpenVINO™ 工具套件就可以运行了。需要注意的是,构建版本放置在 ~/openvino/bin/aarch64/Release 文件夹中。
成功完成推理引擎构建后,您应该验证一切设置是否正确。要验证工具套件和英特尔® 神经电脑棒 2是否在您的设备上运行,请完成以下步骤:
英特尔® OpenVINO™ 工具套件包括一些利用推理引擎和英特尔® 神经电脑棒 2的示例应用程序。其中一个程序是 benchmark_app, 可以在以下位置找到:
~/openvino/bin/aarch64/Release
运行以下命令以测试 benchmark_app:
cd ~/openvino/bin/aarch64/Release
./benchmark_app -h
它应该打印一个帮助对话框,描述程序的可用选项。
程序需要一个模型来传递输入。您可以通过以下方式获得 IR 格式的英特尔® OpenVINO™ 工具套件模型:
就我们的目的而言,直接下载是最容易的。使用以下命令来抓取一个 person-vehicle-bike(行人-车辆-自行车)检测模型:
cd ~/Downloads
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin
wget https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.xml
注意 | 英特尔® 神经电脑棒 2要求使用已针对 16 位浮点格式(称为 FP16)进行优化的模型。如果您的模型与示例不同,则您可能需要使用模型优化器来将其转换为 FP16。 |
需要的最后一项是神经网络的输入。对于我们下载的模型,您需要一张具有 3 个颜色通道的图像。将必要的文件下载到您的主板:
cd ~/Downloads
wget https://cdn.pixabay.com/photo/2018/07/06/00/33/person-3519503_960_720.jpg -O person.jpg
需要添加一些 udev 规则,以允许系统识别 英特尔® NCS2 USB 设备。
注意 | 如果当前用户不是用户组的成员,请运行以下命令并重新启动设备。 |
sudo usermod -a -G users "$(whoami)"
设置OpenVINO™环境:
source ~/openvino_dist/setupvars.sh
要在英特尔® 神经电脑棒 2上执行推理,请通过运行 install_NCS_udev_rules.sh 脚本来安装 USB 规则:
sh ~/openvino_dist/install_dependencies/install_NCS_udev_rules.sh
USB 驱动程序现在应该已经正确安装。如果在运行演示时未检测到英特尔® 神经电脑棒 2,请重新启动设备并重试。
当模型下载完毕、输入图像可用,且英特尔® 神经电脑棒 2插入 USB 端口时,使用以下命令运行 benchmark_app:
cd ~/openvino/bin/aarch64/Release
./benchmark_app -i ~/Downloads/person.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD
这将使用所选选项运行应用程序。-d 标志告诉程序使用哪个设备进行推理。-MYRIAD 利用英特尔® 神经电脑棒 2激活 MYRIAD 插件。命令成功执行后,终端将显示用于推理的统计信息并产生图像输出。
INFO ] First inference took 267.43 ms
[Step 11/11] Dumping statistics report
Count: 12 iterations
Duration: 1620.69 ms
Latency:
Median: 532.82 ms
AVG: 494.30 ms
MIN: 278.83 ms
MAX: 557.00 ms
Throughput: 7.40 FPS
如果应用程序在您的英特尔® NCS2上成功运行,则OpenVINO™工具包和英特尔® 神经电脑棒 2已正确设置,以便在您的设备上使用。
source ~/openvino_dist/setupvars.sh
cd ~/openvino/tools/benchmark_tool
python3 benchmark_app.py -i ~/Downloads/person.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD
如果应用程序在 英特尔® NCS2 上成功运行,则 nGraph 模块已正确绑定到 Python。
您必须首先更新一些环境变量,然后才能编译并运行OpenVINO工具套件应用程序。运行以下脚本来临时设置环境变量:
source ~/openvino_dist/setupvars.sh
**(可选)**:关闭命令行界面时,将删除OpenVINO环境变量。作为另一种选项,您可以按照下列步骤永久设置环境变量:
echo "source ~/openvino_dist/setupvars.sh" >> ~/.bashrc
要测试您的变更,打开一个新的命令行终端。将会出现下列信息:
[setupvars.sh] OpenVINO environment initialized
至此,Raspbian* OS 开源分发版 OpenVINO™ 工具套件的构建过程以及与 英特尔® 神经电脑棒 2 的配合使用。