OpenCVとPythonで取得した画像を動画にしてGoogleドライブに自動アップロードする

RaspberryPiなどのセキュリティカメラ用途として、OpenCVとPythonでカメラ撮影した画像を、定期的に指定の時刻に自動で動画にして、Googleドライブに自動でアップロードする方法をいろいろと調べてみたのですが、PythonのScheduleというモジュールを使うと簡単にできることがわかったので、実装しました。

Scheduleモジュールの使い方ですが、下のように特定の関数を10分ごとや1時間ごとに実行したり、特定の曜日や時間に実行することができます。↓ schedule.run_pendingは1回の呼び出しで1回のジョブしか実行されないので、何回も繰り返しで実行したいときは無限ループ内で呼び出す必要があります。


引数を渡して実行するときは下のようにします。↓


GoogleドライブへのアップロードはGoogle Drive APIを使用します。Google Drive APIを使用するにはGoogle Developer Consoleから認証情報を取得する必要があります。Google Drive APIをPythonで使うにはPyDriveというモジュールをインストールします。「Google Drive API 有効化」や「Google Drive API Python」などの単語で検索すると参考になるサイトがたくさんあります。Googleドライブへのアップロード用には下の関数を作成しました。↓ アップロード先のフォルダのフォルダIDは環境変数から取得するようにしました。


コード全体は下の通りです。↓


複数の画像ファイルから動画を作成する関数make_video_from_imageとGoogleドライブに動画ファイルをアップロードする関数upload_to_google_driveと指定したフォルダを削除後再作成する関数delete_all_filesを指定の時刻に実行するようにしました。Scheduleモジュールについて詳しくは下のサイトを見てください。↓

https://schedule.readthedocs.io/en/stable/

2020年3月18日18:14

カテゴリ: プログラミング

タグ: Python, Raspberry Pi, OpenCV,