【エッジAI】Raspi5+SONY IMX500で30FPS物体検出チャレンジ!~検出実行編 vol.22

前回、【エッジAI】Raspi5でYOLOリアルタイム物体検出チャレンジ!~検出実行編 vol.20
https://www.nakasha.co.jp/future/ai/vol20_raspi5_yolo11.html
と【エッジAI】Raspi5でYOLOリアルタイム物体検出チャレンジ!~環境整備編 vol.21
https://www.nakasha.co.jp/future/ai/vol21_raspi5_yolo11.html
でRaspi5とUSBカメラを使ったYOLOv11nモデルで2FPSの処理速度だったことを受け、今度はSONYのエッジAIカメラ"IMX500"を用いて「目指せ30FPS!」のチャレンジを実施しました。
環境をIMX500(AIRaspiCamera)にマッチさせる部分が若干難儀ではあったものの、結果的に、独自モデルをIMX形式に量子化したモデルで30FSを達成することが出来ました。
難儀だった環境構築面は後日別の記事にするとして、今回は、結果をお知らせします。
最初に、今回の結論です。
「IMX500上に独自モデルを置いて、30FPSで動作しました」
・YOLOモデルからIMX形式への変換はWSL2上のUbuntu24LTS環境で実施
・IMX形式からrpkへパッケージはRaspi側で実行
・rpkモデルを指定した物体検出で30FPSを確認
・Raspi5のCPU負荷はわずかに35%
■SONY IMX500とは
・エッジAIカメラ
物体検出や区分、セグメンテーション、ポーズ推定などのAIタスクを、Raspiなどのコンピュータを使わずにカメラ内部で実行するインテリジェントなカメラです。画像と一緒に検出結果テキスト(配列)を出力するので、検出結果のみを転送すれば、超軽量なエッジAIを構成できます。
※カメラなので、イメージをストリーミングとして出力します。当然、動画保存も静止画保存も可能です。
| RasPicamera2(IMX500) |
![]() |
・IMX500の処理パイプライン
前述のように、IMX500内部でAIタスクを実行するので、出力はイメージと検出結果です。
Raspi側はIMXから受け取ったレスポンスの表示や整形のみとなり、CPU負荷が非常に抑制されます。
| IMX500の処理 |
![]() |
・Raspi全モデル対応
Raspiに対応したカメラモジュールでは、従来からSONY製のセンサーが用いられてきました。
今回のRaspberryPiAICameraは、Raspi全モデルに対応※したエッジAIカメラとして2024年秋にリリースされました。
スイッチサイエンス
https://www.switch-science.com/products/9813?
※CSIケーブルは片方が細くなっている22pinで、OSやソフトウェアはIMXに合わせて構築する必要があります。(既存の仕組みの上に構築しようとしてもダメ。例えばUbuntu24LTSとかRaspiOS64ビットとか)
■検出結果
・aitriosのデモプログラムの場合
SONY セミコンダクターソリューションズが提供するSDKとサンプルです。
https://www.aitrios.sony-semicon.com/
modlibとしてパッケージングされたライブラリのAiCameraを使います。
| Detectionサンプルの実行 |
![]() |
| セグメンテーションサンプルの実行 |
![]() |
aitrios-rpi-application-module-library/examples/aicam/detector.py
aitrios-rpi-application-module-library/examples/aicam/segment.py
物体検出で30FPS、セグメンテーションで15FPS程度の速度が出ます。※
その際、CPUパワーはhtopでの計測で15%程度と非常に軽量です。
※モデルにはModelZoo内の非常に軽量なモデルを使っている点に注意です。
・picamera2のデモプログラムの場合
picamera2としてまとめられているライブラリを使います。
| Detectorの実行 |
![]() |
aitriosの場合と同様に、物体検出で30FPSの速度が出ます。※
picamera2/examples/imx500_object_detection_demo.py
※モデルにはModelZoo内の非常に軽量なモデルを使っている点に注意です。
・デモプログラムを改良した独自プログラム"detector.py"の場合
Youtubeの動画を再生しながら、YOLO11nモデルで飛行機、静止画を使ってオリジナルの枕木検出モデルで検出を実行して見ました。
| yolo11nモデルでYoutubeLive動画の検出 |
![]() |
| yolo8独自モデル(枕木検出モデル)でPDFの静止画を検出 |
![]() |
RaspiCamera2のデモプログラムに対して、静止画書き出し、ログ保存、FPS計測の機能を追加した"detector.py"で、物体検出で30FPSの速度が出ました。
その際のCPU負荷は35%でした。それでも随分軽いです。
Picamera2サンプルの場合との違いとして、YOLOv11n、YOLO8の独自モデルをIMX形式にコンバートしたモデルを使っており、サンプルよりも重いモデルになっています。
※サンプルにはマルチスレッド対応したプログラムもあるので、そちらをカスタマイズすればもっと効率的に動作すると思われます。(CPU負荷は増えるかもしれない)
■蛇足:ちょっと嫌なこととその対策
| フォーカスリングでちまちま設定する |
![]() |
| CSIケーブルが千切れそう |
![]() |
PiCameraの宿命ですが、フォーカスを付属のプラスチックのリングで手動であったり、CSIケーブルが短く、取り回しもしにくいのが嫌なところです。
やわらかいCSIケーブルだとか、長いケーブルだとか、インタフェースの変換なんかもあるようですので、ちょっと何とかしたいなぁと思っています。
・対策例
- CSI⇔イーサネット変換
- カメラ架台
- レンズの交換(望遠、フォーカスリング付き)
- 屋外用ハウジング
※これらのやりたいことはほぼ、インタニヤさんがカバーしてくれそうです。
https://entaniya.shop-pro.jp/?pid=179120092
■次回予告
次回の記事では、Raspi5の環境構築や、モデルコンバートのための環境構築について紹介します。
■まとめ(再掲)
「IMX500上に独自モデルを置いて、30FPSで動作しました」
・YOLOモデルからIMX形式への変換はWSL2上のUbuntu24LTS環境で実施
・IMX形式からrpkへパッケージはRaspi側で実行
・rpkモデルを指定した物体検出で30FPSを確認
・Raspi5のCPU負荷はわずかに35%
▼この記事を書いたひと

R&Dセンター 松井 良行
R&Dセンター 技術戦略担当部長。コンピュータと共に35年。そしてこれからも!
おすすめの関連記事
- 【エッジAI】Raspi5でYOLOリアルタイム物体検出チャレンジ!~検出実行編 vol.20
- 【エッジAI】Raspi5でYOLOリアルタイム物体検出チャレンジ!~環境整備編 vol.21
- 【エッジAI】Raspi5+SONY IMX500で30FPS物体検出チャレンジ!~環境整備編 vol.23
- 【エッジAI】Raspi+SONY IMX500で30FPS物体検出チャレンジ!~オリジナルモデル、静止画・ログ保存編 vol.24
機械学習・AIの最新記事
- 【エッジAI】Raspi5+SONY IMX500で30FPS枕木検出チャレンジ!~鉄道技術展2025デモ編 vol.25
- 【エッジAI】Raspi+SONY IMX500で30FPS物体検出チャレンジ!~オリジナルモデル、静止画・ログ保存編 vol.24
- 【エッジAI】Raspi5+SONY IMX500で30FPS物体検出チャレンジ!~環境整備編 vol.23
- 【エッジAI】Raspi5+SONY IMX500で30FPS物体検出チャレンジ!~検出実行編 vol.22







