Hailo 8 AIアクセラレーターを搭載したRaspberry Pi 5用のHAT+を入手しました。
Piromoniで購入しましたが、国内のショップではスイッチサイエンスで購入できます。
今回は推論性能が26TOPSのHailo-8を搭載したものを購入しましたが、13TOPSのHailo-8Lを搭載した下位バージョンもあります。
Hailo 8は学習済みのモデルを処理するアクセラレータです。学習作業を高速化することはできません。
学習済みのモデルはHailoのオリジナルフォーマットのHEFファイルを使用しますが、Dataflow Compilerを使用して汎用のonnx形式のファイルを変換できるようです。(詳しくはまだ調べてません)
セットアップ手順
公式ドキュメント
AI software - Raspberry Pi Documentation
セットアップ時の手順のメモを書きます。
今回は既に使用していたRaspberry Pi 5 8GBにCamera Module 3を装着したものを使用してので、OSやカメラのセットアップは省略します。
自分用のメモが主な目的なので詳細は省きますが参考にしてください。
パッケージを最新化して再起動
sudo apt update && sudo apt full-upgrade sudo reboot
実行しているファームウェアの確認
sudo rpi-eeprom-update
2023 年 12 月 6 日より前の日付が表示されている場合はraspi-configで設定を行う
sudo raspi-config
Advanced Options>Bootloader VersionでLatestを選択
ファームウェアを最新バージョンに更新して再起動
sudo rpi-eeprom-update -a sudo reboot
PCIe Gen 3.0の有効化
「/boot/firmware/config.txt」へ以下の行を追加
dtparam=pciex1_gen=3
再起動
sudo reboot
AIアクセラレータに必要なドライバやソフトウェアをインストールして再起動
sudo apt install hailo-all sudo reboot
インストールの確認
hailortcli fw-control identify
Firmware VersionやBoard Nameが表示されればOK
Serial Number、Part Number、Product Nameが<N/A>になっているが大丈夫そう。
カメラモジュールが認識されているか確認
rpicam-hello -t 10s
カメラの画像が10秒表示されていればOK
デモで動作確認
ファイルを取得
cd git clone --depth 1 https://github.com/raspberrypi/rpicam-apps.git ~/rpicam-apps
公式ドキュメント通りだと動作しなかったため、--post-process-fileに別の場所にあるjsonファイルを指定しました。
rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/hailo_yolov6_inference.json --lores-width 640 --lores-height 640
色々試してみる
Hailoが用意しているサンプルを試します。
ファイルを取得
cd git clone https://github.com/hailo-ai/hailo-rpi5-examples.git
必要なファイルをインストール
cd hailo-rpi5-examples sudo apt install meson ./install.sh
サンプルはvenv環境で実行するため、仮想環境を起動
source setup_env.sh
物体検出のサンプル
python basic_pipelines/detection.py --input resources/detection0.mp4 -f
30fpsの動画に対して、30fpsで表示されているので、ほぼリアルタイムで処理されてます。
CPU負荷は25%程度でした。
セグメンテーションのサンプル
python basic_pipelines/instance_segmentation.py --input resources/detection0.mp4 -f
こちらも30fpsの動画に対して、30fpsで表示されているので、ほぼリアルタイムで処理されてます。
CPU負荷は35%程度でした。
骨格検出のサンプル
python basic_pipelines/pose_estimation.py --input resources/detection0.mp4 -f
こちらも30fpsの動画に対して、30fpsで表示されているので、ほぼリアルタイムで処理されてます。
CPU負荷は30%程度でした。
仮想環境を終了
deactivate
最後に
26TOPSの処理速度はRyzen 7 8845HSの16TOPSを超えてしまいます。
価格とRaspberry Pi 5で使用できることを考えると、手軽に遊べる環境が欲しい人にはお勧めできると思います。