Python RaspberryPi

RaspberryPi+Pythonで取得した動画をGoogleDriveに自動でアップロードする

投稿日:

ホームセキュリティカメラをRaspberryPi+Pythonで実現します。

カメラとマイクを使用して音声付き動画を取ります。

一定以上の動体検知もしくは音量となった場合にはGoogleDriveに自動的にアップロードすることで家の外から動画を確認できるようにします。

 

使用するもの

・Raspberry Pi3 ModelB

・Picamera(赤外線フィルタレス) hbvcam

・USBマイク サンワサプライ製 MM-MCU01BK 

 

ソースコード

 

解説

(1) GoogleDrive認証

GoogleDriveにアクセスするための認証作業です。

Pythonプログラムと同じディレクトリに下記の「settings.yaml」と「client_secret.json」の2つのファイルを置きます。

settings.yamlには下記を記載します。

client_secret.jsonはGoogle Developer Consoleで新しいプロジェクトを作成した後、認証情報からダウンロードできます。

folder_idはGoogleDrive上で取得した動画を置きたいフォルダを指定します。

(2) 動画と音声を取得

カメラの動画とマイクの音声を取得します。

内容の詳細は下記の別記事に記載しました。

https://non-it-engineer.com/?p=199

 

(3) 動体検知

カメラの動画内で動きがあった時のみ記録するようにします。そのための動体検知にOpenCVライブラリを使用しました。

突発的な変化での記録を防ぐために今回は取得したフレームの降順で50番目の動体検知の値を使用しました。

(4) 判定及びGoogleDriveアップロード

音量もしくは動体検知値が閾値以上の場合にmp4ファイルを作成し、GoogleDriveにアップロードしています。

 

結果

今回は2分間の動体検知・音量検知した動画を自動的にGoogleDriveにアップロードすることができました。

ただ動画を録画→動体検知値計算→音量計算→判定→GoogelDriveアップロードを順次処理しているため、録画2分、その他の処理で8分程かかってしまい、かなりの時間で抜け漏れておりセキュリティとしては物足りない出来です。

今後、並列処理による改善をはかりたいと思います。

 

 

-Python, RaspberryPi

Copyright© IT系でないエンジニアの転身 , 2020 All Rights Reserved Powered by STINGER.