RaspberryPi 5 に AI Kit を導入する
この記事について
この記事は、Raspberry Pi 5 + AI Kit の導入に関する話題をまとめています。
AI Kitとは、Rapsberry Pi 5に高速・低消費電力なAI処理機能を追加するキットです。
Raspberry Pi M.2 HATとHailo社のAIアクセラレータモジュールHailo-8lを組み合わせています。
初回はRaspberry Pi財団が公開するソフトウェアを用いてAI Kitを動作させるところまでを説明します。
次回からはHailo社の公開ソフトウェア(アカウントの作成が必要です)を使用していきます。
誰が書いているのか
株式会社アラヤのエッジAI チームの林です。
普段は、エッジAIシステムの開発などを行っています!
アラヤのエッジAIチームでは、アラヤの"人類の未来を圧倒的に面白く!"するというビジョンを達成するために、"すべてのモノにAIを乗せる"というミッションに取り組んでいます。
必要なハードウェア
次の表に本ブログで使用した純正ハードウェアをまとめます。
純正ハードウェア以外に必要なものを表外のその他必要なものに纏めています。
電源に関して、純正品はPSEマーク付いていないため、補足情報も追加しました。
ハードウェア | リンク | 補足 |
---|---|---|
Raspberry Pi 5 | https://www.raspberrypi.com/products/raspberry-pi-5/ | 本ブログでは8GBメモリを使っています |
Active Cooler | https://www.raspberrypi.com/products/active-cooler/ | |
AI Kit | https://www.raspberrypi.com/products/ai-kit/ | |
Camera Module 3 | https://www.raspberrypi.com/products/camera-module-3/ | 広角と標準・赤外線フィルタありなしの組み合わせで4種類あります |
Camera Cable | https://www.raspberrypi.com/products/camera-cable/ | Raspberry Pi 5からコネクタの形状が変わったので必要になりました |
27W USB-C Power Supply | https://www.raspberrypi.com/products/27w-power-supply/ | PSEマークがありません |
その他必要なもの
- MicroSDカード(本ブログでは64GBを使っています)
- マイクロHDMIケーブルとかキーボードとかマウスなど
電源に関する補足
- 本来は5V,5Aを出力可能な電源を使う事が推奨されています(つなぐもの次第なので必須ではないがAI Kit使うならあったほうが良いです)
- 本ブログではPSEマークのついている、次の電源を使用しています
- 最近では5V,5Aを出力可能でPSEマーク付きの電源が入手可能になっています
注意:現状ではCamera Module 3
はPython3.11以上でないと使えない、かつ、HailoのPython用ランタイムはPython3.10以下でないと使えないという問題があるようです
Raspberry Pi本体のセットアップ
下の写真はRaspberry Pi 5にActive Coolerをセットアップした状態です。
この状態で、OSのインストールをします。
OSのインストールが済んでいる方は、この章は飛ばしてカメラのセットアップへお進みください。
セットアップ方法 に沿ってセットアップを進めます。
本ブログでは、Windows PC上でイメージャーを使って進めています。
イメージャーを起動して下の様に設定します。
ストレージの部分は環境によります。
つぎは、以下のように設定しました。
ここは大きく環境に依存すると思います。
SSHはパスワード認証の設定で有効にしておきました。
この設定で書き込み開始、MicroSDカードに書き終わるまでしばし待ちます。
終わると下のようなダイアログが出てくるのでキャンセルを押して閉じます。
おまけ
- アクティブクーラーをつけていても驚くほど熱くなります
- CapsをCTRLにするには
-
~/.config/wayfire.ini
の中をxkb_options=ctrl:nocaps
にする
-
- VSCodeインストール
sudo apt install code
カメラのセットアップ
下の写真はRaspberry Pi 5にCamera Module 3をセットアップした状態です。
ここでは、カメラの動作を確認します。
-
Camera softwareを使用します
- OSとともにインストールされるので、新たにインストールする必要はありません
-
rpicam-hello
コマンドを実行します-
-t arg
で時間を指定できます(数字だけだとms単位 10sだと10秒) -
--qt-preview
ssh経由でRaspberry Piにログインし、X転送でカメラ映像を表示する場合に使用します - 他、いろいろな機能は↑のリンクを参照ください
-
- 実行すると↓がコンソールに出力され、新たに開いたウィンドウにカメラ映像が出力されます
$ rpicam-hello -t 10s [0:08:01.016148362] [2163] INFO Camera camera_manager.cpp:284 libcamera v0.2.0+46-075b54d5 [0:08:01.024535476] [2166] INFO RPI pisp.cpp:662 libpisp version v1.0.4 6e3a53d137f4 14-02-2024 (14:00:12) [0:08:01.042663613] [2166] INFO RPI pisp.cpp:1121 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media0 and ISP device /dev/media1 using PiSP variant BCM2712_C0 Made X/EGL preview window Mode selection for 2304:1296:12:P SRGGB10_CSI2P,1536x864/0 - Score: 3400 SRGGB10_CSI2P,2304x1296/0 - Score: 1000 SRGGB10_CSI2P,4608x2592/0 - Score: 1900 Stream configuration adjusted [0:08:03.309812343] [2163] INFO Camera camera.cpp:1183 configuring streams: (0) 2304x1296-YUV420 (1) 2304x1296-BGGR16_PISP_COMP1 [0:08:03.309997843] [2166] INFO RPI pisp.cpp:1405 Sensor: /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a - Selected sensor format: 2304x1296-SBGGR10_1X10 - Selected CFE format: 2304x1296-PC1B
AI Kitのセットアップ
下の写真はRaspberry Pi 5にAI Kitをセットアップしている状態です。
ここでは、ソフトウェアのセットアップをした後、デモの動作を確認します。
- ソフトウェアのセットアップ
- インストール方法の順でインストールします
- 準備
sudo apt update && sudo apt full-upgrade
-
sudo rpi-eeprom-update
の結果-
6 December 2023
よりも新しかったのでこの後はスキップ
-
- ハードウェアセットアップ
- 上の写真のようにセットアップ後に
lspci
で確認します -
0000:01:00.0 Co-processor: Hailo Technologies Ltd. Hailo-8 AI Processor (rev 01)
の行があれば成功です
- 上の写真のようにセットアップ後に
- ソフトウェアインストール
sudo apt install hailo-all
- 再起動
- 確認のために
hailortcli fw-control identify
を実行します-
Board Name: Hailo-8
が含まれてれば成功です
-
- デモのセットアップ
-
デモをインストールします
git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps
- ドキュメントの通りのコマンドが問題なく動作しました
- 例えばyolov6を使った物体検出は次のコマンドで実行できます
rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640
- 例えばyolov6を使った物体検出は次のコマンドで実行できます
-
デモをインストールします
- PCIe接続の設定
- PCIe Gen 3.0を使うことで動作を高速に出来ます
- 上の資料には
unstable
と書いてありますが、効果はありそうなので設定しました -
sudo raspi-config
実行後に上のリンク先の通りメニュー選択して再起動します - 確認
- 先ほどインストールしたデモに含まれるyolov8sのHEFファイルを使って確かめます
- 設定の前後で次のコマンドを実行して、yolov8sを使った推論のFPSを計測します
hailortcli benchmark --no-power true /usr/share/hailo-models/yolov8s_h8l.hef
- AI Kit環境では
--no-power true
を設定しないと動作しませんでした
- 結果
- PCIe2
FPS (hw_only) = 27.9983
- PCIe3
FPS (hw_only) = 54.3117
- PCIe2
- 先ほどインストールしたデモに含まれるyolov8sのHEFファイルを使って確かめます
- gstreamerの動作確認
- AI Kitのセットアップをするとgstreamerが使えるようになります
- 現状はgstreamerからラズパイCamera Module 3を使うことはできませんが、代わりにUSBカメラを使うことができます
- USBカメラをつないで次のコマンドを実行すると、新たに開いたウィンドウにカメラ映像が表示されます
gst-launch-1.0 -v v4l2src ! videoconvert ! autovideosink
まとめ
Raspberry Pi 5 + AI Kit の導入に関する話題をまとめています。
初回はRaspberry Pi財団が公開するソフトウェアを用いてAI Kitを動作させるところまでを説明しました。
次回からはHailo社の公開ソフトウェア、TAPPASやHailoRTのPythonPackageを使用してみる予定です。
エッジAIからLLM構築まで気軽にご相談ください!
株式会社アラヤの先端研究支援
株式会社アラヤのエッジAI
SubnetX
Discussion