📷

kaggle IMC2025コンペ 上位解法まとめ

に公開

はじめに

与えられた画像セットからカメラポーズ推定を行うImage Matching Challenge 2025 というkaggleコンペが2025/6/3まで開催されていました。
コンペ終了後に公開された上位チームの解法からたくさん学びがあったので、備忘録も兼ねてまとめていきたいと思います。

コンペ概要

  • さまざまな角度から撮影された画像セットから、各画像を撮影したカメラの位置と向きを推定してその精度を競うSfMと呼ばれる分野のコンペでした。

  • このコンペはCVPR Workshopの併設コンペで、kaggleプラットフォームでは2022年から毎年開催されています。

  • 今回のコンペは、異なる複数のシーン画像で構成されるデータセットが入力されるので、画像を正しいシーンにクラスタリングし、各シーンごとにカメラ姿勢を正確に再構成することが求められるコンペでした。

    • これは例えばオンラインで自動収集した雑多な画像で3D再構成をする場合などに発生しうる課題を再現していて、より現実に即した状況でより良い性能の復元方法を考えるというのが今年のコンペの趣旨になります。

上位チーム解法まとめ

1. Approach

基本的には昨年と同様にホストが提供してくれていたベースラインに基づいたパイプラインを全チームが採用していました。

今回は、前述の通り異なるシーンが混在するデータセットからシーンごとに再構成を行う必要があるため、画像ペアを精密に選択する工夫をしているチームが多い印象でした。
また、最終的に各シーンごとの再構成結果を出力する必要がありますが、COLMAPが複数の再構成を自動で出力してくれるため、ほとんどのチームがそのままCOLMAPの出力を利用していました。

2. 画像ペア選択

何かしらのモデルで画像の特徴量を計算して類似度の高いペアを取得する「Global Feature類似度に基づくTop-kペア選択」、全てのペアを網羅的に取得してマッチングフェーズの中で徐々にフィルタリングする「Exhaustive pair」のいずれかが基本的な方針でした。

Global Feature類似度に基づくTop-kペア選択

  • DINOv2などの特徴抽出モデルで画像からグローバル特徴量を取得して類似度の高い画像ペアを選択する方法で、昨年同様に多くのチームこちらの戦略を採用していました。(1st, 3rd, etc...)

    • 特に今年はデータセット内に複数シーン画像が混在しており、網羅的にペアリングすると無駄なペアが大量に発生してしまうため、あらかじめ関連性の高いペアを選択することは精度面・速度面の両方の観点から重要だったと考えられます。
  • モデルはベースラインにも採用されていたDINOv2を使用しているチームが多かったですが、MASt3R-ASMKと呼ばれるモデルを採用しているチームもありました。(1st, 5th

    • MASt3R-ASMKは3Dビジョンの基盤モデルであるMASt3Rのエンコーダを用いたASMK(Aggregated Selective Match Kernels)による画像検索手法です。
    • 5thチームの実験によるとDINOv2を含む他モデルよりも非常に高い性能を示していました。
  • 比較的緩めのパラメータ(低めの類似度閾値や大きめのTop-Kなど)を採用し、Recallを重視した設定にしているチームが多かった印象です。

    • ペアを過度にフィルタリングしてしまうと、最終的な再構成が不安定になり、mAAスコアが低下する傾向があったためで、今回のコンペでは緩めの設定の方が相性が良かったと考えられます。

Exhaustive pair

  • 画像セット内で取り得る全てのペアを選択する網羅的(Exhausive)な手法を採用しているチームもいました。(引用:2nd6th

  • こちらの方法を採用したチームは、マッチングフェーズで軽量なモデルで初期マッチングを行い、そのインライア数に応じてペアを段階的にフィルタリングする手法を併用することで、処理時間を抑えつつ関連性の高いペアを効率的に抽出していました。

    • 今年のデータセットには、昨年よりも構成する画像数が多いものがあったり、さらに無関係なシーンの画像が混在するデータセットもあったため、処理時間の増加や誤マッチのリスク軽減のため、このようなフィルタリング手法との組み合わせが必要でした。

基本方針は前述の2通りが主流でしたが、少し変わったアプローチをとっていたチームの方法もいくつか紹介します。

二値分類アプローチ

  • 4thチームは「与えた画像ペアが同一シーンか、異なるシーンか」を分類する二値分類タスクとみなして分類モデルを学習するアプローチを採用していました。

    • 学習にはコンペデータのほかMegaDepthデータセットを使用しており、検証セットに対しては99%の精度を達成したとのことです
  • ただし、Publicテストデータに対しては過度なフィルタリングになってしまいスコアが下がったためNetVLADで検索したペアを追加することで補強をおこなっていました。

    • 個人的には距離学習のTripletLossと似ていて、性能を出すにはHard Negative Miningを考慮したり必要があって難しかったことが要因なのかなと予想しています。

Keypoint特徴ベース類似度に基づくTop-kペア選択

  • 10thチームはKeyNet-AdaLAMによるマッチング結果(インライアの平均記述子距離とインライア数)をもとに画像間の類似度を算出し、画像ペアを選択する方法を採用していました。

    • DINOv2のようなグローバル特徴では視覚的に類似したシーンの区別が難しかったのに対し、局所特徴ベースのマッチングを活用することで、細部の違いを捉えて正確なペア推定が可能になったとのことです。
  • また、DINOv2によるグローバル特徴の類似度スコアの分布に応じてTop-kの値を動的に調整することで、過剰な接続や見落としを防ぎつつ、精密なペア選択を実現していました。

3. 特徴点マッチング

マッチングモデル

  • 昨年に引き続き、特徴点抽出にALIKED、マッチャーにLightGlueを組み合わせたSparseマッチングが主流でしたが、MASt3R、RDDを使用しているチームもいました。(引用:1st4th5th

    • 特にMASt3Rは1stチームでも採用されており、Public/Privateともに一貫して高いスコアを出していました。今後はこのような基盤モデルに主流が変わっていくのかもしれません。
  • また、GIMという方法で学習されたLightGlueを使用しているチームもいました。(引用:2nd8th

    • GIMは、インターネットから収集した動画を利用して既存のマッチャー性能を自己学習により強化する学習手法になります。
    • 公式実装ではGIMで学習したDKMやRomaなども提供されていますが、今回はいずれのチームもLightGlue(+SuperPoint)を採用していました。

クロップ&スプリット

  • 過去コンペと同様に密集領域を推定してクロップしたり、画像を4つにスプリットしてそれぞれでマッチングをする戦略は引き続き多くのチームソリューションで採用されていました。

    • 特にクロップ処理はキーポイントマッチングに依存するため、採用した多くのチームが複数の解像度やモデルを併用してマッチング精度を高めることでより正確なクロップを実現していました。

    • 一方で、MASt3Rの半密マッチングモデルを使用していたチームはクロップもスプリットも採用していませんでした。これは、おそらく処理時間の制限が厳しかったことや単純にMASt3Rがこれらの処理をしなくても十分なマッチング性能を発揮することができたためではないかと思われます。

  • 3rdチームは各画像を4分割した画像と、元画像を1/2にリサイズしたものを加えた計5種類の画像セットに変換し、各ペアについて5×5=25通りの組み合わせでマッチングを行っていました。

    • 単純に計算量が25倍になるため処理時間が膨大になる懸念がありますが、キーポイントの計算結果をキャッシュしたり、LightGlueのパラメータを調整することで、制限時間内での処理を実現していたようです。

4. カメラポーズ推定

今回のコンペでは、このフェーズで目立った工夫をしているチームはあまりいなかった印象です。
colmapの出力する再構成結果を登録画像数に応じてソートしてから最終的なクラスタ決定したり、colmapのパラメータ調整をしたチームもいましたが、少なくともLBに対する効果は限定的だったりあまり効果が無かったようです。

おそらく前者については、そもそも分離が容易なシーンでは複数のシーンにまたがって登録される画像がほとんど存在せず、逆に分離が難しいシーンでは再構成自体が困難になるため、「登録画像数が多い」=「スコアが高い」とは限らず、効果は限定的だったのではないかと考えています。
また後者については、私のローカル実験では一部のシーンに対して有効なパラメータも見つかりましたが、すべてのシーンに対して一貫して効果を示すパラメータは見つけられず、さまざまな特性を持つデータセットが含まれるリーダーボード上で安定して効果を出すのは難しかったのではないかと思います。

まとめ

今回のコンペでは、クラスタリングスコアとmAAスコア(再構成スコア)のバランスを取るために、各チームがさまざまな工夫を凝らしていました。どの手法にも新規性は見られましたが、多くは過去のコンペの手法をベースに発展させたものであり、類似する過去のアプローチを丁寧に確認することの重要性を改めて実感しました。

また、今年は3Dビジョンの基盤モデルが活躍したことも特徴的だったように思います。
(今回のコンペには上手くハマらなかったですが)CVPRのベストペーパーにVGGTが選ばれるなど、3Dビジョンモデルの開発は注目度も高く盛んに行われているので、定期的に動向をチェックしていきたいと思います。

Discussion