<< 前のエントリトップページ次のエントリ >>
2023年01月03日

監視カメラで流星キャッチ総集編2

監視カメラで流星キャッチ総集編その2
↓12/28未明〜明け方に現れた流星たち↓

これを完全手動マンパワーでやるのは無理。(未明から明け方まで5時間として)
1分単位のmp4データ収録されるので、1時間で60個、5時間で300個のmp4データが残る。
1つ1つ見直すのは限りなく不可能に近い。>監視カメラやドラレコでは、映像に変化が生じた場面を見つけ出す動体検知プログラムを利用して抽出される。一般的な監視映像であればほぼ問題ないようだが、流星検出は苦手?というか、今までカメラ標準添付の動体検出機能では流星を1個も見つけられなかった。で、流星検出に特化したプログラムがつくられた。それが、Meteor-Detect(kin-hasegawaさん作)。
流星見落としがある、という指摘もあるそうだが、自分としてはそのような見落としに遭遇したことはない。むしろ、暗めの流れ星も検知しており、スグレモノという印象。
↓実用化の目処が立ったのでカメラ2台を自作台座に載せ、物置屋上の手すりに設置↓

■■以下、マニアックな内容なので興味ない方はスルー願います■■
(Meteor-Detectはpython環境下で稼働するツールなので)
【1】PCにpythoneを構築する。
・ https://www.python.org/downloads/windows/ からPython3.9.13インストーラを
 ダウンロードしインストールする。
※3.10.*では未対応、、ということだったが、3.9.13が見当たらず、やむなく3.10.9をダウンロード&インストールしたが、幸いにも問題なく稼働できた。(Win10Pro)
この件について、使用するPC環境の違いもあると思う。
また、以下の記述内容に関して、ご指摘を受けても返答は致しかねる。各自の判断、自己責任で進めてください。全くの保証はありません。
なお、3.11.1も公開されているが、Win11用?試していない。リスクを冒してまで最新版?にする意味も感じていない。
いずれも、Win7以前のマシンは駄目と断り書きされている。

【2】3.10.9(64bit)インストーラを実行し、"Add Python 3.10 to PATH"にチェックを
 入れてから、"Install Now"でインストール。
 ユーザーアカウント制御の画面で変更の許可を求められたら「はい」をクリック。
・最後に "Disable Path length limit" が出てくるのでクリック、ユーザアカウント
 制御の画面での変更を許可し、Closeでインストーラを閉じる。

【3】Pythonで自動検出プログラムを動かすための初期設定をする。
・ Windows PCで、コマンドプロンプトを開く。(キーボードの「Windowsキー」押し
  ながら「R」キーを押し、出てくる小窓に cmd と入力してEnter)
コマンドプロンプトの画面(背景黒枠)が開いたら、下の通り順番に入力する。
<※以下の5行を1行ずつコマンドプロンプトへコピペすれば入力ミスを防げる>
         ====
pip install ffmpeg
pip install opencv-python
pip install imutils
pip install youtube_dl
pip install pafy

【4】meteor-detectをダウンロードする。
githubの meteor-detectのリポジトリ(https://github.com/kin-hasegawa/meteor-detect)から、
 緑色の code と書いてあるボタンをクリックし、"Download ZIP"を選択。
>meteor-detect-main.zip がPCにダウンロードされる。
  →右クリックして「すべて展開」を選択。
・展開された meteor-detect-main のフォルダを、PC上のわかりやすい場所へ移動
 させる。(例えばCドライブ直下など)←※これを推奨
---------- ここまでが最初の関門かと? ----------
意味不明の長文が未だ続きます↓追記へ↓

※コマンドプロンプトでエラーがあると、PCが赤色文字で知らせてくれる。大概は入力ミスで構文の間違いとか、ディレクトリ名(フォルダ名)の間違いとか、、
なので、赤色文字警告が出るうちは、PCがお釈迦になった?では無い。
python構築とmeteor-detectインストールが無事に済めば8割方は成功したと思って
良いと思う。ただし、保証は一切いたしません。m(_ _)m

【5】ATOM Cam 2で撮影した動画の準備
自分の場合、AtomCam撮影動画は自動的に自宅NAS(LAN上のHDD)へ同時保存するように
なっているので、NAS保存ファイルからmeteor-detect-mainフォルダへ解析させたいファイルをコピーしている。このNAS保存設定は(atomcam-toolsを使わず)標準のATOMアプリからでも行える。
■上の環境を整えるまで=試行実験を始めた頃は、以下のようにしていた。■
・カメラからmicroSDカードを取り出し、エクスプローラで解析させたいファイルの入ったフォルダ(年月日の数列名)ごとmeteor-detect-main のフォルダ内へコピーする。
※PCへ持ち込むため、各種カードアダプタか、microSD→SDカードアダプタが必要。

【6】meteor-detect を実行する。
・Windows PCで、コマンドプロンプトを開く。
(キーボードで「Windows」キーを押しながら「R」キーを押す。出てくる小窓に
cmd と入力してEnter)
・meteor-detect-main のフォルダに移動するコマンドを入力する。
 (\はキーボードや画面上では半角の¥)以下の1行文字列をなぞってコピーし、
 コマンドプロンプトでペーストすれば入力ミスを防げる

cd C:\meteor-detect-main

例えば 2023/1/3 PM22時台の動画をスキャンするには、下記の通り入力する。
 "-d" の後が日付西暦4桁、"-h"の後が時刻24時間表記。

 .\atomcam.py -d 20230103 -h 22
※↑このピリオドと¥を忘れないこと※

ここまで手順に問題なければ、meteor-detectが動画を順次読み込み流星を探し始める。PCのスペックにもよるが、1分の動画の解析に20秒程度、1時間分の解析で20分程度で終わる筈。ずっと画面を見ている必要なく、解析中は同じPCで他のことができるし、PCから離れても問題なし。

> C:\meteor-detect-main>.\atomcam.py -d 20230103 -h 22
# 20230103\22
# 20230103\22\00.mp4
# 20230103\22\01.mp4
# 20230103\22\02.mp4
# 20230103\22\03.mp4

流星のようなものを検出すると、コマンドプロンプト上に時刻とともに
"A possible meteor was detectd."が通知される。
例では、2023/1/3の22時54分台の動画の開始から3秒のところに流星のようなものが
あるよ、と教えてくれている。

# 20230103\22\53.mp4
# 20230103\22\54.mp4
2023/01/03 22:54:03 A possible meteor was detected.
# 20230103\22\55.mp4
# 20230103\22\56.mp4

同時に、meteor-detect-mainフォルダ内に、動画から切り出した静止画のJPGと、
切り出した動画のMP4が生成される。流星でないものも含まれる。

試行実験開始当初は、この1時間毎の単位での流星検出を行っていた。ただ、夕方から明け方までひと晩の流星検出となると、仮に8時間分のデータとすると、20分毎に1時間に3回×8時間分=24回もPCの前に来て次の時間を指定してコマンド入力する必要があった。
※参考までに、コマンドプロンプトでのキー入力は「↑」キーを押すと直前の入力文字
 列を再表示するので変更箇所だけの修正で済む。

 ↓↓膨大な解析データの一括処理へ↓↓

■■ひと晩分、あるいは数日分のデータをまとめて一括処理する■■
【1】Windowsで実行するスクリプトを作成する。

detect.ps1 ←※これは作成するファイル名
以下をメモ帳などへコピペし、detect.ps1としてmeteor-detect-mainフォルダへ保存。

Param( [DateTime]$StartDateTime, [DateTime]$EndDateTime )

$DateTime = $StartDateTime
while ($DateTime -le $EndDateTime) {
$Date = $DateTime.ToString("yyyyMMdd")
$Hour = $DateTime.ToString("HH")
echo "***** $Date $Hour"
$DateTime = $DateTime.AddHours(1)

Start-Process C:\meteor-detect-main\atomcam.py -ArgumentList "-i","C:\meteor-detect-main\","-d",$Date,"-h",$Hour -Wait
}

※-Wait を消すと複数ウィンドウで同時処理する。※-wait無しを試してみた※>後述

【2】コマンドプロンプトで、下記を入力して実行する。
 >背景青色枠のPowerShellウィンドウが管理者権限で開く。

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process PowerShell.exe -Verb runas"

(初回だけ)PowerShellコンソールで下記を実行する。「実行ポリシーの変更」を行ってよいか尋ねられるので、Yを入力。
(PowerShellの管理者権限が必要なのはここだけ。次回からの実行には管理者権限のない
PowerShellコンソールで実行してもかまわない)

Set-ExecutionPolicy RemoteSigned

【3】PowerShellコンソールで下記のように実行する。例えばこれは、2023/1/1の19時から2023/1/2の5時半迄の動画を一括処理する。
(分数は内部で無視される。日付と時間だけがmeteor-detectに渡される。)

cd C:\meteor-detect-main\
.\detect.ps1 "2023/01/01 19:00" "2023/01/02 05:30"

Powershellウィンドウでもコマンドプロンプト同様に↑キーを押すと直前に入力した文字列が再表示されるので、必要箇所だけ修正すれば済む。

Powershellウインドウ

コマンドラインウィンドウ

(1)実行中のPowershellウィンドウ(左)
>※スクリプト最後の「-wait」を外すと、同時に複数のコマンドウィンドウが開き、一斉に処理を始める。(右)
時刻順を待たなくて済み各時間帯の状況を01mから見られるのはよいが、同じPCで別処理を行おうとすると鈍足PCになっているのを実感する。同じPCで別の事をしないなら。この一斉スタート式がいいかも。全体の処理時間がかなり早く終わる。
(2)スクリプトに-waitを残すと、時刻順に処理を始める。指定日時順に肩起こしに処理していくので遅い時間帯の検出始まるのが遅くなるが、その間、同じPCで別の仕事をする際にはあまり鈍足感を感じない。

※meteor-detect-mainフォルダ内が流星検出時に作成されたjpg静止画やmp4動画で一杯になるので、必要なものは別フォルダへ移動、不要なものは削除しないと収拾つかなくなる。
自分の場合、必要なものは検索にかけた日付(西暦月日)フォルダ内に「jpg」「mp4」フォルダを新たに作成し、其処へ移動。不要なファイルは選択後DELキーで削除
-------------------------------------------------------------
本記事作成にあたり、以下のサイトなどを参考にさせていただきました。
↓meteor-detect導入及び流星検出手順↓
https://astronomy.pirosap.tech/ja/atom-cam-2/atom-cam-2-meteor
↓meteor-detectダウンロード↓
https://github.com/kin-hasegawa/meteor-detect
↓pythone構築↓
https://www.python.org/downloads/windows/
-------------------------------------------------------------
<龍吉>!(^^)!最初のpython構築&meteor-detect実行がカギ。これが原因でPCが駄目になるとは思えないが、、(^_-)-☆
<はな>=^_^=とにかくやってみないことには始まらないニャリ。明日はしぶんぎ群の日だニャー≡^・.・^≡
<ソラ>U.゚ω゚Uサルにも劣る?オイラでさえ何とかここまでたどり着けたから、頑張って欲しいワン▽・。・▽

HomePage(Nifty)(NSK)すたーりぃないとはなのWeb天文台

投稿者:龍吉at 10:57| 彗星・流星 | コメント(0)

◆この記事へのコメント:

※必須