Marginalized Bundle Adjustment: Multi-View Camera Pose from Monocular Depth Estimates
Organizations: Google · Michigan State University
Abstract
Structure-from-Motion (SfM) is a fundamental 3D vision task for recovering camera parameters and scene geometry from multi-view images. While recent deep learning advances enable accurate Monocular Depth Estimation (MDE) from single images without depending on camera motion, integrating MDE into SfM remains a challenge. Unlike conventional triangulated sparse point clouds, MDE produces dense depth maps with significantly higher error variance. Inspired by modern RANSAC estimators, we propose Marginalized Bundle Adjustment (MBA) to mitigate MDE error variance leveraging its density. With MBA, we show that MDE depth maps are sufficiently accurate to yield SoTA or competitive results in SfM and camera relocalization tasks. Through extensive evaluations, we demonstrate consistently robust performance across varying scales, ranging from few-frame setups to large multi-view systems with thousands of images. Our method highlights the significant potential of MDE in multi-view 3D vision.
Figures & tables
| Dataset | ScanNet [ 15 ] | Tanks&Temples [ 30 ] | ETH3D [ 58 ] | IMC2021 [ 6 ] | 7-Scenes [ 60 ] | Wayspots [ 8 ] |
|---|---|---|---|---|---|---|
| Images | ||||||
| Pairs |
| Scene | COLMAP [ 56 ] | ACE-Zero [ 10 ] | FlowMap [ 62 ] | VGG-SfM [ 73 ] | DF-SfM [ 28 ] | MASt3R-SfM [ 18 ] | MBA (Ours) | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | |
| courtyard | ||||||||||||||
| delivery area | ||||||||||||||
| electro | ||||||||||||||
| facade | ||||||||||||||
| kicker | ||||||||||||||
| Type | Method | AUC | AUC | AUC |
| Detector-Based | SIFT+NN + COLMAP [ 56 ] CVPR’16 | |||
| SIFT + NN + PixSfM [ 41 ] ICCV’21 | ||||
| D2Net + NN + PixSfM [ 41 ] ICCV’21 | ||||
| R2D2 + NN + PixSfM [ 41 ] ICCV’21 | ||||
| SP + SG + PixSfM [ 41 ] ICCV’21 | ||||
| Detector-Free | LoFTR + PixSfM [ 41 ] ICCV’21 |
| Method | Inference | RRA@5 | RTA@5 | ATE | Registration |
|---|---|---|---|---|---|
| Cut3R [ 75 ] CVPR’25 | FeedForward | ||||
| Spann3R [ 71 ] 3DV’25 | |||||
| SLAM3R [ 42 ] CVPR’25 | |||||
| VGGT-SLAM [ 43 ] arXiv’25 | |||||
| Light3R-SfM [ 21 ] CVPR’25 | |||||
| SAIL [ 16 ] arXiv’25 |
| Method | Depth | Corres. | |||
|---|---|---|---|---|---|
| COLMAP [ 56 ] | - | SuperPoint [ 17 ] | |||
| MBA (Ours) | ZoeDepth [ 5 ] | RoMa [ 20 ] | |||
| DUSt3R [ 79 ] | RoMa [ 20 ] | ||||
| UniDepth [ 49 ] | RoMa [ 20 ] | ||||
| DUSt3R [ 79 ] | MASt3R [ 34 ] | ||||
| UniDepth [ 49 ] | MASt3R [ 34 ] |
| Category | Method | Average (deg/cm) |
|---|---|---|
| FM | AS [ 55 ] PAMI’16 | |
| HLoc [ 53 ] CVPR’19 | ||
| E2E | SC-wLS [ 81 ] ECCV’22 | |
| NeuMaps [ 65 ] CVPR’23 | ||
| PixLoc [ 54 ] CVPR’21 | ||
| SCR | ACE [ 8 ] CVPR’23 |
| Scene | MAREPO [ 11 ] | [ 9 ] | ACE [ 8 ] | MBA (Ours) |
|---|---|---|---|---|
| Cubes | ||||
| Bears | ||||
| Winter Sign | ||||
| Inscription | ||||
| The Rock | ||||
| Tendrils |
| MegaDepth | ScanNet | |||||
| Method AUC | ||||||
| LoFTR [ 63 ] CVPR’21 | 52.8 | 69.2 | 81.2 | 22.1 | 40.8 | 57.6 |
| PDC-Net+ [ 68 ] TPAMI’23 | 51.5 | 67.2 | 78.5 | 20.3 | 39.4 | 57.1 |
| DKM [ 19 ] CVPR’23 | 60.4 | 74.9 | 85.1 | 29.4 | 50.7 | 68.3 |
| PMatch [ 86 ] CVPR’23 | 61.4 | 75.7 | 85.7 | 29.4 | 50.1 | 67.4 |
| RoMa [ 20 ] CVPR’24 | 62.6 | 76.7 | 86.3 | 31.8 | 53.4 | 70.9 |
| Dataset | Max Graph Size | Max Runtime | ||
|---|---|---|---|---|
| Images | Pairs | Ours | COLMAP | |
| ScanNet [ 15 ] | h | h | ||
| ETH3D [ 58 ] | min | min | ||
| IMC2021 [ 6 ] | min | min | ||
| 7-Scenes [ 60 ] | h | h | ||
| Wayspots [ 8 ] | h | Crash | ||
| Ablation | Method | RRA | RTA |
|---|---|---|---|
| Stages | Initialization | ||
| Coarse | |||
| Fine | |||
| Density | |||
| Type | Method | ETH3D Dataset | ||
|---|---|---|---|---|
| AUC | AUC | AUC | ||
| Detector-Based | SIFT+NN + COLMAP [ 56 ] CVPR’16 | |||
| SIFT + NN + PixSfM [ 41 ] ICCV’21 | ||||
| D2Net + NN + PixSfM [ 41 ] ICCV’21 | ||||
| R2D2 + NN + PixSfM [ 41 ] ICCV’21 | ||||
| SP + SG + PixSfM [ 41 ] ICCV’21 | ||||
| ATE | RTA@3 | AUC-R&T @ 3 | RTA@1 | AUC-R&T @ 1 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| n_imgs | MBA (Ours) | FastMap [ 36 ] | GLOMAP [ 47 ] | COLMAP [ 56 ] | MBA (Ours) | FastMap [ 36 ] | GLOMAP [ 47 ] | COLMAP [ 56 ] | MBA (Ours) | FastMap [ 36 ] | GLOMAP [ 47 ] | COLMAP [ 56 ] | MBA (Ours) | FastMap [ 36 ] | GLOMAP [ 47 ] | COLMAP [ 56 ] | MBA (Ours) | FastMap [ 36 ] | GLOMAP [ 47 ] | COLMAP [ 56 ] | |
| mipnerf360 (9) | 215.6 | 5.0e-4 | 4.2e-4 | 3.3e-5 | 5.8e-5 | 99.6 | 99.9 | 100.0 | 100.0 | 85.5 | 97.4 | 98.2 | 97.2 | 87.3 | 99.8 | 100.0 | 99.7 | 66.1 | 92.4 | 94.6 | 91.9 |
| tnt_advanced (6) | 337.8 | 1.7e-2 | 6.4e-3 | 1.2e-2 | 1.2e-3 | 59.9 | 71.4 | 79.1 | 98.5 | 34.7 | 42.6 | 75.3 | 94.8 | 25.2 | 42.3 | 77.5 | 97.0 | 12.5 | 16.7 | 69.8 | 90.0 |
| tnt_intermediate (8) | 268.6 | 5.7e-3 | 7.8e-5 | 1.9e-5 | 2.6e-4 | 89.8 | 99.9 | 100.0 | 99.8 | 61.7 | 94.1 | 99.0 | 98.9 | 62.8 | 99.3 | 99.9 | 99.5 | 35.4 | 83.1 | 96.9 | 97.3 |
| tnt_training (7) | 470.1 | 3.8e-3 | 3.0e-3 | 1.1e-2 | 3.0e-4 | 88.8 | 87.8 | 88.7 | 99.9 | 63.2 | 77.2 | 87.9 | 99.5 | 63.6 | 82.1 | 88.6 | 99.9 | 31.9 | 60.5 | 86.3 | 98.7 |
| nerf_osr (8) | 402.8 | 1.4e-3 | 1.6e-3 | 1.1e-3 | 1.3e-3 | 89.8 | 91.7 | 92.0 | 92.1 | 69.3 | 70.9 | 71.9 | 71.7 | 54.4 | 71.1 | 71.9 | 71.7 | 35.0 | 43.2 | 45.2 | 44.7 |
| Scene | COLMAP [ 56 ] | ACE-Zero [ 10 ] | FlowMap [ 62 ] | VGGSfM [ 73 ] | DF-SfM [ 28 ] | MASt3R-SfM [ 18 ] | Ours / DUSt3R [ 79 ] | Ours / ZoeDepth [ 5 ] | Ours / UniDepth [ 49 ] | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | RRA | RTA | |
| courtyard | ||||||||||||||||||
| delivery area | ||||||||||||||||||
| electro | ||||||||||||||||||
| facade | ||||||||||||||||||
| kicker | ||||||||||||||||||
| Method | Depth | Corres. | Calibrated | Uncalibrated | ||||
|---|---|---|---|---|---|---|---|---|
| COLMAP [ 56 ] | - | SuperPoint [ 17 ] | ||||||
| MBA (Ours) | ZoeDepth [ 5 ] | RoMa [ 20 ] | ||||||
| DUSt3R [ 79 ] | RoMa [ 20 ] | |||||||
| UniDepth [ 49 ] | RoMa [ 20 ] | |||||||
| DUSt3R [ 79 ] | MASt3R [ 34 ] | |||||||
| Category | Method | Chess | Fire | Heads | Office | Pumpkin | Kitchen | Stairs | Average |
|---|---|---|---|---|---|---|---|---|---|
| FM | AS [ 55 ] PAMI’16 | ||||||||
| HLoc [ 53 ] CVPR’19 | |||||||||
| E2E | SC-wLS [ 81 ] ECCV’22 | ||||||||
| NeuMaps [ 65 ] CVPR’23 | |||||||||
| PixLoc [ 54 ] CVPR’21 | |||||||||
| SCR | ACE [ 8 ] CVPR’23 |
Camera Pose Estimation
Camera pose estimation recovers a camera’s position and orientation from images, visual features, scene geometry, and sometimes sensor measurements.
See all 226 papers