Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IMC の細かすぎる話 2025
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
@smly
July 24, 2025
Research
2
910
IMC の細かすぎる話 2025
Image Matching Challenge 2025 振り返り会にて発表した資料です。
https://turing.connpass.com/event/360266/
@smly
July 24, 2025
Tweet
Share
More Decks by @smly
See All by @smly
(Recognition) Large-scale Landmark Retrieval/Recognition under a Noisy and Diverse Dataset
smly
1
500
(Retrieval) Large-scale Landmark Retrieval/Recognition under a Noisy and Diverse Dataset
smly
2
11k
画像検索 (特定物体認識) — 古典手法、マッチング、深層学習、Kaggle
smly
24
7.9k
データ分析コンテストの 勝者解答から学ぶ
smly
46
19k
データ分析コンテストの技術と最近の進展
smly
25
9.1k
Python とデータ分析コンテストの実践
smly
15
8.9k
実験の再現性と効率化の話(Docker と Serialization 周辺)
smly
5
3.3k
Workflow, Serialization & Docker for Kaggle
smly
10
2.8k
Chapter9 Convolutional Networks
smly
2
380
Other Decks in Research
See All in Research
競合や要望に流されない─B2B SaaSでミニマム要件を決めるリアルな取り組み / Don't be swayed by competitors or requests - A real effort to determine minimum requirements for B2B SaaS
kaminashi
0
750
Proposal of an Information Delivery Method for Electronic Paper Signage Using Human Mobility as the Communication Medium / ICCE-Asia 2025
yumulab
0
170
"主観で終わらせない"定性データ活用 ― プロダクトディスカバリーを加速させるインサイトマネジメント / Utilizing qualitative data that "doesn't end with subjectivity" - Insight management that accelerates product discovery
kaminashi
15
20k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
330
2026-01-30-MandSL-textbook-jp-cos-lod
yegusa
0
210
ローテーション別のサイドアウト戦略 ~なぜあのローテは回らないのか?~
vball_panda
0
280
存立危機事態の再検討
jimboken
0
240
さまざまなAgent FrameworkとAIエージェントの評価
ymd65536
1
420
2025-11-21-DA-10th-satellite
yegusa
0
110
データサイエンティストをめぐる環境の違い2025年版〈一般ビジネスパーソン調査の国際比較〉
datascientistsociety
PRO
0
710
超高速データサイエンス
matsui_528
2
380
ACL読み会2025: Can Language Models Reason about Individualistic Human Values and Preferences?
yukizenimoto
0
120
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
First, design no harm
axbom
PRO
2
1.1k
It's Worth the Effort
3n
188
29k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
Unsuck your backbone
ammeep
671
58k
Transcript
IMC の細かすぎる話 2025 〜 COLMAP はアツいという話をそえて 〜
Agenda 最近の発展を紹介しつつ IMC を振り返り COLMAP の細かい話 Factory パターンと動的ローディングのススメ
Image Matching Challenge 2025 の概要 画像集合からカメラの姿勢 (rotation matrix) と座標 (translation
vector) を答える定番コンペ。 2025年度は画像集合に関係ない画像 (outlier) が含まれる。クラスタリングして推定する必要がある。
文字が見えない角度でも 文字盤とマッチしている
オブジェクトの裏側とマッチしている。 Keypoint detection してマッチングする アプローチだとまず無理
最近の進化:3D基盤モデル MASt3R pixel-aligned な点群を学習させることで 3D 空間の視点が必要なマッチングが可能に。 局所特徴を使った定番アプローチと比較して極端に視点が異なる場面で極めて強力。 一方で(画像が十分にある場面など)簡単な事例で精緻な推定が必要となるケースでは、それほど強くない。
最近の進化:VGGT CVPR’25 の best paper。”2枚以上” の画像を与えて、カメラ姿勢推定も深度推定もあわせてすべて同時に解く。必要とな る VRAM が大きいため IMC
環境ではうまく利用できたチームはいなかった。 MASt3R と同様、精緻な推定が必要となる場面では定番アプローチほど正確ではない。 (Camera Head で IMC’25 train の評価をしたが、可もなく不可もなくという結果。)
全画像ペアのマッチングと適応的なクラスタリング (7th place) 全画像ペアのマッチング後に inlier count で類似グラフを作成。 80 percentile point
の inlier count をしきい値としてグラフをカットしてクラスタ作成 独自に「クラスタのIoU」によりクラスタリング手法をローカルで評価して判断 VGGT (refiner のみ使用)、MASt3R を試すも上手く行かず停滞。猛省
1st place solution: MASt3R-Hybrid 全画像ペアの MASt3R によるマッチングは計算コストが高くて無理。画像検索によってマッチングするペアのリスト (shortlist) を作成する。MASt3R に加えて定番の
keypoint detector (ALIKED, SuperPoint) で keypoints を検出して、 MASt3R の semi-dense keypoints とあわせて MASt3R matcher でマッチングさせてる(精緻化を期待)。 Detection-based keypoints は必要? この hybrid なアプローチでは semi-dense も別アルゴリズムによ る detector から得られた keypoints も、MASt3R Matcher でマッ チングする。なので MASt3R の local features の良し悪しに依存 する。Matcher で合流せず concat して COLMAP で解くとアプ ローチごとの得意不得意を補って良い結果が得られた。 追試したが MASt3R-ASMK のみで十分。ただし計算コス トがほぼ無料なのでわずかに安定が増すならば積み得。
Agenda 最近の発展を紹介しつつ IMC を振り返り COLMAP の細かい話 Factory パターンと動的ローディングのススメ
pycolmap 3.10 から version が COLMAP と共通に これまで pycolmap リポジトリは
colmap とは別のリポジトリでメンテナンスされていた。 2024年7月の pycolmap 3.10.0 より本家の colmap リポジトリに統合された。 pycolmap パッケージの versioning が colmap と一緒に。めちゃ良いニュース!
pycolmap 3.10 から API が色々と変わった 3.10 から大きなリファクタリングが実施されており、API の変更点も多い。 Jianyuan Wang
が書いた VGGSfM の refiner によって point tracks を refine するスクリプト https://www.kaggle.com/code/jianyuanv/vggsfm-to-refine-pycolmap-tracks は CVPR’24 前の pycolmap 0.6.0 までは動作するが、その後の 3.10 以降は API 変更の影響を受けて動作しない。
Filtering logic が ObservationManager に移動 pycolmap 0.6.0 では filtering の各種ロジックを
Reconstruction オブジェクトのメソッドとして実装 されていたが、pycolmap 3.10 では削除されている。 代わりに ObservationManager オブジェクトが追加され、Reconstruction オブジェクトを渡して呼 び出すように仕様変更されている。ほかにも Image クラスなど Primitive なクラスから SfM のみに 使う実装を分離している。 Add ObservationManager #2575 https://github.com/colmap/colmap/pull/2575
RANSAC の停止判定の修正 (3.12.0; 2025/6/30) 停止基準に使用される「all-inlier set をサンプリングする確率 P」を近似確率から厳密な確率へ置き換えることで性 能向上した。 OpenCV,
scikit-image, COLMAP をはじめ多くの OSS 実装がこの楽観的な近似を採用していた。 1981年に示された式では、インライア比率 p の k 反復である p^k で P を近似。非復元抽出を考慮していない楽観的 な近似となっており、P を高く見積もりすぎてしまう。 これは早期停止による under sampling が起こりやすくなり、結果として誤差を生む。特にノイズが多い場合や複雑 なモデルの場合に影響が大きい。(p が小さいとき、k が大きいとき) “Fixing the RANSAC Stopping Criterion” https://arxiv.org/abs/2503.07829 COLMAP 3.12.0 にて修正。
COLMAP はアツい
Agenda 最近の発展を紹介しつつ IMC を振り返り COLMAP の細かい話 Factory パターンと動的ローディングのススメ
IMC はソフトウェア開発の工夫が活きる 様々な実験をしていくとコードベースはどんどん膨大に なっていく。ソフトウェア開発の工夫が活きる。 • Pydantic による config の validation
• Factory パターンによるモジュール分離 • テスト!テスト!テスト!(単体、統合、品質) コード例は IMC’25 1st place solution を拝借 →
経験的にモジュール間の結合を疎にしてポータビリティを上げ ると実験や開発がしやすくなる Factory モジュールをロードすると、ほかの具象クラスのモジュール も同時にロードする。複数の環境で動作して欲しいときに環境依存 の問題が起きやすくなる。 → 更に結合を疎にしてポータビリティを上げたい! 例:asmk パッケージ(環境にあわせて事前ビルド)が必要なときだ
け asmk パッケージを import して欲しい 例:なぜか pycolmap のパッケージで RuntimeError になるので必要 になるまで import しないで欲しい(※ pyceres とのバージョン不整 合でよく起こる) 例:ARM アーキテクチャでの動作をサポートしないが、開発環境で テストを動かすなど部分的に実行できるようにしたい コード例は IMC’25 1st place solution を拝借 →
Factory パターン + 動的ロードで結合を切る importlib.import_module() で動的にモジュールをロードすることで疎結合にする。 リファクタリングが難しくなる・型のサポートが部分的に消えるデメリットもあるが、 研究的なコードでは同時に依存関係を満たすことが難しいポータビリティの悪いパッケージがある。 HF transformers
も auto 系クラスは dynamic_module_utils.py から importlib で動的ロード。
デプロイ:vscode-fast-kaggle で Ctrl+Shift+U VSCode 上でショートカットキーひとつでコードベースを Kaggle Datasets にアップ。 ビルドなどワンクッション必要なときは、 git
commit を hook して Kaggle API 経由でデプロイ。あ るいは Github Actions からビルドして Kaggle API 経由でデプロイ。
まとめ • チームマージはよく考えよう • COLMAP はアツい • 動的ロードはいいぞ Image Matching
Challenge 2026 でまた会いましょう!