1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pi AI Cameraを2つ繋いでマルチカメラシステム試してみた

Last updated at Posted at 2025-03-26

Pi AI Cameraを2つ繋いでマルチカメラシステム試してみた

こんにちは。

ソニーセミコンダクタソリューションズの明です。

本記事では、2台のカメラで撮影した風景に対し、異なるAIモデルで認識を行わせる方法について紹介します。

はじめに

2台のカメラで異なるAI認識をするためには、Raspberry Pi 5以前では下記のようにカメラ2台、Raspberry Pi 2台が必要でした。

image.png

しかし、Raspberry Pi 5ではCameraの入力が1系統から2系統に増えたことで、Raspberry Pi1台に対してカメラ2台まで接続が可能となっています。

そこで本記事では、1台のRaspberry Pi5で2台のRaspberry Pi AI Cameraを接続し、異なるAIモデルを動作させる方法を紹介します。

本記事では動作検証用のサンプルを公開し、下記の通り実行まで解説します。

  1. Prerequisites
  2. Raspberry Pi 5とRaspberry Pi AI Camera2台の接続
  3. サンプルアプリについて
  4. サンプルアプリのオプションについて
  5. 実行例

1. Prerequisites

最初にアップデートをかけます。

$ sudo apt update && sudo apt full-upgrade

Raspberry Pi AI Cameraで必要となる環境をインストールします。

$ sudo apt install imx500-all

Linux Kernel versionを確認します。

記事投稿時点では、下記のように"(2024-11-25)" と表示されます。

$ uname -a
Linux raspberrypi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux

2. Raspberry Pi 5とRaspberry Pi AI Camera2台の接続

カメラ2台をRaspberry Pi 5 へ2台接続します。

image.png

2台のカメラが認識されているか確認しましょう。

私の環境では2台とも認識され、下記のように表示されました。

$ rpicam-hello --list-cameras Available cameras
 ----------------- 
0 : imx500 [4056x3040 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx500@1a) 
Modes: 'SRGGB10_CSI2P' : 2028x1520 [30.02 fps - (0, 0)/4056x3040 crop] 4056x3040 [10.00 fps - (0, 0)/4056x3040 crop]

1 : imx500 [4056x3040 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@80000/imx500@1a) 
Modes: 'SRGGB10_CSI2P' : 2028x1520 [30.02 fps - (0, 0)/4056x3040 crop] 4056x3040 [10.00 fps - (0, 0)/4056x3040 crop]

3. サンプルアプリについて

本記事で利用するサンプルは下記で公開しています。

リンク先のサンプルは、下記の構成で公開しています。

これらのサンプルから2つ選び、それぞれのカメラに対して使用します。

file description
README.md 各scriptのusageのまとめ
imx500_classification_demo_roi.py 特定のROIに対してClassificationを行うサンプル
imx500_object_detection_demo_roi.py 特定のROIに対してObject detectionを行うサンプル
imx500_pose_estimation_higherhrnet_demo_roi.py 特定のROIに対して、Pose estimationを行うサンプル
imx500_segmentation_demo_roi.py 特定のROIに対して、Segmentationを行うサンプル

4. サンプルアプリのオプションについて

各サンプルでは、オプションを下記の通り3つのオプションを用意しています。

long format description default
--inference-roi ROIを"X,Y,Width,Height"の形式で指定します。ROIの数値は4Kの解像度(4056,3040)を前提に設定してください。
--camera-num 実行するカメラの番号(0か1)を指定して下さい 1
--show-preview-roi ROI領域のみを拡大表示します

下記にターミナルで入力例を示します。

$ imx500_xxx_demo_roi.py --inference-roi [X, Y, Width, Height] --camera-num CAMERA_NUM [0か1] --show-preview-roi

5. 実行例

本記事での実行環境は下記です。

  • Raspberry Pi 5
  • Raspberry Pi AI Camera 2台
  • Linux version:Linux raspberrypi 6.6.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux

まずは例として、カメラ0にclassification, カメラ1にobject detectionを動かします。

ターミナルを2つ立ち上げ、それぞれのターミナルでカメラ0、1の順に下記の通り入力してください。

  • カメラ 0
$ python imx500_classification_demo_roi.py --inference-roi 1200,900,1200,1200 --camera-num 0 -i
  • カメラ 1
$ python imx500_object_detection_demo_roi.py --inference-roi 1200,900,1200,1200 -i

起動に成功すると、このように2台のカメラで同じROIに対し、異なるAI認識をかけることができます。

なお、スクリーンショット内左の認識表示classificationがカメラ0、右の認識表示object detectionがカメラ1になります。

image.png

次の例として、カメラ0にsegmentation, カメラ1にobject detectionを動かします。
S
こちらも先ほどと同様ターミナルを2つ立ち上げ、それぞれのターミナルでカメラ0、1の順に下記の通り入力してくださSい。

  • カメラ 0
$ python imx500_segmentation_demo_roi.py --inference-roi 1200,900,1200,1200 --camera-num 0  --show-preview-roi -i
  • カメラ 1
$ python imx500_object_detection_demo_roi.py --inference-roi 1200,900,1200,1200 -i

起動に成功すると、先ほど同様に下記の通りそれぞれのカメラで異なる認識表示がされます。

image.png

まとめ

本記事では、Raspberry Piを用いて2台のRaspberry AI Cameraを稼働し、異なるAI認識を行う方法について紹介しました。

2台のカメラでは異なる視野になりますが、ROIで重なっている部分へ認識対象を絞ることで擬似的に同一風景への異なるAI認識が実現できたかと思います。

困った時は

もし、記事の途中でうまくいかなかった場合は、気軽にこの記事にコメントいただいたり、以下のサポートのページもご覧ください。
コメントのお返事にはお時間を頂く可能性もありますがご了承ください。

また、記事の内容以外で AITRIOS についてお困りごとなどあれば以下よりお問い合わせください。

RaspberryPiに関連する疑問がある場合は、下記フォーラムをご確認、ご活用ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?