メインコンテンツへスキップ
サポート・ナレッジベース

32 ビット Debian* OS 向けに事前設定された dockerfile を使用した OpenVINO™ ツールキットと NCS2 プラグインのクロスコンパイル

コンテンツタイプ: インストール & セットアップ   |   記事 ID: 000057005   |   最終改訂日: 2025/02/20
筆記
  • インストールでは、すべての手順が必要です。
  • これらの手順は、 Raspberry Pi 4* ボードおよび Raspbian* Buster 32 ビットでテストされています。
  • このガイドの作業手順を実行するには、インターネット接続が必要です。
  • この記事は、OpenVINO™ツールキットのオープンソース・ディストリビューションの 2022.1 リリースを使用して検証されました。

OpenVINO™ツールキットは、人間の視覚をエミュレートするアプリケーションとソリューションを迅速に展開します。同ツールキットは、畳み込みニューラル・ネットワーク (CNN) をベースとするインテル®のハードウェア全体でコンピューター・ビジョン (CV) ワークロードを拡張し、パフォーマンスを最大化します。これらの手順は、通常、利用可能な ARM CPU プラグインのビルド方法 に従います。ただし、Raspberry Pi 4* ですべてを実行するには、特定の変更が必要です。このガイドでは、Raspbian* 32 ビット版 OS 対応の OpenVINO™ ツールキットのオープンソース・ディストリビューションをクロスコンパイルする方法で構築する手順を提供します。

トピックをクリックして詳細を参照してください。

システム要件
手記 このガイドでは、お使いの Raspberry Pi* ボードが以下のオペレーティング・システムで稼働していることを前提としています。

ハードウェア

  • Raspberry Pi* 4 (Raspberry Pi* 3 Model B+ は動作するはずです。)
  • 16GB 以上の microSD カード
  • インテル® ニューラル・コンピュート・スティック 2
  • イーサネットインターネット接続または互換性のあるワイヤレスネットワーク
  • Docker コンテナーがインストールされたホストマシン

ターゲット・オペレーティング・システム

  • Raspbian* Buster、32 ビット
ビルド環境のセットアップ
手記 このガイドには、正しくインストールするためにrootまたはsudoアクセスとして実行する必要のあるコマンドが含まれています。

デバイスソフトウェアが最新であることを確認してください。

sudo apt update && sudo apt upgrade -y

Docker コンテナーのインストール
手記 Dockerの公式ドキュメントに基づくインストール手順に従うことができます
https://docs.docker.com/engine/install

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker

リポジトリopenvino_contrib複製
手記 この記事の openvino_contrib および OpenVINO ツールキットのバージョンは 2022.1 に基づいています。

ソースコードをダウンロードし、構成ファイルを変更します。

git clone --recurse-submodules --single-branch --branch=2022.1 https://github.com/openvinotoolkit/openvino_contrib.git

arm_plugin ディレクトリーに移動します。

cd openvino_contrib/modules/arm_plugin

エディターツールを使用して、Dockerfile.RPi32_busterファイルの内容を以下のように変更します。

vim dockerfiles/Dockerfile.RPi32_buster

次の図に示すように、114 行目に「RUN pip install protobuf==3.20.0」を追加します。

Screenshot

編集したファイルを保存します。

エディターツールを使用して、 arm_cpu_plugin_build.sh ファイルの内容を以下のように変更します。

vim scripts/arm_cpu_plugin_build.sh

77 行目、78 行目、79 行目、および 136 行目を編集し、以下の 太字 のように変更を追加します。

77 checkSrcTree $OPENCV_HOME https://github.com/opencv/opencv.git 4.5.5-openvino-2022.1 4.x
78 checkSrcTree $OPENVINO_HOME https://github.com/openvinotoolkit/openvino.git 2022.1.0 releases/2022/1
81 checkSrcTree $OMZ_HOME https://github.com/openvinotoolkit/open_model_zoo.git 2022.1.0 releases/2022/1
136 -DENABLE_INTEL_MYRIAD=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE \

編集したファイルを保存します。

Docker コンテナー環境でのOpenVINO™ツールキットのクロスコンパイル

この手順では、スクリプトを実行して、Docker コンテナー環境でOpenVINO™ツールキットや OpenCV* などの他のコンポーネントをダウンロードしてクロスコンパイルします。

ARM CPU プラグイン・ディレクトリーに移動します。

cd openvino_contrib/modules/arm_plugin

Docker* イメージを構築します。

docker image build -t arm-plugin -f dockerfiles/Dockerfile.RPi32_buster .

Docker* コンテナーでプラグインをビルドします。

ビルドプロセスは /arm_cpu_plugin_build.sh ディレクトリ内で実行されるスクリプト /arm_cpu_plugin 実行されます(実行するデフォルトのコンテナコマンド)。すべての中間結果とビルドアーティファクトは、作業ディレクトリ内に格納されます。

したがって、作業ディレクトリ全体をマウントして、すべての結果をコンテナの外部に保存することができます。

mkdir build

docker container run --rm -ti -v $PWD/build:/arm_cpu_plugin arm-plugin

手記

/arm_cpu_plugin_build.shスクリプトの実行を制御する環境変数がいくつかあります。

  • BUILD_JOBS は、同時コンパイルのスレッド数を制御
  • BUILD_TYPE コントロール デバッグ/リリース構成 (既定ではリリース)
  • UPDATE_SOURCES はソースの取得を制御します
    • クリーン - すでにロードされている場合は、ソースをリロードしません。ビルドフォルダをクリーンアップするだけです(デフォルト)
    • 再読み込み - 読み込まれたすべてのソースを削除し、再度取得します
    • チェック - ソースをリロードまたはクリーンアップしない
  • WITH_OMZ_DEMO ビルド C++ Open Model Zoo デモ (デフォルトではオン)

ビルド フォルダーに OV_ARM_package.tar.gz が生成されます。

ls build

OV_ARM_package.tar.gzをターゲット・デバイスに転送する (Raspberry Pi 4* 32 ビット・バスター)
パッケージをターゲットデバイス(Raspberry Pi 4 *)に転送し、ターゲットデバイスに直接セキュアコピーし、パッケージをUSBサムドライブにコピーして転送するには、さまざまな方法があります。
この記事では、ホストマシンにUSBサムドライブをマウントし、マウントされたサムドライブにビルドパッケージをコピーする方法を示します。

USBサムドライブをシステムのUSBポートに挿入し、次のコマンドを使用してデバイスの起動を確認します。

sudo fdisk -l

デバイスのブートを確認したら、デバイスのブート( /dev/sdaなど)を /mntにマウントします。

sudo mount /dev/sda /mnt

次に、OpenVINOパッケージをUSBサムドライブにコピーします。

sudo cp -rf build/OV_ARM_package.tar.gz /mnt/

ビルドパッケージの検証

クロスコンパイルが完了し、 OV_ARM_package.tar.gz をターゲットデバイス(Raspberry Pi 4 *)にコピーすることに成功しました。

コンパイルツールのインストール

sudo apt update
sudo apt install cmake -y

OV_ARM_package.tar.gzパッケージを抽出します。

mkdir ~/openvino_dist/
tar -xvzf OV_ARM_package.tar.gz -C ~/openvino_dist/

セットアップ変数のソース

source ~/openvino_dist/setupvars.sh

サンプル コードのコンパイル

cd ~/openvino_dist/samples/cpp
./build_samples.sh

ツールキットと インテル® ニューラル・コンピュート・スティック 2 および ARM* プラグインがデバイスで動作することを確認するには、以下の手順を実行します。

  1. サンプル・アプリケーション・hello_query_deviceを実行して、すべてのライブラリーが正しく読み込まれることを確認します。
  2. 事前トレーニング済みモデルをダウンロードします。
  3. ニューラルネットワークの入力(画像ファイルなど)を選択します
  4. インテル® ニューラル・コンピュート・スティック 2 Linux* USB ドライバーを構成します
  5. 選択したモデルと入力でbenchmark_appを実行します

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

インテル® OpenVINO™ ツールキットには、推論エンジンとインテル® ニューラル・コンピュート・スティック 2を活用したサンプル・アプリケーションが含まれています。アプリケーションの1つはhello_query_deviceで、次のディレクトリにあります。

~/inference_engine_cpp_samples_build/armv7l/Release

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

cd ~/inference_engine_cpp_samples_build/armv7l/Release

./hello_query_device

システムに存在する推論に利用可能なデバイスを説明するダイアログを印刷する必要があります。

モデルのダウンロード

アプリケーションには、入力をパススルーするモデルが必要です。インテル® OpenVINO™ ツールキットのモデルは、次の方法で IR 形式で入手できます。

  • モデル・オプティマイザーを使用して、サポートされているフレームワークの 1 つから既存のモデルを推論エンジン用の IR フォーマットに変換します。モデル・オプティマイザー・パッケージは、Raspberry Pi* では使用できないことに注意してください。
  • モデル・ダウンローダー・ツールを使用して、Open Model Zoo からダウンロードします。事前トレーニング済みの公開モデルのみ。
  • IR ファイルを storage.openvinotookit.org から直接ダウンロードする

私たちの目的のために、直接ダウンロードするのが最も簡単です。次のコマンドを使用して、人-車両-バイク検出モデルを取得します。

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 -O ~/Downloads/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 -O ~/Downloads/person-vehicle-bike-detection-crossroad-0078.xml

手記 このインテル® ニューラル・コンピュート・スティック 2には、FP16として知られる16ビット浮動小数点フォーマットに最適化されたモデルが必要です。例と異なる場合、モデル・オプティマイザーは Raspberry Pi* ではサポートされていないため、モデル・オプティマイザーを使用して別のマシンで FP16 に変換する必要がある場合があります。

ニューラル・ネットワークへの入力

最後に必要な項目は、ニューラルネットワークへの入力です。ダウンロードしたモデルには、3つのカラーチャンネルの画像が必要です。必要なファイルをボードにダウンロードします。

wget https://cdn.pixabay.com/photo/2018/07/06/00/33/person-3519503_960_720.jpg -O ~/Downloads/person.jpg

インテル® ニューラル・コンピュート・スティック 2 Linux USB ドライバーの設定

システムが インテル® NCS2 USB デバイスを認識できるようにするには、いくつかの udev ルールを追加する必要があります。

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

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

OpenVINO™環境をセットアップします。

source /home/pi/openvino_dist/setupvars.sh

インテル® ニューラル・コンピュート・スティック 2 で推論を実行するには、 install_NCS_udev_rules.sh スクリプトを実行して USB ルールをインストールします。

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

これで USB ドライバが正しくインストールされるはずです。デモの実行時にインテル® ニューラル・コンピュート・スティック 2が検出されない場合は、デバイスを再起動して再試行してください。

実行中の benchmark_app

モデルがダウンロードされ、入力イメージが使用可能になり、インテル® ニューラル・コンピュート・スティック 2がUSBポートに接続されたら、次のコマンドを使用して benchmark_appを実行します。

cd ~/inference_engine_cpp_samples_build/armv7l/Release

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

これにより、選択したオプションを使用してアプリケーションが実行されます。 -d フラグは、推論に使用するデバイスをプログラムに指示します。 MYRIAD を指定すると、 インテル® ニューラル・コンピュート・スティック 2を利用して MYRIAD プラグインがアクティブになります。コマンドが正常に実行されると、端末に推論の統計が表示されます。 また、CPU プラグインを使用して、Raspberry Pi 4* デバイスの ARM CPU 上で推論を実行することもできます。この例で使用されているモデルは ARM* プラグインではサポートされていないため、操作サポートについては ARM* プラグイン操作セットの仕様 を参照してください。

[ INFO ] First inference took 410.75 ms
[Step 11/11] Dumping statistics report
[ INFO ] Count: 388 iterations
[ INFO ] Duration: 60681.72 ms
[ INFO ] Latency:
[ INFO ] Median: 622.99 ms
[ INFO ] Average: 623.40 ms
[ INFO ] Min: 444.03 ms
[ INFO ] Max: 868.18 ms
[ INFO ] Throughput: 6.39 FPS


インテル® NCS2 でアプリケーションが正常に実行されると、OpenVINO™ツールキットとインテル® ニューラル・コンピュート・スティック 2デバイスが使用できるように正しく設定されます。

環境変数

OpenVINO・ツールキット・アプリケーションをコンパイルして実行する前に、いくつかの環境変数を更新する必要があります。次のスクリプトを実行して、環境変数を一時的に設定します。

source /home/pi/openvino_dist/setupvars.sh

**(省略可能)** OpenVINO™環境変数は、シェルを閉じると削除されます。オプションとして、次のように環境変数を永続的に設定できます。

echo "source /home/pi/openvino_dist/setupvars.sh" >> ~/.bashrc

変更をテストするには、新しいターミナルを開きます。次のように表示されます。

[setupvars.sh] OpenVINO environment initialized

これで、Raspbian* OS 用 OpenVINO™ ツールキットのオープンソース・ディストリビューションおよび インテル® ニューラル・コンピュート・スティック 2 および ARM* プラグインでの使用のためのクロスコンパイルおよびビルド手順は完了です。

関連製品

本記事は、2 製品に適用します。

免責条項

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。