COLMAP

Schönberger 2016 · 論文

一行要約 — デファクトスタンダードなオープンソースのインクリメンタルStructure-from-MotionおよびMulti-View Stereoパイプライン(“Structure-from-Motion Revisited”, CVPR 2016)。3Dビジョン全般でオフライン再構成と正解姿勢生成の作業馬として使われている。

問題

インクリメンタルSfM — 画像を1枚ずつレジストレーションし、構造を三角測量しながらバンドル調整していく — は2016年当時、順序のない写真コレクションに対する主流の手法だったが、「頑健性、精度、完全性、スケーラビリティは、真に汎用的なパイプラインを構築するための鍵となる問題として残っている」。既存のシステム(Bundler、VisualSFM)は登録可能な画像の大部分を登録できないことが多く、誤登録やドリフトによって破綻したモデルを生成していた。SchönbergerとFrahmはインクリメンタルパイプラインの各段階を再検討し、それを堅牢化してCOLMAPとしてリリースした。

手法とアーキテクチャ

パイプラインは2つの段階からなる。対応探索(特徴抽出、マッチング、幾何検証によるシーングラフの生成)とインクリメンタル再構成(初期化、PnPによる画像レジストレーション、三角測量、バンドル調整、外れ値フィルタリング)。本論文の貢献は各ステップを堅牢化する。

cosα=taXabtaXab2tbXabtbXab2\cos\alpha=\frac{t_{a}-X_{ab}}{\left\|t_{a}-X_{ab}\right\|_{2}}\cdot\frac{t_{b}-X_{ab}}{\left\|t_{b}-X_{ab}\right\|_{2}}

に加え、正の深度(カイラリティ)、閾値 tt 以下の再投影誤差を要求する。残りの測定値に対する再帰処理により、誤って1つのトラックに統合された複数の独立した点を復元できる。

E=jρj(π(Pc,Xk)xj22)E=\sum_{j}\rho_{j}\left(\left\|\pi\left(P_{c},X_{k}\right)-x_{j}\right\|_{2}^{2}\right)

を、姿勢 PcSE(3)P_c \in \mathrm{SE}(3) と点 XkR3X_k \in \mathbb{R}^3 にわたって最小化する(ローカルBAではCauchy損失 ρj\rho_j; 疎直接法ソルバーまたはPCGを用いたCeres)。ローカルBAは各レジストレーションの後に実行され、大域BAはモデルが一定の割合成長した後にのみ実行される。COLMAPはVisualSFMの事前BA再三角測量に加えて事後BA再三角測量を追加し、フィルタリングされる観測が減少するまでBA→再三角測量→フィルタリングを繰り返し、ドリフトに対抗する。

PatchMatchベースの併設MVSステージ(“Pixelwise View Selection for Unstructured Multi-View Stereo”, ECCV 2016)が出力を密化する。システム全体はGUI、CLI、pycolmapバインディングを備えたメンテナンスされたC++/CUDAコードベースとして提供される。

実験結果

17個のデータセット、合計144,953枚の順序のないインターネット写真において、Bundler、VisualSFM、Theia、DISCOと比較評価:

SLAMにおける意義

COLMAPは、SLAMシステムと学習ベースの再構成手法の両方が比較される基準点であり、それらを学習・評価するために使われるカメラ姿勢を生成する標準ツールでもある — 大半のNeRFや3D Gaussian Splattingパイプラインは、COLMAPの姿勢から出発する。そのインクリメンタルな設計を理解することは、SLAMが何を違う方法で行っているか(順次入力、リアルタイム予算、ループ閉じ込み)を明確にし、画像あたりのコスト増大は、大域SfM(GLOMAP)、GPU並列(InstantSfM)、フィードフォワード(DUSt3R、VGGT)の後継システムが正確に狙っている痛点である。

関連ノート