アイリアSDKを試す <第3回>アイリアSDK(ailia MODELS)をWindows 11+VSCodeのデバッガで動かす

前回は、アイリアSDK(ailia MODELS)をラズベリー・パイ4上で動作させました。今回は環境をWindows11に移し、統合開発環境としてVisual Studio Code(以降,VSCode)を利用して実行と検証を行います。
プログラム開発や試験を進める際には、実行中の状態を逐次観察しながら原因を切り分けたい場面が多くあります。特に初めて扱うモジュールやライブラリでは、関数の入出力や処理の前後関係を細かく確認できることが品質向上と開発効率の両面で重要です。検証方法としてログ出力を用いることも可能ですが、ログの挿入によってコードを改変するリスクや、出力の抜け漏れといった課題が生じます。
そこで本稿では、VSCodeのデバッガを活用し、アイリアSDK/ailia MODELSを実行中に追跡できる環境設定を紹介します。アイリアはWindowsを含むマルチプラットフォームに対応しており、Python/C++/C#/JNIなど複数のAPIを提供しています。本稿ではその中でも導入が容易なPython版を用いた実施例を取り上げます。

※本企画は雑誌『Interface』のWebサイトに掲載された記事を再編集したものです。
※本記事はアイリアの製品およびサービスを紹介するPR記事です。

Windows環境へのインストール手順

まず、今回のシステム構成を(表1)に示します。次に手順ですが、(リスト1)にWindows 11上にアイリアSDKを導入し、ailia MODELSを取得するまでの流れを示します。最後にVSCodeを起動して開発準備を整えます。

名称内容
OSWindows 11 Pro
CPUインテル® プロセッサ N100
RAM16GB
Pythonpython-3.10.11-amd64
VSCodeVersion 1.103.1
(表1)システム構成一覧
*******
PS> python –version
Python 3.10.11
PS>git clone https://github.com/axinc-ai/ailia-models.git
PS>cd ailia-models.
PS> python.exe -m venv .venv
PS> .venv/Scripts/activate
PS>pip3 install ailia
Collecting ailia
  Downloading ailia-1.5.0.0-py3-none-win_amd64.whl (34.8 MB)
          ━━━━━━━━━━━━━━━━━ 34.8/34.8 MB 1.9 MB/s eta 0:00:00
Installing collected packages: ailia
Successfully installed ailia-1.5.0.0
PS> pip install -r requirements.txt

PS> code . <- VScode 起動
*******

(リスト1)アイリアSDKを導入し、ailia MODELSを取得するまでの流れ

VSCodeのデバッグ設定

ailia MODELSに含まれるサンプル・プログラムは、共通ライブラリを相対パスで参照しているため、必ずサンプル・ファイルのあるディレクトリで実行する必要があります。そのままVSCodeから実行すると、カレント・ディレクトリが異なるためライブラリが見つからず、エラーになることがあります。また、カメラを入力に利用する場合には、デバイス番号などを引数で指定しなければなりません。
これらの条件を反映させた、VSCodeのlaunch.json(リスト2)がailia MODELSには用意されています。

********
{
    “version”: “0.2.0”,
    “configurations”: [
        {
           “name”: “Python: Camera”,
            “type”: “python”,
            “args”: [“-v”,”0″],
            “request”: “launch”,
            “program”: “${file}”,
            “console”: “integratedTerminal”,
            “cwd”: “${fileDirname}”
        },
    ]
}
********

(リスト2)設定例1…launch.jsonで設定(Python 版)

(図1)設定例2…デバッグのメニューで選択

実行と結果確認

次に、driver-action-recognition-adas.pyをVSCodeで開き、[F5]キー(デバッグ開始)を押して実行します。初回はモデル・ファイルのダウンロードに時間がかかりましたが、無事に起動し、プログラムの動作確認とブレーク・ポイントでの状態観察を行うことができました。テストには生成AIで作成した画像を用いました。
推論結果は「Drinking eating」で、判定内容は「飲みながら食べている」と解釈されました。

(図2)推論結果

ラベル一覧を確認すると、「食べる」という動作を直接示す項目は「Drinking eating」のみでした。入力画像は食べているようにも飲んでいるようにも見える内容だったため、今回の推論結果はラベル定義と画像の特徴が一致しており、妥当な判定であると考えられます。

Intel N100での実行環境による違い

今回使用したCPUはIntel N100なので、Intel MKLによるCPU最適化と内蔵GPU[Intel(R) UHD Graphics]を利用した実行が可能です。(表2)に実行環境ごとのフレーム・レート(fps)の違いを示します。

ENV_ID利用環境fps
0CPU21
1CPU-IntelMKL27
2VulkanDNN-Intel(R) UHD Graphics (FP32)15
3VulkanDNN-Intel(R) UHD Graphics (FP16)16
4VulkanDNN-Intel(R) UHD Graphics (FP32)15
5VulkanDNN-Intel(R) UHD Graphics (FP16)16
(表2)実行環境によるフレーム・レート(fps)の違い

GPUを利用する場合の切り替えは、起動時の引数 –env_id ENV_IDで設定します。なお、特に指定を行わなかった場合、Intel N100ではデフォルトでenv_id: 5が選択されました。
GPUを使用すると遅くなるという結果になっていますが、この件については、改めて検証することとします。

※ラズベリーパイはラズベリーパイ財団の商標です。その他会社名、各製品名は、一般に各社の商標または登録商標です。

氏森 充(うじもり・たかし)氏

約30年間、株式会社構造計画研究所にてIoT、ビッグデータ、機械学習、AI関連のシステム開発や実務応用に従事。退職後はLLM(大規模言語モデル)関連の情報収集や技術動向の調査・発信に注力し、雑誌『Interface』でもLLM技術に関する記事を執筆中。

コンピューター・サイエンス&テクノロジ専門誌『Interface』

CQ出版社が発行するコンピュータ技術専門の月刊誌です。1974年の創刊以来、組み込みシステム、ソフトウェア、AI、IoTなど、時代とともに進化するコンピュータ技術を幅広く紹介しています。理論だけでなく、実践的なプログラミングや実機製作の記事も豊富で、エンジニアから学生まで、コンピュータ技術を深く学びたい読者に支持されています。
https://interface.cqpub.co.jp/

SHARE THIS ARTICLE