はじめに
固定カメラで夜空を撮り続けていると、動画はすぐにたまります。流星が写ったかもしれない夜を後から探すことはできますが、日が経つほど「いつ、どの方向に、何件くらい候補があったか」を追うのが難しくなります。
ヘッダー画像は2026年8月3日11:16〜8月10日11:16(JST)に確認済みとした68候補から作成した比較明合成。単一時刻に同時撮影した画像ではありません。
私の環境では、AtomCamの録画をNAS代わりのLinuxマシンに繋いだUSB HDDに保存しています。最初は、気になる日時を指定して動画を見返し、既存の流星検出スクリプトを実行して候補画像を作る使い方でした。
※こちらの流星検出スクリプトに関してはこの分野でよく利用される、Kin-Hasegawaさんのスクリプトを最近のPythonで使えるようリファクタリングして利用しています。
https://github.com/kin-hasegawa/meteor-detect
ただ、候補画像が増えてくると次のような問題が出てきました。
- 流星候補が出た動画を後から探し直すのが面倒
- 雲、飛行機、虫などの誤検知が混ざる
- 1本の動画に複数候補があると、動画単位のメモでは管理しにくい
- 「今夜は候補が多かったのか」を日別・時間別に見たい
- 目視確認した結果を、次の集計へ反映したい
そこで、動画解析を一度実行して終わりにせず、候補を蓄積し、人間が確認し、確認済みの候補だけを集計する仕組みを作りました。
この記事で紹介するのは、流星を自動判定して終わる装置ではありません。自動検出を入口にして、人間が確認した観測記録を少しずつ増やすための仕組みです。

仕組みの全体像
処理の流れは次のとおりです。
AtomCamの夜間録画
↓
動画から流星候補を自動検出
↓
候補画像・元動画・時刻を記録
↓
候補を1件ずつ目視確認
↓
確認済みの候補だけを日別・時間別に集計
自動検出の結果は、最初はすべて「候補」です。候補をそのまま流星数として数えないことにしました。
流星として確認できたものだけをconfirmed、誤検知をfalse_positive、まだ見ていないものをunreviewedとして記録します。
unreviewed まだ見ていない候補
confirmed 流星として確認した候補
false_positive 飛行機・雲・虫・光の変化など、流星ではなかった候補
この区別を入れたことで、「自動検出器が何件候補を出したか」と「人間が確認した流星が何件あったか」を別々に扱えるようになりました。
なぜ動画単位ではなく、候補単位で確認するのか
最初は、1本の録画動画に対して「流星あり」「誤検知」といった状態を付けようと考えていました。
しかし実際には、1本の動画の中に複数の候補が出ます。その中に本物の流星と、飛行機やノイズのような誤検知が混ざることもあります。
そのため、録画そのものとは別に、検出候補を1件ずつ記録するようにしました。
1本の録画動画
├─ 候補 1: 流星として確認
├─ 候補 2: 飛行機なので誤検知
└─ 候補 3: まだ未確認
これなら、同じ動画の中でも候補ごとに判断できます。あとで見返したときも、元動画、候補画像、確認結果、メモをまとめて追えます。

レビュー画面では、候補画像を先に見て、必要なときだけ元動画を開くようにしました。動画を毎回最初から確認するより、目視確認がかなり速くなります。
「検出数」ではなく「確認済み数」を見る
自動検出は便利ですが、夜空の動画には流星以外にも変化が多くあります。
- 飛行機や人工衛星
- 雲の切れ目や雲の明るさの変化
- 虫や雨など近くを横切る物体
- カメラのノイズや圧縮ノイズ

検出器が出した候補数をそのまま流星数と呼ぶと、条件によって数字が大きく変わります。そこでダッシュボードでは、目視確認を行たconfirmedだけを集計対象にしました。
これにより、最初は候補数が多くても、確認を進めるほど「人間が確認した記録」としての信頼性を上げられます。
ここで大切なのは、誤検知をゼロにすることではありません。候補と確認済みを分けておけば、検出器の調整前後を比較したり、誤検知の傾向を別に見たりできます。
日別・時間別に見られるようになると何が便利か
確認済みの候補を蓄積すると、単発の動画確認では見えなかった傾向が見えてきます。
- 一晩のどの時間帯に候補が多かったか
- 晴れていた夜と曇っていた夜の差
- 月明かりがある夜の検出状況
- 流星群の極大付近で候補がどう増えるか
- カメラの向きや設置場所を変えた前後の差
- しばらく解析していない夜があるか


もちろん、この集計だけで「その夜に実際に何個の流星が出たか」を正確に数えたり、流星群の活動の強さを他の観測地と比べたりすることはできません。
雲の量、月明かり、空の明るさ、カメラの向きや写る範囲、検出条件、確認作業の進み具合などで、記録される候補数は変わるためです。
それでも、自分の同じカメラ・同じ場所・同じ手順で記録を蓄積していけば、「自宅の空で何が起きていたか」を振り返る材料になります。
自動検出と人間の目を役割分担させる
私の環境では、自動検出に全部を決めさせていません。
| 役割 | 自動処理 | 人間の確認 |
|---|---|---|
| 夜間動画の選別 | 実施する | 必要なら対象日を追加する |
| 動画から候補を探す | 実施する | 候補漏れが疑われるときに元動画を確認する |
| 候補画像の作成 | 実施する | 画像を見て判断する |
| 流星かどうかの確定 | 補助情報を出すだけ | 最終判断する |
| 日別・時間別の集計 | confirmedだけを自動集計 | 集計の前提を理解して読む |
自動処理は、動画を最初から最後まで探す作業を減らすために使います。人間は、候補が本当に流星かどうかを判断します。
この分担なら、検出器を改良したくなったときも、過去のレビュー結果を教師データのように見返せます。「どんな誤検知が多いか」を先に知ることで、次の改善点も考えやすくなります。
小さなPCで回すためにしたこと
常時稼働しているPCは、メモリが約6GBしかありません。動画解析のPythonプロセスは条件によって約5GBまで増えるため、いきなり大量の動画を並列処理するとPC全体が不安定になります。
そのため、次のようにしました。
- 解析workerは常駐させず、日付単位で1つだけ動かす
- 最初は少数ファイルだけ処理して動作確認する
- 新しい日付から少しずつ処理する
- 中断した場合でも、処理済みと未処理を区別して再開する
- 以前の動画をまとめて解析するときは、別のWindows PC上のWSL2へ処理を逃がす
天文用途では、解析を急ぐより、録画と観測記録を壊さないことの方が大事です。1晩分ずつ確実に処理できれば、過去データの整理は後から続けられます。
自然言語で観測記録を引き出せるようにする
この仕組みを作ってよかったと感じた点の一つは、ダッシュボードを眺めるだけで終わらず、観測記録を自然言語でたどれる入口を作りやすくなったことです。
録画の日時とパス、検出候補、候補画像、目視確認の結果、集計値がデータベースへまとまっているため、常駐型のAIエージェントに許可した範囲で参照させれば、次のような依頼ができます。
「20260710/023300.mp4の43-45秒にかけて流星が写っていた。この部分をクロップとフレームごとの連続画像にしてほしい。」
「他のSNSにアップロードしやすいように流星個所をクロップして5秒くらいの動画にできる?」
「ここ1週間で確認済みにした流星を、比較明合成で1枚の画像にして」
「流星群の極大前後で、確認済み候補が多かった時間帯を見せて」
たとえば最後から二つは、実際にデータベースのconfirmed状態を条件にして候補を選び、元画像や元動画を集め、必要な出力を作る処理です。毎回、録画フォルダを手で探し、日時を確認し、ファイル名を指定して処理する必要がありません。
これは「ChatBI」のような使い方に近いですが、グラフを表示するだけではありません。ダッシュボードの数値や一覧を見て気になったことを起点に、候補画像の収集、特定期間の動画切り出し、比較明合成、観測メモ用の一覧作成まで進められます。
ただし、エージェントに観測の判断を任せるわけではありません。流星かどうかの最終確認は人間が行い、公開や削除、長時間の再解析のような操作は確認してから実行します。エージェントは、蓄積した観測記録を探し、まとめ、見返しやすくするための補助者という位置づけです。
このように、先にデータの置き場所と確認状態を整えておくと、後から「こんなものを見たい」「この夜だけ切り出したい」という思いつきを、観測データに対する自然な依頼として試せるようになります。
今後やりたいこと
今のところ、この仕組みは自宅の動画を整理し、観測候補を見返しやすくするためのものです。今後は次のような方向を試したいと考えています。
- 流星群の時期に、確認済み候補を日別・時間別で比較する
- 雲量や空の明るさなど、観測条件を記録する
- 誤検知の種類を記録して、検出条件の改善に使う
- カメラの設置場所・画角・設定を変えた前後を比較する
- 気になる候補を観測メモやSNS投稿へつなげる
- 長期蓄積したデータから、自宅観測の欠測日や季節変化を見えるようにする
学術的な観測データとして扱うには、時刻精度、限界等級、空の状態、カメラ特性、検出効率など、まだ整理すべき前提が多くあります。
まずは、自分の観測環境で「何を、いつ、どの条件で見たか」を後から追える状態を作ることにしました。
おわりに
流星を自動で見つけること自体は面白いのですが、私にとってはその後の記録の方が大切になってきました。
動画を保存するだけでは、観測したことになりにくい。候補を残し、確認し、日時や条件と一緒に振り返れるようにすると、少しずつ観測記録として育っていきます。
固定カメラやスマートカメラで夜空を撮っている方は、まず気になる1晩分だけでも候補画像を残してみると、動画をただ保存している状態から一歩進めるかもしれません。
関連記事
- アマチュア天体観測と生成AI活用
- 撮影ログから画像へ観測情報を書き込むツールを、生成AIのコーディング支援で作った話
- 流星検出を題材に、AIエージェントで既存データ基盤を運用可能へ育てた実践記
- このシステムの構築に関するworker、DB、Superset、Podman、障害解析を含む技術実装の詳細をシステムエンジニア視点でまとめています


