2025年5月30日
025-1.SPIKEプライム+ラズパイ+AIカメラ ロボットチャレンジ-第3回「AIカメラ用のモデルを作成する」
この記事では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」とRaspberry Pi(以下、ラズパイ)とAIカメラを組み合わせたロボットを作る方法について紹介します。(文/松原拓也)
◆ 3種類の画像を認識させる
ターミナル(LXTerminal)を起動したら、仮想環境に切り替えます。「python -m venv .venv」「source .venv/bin/activate」と入力ましょう。すると、「.veny」と名付けた仮想環境に切り替わります。
AIカメラ(IMX500)はrpkという特殊なファイル形式でモデルを書き込みます。このファイルをネットワーク・ファームウェアと呼びます。ファイルを作成するツールとして、コンバーターとパッケージャーがあります。コンバーターは別途インストールが必要です。コンバーターをインストールするには「pip install imx500-converter[pt]」と入力します。パッケージャーは「imx500-tools」に含まれています。
コンバーターに渡す変換ファイルを作るためには、モデルを量子化・圧縮しないといけません。そのためのツールがModel Compression Toolkit(MCT)です。MCTをインストールするには「pip install model-compression-toolkit」と入力します。
◆ モデルを作り直す
AITRIOSのWebサイトで紹介されている方法に従って、いちからモデルを作り直します。次のWebページにモデル作成や量子化のコードが載っていますので、できる限りそのまま使うことにします。
https://developer.aitrios.sony-semicon.com/edge-ai-sensing/documents/pytorch-model-deployment-guide?version=2025-04-23
◆モデルをパッケージ化する
◆ 分類デモを実行する
「picamera2/examples/imx500」フォルダにある「imx500_classification_demo.py」を開きます。AIカメラを分類を行うデモプログラムです。そのまま実行するとValueErrorなどが出ます。
修正前はラベル数が1000であることを前提していますが、それがエラーの原因となるので、関係する部分を削除します。さらに、スコアをソートする処理が、上位3件に対応させます。修正方法については次のWebページを参考にさせて頂きました(INFORMATION DEVELOPMENTさんの記事です)。
https://www.idnet.co.jp/column/page_376.html
画像分類をしている様子です。
AIカメラのツールは全て無料なので、ぜいたくは言えませんが、使い方が難しいところもありました。
今回はここまでにしますが、この技術を使えば、画像を認識できるSPIKEのロボットを作ることができるかもしれません。
当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。