はじめに
Raspberry Pi OSを64-bitで再セットアップしたことをきっかけに、ちょっとずつ遊んでいます。
以下、これまでの経緯です。
折角なのでこちらの記事を参考に、手元にあるRaspberry Pi AI Cameraもセットアップしたいと思います。
目次
インストール
公式手順に従ってセットアップをしていきます。
IMX500 firmwareのインストール
updateとupgradeをし、firmwareをインストールして再起動します。
% sudo apt update && sudo apt full-upgrade
% sudo apt install imx500-all
% sudo reboot
こちらの記事と同様、IMX500が認識されているか確認します。
% sudo dmesg | grep imx500
[ 0.029077] /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@110000
[ 0.029112] /axi/pcie@1000120000/rp1/csi@110000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a
[ 0.029253] /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@110000
[ 0.029322] /axi/pcie@1000120000/rp1/csi@110000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a
[ 0.414248] /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@110000
[ 0.429345] /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@110000
[ 0.429369] /axi/pcie@1000120000/rp1/csi@110000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a
[ 3.197543] rp1-cfe 1f00110000.csi: found subdevice /axi/pcie@1000120000/rp1/i2c@88000/imx500@1a
[ 3.538310] imx500 10-001a: Device found is imx500
[ 3.538843] rp1-cfe 1f00110000.csi: Using sensor imx500 10-001a for capture
以上でインストールは終わりです。
動作確認
インストールが終わったのでAIモデルを動かしてみます。
公式手順に従っても良いのですが、AIモデルとサンプルがセットになっていて分かりやすいので下記を使います。
ModelZooをクローン
workディレクトリを作って、その中にmodel-zooをクローンします。
% mkdir work
% cd work
% git clone https://github.com/SonySemiconductorSolutions/aitrios-rpi-model-zoo.git
完了するとaitrios-rpi-model-zooというディレクトリができています。
ModelZoo向けのインストール
ReadMeにある通り、opencvとmunkresをインストールします。
sudo apt install python3-opencv python3-munkres
Object detectionを動かしてみる
わかりやすいので、Object detectionを動かしてみます。
nanodetのディレクトリに移動し、app.pyを起動します。
% cd ~/work/aitrios-rpi-model-zoo/models/object-detection/nanodet_plus_416x416
$ python app.py --model network.rpk --labels labels.txt --fps 15
AIモデルのデプロイで1分くらい待つと、下記画面が表示されます。
静止画ではなく動画でリアルタイムに認識していました。
app.py起動時にオプションで15fpsに設定しましたが、カクカク感は感じませんでした。
なお、app.pyの終了方法はターミナルで Ctrl+c です。
Segmentationを動かしてみる
もうひとつ、Segmentationも動かしてみます。
deeplabv3plusのディレクトリへ移動し、app.pyを叩いてみます。
cd ~/work/aitrios-rpi-model-zoo/models/segmentation/deeplabv3plus
python app.py
手とペットボトルを認識し色を塗られました
なんかちょっとスプラっぽいです。
バーチャルボディペインティングとかもできそう。
最後に
インストールから動作確認まで特に詰まることなく終わりました。
数年前までAIモデルの推論環境構築も依存とバージョン整合との戦いでしたが、ずいぶんと楽になったものです。