やりたいこと
ATOMCam2を使って流れ星を自動で検出したい。つまり、プログラムを動かしておくと自動で流れ星の動画が集まるようにしたい。
ある程度簡単に導入できますが、Pythonについて、コマンドラインについてある程度知っておくと、楽に導入できると思われる。
非公式ツールも使用するので、あくまでも自己責任でお願いします。
環境
- PC(Windows10で動作確認)
プログラム開発者の検証ではmacOS 11, 12 (Intel Mac, M1 Mac) , Ubuntu 20.04LTSで動作確認。 - Python(Python3.9)
- 各種ライブラリ(後述)
- meteor-detect(検出プログラム)
- atomcam-tools
セッティング
Pythonをインストールする
1.下記、サイトからPythonをインストールする。
2.ターミナルやPowerShell、コマンドラインにて動作確認
※Windowsキー+ R を同時に押して、検索窓に「 cmd 」と入力してからEnterを押す
>python --version
下記のように表示されたらOK
Python 3.9.13
うまくいかない場合は「Python インストール」とかで検索や下記サイトを参考に環境を構築する。
Pythonに各種ライブラリを導入
ターミナルやPowerShell、コマンドラインにて下記を上から実行する。つまり、1行ずつコピペしてEnterを押してください。
※Windowsキー+ R を同時に押して、検索窓に「 cmd 」と入力してからEnterを押す
> pip install ffmpeg
> pip install opencv-python
> pip install imutils
> pip install youtube_dl
> pip install pafy
atomcam_toolsをインストール
下記、プログラムのREAD MEを読んで、ATOMCam2へプログラムをコピーする。
meteor-detectを事前に設定
下記サイトからプログラムをダウンロードする
解凍し、わかりやすいところにおいておく。
使い方については、READ MEも参照のこと。
ダウンロードしたファイルを自分の環境に合わせセッティングする。atomcam.pyをテキストエディタ(メモ帳)で開き、編集できるようにし、下記を書き換える。
192.168.2.110となっているところをATOMCam2のIPアドレスを調べ書き換える。
なお、IPアドレスはATOMCamアプリの設定(右上歯車マーク)>デバイス情報>IPアドレスから調べられる。
###########24行目-26行目を抜粋############
# 自分の環境のATOM CamのIPに修正してください。
ATOM_CAM_IP = os.environ.get("ATOM_CAM_IP", "192.168.2.110")
ATOM_CAM_RTSP = "rtsp://{}:8554/unicast".format(ATOM_CAM_IP)
※atomcam_toolsを入れず、公式のRTSPを使用する人は、下記のように書き換える
###########24行目-26行目を抜粋############
# 自分の環境のATOM CamのIPに修正してください。
ATOM_CAM_IP = os.environ.get("ATOM_CAM_IP", "192.168.2.110")
ATOM_CAM_RTSP = "rtsp://6575:5525@{}/live".format(ATOM_CAM_IP)
meteor-detectを使用
ターミナルやPowerShell、コマンドラインにてmeteor-detectのあるディレクトリへ移動後、下記を実行。夜であれば実行され流星の検出が始まります。6:00に自動停止。
> python atomcam.py
その他、パラメータ等は下記の通り
> ./atomcam.py --help
usage: atomcam.py [-u URL] [-n] [-d DATE] [-h HOUR] [-m MINUTE] [-i INPUT] [-e EXPOSURE]
[-o OUTPUT] [-t TO] [--mask MASK] [--min_length MIN_LENGTH] [--verbose VERBOSE]
[--thread] [-c] [--help]
optional arguments:
-u URL, --url URL RTSPのURL、または動画(MP4)ファイル
-n, --no_window 画面非表示
-d DATE, --date DATE Date in 'yyyymmdd' format (JST)
-h HOUR, --hour HOUR Hour in 'hh' format (JST)
-m MINUTE, --minute MINUTE
minute in mm (optional)
-i INPUT, --input INPUT
検出対象のTOPディレクトリ名
-e EXPOSURE, --exposure EXPOSURE
露出時間(second)
-o OUTPUT, --output OUTPUT
検出画像の出力先ディレクトリ名
-t TO, --to TO 終了時刻(JST) "hhmm" 形式(ex. 0600)
--mask MASK mask image
--min_length MIN_LENGTH
minLineLength of HoghLinesP
-s, --suppress-warning
suppress warning messages
--thread スレッド版
-c, --clock カメラの時刻チェック
--help show this help message and exit
- Q検出された動画が短すぎる。
- A
パラメータを付与。数字は動画の秒数。下記の場合3秒の動画となる
> atomcam.py -e 3
- Q検出された動画を任意のフォルダに入れたい
- A
パラメータを付与。下記の場合同じディレクトリのoutputフォルダに格納される
> atomcam.py -o output
その他の使い方については、READ MEも参照
ATOMCamにて撮影した映像については下記参照
参考文献、謝辞
検出プログラムを開発し、公開してくださいました、kin-hasegawa様、ATOM Camにて機能追加を行なってくださいましたhoneylab様、誠にありがとうございます。