みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

RPi-Cam-Web-Interfaceでかんたん動体検知監視カメラ

これまでRaspberry Piで動画配信する記事をいくつか書いてきましたが、どの方式もメリット・デメリットがあります。

ところで、以前紹介したHTTP Live Streaming (HLS)でのH.264動画の配信や、Janus Gatewayを使ってH.264をWebRTCでストリーミングにしても、セットアップの手順が多く、面倒🙁という欠点があります。

今回は、Web配信出来れば何でもいいから一番手順少なくやりたいという人に便利な、RPi-Cam-Web-Interfaceというソフトウェアを使ってみましょう。

Raspberry Piのために開発されたソフトなので、セットアップがとてもラクです🥰動体検知タイムラプス撮影もできて高機能です。

ただし内部の仕組み上、公式のRaspberry Pi Camera専用に作られているためUSBカメラは使えません🙅‍♀️

RPi-Cam-Web-Interfaceとは?

Raspberry Pi Cameraの映像をネットワーク越しに見られるMITライセンスのオープンソースソフトウェアです。

elinux.org

とにかく細かい設定ができる上、動体検知で録画など機能も豊富です。

  • ライブストリーミングでカメラの映像が見られる
  • 録画、静止画撮影などがネットワーク越しにできる
  • 露出、ホワイトバランスなどRaspberry Pi Cameraのあらゆる設定をライブビューを見ながら調整できる
  • 動体検知で録画、スケジュールで録画ができる
  • タイムラプス撮影ができる

とても機能豊富で便利ですよね。

欠点は、公式のRaspberry Pi Camera専用のため、USBカメラなどその他のカメラでは使えません

ただし、互換品もいろいろ出ていますので、魚眼レンズなど用途に応じた互換カメラモジュールが手に入ります。公式Wikiにもいくつか紹介が載っています。

前の記事で買った5ドルのカメラは公式カメラの互換品のため、問題なく動きました。

www.mikan-tech.net

インストール

カメラの有効化

インストールの前に、Rapsberry Piのカメラインターフェースを有効にする必要があります。

$ sudo raspi-config

で設定画面を開き、5 Interfacing OptionsP1 Cameraでカメラを有効にします。 設定を反映させるために、再起動が必要です。

インストール

カメラを有効にしたら、RPi-Cam-Web-Interfaceをインストールしましょう。手順は簡単で、

$ sudo apt install git
$ git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
$ cd RPi_Cam_Web_Interface
$ sudo ./install.sh

だけでできます。途中、Configuration Optionsというメニューが出ていくつかの設定を編集できます。

f:id:kimura_khs:20201011150815p:plain

私は全てデフォルトにしました。

動作確認

インストール後、ブラウザでhttp://raspberrypi.local/html/(設定をデフォルトから変えた場合は設定したURL)にアクセスすると、カメラの画像が見えます。

f:id:kimura_khs:20201011154855p:plain

この写真は、Raspberry Pi Cameraでパソコンのモニタを映してみました。

たったこれだけでライブストリーミング的なことができるのがすごいですね。

このライブストリーミングはMotion JPEGで表示されているようです。動体検知や録画ボタンなどで録画するときは、H.264で録画してくれます。 録画した動画はこの画面からも見られますし、ダウンロード画面からパソコンやスマホにダウンロードもできます。至れり尽くせりですね🥰

使い方

パソコンやスマホからhttp://rapsberrypi.local/html/(デフォルトの設定の場合)にアクセスすると、このような画面になります。

f:id:kimura_khs:20201011163548p:plain

上部にライブビュー画像が出ており、リアルタイムでプレビューできます。赤色のstop cameraボタンで、ライブビューを一時停止できます。

record video startで録画、record imageで写真が撮れます。撮影した動画や画像は、Download Videos and Imagesから見たりダウンロードしたりできます。

timelapse startでタイムラプス撮影の開始、motion detect startで動体検知が開始できます。

カメラのパラメータ設定はCamera Settingsタブでできます。このように、多数の設定項目があります。

f:id:kimura_khs:20201011164506p:plain:w320

動体検知の設定はInternalモードの場合はMotion Settingsのタブからできます。

f:id:kimura_khs:20201011164517p:plain:w320

また、SystemタブではRaspberry Piの再起動、シャットダウンもできます。

動体検知

庭にのら猫が入ってきた時とか、扉が開いた時など、画面上で何か動いたときに録画を開始できるのが動体検知機能です。

ずっと録画しておかなくても、肝心なところが録画できていれば十分な場合もありますもんね。

RPi-Cam-Web-Interfaceでは、設定するだけでこの動体検知機能が使えます。

動体検知は3つのモードが搭載されています。

  • Internalモード - RPi-Cam-Web-Interface自身が動体検知を行う。Motion Settingsタブで設定ができる
  • Externalモード - 外部でMotionという動体検知ソフトが検知を行い、その結果を受け取る。
  • Monitorモード - Internalモードで検知を行うが、録画は開始せずに動体検知のログだけ保存するモード

f:id:kimura_khs:20201011161626p:plain

Camera Settingsタブの中に選択する場所があります。

Internalモードの場合は、動体検知のしきい値や検知エリアを指定するマスクの設定などがMotion Settingsタブの中にあります。

私は直近で使うネタがないのですが、もしやってみることがあれば、設定のコツなどを記事にしていきたいと思います。

タイムラプス撮影

タイムラプス撮影は、1分に1枚など、ゆっくりした一定周期で写真を撮影する機能です。

定点観測に便利で、雲の動きや植物が成長する様子など、何時間、何日もかかる変化を記録したいときに使えます。

このタイムラプス撮影機能もRPi-Cam-Web-Interfaceに搭載されています。

Camera SettingsTimelapse-Intervalの部分に何秒おきに撮影するかを設定します。 最短1秒に1枚から、3200秒(53分)に1枚まで、1秒単位で設定できます。

設定したら、Timelapse startボタンを押してタイムラプス撮影開始、Timelapse stopを押すと終了です。 もちろん、撮影中にブラウザを閉じていても問題ありません。

f:id:kimura_khs:20201011171107p:plain

撮影したタイムラプス画像は、Download画面に時計のマークがついて表示されます。

f:id:kimura_khs:20201011171640p:plain

クリックすると、タイムラプス画像を1枚1枚確認できます。左右の矢印のボタンでコマ送りができます。 Start Convertボタンを押すと、動画に変換できます。変換した動画は、先ほどのDownloadの画面に動画として出てきますので、オンラインで見たり、ダウンロードしたりできます。

(散らかっているパソコン机の上で試しに撮影したので、恥ずかしいのでモザイクにしました😣…後日まともな画像に差し替えるかも)