357 Views
November 27, 25
スライド概要
解法レポートの公開を許可してくださったSpaceNetチームに感謝いたします。
I gratefully acknowledge the SpaceNet team for allowing the publication of the solution report.
大きめのトイプードルが好きです
SpaceNet 9: Cross-Modal Satellite Imagery Registration 2位解法の紹介 2025.11.26 木村 元紀 GOドライブ株式会社 AI Community ※特に断りがない場合、資料内の衛星画像は SpaceNet 9 データセットからの引用となります。 RGB 衛星画像の著作権は Maxar 社(提供当時。現 Vantor)に、 SAR 衛星画像の著作権は Umbra 社に帰属します。
自己紹介 木村 元紀 ▪ ▪ 所属:GOドライブ株式会社 趣味:衛星画像(リモセン画像)コンペ ▪ Solafune ▪ 優勝3回 ▪ コンペ総合ランク1位 ▪ (2025年11月時点) ▪ SpaceNet Challenge ▪ SN6 4th ▪ SN7 4th ▪ SN8 5th ▪ SN9 2nd ⬅New! 画像はTopcoderのSpaceNet 9 Challengeのページから引用 2
SpaceNet 9 コンペ概要 ▪ ▪ ▪ タスク:RGB と SAR(合成開口レーダー)の衛星画像の位置合わせ 入力:撮影時期・衛星が異なる RGB画像・SAR画像のペア ▪ RGB:Maxar社(現Vantor社)の衛星画像 ▪ SAR:Umbra社の衛星画像(グレースケール) ▪ ビット深度:8ビット ▪ 地上分解能:30~50cm ▪ 画像サイズが大きい:一辺が数千~1万3千ピクセル程度 ▪ 大まかに位置合わせされている(ズレは数十ピクセル程度) 提出様式:RGB を SAR に位置合わせするためのオフセット画像(2 channels) ▪ 各画素における x方向・y方向のオフセット値を格納 ▪ つまり RGB画像→SAR画像の密なオプティカルフロー RGB 衛星画像(© Maxar) SAR 衛星画像(© Umbra) RGB→SARのオフセット画像(オプティカルフロー) 3
評価指標 ▪ ▪ ▪ アノテーションされた tie-point(対応点)がある画素において、正解オフセットと予測オフセッ トの誤差(ユークリッド距離)を計算し、それらの平均値を Raw Score(単位:ピクセル) とする LB上に 0~100 のスコアとして表示するため、Raw Score(RS)に以下の変換を施す ▪ LB = 100 / (1 + 0.01 × RS) tie-point のない画素の予測値はスコアに影響しない あるシーンにおけるtie-point(対応点)の分布 RGB 衛星画像(© Maxar)、SAR 衛星画像(© Umbra) Tie-pointは、交差点の角など、対応がわかりやすい地点に付けられている 画像はTopcoderのSpaceNet 9 Challengeのページから引用 4
SpaceNet 9 データセット構成 ▪ ▪ ▪ AOI (Area Of Interest, 撮影地域)は3つ ▪ private の AOI-1 は train・public に含まれない未知の地域 シーン数(画像ペア数)はかなり少ない シーンごとに画像サイズが大きく異なる ▪ train・public では約 2700x10000 ~ 7700x11000 pixels と幅がある ▪ private は長辺が 13000 pixel 程度のさらに大きな画像であることが示唆されていた データ区分 AOI シーン数(画像ペア数) tie-points train 2, 3 3 公開 (3シーンの合計で 416点) public test 2, 3 2 非公開 private test 1 1 非公開 5
そのほかのルール ▪ ▪ ▪ ▪ private_test に対する最終評価はホストが用意する AWS EC2環境で行われる 学習の再現性もチェックされる 制限時間あり ▪ 推論:g4dn.12xlarge で 30分以内 ▪ 学習:g4dn.12xlarge で 24時間以内 最終評価に提出できるのは1つだけ 6
2nd Place Solution(木村の解法) Stage 0 Stage 1 7
Patch-wise Feature Extraction and Matching Stage 0 Stage 1 8
Patch-wise Feature Extraction and Matching ▪ ▪ ▪ RGB・SAR画像それぞれから sliding widnow で固定サイズのパッチを切り出す ▪ 大まかな位置合わせはされており GeoTIFF のメタデータとしてそれぞれに地理座標が付与されてい るため、地理座標空間内で同じ領域を切り出すだけでOK ▪ パッチサイズは 1km四方(RGB画像では 3300x3300 pixels 程度) パッチペアを複数の画像マッチングモデルに入力し、キーポイント(対応点)のXY座標ペアを取得 ▪ 画像ペアは実験的に求めたサイズ(モデルごと2~4スケール)に縮小してからモデルに入力する ▪ キーポイント座標は元の RGB・SAR画像の座標系に戻す パッチ・モデル・入力サイズを区別せず、キーポイント座標を連結 ➡Nx2の配列のペアを得る MINIMA-LoFTR MINIMA-XoFTR ALIKED-LightGlue Concat matched kpt pairs across all patches, models, and scales DISK-LightGlue RGB kpts (Nx2) SAR kpts (Nx2) SIFT-LightGlue Patch-wise Feature Extraction and Matching のパイプライン概略図 RGB 衛星画像(© Maxar)、SAR 衛星画像(© Umbra) 9
各モデルのマッチング結果の比較 MINIMAが 圧倒的に強い! MINIMA-LoFTR MINIMA-XoFTR ALIKED-LightGlue DISK-LightGlue SIFT-LightGlue 各モデルのマッチング結果の比較。RANSACでインライア判定されたペアを緑、アウトライア判定されたペアを赤で描画。 RGB 衛星画像(© Maxar)、SAR 衛星画像(© Umbra) 10
MINIMA: Modality Invariant Image Matching [Zhou+ CVPR’25] ▪ ▪ ▪ RGB / Infrared / Depth / Event など異なるモダリティ間に対応する汎用的な画像マッチングモデル 生成モデルを利用して RGB画像から他モダリティ画像を生成することで、多様なモダリティを含む MegaDepth-Syn データセットを構築 MegaDepth-Syn で finetune したモデル(MINIMA)は zero-shot のモダリティでも高い汎化性能を発揮 ▪ MegaDepth-Syn の RGB 以外のモダリティは infrared, depth, event, normal, sketch, paint ▪ データセットに含まれないモダリティ(例えば RGB-SAR)でも高い性能を発揮 左:MINIMAのパイプライン概略図。右:異なるモダリティ間における、MINIMAと既存手法とのマッチング性能の比較結果。 (図はMINIMAの論文 [Zhou+ CVPR’25] より引用) image-matching-models からも使えます 11
Keypoint Filtering in Building Areas Stage 0 Stage 1 12
Keypoint Filtering in Building Areas ▪ ▪ 以下の理由により建物周辺のキーポイントは精度低下の原因となるため、処理から除外したい ▪ Tie-point は建物を避けてアノテーションされており、そもそも評価の対象外 ▪ RGB・SAR で建物の倒れこむ方向が異なり、誤差の要因となる 外部データで学習したセグメンテーションモデルを用いて RGB画像から建物領域を検出し、建物周 辺のキーポイントを削除する。以下の2種類の U-Net を利用: ▪ SpaceNet 2 Dataset で自前学習 ➡ 建物領域をセグメンテーション ▪ Overhead Geopose Challenge の優勝モデル ➡ 地面からの高さを画素ごとに回帰 RGBとSARでは、建物の倒れこむ方向が異なる RGB 衛星画像(© Maxar)、SAR 衛星画像(© Umbra) 左上:建物のセグメンテーション結果、右上:地面からの高さの推定結果 左下:建物周辺のキーポイントを削除した後に残ったキーポイントの分布 RGB 衛星画像(© Maxar) 13
Global and Local Registration Stage 0 Stage 1 14
Global Registration ▪ ▪ ▪ キーポイントペアからオフセットマップ(画素ごとのオフセット)を得るため、射影変換を仮定 シーン内の全キーポイントペアを入力として RANSAC でホモグラフィ行列を推定 ホモグラフィ行列を RGB画像の各画素の XY座標に適用し、変換前後の座標値の差をオフセット マップ(大域オフセットマップ)とする 推定された大域オフセットマップ。オフセットの方向を色相 (Hue)、変位量の大きさを輝度(Value)として可視化。 15
Local Registration (Patch-wise Registration) ▪ ▪ ▪ Global Registration の問題点 ▪ シーン全体に単一のホモグラフィを適用しただけでは、局所的な歪みやズレが捉えられない Local Registration ▪ シーンを sliding window で固定サイズのパッチに分割 ▪ パッチ内のキーポイントペアに対して、RANSACによるホモグラフィ推定を行い、パッチ内の局所オフセッ トマップ(パッチサイズと同じ空間サイズ)を推定 Weight Map ▪ キーポイントが疎な領域では、局所オフセットマップに大きな誤差が発生することがある ▪ 誤差を抑制するため、局所オフセットマップの信頼度を表すヒートマップ(weight map)を導入 ▪ Weight map は RANSAC の各インライアを中心とした正規分布を重ねて生成 パッチ内のキーポイントペア(RANSACのインライアを緑、アウトライアを赤で表示)と、インライア分布から推定されたweight map。 RGB 衛星画像(© Maxar)、SAR 衛星画像(© Umbra) 16
Weighted Averaging of Global and Local Offset Maps ▪ ▪ 画素ごとの加重平均により、大域・局所オフセットマップを統合 ▪ 大域オフセットの重み:全画素で固定値1 ▪ 局所オフセットの重み:weight map をそのまま使用 Weight map は最大値10 ▪ キーポイントが十分にある領域では、局所オフセットマップを9割以上信頼 ▪ 一方で、キーポイントが疎な領域では大域オフセットマップがバックアップとして機能 統合後のオフセットマップ。オフセットの方向を色相 (Hue)、変位量の大きさを輝度(Value)として可視化。 (参考)オフセット推定に使われたキーポイントの分布。 キーポイントが密な場所では、局所オフセットマップの重みが大 きくなるため、オフセットマップ(左)が局所的に変化している RGB 衛星画像(© Maxar) 17
Refinement Stage (Stage 1) Stage 0 Stage 1 18
Refinement Stage (Stage 1) ▪ ▪ ▪ 目的:Stage 0 で補正できなかったオフセット(残渣)を推定 フロー ▪ Stage 0 のオフセットマップで RGB画像をワープ ▪ SAR とワープした RGB に対して Stage 0 の一連の処理を 再度適用することで、残渣オフセットマップを推定 ▪ Stage 0 のオフセットマップと推定した残渣オフセット マップを合成 効果 ▪ RGB画像をワープすることで RGB画像と SAR画像の重なり が大きくなり、Stage 0 よりも多くのキーポイントを検出 できる(特にパッチの端部分) ▪ 結果として位置合わせの安定性と精度が向上する(ことも ある) 19
Ablation Studies ▪ ▪ ▪ ▪ マッチングモデルでは、MINIMA-LoFTR が MVP 建物領域のキーポイント除去は、一部のシーンでは効果がある Local Registration は必須。Weight map は改善度合いにばらつきはあるが、全シーンで改善している Refinement Stage(残渣オフセット推定)は、一部のシーンでは効果がある 02_train_01 02_train_02 03_train_01 average full pipeline 83.6 (+0.0) 85.1 (+0.0) 85.1 (+0.0) 84.6 (+0.0) w/o MINIMA-LoFTR 77.5 (-6.1) 71.2 (-13.9) 81.3 (-3.8) 76.7 (-7.9) w/o MINIMA-XoFTR 83.3 (-0.3) 85.1 (+0.0) 85.0 (-0.1) 84.5 (-0.1) w/o ALIKED-LightGlue 82.5 (-1.1) 85.6 (+0.5) 85.9 (+0.8) 84.7 (+0.1) w/o DISK-LightGlue 83.4 (-0.2) 85.3 (+0.2) 85.1 (+0.0) 84.6 (+0.0) w/o SIFT-LightGlue 83.4 (-0.2) 85.2 (+0.2) 85.2 (+0.0) 84.6 (-0.0) w/o keypoint filtering 83.1 (-0.5) 83.2 (-1.8) 85.5 (+0.4) 84.0 (-0.6) w/o local registration 66.8 (-16.8) 65.5 (-19.6) 80.4 (-4.7) 70.9 (-13.7) w/o weight map (fixed weight=1) 79.6 (-4.0) 82.7 (-2.4) 84.6 (-0.5) 82.3 (-2.3) w/o refinement stage 81.5 (-2.2) 84.9 (-0.2) 85.2 (+0.0) 83.8 (-0.8) 20
感想 ▪ ▪ 最近の画像マッチングモデルすごい ▪ RGB-SAR間でもかなり正確にマッチングできる Shakeしなくてよかった ▪ 前回の SpaceNet 8 での失敗(public 1st → private 5th)に懲りたのと、今回は private が 1シーンしかないことを考慮し、慎重なパイプライン設計・パラメータ選択を行った ▪ Train・public の 5シーンの内、1つでもスコアが大きく下がるものは見送った ▪ 1st は public 9th から shake up しているので、解法が気になる 21