reTerminalでAI Cameraを動かす

Seeed K.K.の松岡です。

Raspberry Pi AI Cameraを入手しました。

従来のカメラで画像AI処理を常時稼働させるとRaspberry Piがフル稼働するため、MPUやGPUに負担がかかり心配でした。 しかし、Raspberry Pi AI Cameraを使うことでこの負担を軽減できます。このカメラはソニー製のAI処理機能付きイメージセンサーIMX500を搭載しており、カメラ側で画像AI処理を行います。

このRaspberry Pi AI Camera、reTerminalにも接続して使えそうなので実際に動くか試してみました。

Raspberry Pi AI Cameraとは?

あっきぃさんの記事が分かりやすいです。

www.raspi.jp

Raspberry Pi AI Cameraは、リボンケーブルでRaspberry PiのCSIコネクタに接続して使います。

リボンケーブルは、15pin-22pinと15pin-15pinの2種類が付属しています。 15pin-22pinはRaspberry Pi 5やRaspberry Pi Zeroシリーズ、15pin-15pinはRaspberry Pi 4など古いモデルに繋ぐときに使います。

reTerminalにはCSIコネクタが2つある

reTerminalをぐるっと見回してもCSIコネクタが見つかりませんが、実はreTerminal内部の基板上にあるんです。 15pinのCSIコネクタCSI0と、22pinのCSIコネクタCSI1です。

そして、リボンケーブルを外部に引き出す穴もちゃんとあります。いいね!

reTerminalでRaspberry Pi AI Cameraを動かす

それではreTerminalにRaspberry Pi AI Cameraを繋いで動かしてみましょう。

reTerminalにRaspberry Pi AI Cameraを繋ぐ

  1. バックパネルとヒートシンクを外す

    reTerminalのeMMCを初期状態に戻す - Seeed K.K. エンジニアブログを参考に、バックパネルとヒートシンクを外します。

  2. 中間パネルを外す

    ネジ4本を外して、中間パネルを取り外します。 中間パネルに貼り付けてあるWi-Fi/BLEアンテナとCompute Module 4が繋がっていて、中間パネルを無理に引っ張ると断線してしまう可能性があります。気をつけて作業してください。

  3. Raspberry Pi AI CameraをCSI0コネクタに繋ぐ

    15pin-15pinリボンケーブルで繋ぎます。 リボンケーブルには表裏と、カメラ側Raspberry Pi本体側があるので、写真をよく確認しましょう。 また、中間パネルとバックパネルを通すのを忘れずに。

出来上がりました。

reTerminalにRaspberry Pi AI Cameraを認識させる

  1. パッケージを最新にする

    Raspberry Pi OSに元々インストールされているパッケージを最新にします。 念のためリブートしておきます。

     $ sudo apt update && sudo apt full-upgrade
     $ sudo reboot
    
  2. カメラを認識させる

    /boot/firmware/config.txtを設定変更してカメラを認識させます。 camera_auto_detect=1をコメントアウトしてdtoverlay=imx500,cam0を追加します。 そして、リブートします。

     $ sudo vi /boot/firmware/config.txt
     #camera_auto_detect=1
     dtoverlay=imx500,cam0
     $ sudo reboot
    
  3. カメラを認識しているか確認する

    デバイスドライバがRaspberry Pi AI Cameraを認識できているか確認します。

    rpicam-hello --list-camerasを実行して、imx500が表示されていれば正常に認識できています。

     $ rpicam-hello --list-cameras
     Available cameras
     -----------------
     0 : imx500 [4056x3040 10-bit RGGB] (/base/soc/i2c0mux/i2c@0/imx500@1a)
         Modes: 'SRGGB10_CSI2P' : 2028x1520 [30.02 fps - (0, 0)/4056x3040 crop]
                                  4056x3040 [10.00 fps - (0, 0)/4056x3040 crop]
    
  4. カメラの画像をリアルタイムに表示する

    カメラの画像を画面に表示してみます。

     $ rpicam-hello -t 0
    

    ここではまだ画像AI処理は実行していません。ただのカメラとして機能しています。

画像AI処理を実行する

  1. IMX500ファームウェアをインストール

    公式ドキュメントのとおり、IMX500ファームウェアをインストールします。

     $ sudo apt install imx500-all
    
  2. カメラの画像を画像AI処理しながらリアルタイムに表示する

    カメラの画像をObject Detectionしながら画面に表示してみます。

     $ rpicam-hello -t 0 --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json --viewfinder-width 1920 --viewfinder-height 1080 --framerate 30
    

    CPU負荷は14%~15%程度でした。

www.raspberrypi.com

参考リンク

変更履歴

日付 変更者 変更内容
2024/12/2 松岡 作成