Deep Sky Memories

横浜の空で撮影した星たちの思い出

天体衝突検出ソフト DeTeCt を使ってみた

木星土星などの巨大ガス惑星への小天体の衝突による発光を検出するフリーソフト DeTeCt を使ってみました。

きっかけはもちろんこのニュース。

この観測で検出に使われたのが DeTeCt です。

GitHub公式ドキュメントもあるのですが、これはほぼソースコードを読む人用のドキュメントになっていて使い方はほとんどわかりません… 名前が一般的な単語過ぎてなかなか情報が集められなかったのですが*1 結局以下からダウンロードできる Quick Users's Guide が一番わかりやすかったです。

インストールと起動

インストーラーはついていません。ダウンロードした zip をフォルダーに展開すると DeTeCt.exe が入っているのでそれをそのままダブルクリックして起動します。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-01.png

起動するとメイン画面が表示されます。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-02.png

ファイル・フォルダの選択

メニューの [File - Open video file] で動画ファイルを選択します。複数選択はできません。複数の動画をバッチ処理したい場合は [File - Open folder recursively] でフォルダを選択するとサブフォルダも含めたフォルダ内全ての動画が処理されます。

動画は AVI, SER の両方に対応しています。カラーカメラで撮った AVI の場合は設定でベイヤーパターンを指定する必要があります。[Preferences - Advenced settings] で以下の設定画面が開くので Other の Debeyering code で正しいベイヤーパターンを設定します。*2

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-03.png

その他の設定については通常はデフォルトのままで構いません。

ファイル・フォルダを選択するとメイン画面の Execution log に選択されたファイル名が表示されるので確認します。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-04.png

検出の実行

ファイルが選択された状態でメイン画面下部の [Detect impacts] ボタンを押すと検出が開始します。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-05.png

検出は結構時間がかかります。1024x768ピクセル3000フレームの動画1本を処理するのに5分10秒かかりました(Core i5 6600@3.3GHz)。衝突発光の候補が検出されると検出画像が表示されます。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-06.png

これは3秒で閉じてしまいますが、結果フォルダ(後述)内に同じ画像があるので後から確認できます。

検出結果の報告画面も表示されます。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-07.png

この報告内容は結果フォルダの output.log にも保存されます。

メイン画面の Execution log にも逐一結果が出力されるので、フォルダ指定でバッチ処理した場合はそちらをチェックすると処理途中でも個別ファイルの結果が確認できます。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-08.png

検出結果の見方

検出結果はファイルにも出力されます。ファイルは検出の実行毎に作成される結果フォルダに出力されます。結果フォルダは動画ファイルのあるフォルダの下の Impact_detection_run@{実行日時} という名前のフォルダです。

https://rna.sakura.ne.jp/share/DeTeCt/DeTeCt-09.png

{動画ファイル名}_dtc_max-mean.jpg が実行後に表示された検出画像です。

https://rna.sakura.ne.jp/share/DeTeCt/21_44_33_dtc_max-mean.jpg

検出画像上には赤と緑の二つのクロスヘアが表示されていますが、赤が DeTeCt の検出アルゴリズムで衝突発光候補が検出された場所、緑が検出画像上の最大輝度の場所です。

二つのクロスヘアが一致あるいは非常に近い場合は本物の衝突かもしれません。全然別々の場所に表示されている場合は誤検出(ホットピクセルや雲の通過等のノイズによるもの)である可能性が高いです。

衝突検出の確からしさについては、発光の輝度や発光が続いたフレーム数などから判断した Confidence というスコアを参考にします。*3 Confidence は結果報告画面に表示される他、output.log にも記録されます。

2019-08-18 21:27:33 - 1 detected in frames ranging from 2108 to 2115 (max @ 2109). Confidence: 0.543392.
2019-08-18 21:27:33 - WARNING: impact detection algorithm and detection images are inconsistent.
2019-08-18 21:27:33 - Please check detection image.

今回の例では Confidence は0.543392なのですが、これは全然ダメみたいですね… Quick User's Guide によると1.5以下の Confidence は誤検出の可能性が高いとのこと。Quick User's Guide の p11 以降に本物の検出の例と誤検出の例が検出画像と Confidence 値付きで掲載されているので参考にしてみてください。

上の出力に出てくる「WARNING: impact detection algorithm and detection images are inconsistent.」という警告ですが、これはおそらく赤と緑のクロスヘアが離れている時に出るのだと思います。

結果フォルダにはもう一つ {動画ファイル名}_dtc_mean.jpg という画像が出力されています。

https://rna.sakura.ne.jp/share/DeTeCt/21_44_33_dtc_mean.jpg

これは動画の各フレームのピクセル輝度の平均値を記録したもので、概ね衝突発光の無い時の見え方を表すものです。センサー上のゴミやゴーストなどがあるとこの画像から確認できることがあります。

その他

検出結果の提出方法とか WinJUPOS との連携とか色々あるのですがそのへんは調べきれてません…

バッチ処理してみた結果…

試しに2019年6月13日夜に撮影した動画を全部処理してみました。どの動画(3000フレーム)でも衝突候補が1個報告されたのですが、ほとんどが Confidence が0.5前後、赤と緑のクロスヘアはバラバラだし画像上でもはっきりした発光は確認できず、誤検出のようでした。

Confidence 1.5 以上のものは5件、そのうち2.40707の1件はクロスヘアがぴったり一致していて、これは!?と思ったのですが、画像を見るとほとんど識別できないくらいの明るさで、持続時間は5フレーム(60fps)、動画を実際に見ても全くわからないものでした…

https://rna.sakura.ne.jp/share/DeTeCt/22_28_29_dtc_max-mean.jpg
https://rna.sakura.ne.jp/share/DeTeCt/22_28_29_dtc_mean.jpg

もう一つ、AVI動画処理のテスト用に2018年7月8日夜に撮った動画を1本処理したところいきなりクロスヘア一致、Confidence 3.28296 というベスト記録更新の候補が出てしまいました。

https://rna.sakura.ne.jp/share/DeTeCt/20_05_57_dtc_max-mean.jpg

https://rna.sakura.ne.jp/share/DeTeCt/20_05_57_dtc_mean.jpg

しかしこれも持続時間は5フレーム(60fps)で動画で見ても全くわからない代物でした。たぶん宇宙線か何かのノイズでしょうね…

というわけで、木星土星の動画を溜め込んでる方は一度 DeTeCt を走らせてみてはいかがでしょう。ってみんな走らせてるけど見つからないから黙ってるだけだったりします?

*1:Google 検索は大文字小文字を区別して検索する方法がないらしいので…

*2:ベイヤーパターンがわからない場合は AutoStakkert!3 に動画を読ませて Status 右の市松模様の上にマウスオーバーするとツールチップテキストでパターンが表示されます。

*3:スコアの計算式は Quick User's Guide の p9 を見てください。