幾何学的な指紋の抽出
ある開発者は2026年8月19日、画像認識サービスに頼ることなく、リゾートの写真を大規模な位置特定検索へ変換した方法を説明した。この課題では、リゾート、島の座標、カメラの向きを特定することが求められた。有用なメタデータがなく、ドローンの高度を確実に推定することもできなかったため、筆者は写っている三つの陸地の相対的な幾何学的配置に注目した。
小型のグラフィカルツールで、手作業で選択したピクセル座標を記録し、三つの島が形成する角度と距離の比率を計算した。推定した中心をクリックする方法は正確ではないため、検索ではそれらの測定値に対しプラスマイナス20%の許容範囲を設けた。この大まかな三角形が、画像の地理的な指紋となった。
世界規模のデータセットには、WGS84によるOpenStreetMapの分割済み陸地ポリゴン集を使用し、容量は882MBだった。計算コストの高い処理を行う前に、熱帯緯度フィルターによって候補を141,131個のポリゴンに減らした。さらにヒューリスティックな処理で、5キロ以内に近接する重心が10個を超える密集した沿岸部やサンゴ礁地域を除外し、20キロ以内に少なくとも三つの陸地があるクラスターに属する点を残した。
組み合わせの増大を抑えるため、候補クラスターは最大60点に制限した。サンプリングでは小規模、中規模、大規模の島を混在させた。この制約を設けても、23,500個のクラスターから80,690,777個の三角形候補が生成された。
三角形一つにつきCUDAスレッド一つ
筆者は、それぞれの3点の組を一つのCUDAスレッドに割り当てた。各スレッド内では島を陸地面積順に並べ、最小のものをリゾートがある可能性のある小島として扱った。2次元の外積によって、残る2点の順序を決定した。その後、プログラムは最小の島を頂点とする角度と、二つの辺の長さの比率を計算した。
幾何学的形状、島の大きさ、間隔、辺の長さが、選択した許容範囲内に入る三角形だけが残った。この並列処理により、8,000万個を超える3点の組は158,784件の未処理の一致候補まで減少した。その後、クラスターの重複によって生じた重複例を統合した。
開水面の検査によって、候補はさらに減少した。プログラムは三角形の一辺の脇に、3番目の島とは反対側になるよう長方形を作成し、その中に別の陸地がある候補を除外した。この検査は、写真に見える遮るもののない水面と一致させることを目的としており、候補は948件になった。
最終的な形状フィルターは、最小の島に重点を置いた。ポルスビー=ポッパーのコンパクトネス指標が0.5未満の候補を除外し、近くに0.05平方キロメートル未満の小さな断片がない候補も除外した。最小回転長方形によって、縦横比を1.05から2.2の間に制限した。約0.589の充填率しきい値により、三日月形や切れ込みの多い形状よりも、中身が詰まった丸みのある小島らしい輪郭を優先した。
説明はその後、Element84のEarth Searchサービスを利用する、ネットワーク通信がボトルネックとなる衛星画像処理の段階へ移った。その重要性は、単一の照会よりもパイプラインにある。人間による視覚的な推定でノイズを含む指紋を作り、低コストの地理的フィルターで地球全体から候補を減らし、GPUによる並列処理によって、そうでなければ扱いにくい三角形の比較を実行可能にした。



