マスターリンク表をバイナリー化してコンパクト(12.6Mbyte)化、54万件のデータの読み込み時間を大幅に短縮しました。以前の tetra 用離角表に比較すると大変小さいのでそのまま配信できるレベルです。

 

バイナリー化によって、前回16秒かかっていたものが、4秒程度になりました。

 

少し自信を持ちかけてきたところで、別の写真に取り組みましたが、結果的には落ち込みました^^;

 

この写真です。ほぼ中央にある明るい星はアルゴル、ペルセウス座にある2等星です。

 

keypoint で特徴点を68個検出して、マスターリンク表と照らし合わせますが、一件も検出できませんでした;;

ちなみに特徴点が少ないので検出プログラムの実行時間も短く、0.5秒ほど^^。

 

原因を探るために、本来の目的ではない可視化ツールを黙々と整備していきます;;

 

写真から作ったリンクを表示するツール

 

リストをクリックするとマスターリンク表上のリンクを辿れるツール

 

検出できなかった原因は、keypoints の恒星半径算出の不備でした。

一般的な恒星像は、なだらかな山型のデータを持っているため、1階微分の最小値を恒星半径の半分としていました。今回はアルゴルが明るすぎて、中央から半径10ピクセルくらいまで値が約1.0の最大値に飽和していました。なだらかな山ではなく頭がすっぱり切れた台形山だったのです。

こうなると平らな山頂での微少な凹凸を半径とみなしてしまい本来半径20程度のアルゴルが半径たった1となっていました。

 

これを改修して再実行したところ、たった1件ですがヒットしました。実は上の可視化ツールは検出したたったひとつのリンクです。disp_linkツールでは、30→63→65→66。

 

いまのところ他の写真でも検証中ですが、本ロジック採用でわかってきたことは、

検出は高速(特徴点が1000件でも8秒程度で完了)

・写真から相対等級を求めることは困難

 

というところです。写真のGチャンネルはV等級と近いはずです。が、やはりDB上0.1等級差の恒星どうしを写真で正しくどちらが明るいか検出することは困難です(いまのところ)。

今回の写真でも一箇所でも恒星順が上下すれば検出できた、という場所がたくさんあります。

 

従前の tetra は明るさに頼っておらず、純粋に幾何学上の合同三角形検出なため時間はかかりますが確実です。

対して、今回ロジックではいかに明るさをマスタに近い形(正しいか誤っているかにかかわらず)でソートできるかにかかっています。(写真で見る限り、こちらが明るいと感じても、DBを見ると暗い等級で登録されていることもある)

 

マスタにしているTycho2の明るさも20年以上経った現在どのくらい正しいのか、または撮影地(光害やPM2.5や黄砂のような微粒子)による影響でどれだけ明るさが変ってくるのか、などもあるのかも知れません。

 

検出側のプログラムはこれ以上手直しがきかないので、keypoints 側の恒星等級検出に力を入れていますが、ある程度で区切って、違うアイデア(10%以内で検出された明るさの差の星どうしを入れ替えるとか)を投入する必要があるのかも知れません。