Skip to content

Latest commit

 

History

History

imagenet-classification-for-aicast

ImageNet Classification for ai cast

※このサンプルアプリケーションはActcastOS 3 に対応しています

概要

ai cast 上で動く ImageNet Classification のサンプルアプリです。 このアプリは通常の Raspberry Pi 用アプリと違い、Hailo-8 を用いて AI 処理を行います。

前提

ビルド方法

make

これにより src/resnet_v1_18.c が ai cast 用にクロスコンパイルされて app/libresnet_v1_18.so が生成されます。 src/resnet_v1_18.c は HEF ファイルを扱うための C のプログラムで、コンパイルされた app/libresnet_v1_18.so は Python プログラム(app/model.py)から利用されます。

Actsim での動作確認

準備

actdk に確認用 ai cast を登録します。

actdk remote add <IDENTIFIER_YOU_LIKE>@<REMOTE>

actdk run

actdk run により Actsim 上でアプリケーションの動作確認をすることができます。停止させるには Ctrl + C を押します。

actdk run -a <IDENTIFIER_YOU_LIKE>

Actcast Agent での動作確認

まずActcast に新規アプリケーションを作成します。

.actdk/setting.jsonapp_server_id を、先程作成したアプリケーションの ID に変更します。

アプリケーションをアップロードし、実機にインストールします。

設定項目

  • display: HDMIディスプレイへ撮影画像と分類結果top-10の描画を行う。
  • camera rotation: 撮影画像を回転する (0 or 90 or -90 or 180)。ただし、カメラが回転に対応している必要がある。もし対応していなければ本設定は無視される (raspberrypi-bullseye では未対応)。
  • horizontal flip camera: 撮影画像を左右反転する。ただし、カメラが回転に対応している必要がある。もし対応していなければ本設定は無視される。
  • target class IDs: 1,30,2,52,999のようなカンマ区切りの対象クラスID(空は全クラス指定を意味する)。この一覧に含まれているクラスのみがActcastへの通知対象となる。
    • 例: 954,673 は "banana" と "mouse" を通知対象とする設定
  • probability threshold: 確度がこの閾値を越えたら通知を行う。
  • crop or resize: 撮影画像を必要なサイズへリサイズする際の方法 (raspberrypi-bullseye では未対応)
    • crop モードでは、撮影画像中心から必要なサイズ分を切り抜く cropモード画像
    • resize モードでは、撮影画像中心から必要なサイズと同一アスペクトの最大サイズを切り抜いた後に必要なサイズへ縮小を行う。 resizeモード画像

補足説明

root.tar は Hailo-8 を扱うのに必要なツールチェインが同梱されています。