构建适用于 Raspbian* OS 和 英特尔® 神经电脑棒 2 的开源OpenVINO™工具套件

文档

安装与设置

000057005

2022 年 04 月 14 日

笔记
  • 安装中需要所有步骤。
  • 这些步骤已经使用 Raspberry Pi 4* 主板和 32 位 Raspbian* Buster 进行了测试。
  • 遵照本指南中的步骤需要连接互联网。
  • 该文章是使用 OpenVINO™ 工具套件的开源发行版 2021.3 版进行验证的。

OpenVINO™工具套件可以快速部署模拟人类视觉的应用程序和解决方案。该工具套件在基于卷积神经网络 (CNN) 的英特尔®硬件中扩展计算机视觉 (CV) 工作负载,以尽可能提高性能。这些步骤通常遵循这篇关于 英特尔® 神经电脑棒 2 和开源OpenVINO™工具 套件的文章,但它们包括了让一切在您的主板上运行的特定更改。

本指南为您提供了有关为 Raspbian* OS 构建 OpenVINO™ 工具套件的开源分发并使用 英特尔® 神经电脑棒 2 (英特尔® NCS2) 的步骤。

注意原始英特尔® Movidius™神经电脑棒还兼容OpenVINO™工具套件,可以将该设备用于本文章中的英特尔® 神经电脑棒 2而不是整个文章中的英特尔® 神经电脑棒 2。

单击 或主题以了解详细信息:

系统要求
注意本指南假定您的 Raspberry Pi* 主板在下面列出的操作系统上启动和运行。

硬件

  • Raspberry Pi* 4(Raspberry Pi* 3 B+ 型号应该正常工作。)
  • 至少一个 8 GB microSD 卡
  • 英特尔® 神经电脑棒 2
  • 以太网互联网连接或兼容的无线网络
  • 专用直流电源适配器

目标操作系统

  • Raspbian* Stretch,32 位

  • Raspbian* Buster,32 位
设置您的构建环境
注意本指南包含需要作为根或 sudo 访问正确安装才能执行的命令。

确保您的设备软件是最新的:

sudo apt update && sudo apt upgrade -y

该工具套件的一些依赖关系并非预构建 ARMv7 二进制文件,需要从源代码构建。与其他平台相比,这可以显著增加构建时间。准备构建工具套件需要以下步骤:

安装构建工具

sudo apt install build-essential

从源代码安装 CMake*

从 Kitware* GitHub* 发行页面中提取 CMake,提取 CMake,并输入提取的文件夹:

cd ~/

wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4.tar.gz

tar xvzf cmake-3.14.4.tar.gz

cd ~/cmake-3.14.4

运行 引导 脚本以安装额外的依赖性开始构建:

./bootstrap

make -j4

sudo make install

注意命令 使用的工作数量可以使用 -j 标记进行调整。建议将工作数量设为平台上核心数量。

您可以使用以下命令检查系统内核的数量:

grep -c ^processor /proc/cpuinfo

请注意,设置过高的数量可能会导致内存溢出、构建故障。如果时间允许,建议运行 1 到 2 个作业。

从源代码安装 OpenCV

英特尔® OpenVINO™ 工具套件借助 OpenCV* 的强大功能来加速基于视觉的推理。虽然英特尔®OpenVINO™工具套件的 CMake 流程可以下载 OpenCV*,如果没有针对支持的平台安装任何版本,则 ARMv7 平台上不存在特定版本。因此,您必须从源代码构建 OpenCV。

OpenCV 需要一些其他的依赖性。从包管理器安装以下内容:

sudo apt install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libatlas-base-dev python3-scipy 

注意建议在 OpenCV* GitHub 页面克隆存储库时指定最新和稳定的分支或标签,而不是在默认情况下直接克隆主分支。

从 OpenCV* GitHub 页面克隆存储库,准备构建环境并构建:

cd ~/

git clone --depth 1 --branch 4.5.2-openvino https://github.com/opencv/opencv.git

cd opencv && mkdir build && cd build

cmake –DCMAKE_BUILD_TYPE=Release –DCMAKE_INSTALL_PREFIX=/usr/local ..

make -j4

sudo make install

下载源代码和安装依赖关系
注意建议在 Openvinotoolkit Git GitHub 页面克隆存储库时指定最新且稳定的分支或标签,而不是在默认情况下直接克隆主分支。

英特尔® OpenVINO™ 工具套件的开源版本可通过 GitHub 获得。存储库文件夹名为 openvino

cd ~/

git clone --depth 1 --branch 2021.3 https://github.com/openvinotoolkit/openvino.git

存储库还具有必须提取的子调制程序:

cd ~/openvino

git submodule update --init --recursive

英特尔®OpenVINO™工具套件具有很多构建依赖关系。install_build_dependencies.sh 脚本为您取出。如果在尝试运行脚本时出现任何问题,您必须单独安装每个依赖项。

运行脚本以安装英特尔® OpenVINO™工具套件的依赖关系:

sh ./install_build_dependencies.sh

如果脚本成功完成,您可以准备构建该工具套件。如果此时出现故障,请确保安装任何列出的依赖关系并重试。

建筑

开始构建的第一步是告诉系统安装 OpenCV 的位置。使用以下命令:

export OpenCV_DIR=/usr/local/lib/cmake/opencv4

要构建 Python API 包装器,安装 /inference-engine/ie_bridges/python/requirements.txt 文件中列出的所有额外软件包:

cd ~/openvino/inference-engine/ie_bridges/python/

pip3 install -r requirements.txt

注意

使用 -DENABLE_PYTHON=ON option. To specify an exact Python version, use the following options:

-DPYTHON_EXECUTABLE=`which python3.7` \

-DPYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \

-DPYTHON_INCLUDE_DIR=/usr/include/python3.7

使用 -DNGRAPH_ONNX_IMPORT_ENABLE=ON option to enable the building of the nGraph ONNX importer.

使用 -DNGRAPH_PYTHON_BUILD_ENABLE=ON option to enable the nGraph binding.

使用 -DCMAKE_INSTALL_PREFIX={BASE_dir}/openvino_dist to specify the directory for the CMake building to build in:

for example, -DCMAKE_INSTALL_PREFIX=/home/pi/openvino_dist

该工具套件使用 CMake 建筑系统来指导和简化建筑流程。要同时构建用于英特尔® 神经电脑棒 2的推理引擎和 MYRIAD 插件,使用以下命令:

注意运行以下命令时,请移除所有背板 (\)。后传用于通知这些命令未分开。

cd ~/openvino

mkdir build && cd build

cmake -DCMAKE_BUILD_TYPE=Release \

-DCMAKE_INSTALL_PREFIX=/home/pi/openvino_dist \

-DENABLE_MKL_DNN=OFF \

-DENABLE_CLDNN=OFF \

-DENABLE_GNA=OFF \

-DENABLE_SSE42=OFF \

-DTHREADING=SEQ \

-DENABLE_OPENCV=OFF \

-DNGRAPH_PYTHON_BUILD_ENABLE=ON \

-DNGRAPH_ONNX_IMPORT_ENABLE=ON \

-DENABLE_PYTHON=ON \

-DPYTHON_EXECUTABLE=$(which python3.7) \

-DPYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so \

-DPYTHON_INCLUDE_DIR=/usr/include/python3.7 \

-DCMAKE_CXX_FLAGS=-latomic 。。

make -j4

sudo make install

如果由于 OpenCV 库的问题而 发布 命令失败,请确保您已将 OpenCV 安装信息告知系统。如果构建此时完成,英特尔® OpenVINO™ 工具套件已准备就绪。应当指出,构建被放置在 ~/openvino/推理引擎/bin/armv7l/Release 文件夹中。

验证安装

成功完成推理引擎构建后,应确认所有组件已正确设置。要验证该工具套件和英特尔® 神经电脑棒 2在您的设备上的工作,请完成以下步骤:

  1. object_detection_sample_ssd运行例程序,以确认所有库是否正确加载。
  2. 下载 经过训练的模型。
  3. 神经网络选择一个输入。
  4. 配置 英特尔® 神经电脑棒 2 Linux* USB 驱动程序。
  5. 使用所选模型和输入运行object_detection_sample_ssd

示例应用

英特尔® OpenVINO™ 工具套件包括一些使用推理引擎和英特尔® 神经电脑棒 2的示例应用程序。其中一个程序 object_detection_sample_ssd, 它可以在以下页面找到:

~/openvino/bin/armv7l/Release

运行以下命令以测试 object_detection_sample_ssd

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

它应该打印一个帮助对话框,描述该计划的可用选项。

下载一个模型

该计划需要一个模型来传递信息。您可以通过以下方式获取面向 IR 格式的英特尔®OpenVINO™工具套件的模型:

  • 使用模型优化器将现有模型从受支持的框架之一转换为推断引擎的 IR 格式
  • 使用模型下载器工具从 Open Model Zoo 下载
  • 直接从 download.01.org 下载 IR 文件

出于我们的目的,直接下载是最简单的方法。使用以下命令来获得一个 person-vehicle-bike detection 模型:

cd ~/Downloads

wget https://download.01.org/opencv/2021/openvinotoolkit/2021.2/open_model_zoo/models_bin/3/person-vehicle-bike-detection-crossroad-0078/FP16/person-vehicle-bike-detection-crossroad-0078.bin

wget https://download.01.org/opencv/2021/openvinotoolkit/2021.2/open_model_zoo/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 walk.jpg

配置英特尔® 神经电脑棒 2 Linux USB 驱动程序

需要添加一些 udev 规则,以使系统能够识别英特尔® NCS2 USB 设备。

注意如果当前用户不是用户组的成员,请运行以下命令并重新启动设备。

sudo usermod -a -G users "$(whoami)"

Set up the OpenVINO™环境:

source /home/pi/openvino_dist/bin/setupvars.sh

To perform 在英特尔® 神经电脑棒 2上进行推理,运行 USB 规则 install_NCS_udev_rules.sh脚本:

sh /home/pi/openvino_dist/install_dependencies/install_NCS_udev_rules.sh

The USB driver should be installed correctly now. If the Intel® Neural Compute Stick 2 is not detected when running demos, restart your device and try again.

运行object_detection_sample_ssd

下载模型时,提供输入映像,并将英特尔® 神经电脑棒 2插入 USB 端口,使用以下命令来运行 object_detection_sample_ssd

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -i ~/Downloads/walk.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD

这将以选定的选项运行应用程序。 -d 标记将告知程序用于推理的设备。-MYRIAD 利用该英特尔® 神经电脑棒 2激活 MYRIAD 插件。命令成功执行后,终端将显示推理统计信息并生成图像输出。

[ INFO ] Image out_0.bmp created!
[ INFO ] Execution successful
[ INFO ] This sample is an API example, for any performance measurements please use the dedicated benchmark_app tool


使用 Raspbian* 默认图像查看程序来打开生成的图像输出:

gpicview out_0.bmp

如果应用程序在您的英特尔® NCS2上成功运行,OpenVINO™工具套件和英特尔® 神经电脑棒 2正确设置,以便在您的设备上使用。

验证绑定与 Python 的 nGraph 模块

运行object_detection_sample_ssd Python 演示:

source /home/pi/openvino_dist/bin/setupvars.sh

cd /home/pi/openvino_dist/deployment_tools/inference_engine/samples/python/object_detection_sample_ssd

python3 object_detection_sample_ssd.py -i ~/Downloads/walk.jpg -m ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml -d MYRIAD

如果应用程序在您的英特尔® NCS2上成功运行,nGraph 模块将正确绑定 Python。

环境变量

您必须更新多个环境变量,才能编译并运行OpenVINO工具套件应用程序。运行以下脚本以临时设置环境变量:

source /home/pi/openvino_dist/bin/setupvars.sh

**(可选)** 关闭 shell 时,会删除OpenVINO环境变量。作为一个选项,您可以永久设置环境变量,如下所示:

>> ~/.openvino_dist/bin/setupvars.sh“ >>

要测试您的更改 , 请打开新的终端。您将看到以下内容:

[setupvars.sh]OpenVINO环境已初始化

这完成了 Raspbian* OS 的 OpenVINO™ 工具套件的开源分发和使用 英特尔® 神经电脑棒 2 的构建程序。

相关主题
在 Raspberry Pi* 上构建 Open Model Zoo 演示
适用于 Raspberry Pi* 的工作流程
ncappzoo 现在支持英特尔® NCS 2 和 OpenVINO™ 工具套件
OpenVINO™工具套件 Open Model Zoo
优化英特尔®神经计算模块(英特尔® NCS 2)设备的网络
社区论坛和技术支持