【Raspberry Pi】webカメラを接続する方法

Raspberrypiをwebカメラに接続する方法

こんにちは! けい(Twitter)です.

今回は,Raspberry piにwebカメラを接続する方法について,分かりやすく説明していきたいと思います.

今回の動作環境は以下の表で行いましたが,基本どのバージョンでもできると思います.

バージョン
ラズベリーパイOSRaspbian Buster 10
PythonPython 3.7.3

Raspberry piにwebカメラを接続する方法

webカメラをUSBに接続

ラズベリーパイのUSBに,webカメラを接続します.

私は家にあったwebカメラを使いました。

一応最後にネット上でラズパイと接続して動作していたwebカメラをまとめておきます。
まだ購入していない方は検討してみてください。

コマンドで接続を確認

webカメラの接続が正しく行われたかを,コマンドを入力して確認します.
ターミナルで以下のコマンドを入力します.

$ lsusb

カメラを接続する前後の変化を見てみましょう.

カメラを接続する前

Deviceが001から004まで認識されていました.このとき,USBには何も接続していません.

カメラを接続した後

上の画像を比較すると,Device007が新たに検出されました.これで,認識していることが分かりました.

コマンドで接続を確認:②

$ ls /dev/video*

このコマンドはビデオデバイスが接続されているか確認するものです.
こちらも,カメラを接続する前後で結果の比較を行います.

カメラを接続する前

/dev/video というようにデバイスが表示されています.

カメラを接続した後

デバイスが2つ増えました.先ほどはなかったvideo0とvideo1が認識されています.webカメラは一つだけ接続しました.

ターミナル上でカメラの動作確認

続いて,カメラの画像をRaspbery piに保存できるかを確認していきます.

pythonでwebカメラの画像を取り込んでもいいんですが,今回は簡単に行うことがモットーなので,ターミナル上で動作確認する方法を紹介します.

これを行うには,webカメラを制御するドライバをインストールする必要があります.
以下のコマンドをターミナル上で入力します.

$ sudo apt-get install fswebcam

インストールが完了したら,画像を取得してみましょう.

ターミナルで以下のコマンドを入力して,画像を撮影して保存できます.image.jpgの部分は,お好きなファイル名に変更して保存してください.

$ fswebcam image.jpg

このようにコマンドで表示されます.処理が完了したら,ファイルでimage.jpgを確認します.

撮った画像がこちら↓

ホワイトバランスが最低で,下に□が連続して入っていますが,これで正しく接続していることが確認できます.

ちなみに,この画像は以前3Dプリンターで作ったものを撮影してみました.以前の記事を読む

発展:Python+Opencvでwebカメラの画像を取得

これまでの記事の内容ではカメラの動作確認をすることができました.

しかし画像の設定を細かくできないため,Opencvを使って動画としても撮影できるかを確認してみましょう.

Opencvをまだインストールしていない人は,インストールに時間がかかるため,時間がある人はやってみて下さい.

Opencvをインストール

今回の記事の目的はwebカメラの接続ですので,インストールはあくまでも,私の環境の場合だけを想定します.

$ sudo pip3 install opencv-python

このコマンドで,python3でのOpencv4をインストールします.現時点ではこれが最新だと思います.

pythonコード

以下のコードをpythonの新規ファイルとして保存してください.

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    cv2.imshow('frame',frame)

    key = cv2.waitKey(1)

    if key == ord('q'):
        break
    if key == ord('s'):
        path = "photo.jpg"
        cv2.imwrite(path,frame)

cap.release()
cv2.destroyAllWindows()

このpythonファイルを実行して,キーボードで「q」を入力すると終了し,「s」を入力すると画像を保存できます.

先ほどのfswebcamよりも,より鮮明にホワイトバランスも調整された画像が保存できるかと思います.

私が保存した画像がこちら↓

先ほどと同じ画角で撮ったんですが,圧倒的にこっちのほうがきれいにとれていますね!
画像サイズも640×480で保存できました.

最後に:Raspberry Piで使用できるwebカメラ

ネット上でラズパイに接続して動作しているwebカメラを調べました。
webカメラリストを作っておきます.

まだwebカメラを購入していない方は検討してみてください。

created by Rinker
バッファロー
¥14,775 (2021/04/14 23:32:21時点 Amazon調べ-詳細)