【Raspberry Pi】カメラモジュールの解像度、フレームレートを確認する

  • URLをコピーしました!

こんにちは、むらさんです。
リモートデスクトップでラズパイに接続してカメラの映像を見た時の「カクカク」をなんとかしたい!
ということで、今回はRaspberry Piのカメラモジュールを使用した際の、フレームレートと解像度の確認方法について書きたいと思います。

目次

Raspberry Pi カメラモジュールの映像がカクカクする

先日、Raspberry Piからカメラモジュールを通して動画を表示する方法を記事にしました。

無事にRaspberry Piのデスクトップ上に撮った映像を表示することができました。
しかし、映像がカクカクしていて、フレームレートが1桁しか出ていないように見えます。

考えられる問題点

Twitterのフォロワー様よりアドバイスを頂き、以下の問題点を挙げてみました。

・解像度が高すぎる
・リモートデスクトップの遅延
・GPUメモリの不足

3点を改善して高速化できないかと考えています。
とりあえず、今回は画像として取り込んだ際の解像度と、そもそもカメラモジュールの性能としてどれくらいのフレームレートが出ているのかを確認したいと思います。

解像度とフレームレートを確認するソースコード

OpenCVのライブラリを使用すると、解像度とフレームレートは簡単に確認ができるようです。
以下のようなソースコードを作成してみました。

import cv2
#VideoCaptureオブジェクト取得
cap = cv2.VideoCapture(-1)

#カメラの情報を取得
fps = int(cap.get(cv2.CAP_PROP_FPS)) # フレームレートを取得
frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # X軸解像度を取得
frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # Y軸解像度を取得

#情報を出力
print("FPS=", fps)
print("X Width = ", frame_width)
print("Y Width = ", frame_height)

#カメラデバイスクローズ
cap.release()

#ウィンドウクローズ
cv2.destroyAllWindows()

7行目:
カメラモジュールのフレームレートを取得します。

8行目:
画像のX軸方向のサイズを取得します。

9行目:
画像のY軸方向のサイズを取得します。

実行結果

先ほどのプログラムを実行した結果は以下の通りです。

FPS= 30
X Width =  640
Y Width =  480

フレームレートと解像度取得できました。
取得結果をみるとカメラ自体は30fps出ているので問題ありませんし、解像度も高すぎるというわけでもないようです。(さらに高速化したいのであれば、解像度を必要ギリギリまで下げるのも良いかと思います)

まとめ

この結果から、Raspberry Piのリモートデスクトップの通信遅延か、もしくはデスクトップ自体が重い可能性が高いのではと思われます。
次回はGPUに割り当てられるメモリ容量を大きくしてテストしてみたいと思います。

また、ラズベリーパイの画像認識について学びたい方にはUdemyの以下の講座がおすすめです。

【初心者向けAI・IoT講座】 ラズベリーパイ(Raspberry Pi)とOpenCVで作る簡単画像認識システム icon


それでは、また次の記事でお会いしましょう。

参考

よかったらシェアしてね!
  • URLをコピーしました!
目次