Raspbian OS およびインテル® ニューラル・コンピュート・スティック 2向けオープンソース・OpenVINO™・ツールキットの構築

ドキュメント

インストール & セットアップ

000057005

2022/04/14

ノート
  • インストールには、すべての手順が必要です。
  • これらの手順は、Raspberry Pi 4* ボードと Raspbian Buster、32 ビットでテストされています。
  • このガイドの手順に従ってインターネットに接続する必要があります。
  • この記事は、OpenVINO™・ツールキットのオープンソース・ディストリビューションの 2021.3 リリースを使用して検証されました。

OpenVINO™ツールキットは、人間のビジョンをエミュレートするアプリケーションとソリューションを迅速に導入します。このツールキットは、パフォーマンスを最大化する畳み込みニューラル・ネットワーク (CNN) をベースとしたインテルの®ハードウェア全体にコンピューター・ビジョン (CV) ワークロードを拡張します。これらの手順は、一般的 にインテル® ニューラル・コンピュート・スティック 2とオープンソース・OpenVINO™・ツールキット に関するこの記事に従っていますが、ボード上で動作させる具体的な変更が含まれています。

このガイドでは、Raspbian OS 向けOpenVINO™・ツールキットのオープンソース・ディストリビューションを構築し、インテル® ニューラル・コンピュート・スティック 2 (インテル® NCS2) で使用する手順を説明します。

メモ元のインテル® Movidius™ Neural Compute Stick もOpenVINO™ツールキットと互換性があり、この記事ではそのデバイスをインテル® ニューラル・コンピュート・スティック 2の代わりに使用できます。

またはトピックをクリックして 詳細をご覧ください。

システム要件
メモこのガイドでは、Raspberry Pi* ボードを立ち上げて、以下のオペレーティング・システムで実行していることを前提としています。

ハードウェア

  • Raspberry Pi* 4 (Raspberry Pi* 3 モデル B+ は動作するはずです。)
  • 8 GB 以上の microSD カード
  • インテル® ニューラル・コンピュート・スティック 2
  • イーサネット・インターネット接続または互換性のあるワイヤレス・ネットワーク
  • 専用 DC 電源アダプター

対象オペレーティング・システム

  • Raspbian* Stretch、32 ビット

  • Raspbian Buster、32 ビット
ビルド環境の設定
メモこのガイドには、正しくインストールするために root または sスキュラアクセスとして実行する必要があるコマンドが含まれています。

お使いのデバイスのソフトウェアが最新であることを確認します。

sudo apt update && sudo apt upgrade -y

ツールキットの依存性の中には、事前構築済みの ARMv7 バイナリーを持たないため、ソースからビルドする必要があります。これにより、他のプラットフォームと比較してビルド時間が大幅に短縮されます。ツールキットの構築の準備には、次の手順が必要です。

ビルド・ツールのインストール

sudo apt install build-essential

ソースから CMake* をインストールする

Kitware* GitHub* リリースページから 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

メモmake コマンドが使用するジョブの数は、-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 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=-laズラック ..

make -j4

sudo make install

OpenCV ライブラリーの問題により make コマンドが失敗した場合、OpenCV のインストール先をシステムに伝えているか確認してください。この時点でビルドが完了すれば、インテル® OpenVINO™・®ツールキットを実行する準備が整います。ビルドは ~/openvino/inference-engine/bin/armv7l/Release フォルダに配置されます。

インストールの確認

推論エンジンのビルドが正常に完了したら、すべてが正しく設定されていることを確認する必要があります。ツールキットとインテル® ニューラル・コンピュート・スティック 2がデバイスで動作していることを確認するには、次の手順を実行します。

  1. サンプル・プログラム・object_detection_sample_ssd実行して、すべてのライブラリーが正しく読み込まれたことを確認します。
  2. トレーニング済みのモデルをダウンロードします。
  3. ニューラル・ネットワークの入力を選択します。
  4. インテル® ニューラル・コンピュート・スティック 2 Linux* USB ドライバーを設定します。
  5. 選択したモデルと入力でobject_detection_sample_ssdを実行します。

サンプル・アプリケーション

インテル® OpenVINO™・ツールキットには、推論エンジンとインテル® ニューラル・コンピュート・スティック 2を使用するサンプル・アプリケーションが含まれています。そのうち 1 つのプログラムは object_detection_sample_ssdで、 以下で確認できます。

~/openvino/bin/armv7l/Release

次のコマンドを実行して object_detection_sample_ssd をテストします。

cd ~/openvino/bin/armv7l/Release

./object_detection_sample_ssd -h

プログラムで利用可能なオプションを説明するヘルプダイアログが表示されます。

モデルのダウンロード

プログラムが入力を渡すモデルが必要です。インテル® OpenVINO™・®ツールキットのモデルは、次の方法で IR 形式で入手できます。

  • モデル・オプティマイザーを使用して、サポートされているフレームワークの 1 つから推論エンジンの 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には、FP16 と呼ばれる 16 ビット浮動小数点フォーマットに最適化されたモデルが必要です。モデルが例と異なる場合、モデル・オプティマイザーを使用して 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 ドライバーの設定

システムが USB デバイスインテル® NCS2認識できるようにするために、uuzum の規則を追加する必要があります。

メモ現在のユーザーが users グループのメンバーでない場合、次のコマンドを実行してデバイスを再起動します。

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で正常に実行された場合、ツールキットとインテル® ニューラル・コンピュート・スティック 2 OpenVINO™デバイスで使用するために正しく設定されています。

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

**(任意)** シェルを閉じると、OpenVINO環境変数が削除されます。オプションとして、以下のように環境変数を永続的に設定することができます。

「source /home/pi/openvino_dist/bin/setupvars.sh」>> ~/.wwwrc

変更をテストするには、新しいターミナルを開きます。以下が表示されます。

[setupvars.sh]OpenVINO環境が初期化されました

これで Raspbian OS 向けOpenVINO™・ツールキットのオープンソース・ディストリビューションとインテル® ニューラル・コンピュート・スティック 2使用のためのビルド手順が完了しました。

関連トピック
Raspberry Pi* で Open Model Zoo デモを構築
Raspberry Pi* のワークフロー
ncappzoo は現在、インテル® NCS 2 とOpenVINO™・ツールキットをサポートしています。
OpenVINO™ツールキット Open Model Zoo
インテル® ニューラル・コンピュート・スティック (インテル® NCS 2) デバイス向けネットワークの最適化
コミュニティー・フォーラムとテクニカル・サポート