前回、超小型&超低消費電力のAIカメラシステム検討では、クラウドAI推論が抱えるレイテンシやプライバシーリスク問題を解決するため、エッジコンピューティングによる5W以下の低消費電力設計を目指しました。Google CoralやIntel系アクセラレータなど様々なソリューションを比較検討した結果、Raspberry Pi Zero 2W(約2W)とSony IMX500の組み合わせが最適解と判断しました。
前回記事:その1
https://techietechnology.co.jp/2025/03/05/make-aicamera-01/
この組み合わせはセンサー内部でAI処理を完結させることでプライバシー保護と処理遅延低減を実現し、数百台規模の大規模導入にも適しています。リアルタイム性が求められるIoT・ロボティクス・自動運転などの分野で広く応用可能と期待されます。本日はRaspberry Pi Zero 2W+Raspberry Pi AI Cameraを使って実際にセットアップしてみましょう。
Raspberry Pi Zero 2Wの物理的フォームファクターは極めて小型(65mm×30mm、高さ最大5.2mm)であり、わずか10gの質量で携帯性に優れています。本デバイスの核となるSoCはBroadcom BCM2710A1であり、64-bit ARMアーキテクチャ(Cortex-A53)を採用したクアッドコアプロセッサが1GHzで動作します。RAM容量は512MBと小さいもののサイズと消費電力比では許容範囲内です。
注目すべき技術仕様として、無線通信機能(802.11b/g/n)およびBluetooth 4.2/BLE、HDMI出力(Mini端子)、USB 2.0 OTG、そして40ピンGPIOヘッダを標準装備しています。特筆すべき点は、VideoCore IV GPUによるハードウェアエンコード機能(H.264、1080p30)が実装されていることです。上位モデルであるRaspberry Pi 5ではハードウェアエンコード非搭載となっており、ちょっとそれはどうなの?って思う人も多い今日この頃です。Raspberry Pi Zero 2WのハードウェアH.264エンコード機能は、リソース制約のあるエッジコンピューティング環境においてビデオストリーミングの効率化に寄与する重要な技術的アドバンテージです。
Raspberry Pi Zero 2W特徴
- Broadcom BCM2710A1、クアッドコア64-bit SoC(Arm Cortex-A53@1 GHz)
- VideoCore IV GPU
- 512 MB LPDDR2 DRAM
- 802.11b/g/n 無線LAN、Bluetooth 4.2 / Bluetooth Low Energy(BLE)、オンボードアンテナ
- MicroSDカードスロット
- Mini HDMI / USB 2.0 OTGポート
- Micro USB給電(5 V/2.5 A)
- HAT互換の40ピンヘッダ
- テストポイント経由のリセットピンおよびコンポジットビデオ
- CSI-2カメラコネクタ
- マルチメディア
- H.264、MPEG-4デコード(1080p30)
- H.264エンコード(1080p30)
- OpenGL ES 1.1、2.0グラフィックス
- 製品寿命: 最短で2028年1月まで供給予定
- 動作温度: -20℃~+70℃
- 基板寸法: 65 mm x 30 mm(高さ 最大5.2 mm)
- 重さ: 10 g
Raspberry Pi AI Cameraを見てみましょう。Raspberry Pi カメラモジュール V3と基板外形および取付穴が同一ですが、全体的な厚みが増加しています。本製品の最大の技術的特徴は、12.3MPのSony IMX500インテリジェントビジョンセンサを搭載している点です。このセンサには低消費電力推論エンジンが内蔵されており、入力テンソル最大サイズは640(H)×640(V)という制約がありますが、この制限内でさまざまなニューラルネットワークモデルをオンボードで実行できます。
画角については、水平FoV:66±3°、垂直FoV:52.3±3°とやや狭い仕様となっていますが、マニュアルフォーカス機能により20cm~∞の範囲で調整可能です。本モジュールの技術的優位性は、Raspberry Pi本体の演算リソースを解放し、他のタスクに専念させることができる点にあります。ソフトウェア面では、rpicam-appsアプリケーションスイート、libcamera、およびPicamera2ライブラリがメタデータをサポートしており、初心者から経験者まで幅広いユーザー層に対応しています。
Raspberry Pi AI Camera特徴
- 12.3 MP Sony IMX500インテリジェントビジョンセンサを搭載
- 低消費電力推論エンジンを搭載
- MobileNetマシンビジョンモデルをプリロード済み
- 画角:76°
- マニュアルフォーカス
- ケーブル長:200 mm
仕様
- センサ:Sony IMX500
- 解像度:12.3 MP
- センササイズ:7.857 mm(1/2.3)
- ピクセルサイズ:1.55 μm × 1.55 μm
- 水平/垂直: 4056 × 3040ピクセル
- IRカットフィルタ搭載
- マニュアルフォーカス
- フォーカスレンジ:20 cm~∞
- 焦点距離:4.74 mm
- 水平FoV:66±3°
- 垂直FoV:52.3±3°
- 焦点比(F値):F1.79
- 赤外線感度:なし
- 出力:画像(Bayer RAW10)、ISP出力(YUV/RGB)、ROI、メタデータ
- 入力テンソル最大サイズ:640(H) x 640(V)
- 入力データ型:int8 or uint8
- メモリサイズ:8388480 byte(ファームウェア、ネットワーク重みファイル、および作業メモリ用として)
- フレームレート:
- 2×2 ビニング:2028 × 1520 10 bit 30 fps
- フル解像度:4056 × 3040 10 bit 10 fps
- 寸法: 25 × 24 × 11.9 mm
- ケーブル長:200 mm
- ケーブルコネクタ:15 × 1 mm FPC or 22 × 0.5 mm FPC
- 動作温度:0℃~50℃
Raspberry Pi Zero 2WとRaspberry Pi AI Cameraセットアップ
Raspberry Pi Zero 2WへのOS展開においては、リソース最適化とAI推論パフォーマンスのトレードオフを考慮しました。32bitアーキテクチャはメモリフットプリントが小さいメリットがありますが、IMX500センサーとの最適な連携およびニューラルネットワーク処理効率を優先し、64bit OSを選択しました。Raspberry Pi AI Camera料から使い方を見てみましょう。
https://www.raspberrypi.com/documentation/accessories/ai-camera.html
まず環境構築として、依存関係の更新とシステムアップグレードを実行します。
sudo apt update && sudo apt full-upgrade
IMX500センサーの初期化には、ランタイムファームウェアのロードが必須です。これには推論エンジン用バイナリ、ニューラルネットワークウェイトファイル、および後処理モジュールが含まれます。以下のコマンドでこれらのコンポーネントを一括インストールします。
sudo apt install imx500-all
sudo reboot
簡単に動作を試すならrpicam-appsを利用します。rpicam-appsカメラアプリケーションには、後処理パイプラインで実行できるIMX500物体検出とポーズ推定ステージが含まれています。/usr/share/rpicam-assets/にある後処理JSONファイルを使用しています。
後処理パイプライン (ポストプロセッシングパイプライン)とは、カメラセンサーから得られた画像やメタ情報(AI推論結果など)に対して、必要な処理を行うフロー のことです。IMX500による推論結果(例: 画面内のどこに何が写っているか、人の関節座標はどこにあるか)は、カメラの映像と別にメタ情報として送られてきます。 そのメタ情報を 人間が分かる形で可視化 したり、別のプログラムへ転送するには、後処理 が不可欠です。 後処理パイプラインを使うことで、撮影と同時にオーバーレイ表示やファイル出力が可能になります。
MobileNet SSDニューラルネットワークは基本的な物体検出を実行し、検出された各オブジェクトの境界ボックスと信頼度値を提供します。MobileNet SSD とは、物体検出 (Object Detection) を行うための ニューラルネットワークモデル の一種です。軽量かつ高精度であるため、Raspberry Pi AI Camera のようなエッジデバイス環境でもリアルタイムな物体認識を実現できます。
imx500_mobilenet_ssd.jsonにはMobileNet SSDニューラルネットワークを使用したIMX500物体検出後処理ステージの設定パラメータが含まれています。imx500_mobilenet_ssd.jsonは、2つのステージを含む後処理パイプラインを宣言しています。後処理パイプラインをどう構築して、どのようなパラメータで動かすかを JSON フォーマットで記述しています。
- imx500_object_detection:ニューラルネットワークによって出力テンソルで生成された境界ボックスと信頼度値を選び出します
- object_detect_draw_cv:画像に境界ボックスとラベルを描画します
ステージとは、Raspberry Pi のカメラアプリケーション (rpicam-apps や Picamera2) が持つ後処理パイプライン の中で特定の処理を担当するモジュール単位 のことを指します。
MobileNet SSDテンソルは、最終的な境界ボックス出力を生成するためにRaspberry Pi上で重要な後処理を必要としません。すべての物体検出はAIカメラで直接実行されます。MobileNet SSD テンソル とは、MobileNet SSDニューラルネットワークが 入力画像から推論を行った結果 を、多次元配列として表した 出力データ のことです。このテンソルには複数の検出物体の バウンディングボックス や クラスID、信頼度 が含まれます。次のコマンドは物体検出後処理を使用してrpicam-helloを実行します:
rpicam-hello -t 0s –post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json –viewfinder-width 1920 –viewfinder-height 1080 –framerate 30
以下写真はドキュメントのものです。こんな感じに動作します。
コマンドを実行すると、ニューラルネットワークによって認識されたオブジェクトに境界ボックスをオーバーレイするビューファインダーが表示されるはずです。同様にドキュメントには、録画方法やポーズ推定、Picamera2についての説明が続きます。
拡張性も考慮されており、時間的フィルタリングやヒステリシスの追加、さらにはカスタムモデルの転移学習も可能です。エッジAIカメラシステムとして組み込む際は、推論結果の後処理ロジックのカスタマイズによりアプリケーション固有の要件に対応できます。
その3につづく
https://techietechnology.co.jp/2025/03/11/make-aicamera-03/