ATOM Cam 2 をベランダに設置して録画を続けると、どんどん撮影された動画がたまっていきます。
明るい市街地での撮影でも、まれに流星が写っていることがあるのですが、動画を全部人の目で見返して探すのは早送りでも大変です。
ATOM Cam 2は元々監視カメラなので、映像で動きがあると自動で検知してその部分だけ録画してくれる機能もあるのですが、流星の光をきれいに拾ってくれるかは信用しきれず、ひたすら動画を溜めていく日々でした。
そんな中で、さんたさん@北の大地の天文指導員 さんが書かれたこの記事を読みました。
ATOM Cam 2で流星観測 | さんたさん@北の大地の天文指導員
PC上のソフトウェアにATOM Cam 2の動画を解析させて、効率よく流星が映っている動画を探そう、というものです。
必要なことはすべて さんたさん@北の大地の天文指導員 さんがまとめてくださっていますが、自分が必要なところに限定してまとめなおしてみました。
自動検出ソフトウェア meteor-detect
githubで、kin-hasegawaさんが公開されている meteor-detect を使用します。
githubのREADMEにはこう書かれています。素晴らしいソフトウェアを公開いただいている Hasegawa様に感謝します。
https://github.com/kin-hasegawa/meteor-detect
meteor-detect
ATOMCamのストリーミング及びデータからの流星を自動検出
Automatic meteor detection from movie files(MP4) and streaming devices(RTSP)
無保証、無サポートです。
元々、人に公開する目的で作ったのではなく、ソースコードのコメントも自分のためのメモ程度で極めて不親切。 予告なしに仕様変更、機能追加(削除)を行います。
Windows PC上に環境を構築する
自動検出のプログラムを動かすための環境をWindowsに構築していきます。
■Python のインストール
■Pythonで自動検出プログラムを動かすための初期設定
meteor-detect の説明書きに書いてあるとおり、必要な設定を行っていきます。
pip install ffmpeg
pip install opencv-python
pip install imutils
pip install youtube_dl
pip install pafy
■meteor-detect をダウンロード
Windowsでgit環境を用意してもよいのですが、ここは単純に公開されている現在のバージョンをPCにダウンロードすることにします。
■解析させたいATOM Cam 2で撮影した動画の準備
私のATOM Cam 2は、"ATOM Cam 2 を有線LANでPoEで使うには" でforkした有線LAN専用版の atomcam_tools で動作させています。
撮影した動画は、自動的に自宅内のNASにたまるようになっていますが、このあたりは必須ではありません。
"SDへのローカル録画”を有効にした標準のATOM Cam 2では、撮影したSDカードをPCで開くと1時間単位のフォルダの中に1分刻みで動画ファイルが作られます。
解析させたい日付の録画をフォルダごと、meteor-detect-main のフォルダ内にコピーします。
(atomcam_toolsを使っていたりNASに録画している場合は、わりとWindowsのコマンド実行に詳しいと思うので省略)
例えば、2022/8/3の録画をコピーすると次のようになります。
■meteor-detect を実行します。
cd C:\meteor-detect-main
.\atomcam.py -d 2022725 -h 22
> C:\meteor-detect-main>.\atomcam.py -d 20220725 -h 22
# 20220725\22
# 20220725\22\00.mp4
# 20220725\22\01.mp4
# 20220725\22\02.mp4
# 20220725\22\03.mp4
# 20220725\22\53.mp4
# 20220725\22\54.mp4
2022/07/25 22:54:03 A possible meteor was detected.
# 20220725\22\55.mp4
# 20220725\22\56.mp4
■応用
README記載の通り(メモ帳で開けます)いろんなことができるソフトウェアですが、同梱されているマスク画像を参考に、自分のカメラ画像用のマスク画像(判定に使用させたくないエリアを白で塗って、判定させたいエリアを黒く塗った画像)を作っておくと、地上物による誤判定をだいぶ減らすこともできます。
■期間を指定しての解析
簡単なスクリプトで期間指定して解析させる方法を別ページにまとめました。