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による画像レジストレーション、三角測量、バンドル調整、外れ値フィルタリング)。本論文の貢献は各ステップを堅牢化する。
- シーングラフの拡張: マルチモデル幾何検証は、ペアごとに基礎行列(個のインライア)、ホモグラフィ()、本質行列()を推定し、のようなインライア比と三角測量角の中央値 によって各エッジを一般、パノラマ的(純粋な回転)、平面的に分類する。ウォーターマーク/タイムスタンプ/フレーム(“WTF”)ペアは、境界領域の相似変換によって検出され破棄される。再構成は非パノラマ的で、できればキャリブレーション済みのペアからのみシード化され、パノラマ的ペアは三角測量されない。
- 次善視点選択: 候補画像は、マルチ解像度ピラミッド(レベル、1辺あたりセル、重み )によってスコア付けされる。可視な三角測量点を含む各セルはレベルごとに1回貢献するため、スコア は多数かつ均一に分布した2D-3D対応の両方に報酬を与える — 不確かさ駆動の視点計画の効率的な近似である。
- 頑健な多視点三角測量: 特徴トラック(推移的に連鎖されたマッチ)は外れ値に大きく汚染されている可能性があるため、三角測量は再帰的RANSACとしてトラック要素上で定式化される。2つの測定値をサンプリングし、(、DLT)を三角測量し、良条件である場合のみモデルを受理する — 十分な三角測量角 を
に加え、正の深度(カイラリティ)、閾値 以下の再投影誤差を要求する。残りの測定値に対する再帰処理により、誤って1つのトラックに統合された複数の独立した点を復元できる。
- 反復BA、再三角測量、フィルタリング: バンドル調整は、ロバスト化された再投影誤差
を、姿勢 と点 にわたって最小化する(ローカルBAではCauchy損失 ; 疎直接法ソルバーまたはPCGを用いたCeres)。ローカルBAは各レジストレーションの後に実行され、大域BAはモデルが一定の割合成長した後にのみ実行される。COLMAPはVisualSFMの事前BA再三角測量に加えて事後BA再三角測量を追加し、フィルタリングされる観測が減少するまでBA→再三角測量→フィルタリングを繰り返し、ドリフトに対抗する。
- 冗長ビューの発掘: 密なコレクションでは、相互重複度 (2値の点可視性ベクトル)が高い未影響画像がグループ にクラスタリングされ、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と比較評価:
- 完全性: ほぼすべてのデータセットで最も多くの画像を登録する — 例えばRomeでは74,394枚中20,918枚(Bundlerの14,797枚、Theiaの13,455枚に対して)、Quadでは5,860枚(5,624/5,028枚に対して)。
- 精度: Quadの正解カメラ位置における最良の姿勢精度 — 誤差の中央値0.85 m(VisualSFMの0.89 m、Bundlerの1.01 m、DISCOの1.16 mに対して)。平均再投影誤差はおよそ0.6-0.8 px(Bundler/Theiaのおよそ1.5-3.2 pxに対して)。
- 効率性: Bundlerより50倍以上高速(VisualSFMよりわずかに遅く、Theiaが最速)。RANSAC三角測量は網羅的サンプリングより10-40倍高速で、トラック長はわずかに短くなる。Dubrovnik(4,700万の検証済みマッチから290万トラック)では、再帰的RANSACが平均トラック長8.8で906,501点を回復し、Bundlerの713,824点(平均トラック長7.8)を上回る。
- 冗長ビューの発掘: 重複度閾値 = 0.6/0.3/0.1に対して全体実行時間の高速化5%/14%/32%を達成し、平均再投影誤差は0.26 pxから0.27-0.29 pxへとわずかに悪化するのみ。Colosseumでは、 = 0.4で同等の再構成を保ちながらフルパイプラインの実行時間を36%削減する。
SLAMにおける意義
COLMAPは、SLAMシステムと学習ベースの再構成手法の両方が比較される基準点であり、それらを学習・評価するために使われるカメラ姿勢を生成する標準ツールでもある — 大半のNeRFや3D Gaussian Splattingパイプラインは、COLMAPの姿勢から出発する。そのインクリメンタルな設計を理解することは、SLAMが何を違う方法で行っているか(順次入力、リアルタイム予算、ループ閉じ込み)を明確にし、画像あたりのコスト増大は、大域SfM(GLOMAP)、GPU並列(InstantSfM)、フィードフォワード(DUSt3R、VGGT)の後継システムが正確に狙っている痛点である。