InstantSfM

Zhong 2025 · 論文

一行要約 — 完全にGPU上で動作し、PyTorchと互換性のある疎性を活用した最適化を用いるグローバルSfMパイプラインであり、大規模シーンにおいてCOLMAPに対し最大約40倍の高速化を、同等の精度で達成する。

問題

成熟したSfMシステムは依然としてCPU中心であり、従来型の最適化ツールチェーン(Ceres系ソルバー)の上に構築されているため、「現代的なGPUベース・学習駆動型パイプラインとの隔たりが拡大」し、スケーラビリティを制限している — 大規模なコレクションは数時間から数日かかることもある。GPU加速されたバンドル調整は並列疎最適化の可能性を示していたが、それを完全なグローバルSfMシステムへ拡張することは、未解決の2つの問題によって阻まれていた: メトリックスケールの復元と、数値的頑健性(外れ値除去によってカメラ/点の制約が不足し、階数不足の正規方程式が生じてLevenberg–Marquardtソルバーを破綻させる可能性がある)である。InstantSfMはその完全なシステムを構築する。

手法とアーキテクチャ

InstantSfMは(GLOMAPのような)グローバルパラダイムに従う: 回転平均化、続いてグローバル位置決め(GP)、そしてバンドル調整(BA) — すべての段階がGPU上のPyTorchで疎ヤコビアンとともに実装される。GPは、回転済みのレイ方向 vij\mathbf{v}_{ij} から、点 Xj\mathbf{X}_j、カメラ中心 ti\mathbf{t}_i、および観測ごとのスケール sijs_{ij} を同時に推定する:

θ=argminX,t,si=1Cj=1Pρ(vijsij(Xjti)22)\boldsymbol{\theta}=\arg\min_{\mathbf{X},\mathbf{t},s}\sum_{i=1}^{C}\sum_{j=1}^{P}\rho\left(\|\mathbf{v}_{ij}-s_{ij}(\mathbf{X}_{j}-\mathbf{t}_{i})\|^{2}_{2}\right)

続いてBAは、再投影誤差 rij=Π(ζi,Xj,Ki)xij\mathbf{r}_{ij}=\Pi(\boldsymbol{\zeta}_{i},\mathbf{X}_{j},\mathbf{K}_{i})-\mathbf{x}_{ij} を最小化することで、姿勢 ζi\boldsymbol{\zeta}_i、内部パラメータ Ki\mathbf{K}_i、点を精緻化する。両者はLMステップ (JJ+λdiag(JJ))Δθ=Jr(\mathbf{J}^{\top}\mathbf{J}+\lambda\operatorname{diag}(\mathbf{J}^{\top}\mathbf{J}))\Delta\boldsymbol{\theta}=-\mathbf{J}^{\top}\mathbf{r} によって解かれ、BAのヤコビアン JR2CP×(7C+3P)\mathbf{J}\in\mathbb{R}^{2CP\times(7C+3P)} はブロック疎形式で保持・操作される。以下の2つの貢献がこれを完全なシステムにしている:

rijd=1Depth(ζi,Xj,Ki)1d^ij,θ=argmini,jρ(rij+λdrijd)\mathbf{r}^{d}_{ij}=\frac{1}{\text{Depth}(\boldsymbol{\zeta}_{i},\mathbf{X}_{j},\mathbf{K}_{i})}-\frac{1}{\hat{d}_{ij}},\qquad \boldsymbol{\theta}=\arg\min\sum_{i,j}\rho\left(\mathbf{r}_{ij}+\lambda_{d}\mathbf{r}^{d}_{ij}\right)

無効な深度ピクセル(空、鏡面反射)は二値マスク mijm_{ij} によって処理され、参照値を d~ij1=mijd^ij1\tilde{d}^{-1}_{ij}=m_{ij}\cdot\hat{d}_{ij}^{-1} とすることで、この項は単一の一様なGPU演算内で再投影のみの項に縮退する — 観測ごとに分岐するスレッドダイバージェンスは発生しない。

実験結果

SLAMにおける意義

オフラインSfMはSLAM研究を支える実働馬であり、疑似正解軌跡やキャリブレーション、NeRF/3DGSや学習ベースSLAMシステムの学習に使う姿勢付き画像を生成する — それを1桁高速化することは、そのエコシステムのあらゆる反復ループを短縮する。InstantSfMは、COLMAPが標準化した遅い逐次型CPUパイプラインからの脱却(GLOMAPのグローバル定式化に続く形で)を継続するものであり、そのヤコビアン内深度事前情報のトリックは、学習された事前情報を古典的推定に置き換えるのではなく融合させる、きれいな実例である。動的パラメータ抽出のアイデア — 各イテレーションで問題を再構成し正規方程式のフルランクを保つ — は、GPU常駐型のあらゆるSLAMバックエンドで広く有用である。

関連ノート