今回はラズベリーパイでお手軽の動画撮影が可能なWebカメラの使い方を解説したいと思います。
防犯カメラや生き物の観察など色々な用途に応用できます。
また、OpenCVの活用事例についても以下の記事で解説していますので、あわせてご覧ください。
Raspberry Pi(ラズベリーパイ)とは
Raspberry Pi(ラズベリーパイ)はイギリスのラズベリーパイ財団が教育用に開発したボードコンピュータです。
最新のRaspberry Pi 4では、ARMアーキテクチャを採用したBroadcom製の高性能SoC BCM2711を搭載しており、1.5GHzで動作するARM Cortex-A72が4コアとマイコンボードの中では非常に高速な処理能力を持っています。また、ユーザーがアクセス可能な40ピンのGPIOも搭載しており、外部ハードウェアを制御することが可能です。
詳細なスペック等は以下の記事で解説していますので、あわせてご覧ください。
今回使用するUSBカメラ
今回使用するカメラはロジクール製のWebカメラでUSB接続できるタイプのものを用意しました。普通にアマゾンなどで販売されているものです。
ロジクール Webカメラ C270n ブラック HD 720P ウェブカム ストリーミング 小型 シンプル設計 ウェブカメラ 国内正規品 2年間メーカー保証
写真のようにRaspberri Pi 4のUSBコネクタに差し込むだけで、ハードウェアの準備は完了です。リボンケーブルで接続するタイプのカメラモジュールよりもフレームレートは落ちますが手軽に扱えますし、価格も安いです。
ちなみにフレームレートが30fpsくらいほしいよという方には、以下の記事でカメラモジュールの使い方も解説していますのでご覧ください。
OpenCVのインストール
USBカメラから画像を取り込む際に使用する画像処理ライブラリ、OpenCVをインストールしていきます。
インストール手順
まずはpipを最新にアップブレードします。
pip3 install --upgrade pip
続いてOpenCVを使用するのに必要なライブラリをインストールします。
sudo apt-get install libatlas-base-dev
OpenCVの最新版をインストールします。
sudo pip3 install opencv-python
これでインストールは完了です。
インストール時にエラーが発生する場合
私の環境ではOpenCVインストール時に以下のようなエラーが発生しました。
RuntimeError: module compiled against API version 0xf but this version of numpy is 0xd
元々入っていたNumpyとOpenCVのバージョン不整合が原因のようですので、Numpyをアップグレードします。
sudo pip3 install numpy --upgrade
これでバージョン不整合が解消されました。
作成したプログラム
USBカメラで撮影した画像を取り込み、動画としてウィンドウで表示するプログラムをPythonで作成しました。
import cv2
#VideoCaptureオブジェクト取得
cap = cv2.VideoCapture(-1)
print("start")
while(True):
#フレームを取得
ret, frame = cap.read()
if not ret:
print("not capture")
break
#画面サイズを指定
print(frame.shape)
frame = cv2.resize(frame, (640, 480))
#取得したフレームをウインドウ上に表示する
cv2.imshow("frame", frame)
#キーボード入力処理
key = cv2.waitKey(1)
if key == 13: #enterキーの場合処理を抜ける
break
#カメラデバイスクローズ
cap.release()
#ウィンドウクローズ
cv2.destroyAllWindows()
動作確認
先ほどのプログラム(usbcam.py)をラズベリーパイのデスクトップ環境で使用できる開発ツールThonny(標準で入っています)で開いて実行してみてください。
画面右上のウインドウでカメラの映像を確認することができました。
\ Pythonを自宅で好きな時に学べる! /
まとめ
今回はカメラモジュールよりも手軽に使えるWebカメラでの撮影方法について解説しました。このWebカメラを使った防犯カメラとして使用する方法も以下の記事で解説していますので、あわせてご覧ください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
それでは、また次の記事でお会いしましょう。
\ Raspberry Piを使ったアプリ開発を学びたい人には自宅で学べるUdemyがおすすめ! /
講座単位で購入できます!
コメント