Raspberry Pi AI Kitをセットアップし自前のモデルを動かしてみるところまでの記録です。
基本的な設定は迷うところはありません。公式ドキュメント通りで大丈夫です。
使用したのはRaspberry Pi OS 64 bit版です。
[ 基本ソフトウェアの導入 ]
ドキュメントに従い、
sudo apt update && sudo apt full-upgrade
次にファームウェアバージョンを確認します。
sudo rpi-eeprom-update
私の場合、ファームウェアのバージョンが最新の物でしたので続くeeprom更新は行いませんでした。
続くドキュメントに従いhailo関連のソフトウェアを導入します。
sudo apt install hailo-all
導入の確認は、
hailortcli fw-control identify
というコマンドで行います。これでAIハードウェアの情報が表示されれば完成です。
[ サンプルプログラム ]
次に実際に動くサンプルプログラムを導入します。いくつかありますが、実際のアプリケーションに応用可能なものとして
Hailo RPi5 Basic Pipelinesを選びました。
git clone https://github.com/hailo-ai/hailo-rpi5-examples.git
cd hailo-rpi5-examples
./install.sh
以上のコマンドで導入は完了です。
実際に動かしてみます。
source setup_env.sh
Pythonの仮想環境に入ります。そして次のコマンドを投入します。
python basic_pipelines/detection.py
これでobject detectionのデモが動きます。デモは24FPSぐらいは出ているようです。
[ 自分で作成したモデルでのテスト ]
python basic_pipelines/detection.py --help
これでコマンドラインオプションを調べ”–input”でテストしたい動画ファイル、”–hef-path”で自作のモデルを指定すれば動きます。ただし、このままだと自分の意図するのと違うラベルが表示されてしまいます。”resource/barcode-labels.json”などを参考に自分のモデルに合ったラベルを含むjsonファイルを作成して”–labels-json”で指定すると良いです。
動画ファイルの代わりに”/dev/video0″などとするとUSBからの画像入力も扱うことが出来ます。これについては、また長い試行錯誤があります。改めて記事にするつもりです。
実際のアプリケーションを作成する場合は、何かしら検出した物体に対し自分の処理を加えたいはずです。その場合でもこのサンプルはそのまま活用できそうです。先の”detection.py”の中に”app_callback()というファンクションがあります。何かしら検出すると、これがよばれるようになっています。中身を見ていくと検出したラベルや大きさが格納されたbboxが見つかります。ここを自分用に変更すれば良さそうです。
no comment untill now