13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi AI Cameraのセットアップ手順

Last updated at Posted at 2024-10-04

1. Raspberry Pi AIカメラの特徴

Raspberry Pi AIカメラは、Raspberry Piによって提供されるコンパクトなカメラモジュールで、Sony IMX500 インテリジェントビジョンセンサーをベースにしています。

こちらから購入可能です。
https://www.raspberrypi.com/products/ai-camera/

IMX500は、12メガピクセルのCMOSイメージセンサーと、さまざまな一般的なニューラルネットワークモデル向けのオンボード推論アクセラレーションを組み合わせており、ユーザーは別途アクセラレーターを用意することなく、高度なビジョンベースのAIアプリケーションを開発することが可能です。
(https://datasheets.raspberrypi.com/camera/ai-camera-product-brief.pdf)

  • 解像度: 12メガピクセルの高解像度で鮮明な映像をキャプチャ可能。
  • フレームレート: 高速なフレームレートで、リアルタイムのAI処理に最適。
  • AI機能: 顔認識や物体検出、動作検知など、様々なAIタスクをカメラ自体で処理可能。
  • 接続性: Raspberry Piと簡単に接続し、Pythonなどのプログラミング言語で制御可能。

PXL_20241004_171740972.jpg

2. Raspberry Pi AIカメラのセットアップ手順

次に、Raspberry PiとAIカメラのセットアップ手順を紹介します。公式の手順書に沿って進めていきます。

必要なもの

  • Raspberry Pi 4 Model B または Raspberry Pi 5 board.
  • Raspberry Pi AIカメラ
  • microSDカード(Raspberry Pi OS 64bit インストール済み)
  • インターネット接続(Wi-Fiまたは有線)
  • 電源アダプタ
  • モニターとMicro HDMIケーブル

手順

1.Raspberry PiにAIカメラを接続

  • Raspberry PiのカメラポートにAIカメラを接続します。

  • ケーブルがしっかりと接続されていることを確認してください。

  • ケーブルの指す向きを間違えないようにします。(Raspberry Pi 4 Model Bの場合)
    PXL_20241004_175347762~2.jpg

  • Raspberry Pi 5の場合は同梱されている先の細いケーブルの方に差し替えます。

  • ケーブルを取り替えるために、まず黒い止め具を外す必要があります。
    止め具の両端にある小さな爪に軽く指を引っ掛けて、上に引き上げます。この動作で止め具が緩み、フレキケーブルが外せます。
    PXL_20241004_205112967.jpg

  • ケーブル交換後にRaspi基板に指す向きを間違えないようにします。
    PXL_20241004_205734174.jpg

2.IMX500のFirmwareのインストール

  • 公式ドキュメントに従ってIMX500のfirmwareをインストールします。
  • ラズパイのTerminal上で以下を実行
sudo apt update && sudo apt full-upgrade
sudo apt install imx500-all
  • インストールが成功すると、imx500のfirmwareやAI modelがデバイスにインストールされます。
Setting up imx500-firmware (0.FF17.8) ...
Setting up imx500-models (1.5.2-2) ...
Setting up rpicam-apps-imx500-postprocess (1.5.2-2) ...
Setting up imx500-all (1.5.2-2) ...
  • インストール後、Raspberry PiをRebootします。
sudo reboot
  • 再起動後に正しく設定できていると、dmesgのログの中にDevice found is imx500というキーワードが見つかります。
pi@raspberrypi:~ $ sudo dmesg | grep imx500
[    0.532671] platform 1f00110000.csi: Fixed dependency cycle(s) with /axi/pcie@120000/rp1/i2c@88000/imx500@1a
[    3.939666] rp1-cfe 1f00110000.csi: found subdevice /axi/pcie@120000/rp1/i2c@88000/imx500@1a
[    4.100494] imx500 6-001a: Device found is imx500
[    4.103828] rp1-cfe 1f00110000.csi: Using sensor imx500 6-001a for capture

3. 物体認識を動かしてみる

  • rpicam-helloというアプリケーションを使って、mobilenet_ssd を動かします。rpicam-hello自体やIMX500で動くAI Modelは、前のStepsで既にインストールされています。
rpicam-hello -t 0s --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json --viewfinder-width 1920 --viewfinder-height 1080 --framerate 30
  • IMX500への AI Firmwareのupdateに1,2分かかるので、少し待ちます。進捗がTerminalに表示されていますので、分かりやすいです。
    image.png

  • uploadが完了すると、以下のようにリンゴの物体認識が動かせました。パフォーマンスも良好で30fps程度出ていると思います。
    image.png

4. Picamera2 で物体認識を動かしてみる。

  • Picamera2は、Raspberry Pi財団が提供する新しいPythonライブラリで、Raspberry Piカメラモジュールを簡単に制御するためのツールです。
  • 公式ドキュメント を参考にして、picamera2のインストールをします。
sudo apt install python3-opencv python3-munkres
git clone https://github.com/raspberrypi/picamera2.git
  • picamera2をcloneしたディレクトリの下にある、examples/imx500フォルダに移動して、picamera2のサンプルスクリプトを実行します。モデルはYoloV8のモデルを指定します。
cd picamera2/examples/imx500
python imx500_object_detection_demo.py --model /usr/share/imx500-models/imx500_network_yolov8n_pp.rpk --ignore-dash-labels -r
  • 以下のようにリンゴが検出できました。
    image.png

  • 他に利用可能なpose estimationやsegmentationのAI Modelは/usr/share/imx500-models/以下に置かれているようです。他のAIタスクも簡単に試せるのは非常に魅力的です。

pi@raspberrypi:~ $ ls -la /usr/share/imx500-models/
total 98716
drwxr-xr-x   2 root root    4096 Oct  4 19:31 .
drwxr-xr-x 241 root root   12288 Oct  4 19:59 ..
-rw-r--r--   1 root root 2574800 Sep 28 14:37 imx500_network_deeplabv3plus.rpk
-rw-r--r--   1 root root 3722528 Sep 28 14:37 imx500_network_efficientdet_lite0_pp.rpk
-rw-r--r--   1 root root 6285760 Sep 28 14:37 imx500_network_efficientnet_bo.rpk
-rw-r--r--   1 root root 5576144 Sep 28 14:37 imx500_network_efficientnet_lite0.rpk
-rw-r--r--   1 root root 6838704 Sep 28 14:37 imx500_network_efficientnetv2_b0.rpk
-rw-r--r--   1 root root 6681664 Sep 28 14:37 imx500_network_efficientnetv2_b1.rpk
-rw-r--r--   1 root root 6826864 Sep 28 14:37 imx500_network_efficientnetv2_b2.rpk
-rw-r--r--   1 root root 2104384 Sep 28 14:37 imx500_network_higherhrnet_coco.rpk
-rw-r--r--   1 root root   67056 Sep 28 14:37 imx500_network_inputtensoronly.rpk
-rw-r--r--   1 root root 5222544 Sep 28 14:37 imx500_network_levit_128s.rpk
-rw-r--r--   1 root root 5072400 Sep 28 14:37 imx500_network_mnasnet1.0.rpk
-rw-r--r--   1 root root 4079808 Sep 28 14:37 imx500_network_mobilenet_v2.rpk
-rw-r--r--   1 root root 3612448 Sep 28 14:37 imx500_network_mobilevit_xs.rpk
-rw-r--r--   1 root root 2335520 Sep 28 14:37 imx500_network_mobilevit_xxs.rpk
-rw-r--r--   1 root root 3281696 Sep 28 14:37 imx500_network_nanodet_plus_416x416_pp.rpk
-rw-r--r--   1 root root 3118976 Sep 28 14:37 imx500_network_nanodet_plus_416x416.rpk
-rw-r--r--   1 root root 1663152 Sep 28 14:37 imx500_network_posenet.rpk
-rw-r--r--   1 root root 3440912 Sep 28 14:37 imx500_network_regnetx_002.rpk
-rw-r--r--   1 root root 4054464 Sep 28 14:37 imx500_network_regnety_002.rpk
-rw-r--r--   1 root root 5464912 Sep 28 14:37 imx500_network_regnety_004.rpk
-rw-r--r--   1 root root 6211824 Sep 28 14:37 imx500_network_resnet18.rpk
-rw-r--r--   1 root root 4081184 Sep 28 14:37 imx500_network_shufflenet_v2_x1_5.rpk
-rw-r--r--   1 root root 1597680 Sep 28 14:37 imx500_network_squeezenet1.0.rpk
-rw-r--r--   1 root root 3965824 Sep 28 14:37 imx500_network_ssd_mobilenetv2_fpnlite_320x320_pp.rpk
-rw-r--r--   1 root root 3126656 Sep 28 14:37 imx500_network_yolov8n_pp.rpk

5. 結果と感想

必要なツールのインストール手順も非常に簡単で、aptコマンドを使うだけで、あっという間にセットアップが完了しました。特に面倒な手順もなく、初心者でもスムーズに導入できるのが魅力的です。

実際にAIカメラを使ってみたところ、パフォーマンスも非常に良好で、処理の遅延はほとんど感じられませんでした。顔認識などの物体認識タスクも、リアルタイムでスムーズに実行され、カメラの応答性も高いです。

Raspberry PiにAIカメラを接続してから短時間でセットアップを完了できたことで、すぐにIMX500を使ったEdge AIを体験することができました。エッジデバイス上でのAI処理をこれほど簡単に試せるのは、大きなメリットだと感じました。AIカメラに興味がある方には、ぜひこの体験をおすすめしたいです。

13
9
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
13
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?