🐈

RaspberryPi 5 に AI Kit を導入する

2024/11/01に公開

この記事について

この記事は、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
  • 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
  • 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