🍣

Raspberry Pi AI Kitをセットアップして実際に動かしてみる

2025/01/08に公開

はじめに

この度Raspberry Pi AI Kitを手に入れることができたため、以前から持っていたRaspberry Pi 5と組み合わせてセットアップして、どんな感じで動かせるのかを実際に試してみます。

用意したもの

セットアップ

アクティブクーラー

Raspberry Pi AI Kitの公式ドキュメントでは、以下のようにAI Kitを使用するときにはアクティブクーラーを取り付けることを推奨しています。

For the best performance, we recommend using the AI Kit with the Raspberry Pi Active Cooler. If you have an Active Cooler, install it before installing the AI Kit.
※日本語訳
最高のパフォーマンスを得るには、AI キットを Raspberry Pi Active Cooler と一緒に使用することをお勧めします。Active Cooler をお持ちの場合は、AI キットをインストールする前にインストールしてください。
https://www.raspberrypi.com/documentation/accessories/ai-kit.html

アクティブクーラーは以下のサイトを参考に取り付けました。
Raspberry Pi 5用公式アクティブクーラーの取り付け方法 #Fan - Qiita

取り付けると以下のようになります。

Raspberry Pi用カメラ

今回はRaspberry Pi公式のカメラモジュールを使用することにしました。

現在販売されている公式カメラには通常のカメラモジュール4種類とAIカメラ1種類の計5種類があります。通常のカメラモジュールに取り付けられている白いカメラケーブルはRaspberry Pi 5には対応していません。そのため、カメラケーブルをRaspberry Pi 5に対応したカメラケーブルに取り替えてRaspberry Pi本体に取り付ける必要があります。

  1. カメラモジュールの裏面(カメラが取り付けられている方と反対側)にある黒いロックを引き上げます。

  2. カメラモジュールから白いカメラケーブルを引き抜きます(ロックが正しく外れていると力を入れずに引き抜けます)。

  3. Raspberry Pi 5用のカメラケーブルを用意します。先端が細くなっている方をRaspberry Pi 5に、太い方をカメラモジュールに取り付けることになります。

  4. カメラケーブルの先端が太い方の内黒い面の方を、以下のようにカメラモジュールに取り付けます。取り付けが完了したらロックを掛けます。

    ※レンズが取り付けられている方から見るとこのようになっていればOKです。

  5. カメラモジュールにカメラケーブルを取り付けることが出来たら、Raspberry Pi側のカメラポートの黒いロック部分を上に持ち上げて、カメラケーブルの細い方を以下のように差し込んでロックを掛けてください。この時ケーブルの向きに注意してください。

これでカメラモジュールのセットアップは完了です。

AI Kit

公式ドキュメントを基にセットアップしてみます。

取り付け

  1. Raspberry Piでアップデート可能なパッケージリストを更新します。
sudo apt update
  1. Raspberry Piのディストリビューションをアップグレードします。
sudo apt full-upgrade
  1. Raspberry Piファームウェアが最新であるかを確認します。
sudo rpi-eeprom-update

コマンドを実行して、2023年12月6日以降の日付が表示されている場合、そのまま手順4に進みます。
2023年12月6日より前の日付が表示されている場合、ファームウェアが最新でないため次のコマンドを実行してRaspberry Pi構成CLIを開きます。

sudo raspi-config

Advanced Options > Bootloader Versionlatestを選択します。次にFinishまたはEscapeキーでraspi-configを終了します。

以下のコマンドを実行してファームウェアを最新バージョンに更新します。

sudo rpi-eeprom-update -a

その後、以下のコマンドでRaspbeery Piを再起動します。

sudo reboot
  1. AI Kitを取り付けるためRaspberry Piの電源を落として外します。

  2. AI KitをRaspberry Pi本体に取り付けます。取り付け方法は公式ドキュメントが図で分かりやすく説明してくれているためそちらを参考にしてください。

    取り付けると以下のようになります。

  3. 取り付けが完了したら、Raspberry Piを電源に接続すると、Raspberry Pi OSが自動的にAI Kitを検出してくれます。写真のようにM2 HAT+に取り付けられているオレンジ色のランプ(PWA)が光っていれば取り付け成功です。

ハードウェアのセットアップ

PCIe Gen 3.0を有効化

デフォルトでは、Raspberry Pi 5 は Gen 2.0 の速度 (5 GT/s) を使用します。Gen 3.0 (8 GT/s) の速度を強制するには、次のいずれかの方法を使用します。

config.txtを編集する場合

PCIe Gen 3.0 の速度を有効にするには、/boot/firmware/config.txt に次の行を追加します。

/boot/firmware/config.txt
dtparam=pciex1_gen=3

編集後、Raspberry Piを再起動します。

raspi-configを使用する場合

次のコマンドを実行して、Raspberry Pi 構成 CLI を開きます。

sudo raspi-config

以下のステップを踏んでPCIe Gen 3.0を有効化していきます。

  1. Advanced Optionsを選択します。
  2. PCIe Speedを選択します。
  3. PCIe Gen 3モードを有効化するためにYesを選択します。
  4. Finishを選択して終了します。
  5. Raspberry Piを再起動します。

AI Kitの依存関係をインストール

NPU を使用するために必要な依存関係をインストールします。ターミナルウィンドウから次のコマンドを実行します。

sudo apt install hailo-all

これにより、次の依存関係がインストールされます:

  • Hailo カーネル デバイス ドライバーとファームウェア
  • HailoRT ミドルウェア ソフトウェア
  • Hailo Tappas コア ポスト プロセス ライブラリ
  • rpicam-apps、Hailo ポスト プロセス ソフトウェア デモ ステージ

最後に、これらの設定を有効にするために、sudo rebootでRaspberry Piを再起動します。

すべてが正しく実行されていることを確認するには、次のコマンドを実行します。

~ $ hailortcli fw-control identify

次のような出力が表示されたら、NPU とそのソフトウェア依存関係が正常にインストールされています。

Executing on device: 0000:01:00.0
Identifying board
Control Protocol Version: 2
Firmware Version: 4.18.0 (release,app,extended context switch buffer)
Logger Version: 0
Board Name: Hailo-8
Device Architecture: HAILO8L
Serial Number: HLDDLBB243301720
Part Number: HM21LB1C2LAE
Product Name: HAILO-8L AI ACC M.2 B+M KEY MODULE EXT TMP

さらに、dmesg | grep -i hailoを実行してカーネル ログを確認すると、次のような出力が表示されます。

:~ $ dmesg | grep -i hailo
[    3.239030] hailo: Init module. driver version 4.18.0
[    3.239351] hailo 0000:01:00.0: Probing on: 1e60:2864...
[    3.239357] hailo 0000:01:00.0: Probing: Allocate memory for device extension, 11632
[    3.239376] hailo 0000:01:00.0: enabling device (0000 -> 0002)
[    3.239383] hailo 0000:01:00.0: Probing: Device enabled
[    3.239405] hailo 0000:01:00.0: Probing: mapped bar 0 - 000000004b104d05 16384
[    3.239412] hailo 0000:01:00.0: Probing: mapped bar 2 - 0000000074630d4c 4096
[    3.239416] hailo 0000:01:00.0: Probing: mapped bar 4 - 000000008da46d0b 16384
[    3.239420] hailo 0000:01:00.0: Probing: Force setting max_desc_page_size to 4096 (recommended value is 16384)
[    3.239429] hailo 0000:01:00.0: Probing: Enabled 64 bit dma
[    3.239433] hailo 0000:01:00.0: Probing: Using userspace allocated vdma buffers
[    3.239437] hailo 0000:01:00.0: Disabling ASPM L0s 
[    3.239442] hailo 0000:01:00.0: Successfully disabled ASPM L0s 
[    3.473193] hailo 0000:01:00.0: Firmware was loaded successfully
[    3.486886] hailo 0000:01:00.0: Probing: Added board 1e60-2864, /dev/hailo0

カメラが問題なく動かせるかを確認するために、次のコマンドを実行します。

rpicam-hello -t 10s

このコマンドが実行されるとプレビューウインドウが10秒間実行されます。

実際に動かしてみる

rpicam-appsをインストールします。

sudo apt update && sudo apt install rpicam-apps

サンプルプログラムを実行するためにrpicam-appsリポジトリをクローンします。

git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps

クローンしたリポジトリに移動します。

cd ~/rpicam-apps

以下のコマンドを実行して物体検出を実行します。今回はYolov6モデルで試してみます。

rpicam-hello --vflip --hflip -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json

実行されると以下のようにウインドウが表示され、カメラで撮影している画面と検出している物体名とパーセントが表示されます。

公式ドキュメントには物体検出に使用するモデルを変更したり、検出した物体ごとに色分けしたり、姿勢推定ができたりするサンプルが紹介されています。
https://www.raspberrypi.com/documentation/computers/ai.html#demos

おわりに

今回は、Raspberry Pi AI Kitをセットアップして物体検出のデモアプリを動かしてみました。今度は姿勢検出のデモアプリを動かす、モデルごとに検出精度に違いが出るかを試してみるなどをしてみようと思います。

ヘッドウォータース

Discussion