レビュー

Raspberry Pi 5に後付けAI処理モジュール「Raspberry Pi AI HAT+」を取り付けてAIカメラを作ってみたよレビュー

Raspberry Pi 5にRaspberry Pi AI HAT+とカメラモジュールを装着してAIカメラ化


Raspberry Pi AI HAT+」は2024年10月24日に登場した後付けAI処理モジュールで、Raspberry Pi 5に最大26TOPSのAI処理能力を追加できます。そんなRaspberry Pi AI HAT+が開発チームから送られてきたので、実際にRaspberry Pi 5に装着してオブジェクト認識機能を備えたAIカメラを作ってみました。

AI HAT+ - Raspberry Pi Documentation
https://www.raspberrypi.com/documentation/accessories/ai-hat-plus.html

AI software - Raspberry Pi Documentation
https://www.raspberrypi.com/documentation/computers/ai.html

hailo-rpi5-examples/doc/basic-pipelines.md at main · hailo-ai/hailo-rpi5-examples · GitHub
https://github.com/hailo-ai/hailo-rpi5-examples/blob/main/doc/basic-pipelines.md

・目次
◆1:Raspberry Pi AI HAT+の外観チェック
◆2:Raspberry Pi 5にRaspberry Pi AI HAT+を装着
◆3:AIカメラの実行環境を構築
◆4:Raspberry Pi公式AIカメラデモを実行
◆5:HailoのAIカメラデモを実行

◆1:Raspberry Pi AI HAT+の外観チェック
Raspberry Pi AI HAT+のパッケージはこんな感じ。Raspberry Pi AI HAT+にはAI処理性能が13TOPSのモデルと26TOPSのモデルが存在しており、今回は26TOPSモデルがRaspberry Pi開発チームから送られてきました。

Raspberry Pi AI HAT+のパッケージ


パッケージの中にはRaspberry Pi AI HAT+本体とGPIOスタッキングヘッダー、スペーサー、ネジが入っていました。

Raspberry Pi AI HAT+のパッケージ内容物


これがRaspberry Pi AI HAT+です。

Raspberry Pi AI HAT+


裏面はこんな感じ。

Raspberry Pi AI HAT+の裏面


中央にはHailo製のAIアクセラレータ「Hailo-8」が搭載されています。なお、13TOPSモデルの場合は「Hailo-8L」が搭載されます。

Raspberry Pi AI HAT+の中央に搭載されたHailo-8


◆2:Raspberry Pi 5にRaspberry Pi AI HAT+を装着
AIカメラを作るために、「Raspberry Pi AI HAT+」「Raspberry Pi 5」「Raspberry Pi Camera Module 3」を用意しました。なお、Raspberry Pi AI HAT+を装着する際はRaspberry Pi 5に公式空冷クーラーの「Raspberry Pi Active Cooler」を取り付けることが推奨されています。

「Raspberry Pi AI HAT+」「Raspberry Pi 5」「Raspberry Pi Camera Module 3」


最初に、Raspberry Pi 5を起動してソフトウェアやファームウェアをアップデートします。

Raspberry Pi 5を最新の状態にアップデート


まず、ソフトウェアを最新状態にアップデート。

sudo apt update
sudo apt upgrade


続いて、EEPROMのファームウェアをアップデートします。現時点のバージョンと配信中の最新バージョンを確認するために以下のコマンドを実行します。

sudo rpi-eeprom-update


実行結果は以下の通り。ファームウェアが2023年12月6日以前のバージョンだった場合、ドキュメントに従って設定を変更する必要があります。今回は2024年4月17日のバージョンがインストール済みだったので、そのままアップデートを続行します。

*** UPDATE AVAILABLE ***
BOOTLOADER: update available
CURRENT: Wed 17 Apr 12:54:23 UTC 2024 (1713358463)
LATEST: Mon 23 Sep 13:02:56 UTC 2024 (1727096576)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.


以下のコマンドでファームウェアをアップデートして再起動します。

sudo rpi-eeprom-update -a
sudo reboot


無事に起動したら、Raspberry Pi 5をシャットダウンしてRaspberry Pi AI HAT+の取り付け作業に移ります。まず、Raspberry Pi 5にスペーサーとGPIOスタッキングヘッダーを取り付けます。ネジはプラスチック製だったのでねじ込み過ぎに注意。

Raspberry Pi 5にスペーサーとGPIOスタッキングヘッダーを取り付け


続いて、Raspberry Pi AI HAT+をリボンケーブルで接続。

Raspberry Pi 5とRaspberry Pi AI HAT+をリボンケーブルで接続


4カ所ネジ止めします。

Raspberry Pi AI HAT+を装着したRaspberry Pi 5


次に、Raspberry Pi Camera Module 3を接続。

Raspberry Pi AI HAT+を装着したRaspberry Pi 5にRaspberry Pi Camera Module 3を接続


最後にカメラを固定すれば準備完了です。今回は簡易的に空き箱に貼り付けて固定しました。

カメラを空き箱に貼り付ける


◆3:AIカメラの実行環境を構築
・PCIe Gen 3.0への切り替え
Raspberry Pi 5は標準状態ではPCIe Gen 2.0で動作するようになっていますが、PCIe Gen 3.0に切り替えることも可能。Raspberry Pi AI HAT+を使う際はPCIe Gen 3.0に切り替えることが推奨されています。

PCIe Gen 3.0で動作させるには、「/boot/firmware/config.txt」に以下の行を追加すればOK。

dtparam=pciex1_gen=3


設定ファイルを書き換えたら再起動します。

sudo reboot


・必要なパッケージをインストール
AIアクセラレータのドライバ類をインストールするために、以下のコマンドを実行してから再起動します。

sudo apt install hailo-all
sudo reboot


・正しくインストールできたか確認
Raspberry Pi AI HAT+の装着やソフトウェアのインストールが正しく完了しているか確認するために、以下のコマンドを実行します。

hailortcli fw-control identify


以下のようにファームウェアのバージョンやAIアクセラレータの名前が出力されればOK。ドキュメントだとシリアルナンバーや製品名も表示されていましたが、今回は「」と表示されました。

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: HAILO8
Serial Number:
Part Number:
Product Name:


また、以下のコマンドでカーネルのログ内のAIアクセラレータ関連のイベントを確認できます。

dmesg | grep -i hailo


今回の結果はこんな感じでした。

[ 3.884998] hailo: Init module. driver version 4.18.0
[ 3.885122] hailo 0000:01:00.0: Probing on: 1e60:2864...
[ 3.885127] hailo 0000:01:00.0: Probing: Allocate memory for device xtension, 11632
[ 3.885144] hailo 0000:01:00.0: enabling device (0000 -> 0002)
[ 3.885150] hailo 0000:01:00.0: Probing: Device enabled
[ 3.885168] hailo 0000:01:00.0: Probing: mapped bar 0 - 0000000b494ee36 16384
[ 3.885175] hailo 0000:01:00.0: Probing: mapped bar 2 - 00000000f43891e 4096
[ 3.885181] hailo 0000:01:00.0: Probing: mapped bar 4 - 00000001f13937c 16384
[ 3.885185] hailo 0000:01:00.0: Probing: Force setting ax_desc_page_size to 4096 (recommended value is 16384)
[ 3.885195] hailo 0000:01:00.0: Probing: Enabled 64 bit dma
[ 3.885198] hailo 0000:01:00.0: Probing: Using userspace allocated dma buffers
[ 3.885201] hailo 0000:01:00.0: Disabling ASPM L0s
[ 3.885206] hailo 0000:01:00.0: Successfully disabled ASPM L0s
[ 4.171121] hailo 0000:01:00.0: Firmware was loaded successfully
[ 4.184529] hailo 0000:01:00.0: Probing: Added board 1e60-2864, /dev/hailo0


カメラモジュールを認識できているか否かは、以下のコマンドで確認できます。

rpicam-hello -t 10s


「カメラの映像を表示するウィンドウ」が10秒間表示されればOKです。

カメラモジュールが正しく認識された


◆4:Raspberry Pi公式AIカメラデモを実行
続いて、Raspberry Pi開発チームが公開しているAIカメラのデモを実行してみます。まず、以下のコマンドでデモが含まれるリポジトリの最新コミットをクローンします。

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


クローンが完了したら、以下のコマンドを実行すれば「物体の種類を識別するカメラAI」が起動します。

rpicam-hello -t 0 --post-process-file ~/rpicam-apps/assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640


実行結果はこんな感じ。カメラに写る人間やノートPCを正しく認識できています。

オブジェクト認識AI


しかし、ターミナルには「このAIモデルはHailo-8L向けに作成されたものだが、このデバイスにはHailo-8が搭載されている。これでは最適なパフォーマンスを発揮できない」という旨のエラーメッセージが表示されていました。


◆5:HailoのAIカメラデモを実行
記事作成時点ではRaspberry Pi開発チームの公式デモには「Hailo-8L向けのAIモデル」しか用意されていないため、Hailoが用意している別のデモを使ってみることにします。

デモに含まれている「hailo-rpi5-examples/basic_pipelines/detection_pipeline.py」のソースコードを確認すると、「Hailo-8を搭載していたら『yolov8m.hef』を読み込み、Hailo-8Lを搭載していたら『yolov8s_h8l.hef』を読み込む」というコードが含まれていることが分かります。つまり、このデモを実行すれば26TOPSの処理性能を備えたHailo-8の実力を十分に発揮できるというわけです。

detection_pipeline.pyの中身


まず、リポジトリをクローンし、必要なパッケージをインストールしてからインストールスクリプトを実行します。

git clone https://github.com/hailo-ai/hailo-rpi5-examples.git
cd hailo-rpi5-examples
sudo apt install meson
./install.sh


インストール完了後に以下のコマンドを実行すると、Hailoのデモに含まれているオブジェクト認識カメラAIを起動できます。

source setup_env.sh
python basic_pipelines/detection.py -i rpi


実行結果はこんな感じ。人間とスマートフォンを正しく認識できました。

オブジェクト認識カメラAIを動かす


コマンドに「-f」オプションを付けると画面内に秒間フレームレートを表示できます。

python basic_pipelines/detection.py -i rpi -f


秒間フレームレートは平均30.04FPSでした。

オブジェクト認識カメラAIのFPSを表示


オブジェクト認識カメラAIが動作する様子を動画に記録したものが以下。Raspberry Pi AI HAT+を使えば、こんな感じでAI機能を体験したり開発したりできるというわけです。

Raspberry Pi 5に「Raspberry Pi AI HAT+」を装着してAIカメラ化してみた - YouTube

この記事のタイトルとURLをコピーする

・関連記事
Raspberry Pi 5にCore Ultra超えのAI専用プロセッサを追加できる「Raspberry Pi AI Kit」を取り付けてAIカメラ化してみたよレビュー - GIGAZINE

ついにRaspberry Pi 5にグラボを接続して画面出力に成功したので手順をまとめてみた - GIGAZINE

Raspberry Pi 5のGIGAZINEレビュー総まとめ「必要な電源」「クーラーは必須なのか」「OSインストール手順」「M.2 SSDを接続する方法」「RTC機能の詳細」などの疑問を解決できるレビューが盛りだくさん - GIGAZINE

「Raspberry Pi Pico 2」の開発環境を構築してLチカするまでの手順まとめ - GIGAZINE

「Raspberry Pi Pico 2」のRISC-VコアでLチカを実行&デバッグしてみた - GIGAZINE

in レビュー,   ソフトウェア,   ハードウェア,   動画, Posted by log1o_hf

You can read the machine translated English article here.