ラズパイと360度カメラで物体検出とライブストリーミング

本サイトはアフィリエイト広告を利用しています。
AI

ラズパイと360度カメラを使ってPythonからライブストリーミングをしてみました。

また360度の物体検出もテストしてみました。

使用したカメラからプログラム含めて紹介します。

 

スポンサーリンク

ラズパイと360度カメラで物体検出とライブストリーミング

ラズパイと360度カメラを使ってPythonからライブストリーミングをしてみました。

リアルタイムで360°の画像を取得できました。

 

また360度の物体検出(YOLOX)のテストも実施してみました。

ラズベリーパイと360°カメラで物体検出が出来ています。

 

テスト動画は下記となります。

 

使用した360°カメラからプログラム含めて紹介します。

 

テスト環境

ラズベリーパイ4を使用しています。OSは64bitです。

 

使用した360°カメラはRICOH THETA Vです。

USB2.0接続で少し古いタイプですが、色々なAPI・ライブラリが公開されています。

 

ラズパイでRICOHのAPIをテストした記事が下記となります。

ラズパイでRICOH THETAをUSBから操作するメモ

ラズパイでRICOH THETAをUSBから操作するメモ
360度カメラのRICOH THETAを入手したので、ラズパイから操作してみました。 GithubにあるライブラリでUSBから簡単に操作できます。 インストール方法から実行例含めて紹介します。 ラズパイでRICOH THETAをUSBから操...

 

またRICOH THETA V の2K/4Kライブストリーミングを解析した記事が下記となります。

RICOHのTHETA Xではなく、THETA Vを購入した理由

RICOHのTHETA Xではなく、THETA Vを購入した理由
コンテストで360°カメラのRICOH THETA Vを使っていました。 最新のTHETA Xではありませんでしたが、十分に機能してくれました。 個人的な開発・デバッグではTHETA Vで満足だった理由を紹介します。 RICOHのTHETA...

 

インストール

ラズパイを立ち上げてインストールしたものは下記です。

ラズパイでも強引にpipを使えるようにしています。

pip.confに「break-system-packages = true」を追記しています

 

上記のインストールだけでも、写真でのYOLOXの物体検出のテストが可能です。

下記記事で紹介しています。リンク先はこちらです。

ラズパイとONNX RuntimeでYOLOXを試してみる

ラズパイとONNX RuntimeでYOLOXを試してみる
ラズベリーパイでONNXのYOLOXを使って、物体検出のテストをしてみました。 プログラム・インストール含めて紹介します。 ラズパイとONNX RuntimeでYOLOXを試してみる ラズベリーパイでONNXのYOLOXを使って、物体検出の...

 

USBカメラからライブストリーミングできるようにライブラリをインストールします。

GStreamer・libuvc・v4l2loopback-dkmsなどが必要となります。

 

 

360°カメラのRICOH THETAに必要なライブラリも入れます。

 

GStreamerのプラグインのパスも定義しておきます。

 

 

Pythonのテストプログラム

Pythonのテストプログラムは下記GitHubに置いてあります。

GitHub - iotengineer22/pi-360camera-test: This repository present solution for my raspberry-pi 360 camera test
This repository present solution for my raspberry-pi 360 camera test - iotengineer22/pi-360camera-test

 

各テストで使用したプログラムは下記です。

Webカメラの物体検出テスト…app_gst-yolox-onnx-normal-camera.py

360°のライブストリーミング…gst-test-360-2divide.py

360°の物体検出テスト…app_gst-yolox-onnx-360-camera.py

 

YOLOXのONNXモデル

YOLOX公式から展開されているONNXのモデル(YOLOX-Nano)を使用しています。

 https://yolox.readthedocs.io/en/latest/demo/onnx_readme.html

 

wgetならば下記コマンドで入手可能です。

 

Webカメラの物体検出(YOLOX)の事前テスト

360°カメラでのテストの前に、よくある通常のWebカメラでも事前(プレ)テストしてみます。

使用するWebカメラは「logicool C270n」です。

非常に安いWebカメラですが、(スペック上では)640x480で30fpsの速度があります。

テストには十分なカメラです。

 

Webカメラでのプレテスト動画は下記です。

 

ラズベリーパイとWebカメラはUSBで接続されています。

GStreamerでパイプラインを定義して、データを取得します。

そのデータをもとに物体検出(YOLOX)して、OpenCVで表示させています。

 

オレンジボールや人の指が問題なく、検出できていることが分かります。

 

ラズパイと360°カメラでライブストリーミング

ラズパイと360°カメラを使ってライブストリーミングをしてみます。

360°カメラはRICOH THETA Vです。テスト動画は下記となります。

 

既にラズパイは起動済です。

右上には実際のラズパイと360°カメラ付近のTopviewの動画を置いています。

 

プログラムを少し確認していきます。

GStreamerを使って、360°カメラからデータを取得しています。

 

プログラムを実行します。360°ライブストリーミングの前画面と後画面が表示されています。

OpenCVでキャプチャして、前と後で2画面表示するプログラムです。

カメラ周辺にはペットボトルを置いています。

 

カメラの前にボールを投げるテストをしています。

しっかりボールの動きが確認できます。360°のライブストリーミングをできています。

 

ラズパイと360°カメラで物体検出(YOLOX)

ラズパイと360°カメラを使って物体検出(YOLOX)をしてみます。

テスト動画は下記となります。

 

既にラズパイは起動済です。

右上には実際のラズパイと360°カメラ付近のTopviewの動画を置いています。

ONNX Rumtimeを使用して、YOLOXを動かしています。

 

周辺のペットボトル、バッテリー、また投げたボール含めて360°物体検出が出来ています。

 

まとめ

ラズパイと360度カメラを使ってPythonからライブストリーミングをしてみました。

また360度の物体検出もテストしてみました。

使用したカメラからプログラム含めて紹介しました。

 

ラズパイではなく、FPGA(KR260)でも同様な360°物体検出をコンテストで実施しました。

よろしければそちらも参照お願いします。

AMD(Xilinx)のFPGAコンテストに参加した感想

AMD(Xilinx)のFPGAコンテストに参加した感想
AMD(Xilinx)とHackster(Avnet)が合同主催する、海外のコンテストに参加していました。 AMD Pervasive AI Developer Contest の「Robotics AI」部門です。 KR260というFPG...

コメント