📖

Ubuntu環境へのソフトウェアのインストール Part_II OpenVINO編

2022/12/08に公開

0. 記事の内容

群馬県産業技術センターではAI技術等をはじめとしたデジタル技術を広く県内企業の方にも活用頂けるようデジタルソリューションラボ [外部リンク] 等を通じて情報の提供を行っています。
ここでは、Ubuntu 20.04 LTSにソフトウェアをインストールするときの代表的な手順と注意点についてまとめました。

1. 目的

近年、IoTやAI、機械学習などの技術が普及し、様々な技術の紹介や解説等の情報にも文献やインターネット等を通じて触れる機会が多くなってきています。

しかし、個人や企業の方が、実際にそれらの内容を確認しようとしたときに、プログラムのインストールでエラーが発生したりして、紹介されている内容を確認できないことも多く、折角の機会を生かしきれないことがあります。そこで、本手順書のPart-1「コマンド編」では、IoTやAIなどで一般に用いられている無料のオペレーティングシステムであるUbuntu 20.04 LTSに、ソフトウェアをインストールするときの代表的な手順について示しました。

このPart-2「OpenVINO編」では、Part-1で紹介したコマンドを用いた具体的なインストールによる環境設定の例として、Intel社が提供するDeep LearningやAIを活用したアプリケーションで推論機能の実装を容易するコンポーネントをまとめたOpenVINOの設定とサンプルプログラム、およびOpenVINOによるアプリケーションソフトの作成例を集めたOpen Model Zooのデモプログラムを実行する手順について示します。

2. OpenVINO

2-1. 概要

OpenVINOの2022.2が2022年9月にリリースとなりましたので、本手順書ではWebに公開されている手順を参考にバージョン2022.2をインストールします。また、このバージョンでは必要なソフトをPyPI等からダウンロードする方式となり、従来のバージョンと比較してインストールが容易に行えるようになりました。
つぎに、OpenVINO 2022.2をインストールするために必要なシステムの要件を示します。

(a) オペレーティングシステム(64-bit)
        Ubuntu 18.04 LTS20.04 LTS
(b) CPU
        6th to 12th generation Intel Core
(c) Software
        CMake 3.13 or higher (64-bit)
        GCC 7.5.0 (for Ubuntu 18.04)GCC 9.3.0 (for Ubuntu 20.04)
        Python 3.6 - 3.9 (64-bit)
        OpenCV 4.5

また、本手順書では、Windows 10 Pro (64-bit)にVirtual Box 5.2を設定して、以下の仮想マシンの環境で確認を行っています。

(a) オペレーティングシステム(64-bit)
        Ubuntu 20.04 LTS
(b) CPU
        Intel Core i7-7700T CPU @ 2.90GHz
(c) RAM
        16GB
(d) Software
        CMake 3.13.3 (64-bit)
        GCC 9.4.0 (for Ubuntu 20.04)
        Python 3.8.10 (64-bit)
        OpenCV 4.2.0

また、必須ではありませんが、Intel社のNeural Compute Stick2(NSC2)を用いた処理の高速化の手順を5章に示します。

2-2. 準備

インストールで必要なpipコマンドとPythonの仮想環境venvを利用するために、Terminalを起動してaptコマンドによりパッケージのインストールを行います(図2-1、図2-2)。
また、作業用のディレクトリとしてユーザのホームディレクトリにディレクトリworkを作成しています。

(1) apt のパッケージ一覧を更新
        sudo apt update
(2) パッケージの確認
        sudo apt-cache madison python3-pip
        sudo apt-cache madison python3-venv
(3) パッケージのインストール
        sudo apt install -y python3-pip python3-venv



図2-1 Python3-pipとPython3-venvのパッケージ検索


図2-2 Python3-pipとPython3-venvのインストール

2-3. venv仮想環境

OpenVINOの環境をvenv仮想環境に設定するため、仮想環境openvino_envを作成します(図2-3)。
仮想環境から抜けるときは、「deactivate」と入力しますが、続けて設定を行うときは仮想環境から抜ける必要はありません。

(1) 仮想環境openvino_envの作成
        cd
        python3 -m venv openvino_env
(2) 仮想環境に入る
        source ~/openvino_env/bin/activate
(3) Pythonのバージョンの確認
        python --version
(4) pipコマンドの更新
        python -m pip install --upgrade pip



図2-3 仮想環境の作成と起動

2-4. OpenVINO Runtime

(1) ファイルのダウンロード
OpenVINO 2022.1からサンプルプログラムはOpenVINO Runtimeに含まれて配布されていますのでRuntimeをダウンロードします。
また、OpenVINO Toolkitは、Intel社のWebサイトから必要な条件を設定して、希望の方法でダウンロードします。ここでは、Archivesファイルのダウンロードを行います(図2-4)。

	https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html

次に設定した条件を示します。

Environment:        Runtime
Operating System:   Linux
Version:            2022.2
Languaes:           Python, C++
Distribution:       OpenVINO Archives

この設定の後、右下の「Download Archives」のボタンをクリックするとダウンロードのサイトに移動しますので、次のファイル(94.6MB)をクリックしてダウンロードします(図2-5)。

        l_openvino_toolkit_ubuntu20_2022.2.0.7713.af16ea1d79a_x86_64.tgz



図2-4 OpenVINO Runtimeのパッケージの設定


図2-5 OpenVINO Runtimeのファイルのダウンロード

(2) tgzファイルの解凍
ダウンロードしたtgzファイルはDownloadsディレクトリにあります。Terminalを起動して、ディレクトリDownloadsに移動し、次のコマンドでファイルを解凍します(図2-6)。

        cd ~/Downloads
        tar xf l_openvino_toolkit_ubuntu20_2022.2.0.7713.af16ea1d79a_x86_64.tgz

次に、解凍したファイルのディレクトリ全体をユーザのホームディレクトリに移動し、ディレクトリ名をintelとします。

        mv l_openvino_toolkit_ubuntu20_2022.2.0.7713.af16ea1d79a_x86_64 ~/
        mv ~/l_openvino_toolkit_ubuntu20_2022.2.0.7713.af16ea1d79a_x86_64/ ~/intel

ファイル名等の長いものの入力は、「tabキー」による補完機能を利用すると入力ミスを減らすことができます。
また、Terminalでのコマンド操作の内容は、マウスの操作でも行うことができます。
tgzファイルをダブルクリックして解凍し、フォルダをホームディレクトリにドラックします。フォルダ名の変更は、マウスの右クリックメニューの「Rename」を選択して行います。


図2-6 tgzファイルの解凍と移動、ディレクトリ名の変更

(3) 依存ファイルの設定
解凍したディレクトリintelにある依存ファイルの設定用のスクリプトを実行します(図2-7)。

        cd ~/intel/install_dependencies
        sudo -E ./install_openvino_dependencies.sh



図2-7 依存ファイルの設定

(4) 環境の初期化
OpenVINOを設定した環境の初期化を次のコマンドにより行います。仮想環境に入った時などはその都度、実行する必要があります。

        source ~/intel/setupvars.sh

また、設定が終了すると「OpenVINO environment initialized」と表示されます(図2-8)。


図2-8 環境の初期化

2-5. OpenVINO Development Tools

(1) ファイルのダウンロード
OpenVINO Development ToolsはRuntimeと同様にIntel社のWebサイトから必要な条件を設定して、希望の方法でダウンロードします。ここでは、pipによるインストールを行います。
設定した条件を以下に示します(図2-9)。

Environment:        Development Tools
Operating System:   Linux
Version:            2022.2
Distribution:       pip
Frameworks:         Caffe, Kaldi, Apache MXNet, ONNX, PyTorch, TensorFlow 2.x

この設定に続いてWebサイトには設定とダウンロードの手順が示されますが、Step 1とStep 2は、すでに2-3節で実施しています。ここでは、Step 3の内容をコピーして実行することによりインストールを行います(図2-10)。

        pip install openvino-dev[ONNX,tensorflow2,caffe,kaldi,pytorch,mxnet]==2022.2.0

最後に「DEPRECATION」のメッセージが出力されますが、問題はありません。


図2-9 OpenVINO Development Toolsのパッケージの設定


図2-10 OpenVINO Development Toolsのパッケージのインストール

(2) インストール確認
Terminalから「mo -h」と入力してModel Optimizerのヘルプファイルが表示されれば、正常にインストールされています(図2-11)。


図2-11 Model Optimizerのヘルプ出力

2-6. 動画ファイルMP4の再生

Ubuntu 20.04には、「ビデオ(totem)」がデフォルトでインストールされています。
はじめに動画ファイルの保存用にユーザのホームディレクトリにディレクトリimagesを作成し、次にMP4の動画ファイルとしてOpenVINOで提供のものを以下のサイトからダウンロードし、保存します。

        https://storage.openvinotoolkit.org/data/test_data/videos

ここでは、ファイル「face-demographics-walking.mp4」でマウスの右クリックメニュー「Save Link as」を選択して保存します(図2-12)。
保存したMP4ファイルをダブルクリックして動画が再生されない場合は、次の手順で動画再生用のコーデックを追加インストールする必要があります(図2-13~図2-15)。

(1) apt のパッケージ一覧を更新
        sudo apt update
(2) パッケージの確認
        sudo apt-cache madison ubuntu-restricted-extras
(3) パッケージのインストール
        途中でLicense Agreementのメッセージが2回あります。
        また、カーソルの移動はTabキーで行います。
        sudo apt install -y ubuntu-restricted-extras
(4) 再生の確認
        MP4ファイルをダブルクリックして、再生の確認を行います。



図2-12 動画ファイルのダウンロード


図2-13 動画再生用のコーデックのインストール


図2-14 ライセンスの認証①


図2-15 ライセンスの認証②

3. OpenVINO Runtime Sample

Runtimeのインストールで設定されたサンプルプログラムには、PythonとC++の言語によるものが含まれています。ここでは、C++のclassification_sample_asyncのプログラムを実行する手順を示します。
仮想環境openvino_envから抜けたときは、改めて仮想環境に入り、2-4節の(4)の環境の設定を実行してから以下のサンプルプログラムの手順を行って下さい(図3-1)。

        source ~/openvino_env/bin/activate
        source ~/intel/setupvars.sh

【参考】
Pythonに対応のサンプルプログラムではビルドの手順は必要ありませんので、学習モデルと必要なデータ等を設定して実行できます。

3-1. プログラムのビルド

Runtimeのサンプルプログラムと供に提供のスクリプトファイルを実行することですべてのC++のサンプルプログラムのビルドが行われます(図3-1)。

(1) ディレクトリの移動
        cd ~/intel/samples/cpp
(2) スクリプトの実行
        bash ./build_samples.sh

ビルドされたバイナリーのプログラムはホームディレクトリの次のディレクトリに出力されます。

        ~/inference_engine_._samples_build/intel64/Release



図3-1 サンプルプログラムのビルト

3-2. 学習モデル

OpenVINOは、AIや機械学習の推論部分を提供するもので、それに必要な学習部分は別途対応する必要があります。ここでは、物体認識の分野で広く知られているAlexNetの学習モデルをダウンロードしOpenVINO用の形式に変換します。
Webからの取得と変換は次の手順で行うことができます。
ビルドされたバイナリーのプログラムのディレクトリ内で次のコマンドを実行します(図3-2)。

(1) ディレクトリの移動
        cd ~/inference_engine_._samples_build/intel64/Release
(2) 学習モデルのダウンロード
        途中で「Please type ‘Y’」と表示されたら Y を入力してエンターを押します。
        omz_downloader --name alexnet
(3) 学習モデルの変換
        omz_converter --name alexnet

変換の途中でWarningが出力されて停止したようになったときは、そのままの状態でしばらくするとsuccessと表示され終了します。
変換された学習済みのファイルはカレントディレクトリ下のディレクトリpublic/alexetに出力されます。
また、学習されたモデルのラベルは次のサイトのファイルimagenet1000_clsidx_to_labels.txtに番号と対象の物体名が記載されています(図3-3、図3-4)。

        https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a



図3-2 学習モデルのダウンロードと変換


図3-3 学習モデルのラベルファイルのダウンロード


図3-4 学習モデルのラベル

3-3. テスト画像

このプログラムで利用する画像ファイルは、227×227の24ビットカラーのBMPである必要があります。ここでは次のWebサイトからapple.jpgをダウンロードし、サイズを変更してBMP形式のファイルで保存した後、ユーザのホームディレクトリ下のディレクトリimagesに設定しています(図3-5)。

        https://storage.openvinotoolkit.org/data/test_data/images/

【参考】
画像ファイルのサイズや形式の変更は、Windows 10に付属の「ペイント」ソフトなどを利用して行うことができます(図3-6)。


図3-5 画像ファイルのダウンロード


図3-6 画像サイズの変更

3-4. プログラムの実行

設定された学習モデルと画像を用いてプログラムを実行して推論を行うには、ビルドされたバイナリープログラムのディレクトリに移り、次のコマンドを実行します(図3-7、図3-8)。
ここではCPUにより実行します。

(1) ディレクトリの移動
        cd ~/inference_engine_._samples_build/intel64/Release
(2) プログラムの実行
        ./classification_sample_async \
            -m ./public/alexnet/FP32/alexnet.xml \
            -i ~/images/apple.bmp \
            -d CPU

    「¥ または \」は継続行のためのもので、1行で入力するときは不要です。

【参考】
入力するコマンドが長いときは、テキストエディタに入力してからコピーし、Terminalにペーストすると、入力を効率的に行うことができます(図3-7)。
コピーとペーストは、マウスの右クリックメニューの「Copy」と「Paste」で行います。
また、行末に「¥ または \」を設定して継続行とすると見易くなります。

実行結果の図3-8から、用いた画像は957番のものが確率0.9959で最も高いことが分かります。これは、図3-4の学習モデルのラベルから「pomegranate(ざくろ)」と推定されたことになります。


図3-7 テキストエディタを利用した実行コマンドの入力


図3-8 推論の実行結果

4. Open Model Zoo Demo Program

Intel社では Open Model Zoo により学習済みの物体検知モデルを公開し、OpenVINOを利用したアプリケーションを容易に作成できるよう支援しています。
3章のRuntimeのサンプルではOpenCVがなくても動作しましたが、Open Model Zooのデモプログラムの実行にはOpenCVのインストールが必要となります。

4-1. OpenCV

OpenCVはIntel社が開発し、無償で公開している画像や動画に関する処理機能をまとめたライブラリです。画像や動画の中の物体の位置情報やパターン、動きなどを識別するプログラムを容易に作成することができます。
ここでは、OpenVINOで要求のバージョン4.5ではなく、Ubuntu 20.04に対応のバージョン4.2.0をaptコマンドでインストールします(図4-1)。

(1) apt のパッケージ一覧を更新(4-2)
        sudo apt update
(2) パッケージの確認
        sudo apt-cache madison libopencv-dev
        sudo apt-cache madison python3-opencv
(3) パッケージのインストール(4-3)
        sudo apt install -y libopencv-dev python3-opencv
(4) インストールの確認(4-4)
        pkg-config --modversion opencv4

パッケージのインストールでファイルのロック等のエラーが発生した場合は、Ubuntuを再起動して仮想環境に入り直して、実行してみて下さい。


図4-1 libopencv-devのパッケージ情報


図4-2 OpenCV用パッケージの確認


図4-3 OpenCV用パッケージのインストール


図4-4 OpenCV4のバージョン

4-2. Open Model Zooのインストール

Open Model ZooはGithubに公開されていますので、ここではgitコマンドによりパソコンにcloneを作成することでインストールを行います。
また、インストールはユーザのホームディレクトリのintel内に行います。
はじめにTerminalで 「git --version」と入力して、バージョン番号でなくエラーが表示された場合は、gitをインストールする必要があります(図4-5)。

(1) apt のパッケージ一覧を更新(4-6)
        sudo apt update
(2) パッケージの確認
        sudo apt-cache madison git
(3) パッケージのインストール(4-7)
        sudo apt install -y git
(4) Open Model Zooのインストール(4-8)
        cd ~/intel
        git clone --recurse-submodules https://github.com/openvinotoolkit/open_model_zoo.git



図4-5 gitの確認


図4-6 gitパッケージの確認


図4-7 gitパッケージのインストール


図4-8 Open Model Zooのインストール

4-3. Open Model Zooのビルド

インストールしたOpen Model ZooのC++のデモプログラムを実行するためには、ビルドする必要があります。
Pythonの仮想環境に入っていないときは、はじめに仮想環境に入り環境変数の設定を行う必要があります。

(1) 仮想環境と環境変数の設定
        source ~/openvino_env/bin/activate
        source ~/intel/setupvars.sh
(2) ディレクトリの移動
        cd ~/intel/open_model_zoo/demos
(3) ビルド(4-9)
        bash ./build_demos.sh

ビルドされたバイナリーファイルはまとめてユーザのホームの次のディレクトリに出力されます。

        ~/omz_demos_build/intel64/Release



図4-9 Open Open Model Zooのビルド

4-4. デモプログラムの実行①

人体の姿勢推定のHuman Pose Estimationの実行を行います。
Pythonの仮想環境に入っていないときは、はじめに仮想環境に入り環境変数の設定を行う必要があります。

(1) 仮想環境と環境変数の設定

        source ~/openvino_env/bin/activate
        source ~/intel/setupvars.sh

(2) 動画ファイルのダウンロード

               2-6節でダウンロードし、ディレクトリimagesに保存したファイル「face-demographics-walking.mp4」を用います。

(3) ディレクトリの移動

        cd ~/intel/open_model_zoo/demos/human_pose_estimation_demo/cpp

(4) 学習モデルのダウンロード
デモプログラムに対応した学習モデルをダウンロードします。ダウンロードするものはコマンドのパラメータの設定ファイルmodels.lstで指定し、ダウンロードされたファイルはカレントディレクトリ内のディレクトリintelまたはpublicに保存されます(図4-10)。

        omz_downloader --list models.lst

また、出力先はオプション「-o」または「--output_dir」に続けてディレクトリ名を指定することで設定できます。

個別にモデルをダウンロードする場合は、models.lstの内容を変更するか、オプション 「--name」に続けてモデル名をカンマ区切りで複数並べて設定することで可能です。

        omz_downloader --name モデル名1,モデル名2 --output_dir 出力ディレクトリ名

(5) 学習モデルの変換
ダウンロードした学習モデルをOpenVINOのIR (Intermediate Representation) modelのフォーマット(.xmlと.bin)に変換します。ダウンロードと同様なコマンドで実行します(図4-11)。

        omz_converter --list models.lst

実行中にWarningが表示された場合でもそのまま続行させると終了します。


図4-10 学習モデルのダウンロード


図4-11 学習モデルの変換

(6) プログラムの実行
プログラムは次のコマンドで実行できます(図4-12)。

        ~/omz_demos_build/intel64/Release/human_pose_estimation_demo \
            -d CPU \
            -i ~/images/face-demographics-walking.mp4 \
            -m ./intel/human-pose-estimation-0001/FP32/human-pose-estimation-0001.xml \
            -at openpose
	    
        「¥ または \」は継続行のためのもので、1行で入力するときは不要です。	    

また、設定パラメータについては、プログラムのオプション「-h」を付けて実行することで表示されます。

        ~/omz_demos_build/intel64/Release/human_pose_estimation_demo -h

または、README.TXTやOpenVINOのWebページ等を参照下さい。

        https://docs.openvino.ai/2022.2/omz_demos.html#doxid-omz-demos



図4-12 人体の姿勢の推定

4-5. デモプログラムの実行②

顔の表情を識別するInteractive Face Detectionの実行を行います。
Pythonの仮想環境に入っていないときは、はじめに仮想環境に入り環境変数の設定を行う必要があります。

(1) 仮想環境と環境変数の設定

        source ~/openvino_env/bin/activate
        source ~/intel/setupvars.sh

(2) 画像ファイルの準備
顔の画像はBMP、JPG、PNG、GIF等に対応していますが、小さな画像は結果のバーグラフ等の表示ができませんので注意が必要です。
ここでは、Webから「Face Emotion」で検索し、ダウンロードした画像を400 x 400 Pixelのサイズに加工し、上下に400 x 150の余白を追加し、ユーザのホームのディレクトリimages内にディレクトリface_emotion_400を作成し保存します(図4-13)。


図4-13 顔の表情の画像の例 (Happy、Angry、Exciting)

出典: https://analyticsindiamag.com/face-emotion-recognizer-in-6-lines-of-code/

(3) ディレクトリの移動

        cd ~/intel/open_model_zoo/demos/interactive_face_detection_demo/cpp

(4) 学習モデルのダウンロード
デモプログラムに対応した学習モデルをダウンロードします。ダウンロードするものはコマンドのパラメータに設定のファイルmodels.lstで指定し、ダウンロードされたファイルはカレントディレクトリ内のディレクトリintelまたはpublicに保存されます(図4-14)。

        omz_downloader --list models.lst

(5) 学習モデルの変換
ダウンロードした学習モデルをOpenVINOのIR (Intermediate Representation) modelのフォーマット(.xmlと.bin)に変換します(図4-15)。

        omz_converter --list models.lst

実行中にWarningが表示された場合でもそのまま続行させると終了します。

(6) プログラムの実行
プログラムは次のコマンドで実行できます。認識する特徴に対応して学習モデルがそれぞれ必要になりますので、コマンドの入力が長くなります。テキストエディタに入力してからコピーし、Terminalにペーストするとミスを減らせます(図4-16、図4-17)。
結果の図4-17では、画像から「男性」、「33歳」で「驚いた表情」と推定されています。

        ~/omz_demos_build/intel64/Release/interactive_face_detection_demo \
            -u h \
            -i ~/images/face_emotion_400/ \
            -m   ./intel/face-detection-adas-0001/FP32/face-detection-adas-0001.xml \
            -mag ./intel/age-gender-recognition-retail-0013/FP32/age-gender-recognition-retail-0013.xml \
            -mhp ./intel/head-pose-estimation-adas-0001/FP32/head-pose-estimation-adas-0001.xml \
            -mem ./intel/emotions-recognition-retail-0003/FP32/emotions-recognition-retail-0003.xml \
            -mlm ./intel/facial-landmarks-35-adas-0002/FP32/facial-landmarks-35-adas-0002.xml \
            --fps 1 \
            --loop \
            -d CPU

        「¥ または \」は継続行のためのもので、1行で入力するときは不要です。

画像の更新の速度は オプションの「--fps」に0.5など小さな数字を設定すると遅く出来ます。
また、設定パラメータについては、プログラムのオプション「-h」を付けて実行することで表示されます。オプションの「-」と「--」を知るのに参考となります。

        ~/omz_demos_build/intel64/Release/interactive_face_detection_demo -h

または、README.TXTやOpenVINOのWebページ等を参照下さい。

        https://docs.openvino.ai/2022.2/omz_demos.html#doxid-omz-demos



図4-14 学習モデルのダウンロード


図4-15 学習モデルの変換


図4-16 実行コマンド


図4-17 顔の表情の推定

5. GPU、NCS2による高速化

OpenVINO Runtimeは、Intel社のCPU、GPU、VPU、GNAやそれらの組み合わせによる実行をサポートしています。ここでは、USBポートに接続して利用可能なIntel ® Movidus ™ Myriad ™ X VPU(Vision Processing Unit)を搭載し、DNN(Deep Neural Network)用途に対応したNeural Compute Stick 2 (NCS2)による実行の手順を示します(図5-1)。


図5-1 Neural Compute Stick 2 (NCS2)

5-1. ドライバの設定

GPUやNCS2を利用する場合は、ドライバの設定が必要です。インストールしたOpenVINO Runtimeにそのためのスクリプトファイルがありますので、以下の手順で実行します。

(a) GPUの場合(図5-2、図5-3)

        cd ~/intel/install_dependencies
        sudo -E ./install_NEO_OCL_driver.sh

インストールの最後に、追加の手順のメッセージが出力されますが、そのままで問題ありません。

(b) NCS2の場合(図5-4)

        cd ~/intel/install_dependencies
        sudo -E ./install_NCS_udev_rurles.sh



図5-2 GPUドライバの設定


図5-3 GPUドライバの設定でのメッセージ


図5-4 NCS2ドライバの設定

5-2. プログラムの実行

プログラムはCPUを用いた場合にオプション「-d」で設定したデバイス名を変更するだけで同様に行えます。但し、デバイス名としてはNCS2でなく、MYRIADを設定します。
以下にデバイスの実装の確認等も含めた実行の手順を示します。

5-2-1. NCS2の接続

Virtual Boxを用いている場合は、NCS2を認識させるために仮想マシンの設定が必要です。
(1) 起動前の設定からUSB 3.0 (xHCD)コントローの設定を有効にします(図5-5)。
(2) 起動後のデパス設定からUSBのMovidius MyriadXを選択します(図5-6)。
(3) 仮想マシンのTerminalでコマンド「lsusb」を入力してMovidius MyriadXがリストに表示されていれば、正しく認識されています(図5-7)。


図5-5 仮想マシンのUSB 3.0 (xHCD)コントローの設定


図5-6 仮想マシンのMovidius MyriadXの設定


図5-7 Movidius MyriadXの認識

また、OpenVINO Runtimeプログラムのヘルプの表示により、認識されているデバイスを確認することができます。
ここでは、3-4節のHuman Pose Estimationのプログラムのヘルプを実行して確認します。
ディレクトリを変更後、実行コマンドにオプションの「-h」を加えて実行しますと、ヘルプメッセージの最後の Available target device のところに認識されたデバイスが表示されます。

        cd ~/inference_engine_._samples_build/intel64/Release
        ./classification_sample_async -h

NCS2を接続する前は、CPUとGNA(Intel Gaussian & Neural Accelerator)が認識され、接続した後は MYRIADが追加されます(図5-8)。


図5-8 OpenVINOのサンプルプログラムのデバイスの認識

5-2-2. NCS2を設定したプログラムの実行

プログラムの実行は、実行コマンドのオプションで「-d MYRIAD」のようにデバイス名を設定します。
ここで、実際にプログラムを実行させたところ「-d MYRIAD」では、エラーが発生してNCS2を利用することができませんでした(図5-9)。しかし、「-d HETERO:CPU,MYRIAD」と設定することで実行できました(図5-10)。
次に、4-4節のHuman Pose Estimationのデモプログラムを実行する場合の手順を示します。

(1) ディレクトリを変更します。

        cd ~/intel/open_model_zoo/demos/human_pose_estimation_demo/cpp

(2) 「-d MYRIAD」とした場合は、エラーとなります。

        ~/omz_demos_build/intel64/Release/human_pose_estimation_demo \
            -i ~/images/face-demographics-walking.mp4 \
            -m ./intel/human-pose-estimation-0001/FP32/human-pose-estimation-0001.xml \
            -at openpose \
            -d MYRIAD

(3) 「-d HETERO:CPU,MYRIAD」とすると実行できます。

        ~/omz_demos_build/intel64/Release/human_pose_estimation_demo \
            -i ~/images/face-demographics-walking.mp4 \
            -m ./intel/human-pose-estimation-0001/FP32/human-pose-estimation-0001.xml \
            -at openpose \
            -d HETERO:CPU,MYRIAD



図5-9 デバイスの設定 「-d MYRIAD」


図5-10 デバイスの設定 「-d HETERO:CPU,MYRIAD」

6. まとめ

IoTやAI、機械学習などをはじめとした様々な技術の紹介や解説等の情報に文献やインターネット等を通じて触れる機会が多くなってきています。一方、それらの内容を確認するためにパソコンやマイコン等にインストールしようとしたときに、エラー等が発生して先に進まないことも多く見られます。オペレーティングシステムやマイコン、クラウドなどの確認する環境の選択肢が増えたことは歓迎すべきことと思いますが、その分だけ知らなければならないことも増え、対応できないことも多くなっています。そのような状況から、パソコンやマイコン等にあまり慣れていない技術者でも紹介されている内容を確認できるように本手順書のPart-1「コマンド編」では、オペレーティングシステムとして近年、取り上げられることの多いUbuntu 20.04 LTSにソフトウェアをインストールするときの注意点と代表的な手順について示しました。

このPart-2「OpenVINO編」では、Part-1で紹介した内容を踏まえて、具体的にIntel社が提供するOpenVINOの環境の構築とサンプルプログラムやデモプログラムを実行する手順について示しました。
環境の設定やソフトウェアのインストールでは、関連した情報や注意事項など、事前によく理解して行う必要があります。本手順書が環境構築やソフトウェアのインストールの参考となり、具体的な技術の確認の機会が増えるとよいと思います。

付録 参考資料

本手順書の内容はインターネットにある多くのサイトに掲載の情報を利用させて頂きました。以下に本文で参考にしたWebサイトのアドレスを示します。

(1) OpenVINO全般

        a. https://ledge.ai/open-vino/
        b. https://self-development.info/【OpenVINOのインストール】ディープラーニング推論の/
        c. https://www.intel.com/content/www/us/en/developer/articles/release-notes/openvino-relnotes.html

(2) OpenVINOのインストール

        a. https://openvino.jp/openvino-2022-1-install-ccpp-sample-ubuntu/
        b. https://openvino.jp/openvino-2022-1-install-sample-ubuntu/
        c. https://openvino.jp/openvino-2022-1-gpu_ncs2-settings/
        d. https://docs.openvino.ai/2022.2/openvino_docs_install_guides_installing_openvino_from_archive_linux.html

(3) Open Model Zooのインストール

        a. https://openvino.jp/openvino-2022-1-openmodelzoo-cpp-ubuntu/
        b. https://docs.openvino.ai/2022.2/omz_demos.html#doxid-omz-demos
        c. https://docs.openvino.ai/latest/omz_demos.html#media-files-available-for-demos

以上


https://zenn.dev/dsl_gunma/articles/34b45211b26b20

Discussion