Depth Completion as Parameter-Efficient Test-Time Adaptation
Organizations: NVIDIA · ETH Zürich
Abstract
We introduce CAPA, a parameter-efficient test-time optimization framework that adapts pre-trained 3D foundation models (FMs) for depth completion, using sparse geometric cues. Unlike prior methods that train task-specific encoders for auxiliary inputs, which often overfit and generalize poorly, CAPA freezes the FM backbone. Instead, it updates only a minimal set of parameters using Parameter-Efficient Fine-Tuning (e.g. LoRA or VPT), guided by gradients calculated directly from the sparse observations available at inference time. This approach effectively grounds the foundation model's geometric prior in the scene-specific measurements, correcting distortions and misplaced structures. For videos, CAPA introduces sequence-level parameter sharing, jointly adapting all frames to exploit temporal correlations, improve robustness, and enforce multi-frame consistency. CAPA is model-agnostic, compatible with any ViT-based FM, and achieves state-of-the-art results across diverse condition patterns on both indoor and outdoor datasets. Project page: research.nvidia.com/labs/dvl/projects/capa.
Figures & tables
| ScanNet | 7-Scenes | iBims | Metropolis | Avg. Rank | |||||||||
| SIFT | 100 | SfM | 100 | SIFT | 100 | 8-line | 16-line | 32-line | |||||
| DepthAnythingV2 [ 58 ] | 4.8 | 3.8 | 4.7 | 5.4 | 4.6 | 4.6 | 4.0 | 3.3 | 9.2 | 54.0 | 57.0 | 56.2 | 9.8 |
| UniDepthV2 [ 36 ] | 3.2 | 2.7 | 2.8 | 4.2 | 3.7 | 3.7 | 3.4 | 2.7 | 3.2 | 29.4 | 28.3 | 27.7 | 6.6 |
| MoGe-2 [ 48 ] | 4.1 | 3.3 | 3.4 | 3.9 | 3.3 | 3.3 | 3.4 | 2.7 | 3.1 | 22.1 | 20.7 | 20.2 | 6.1 |
| VGGT [ 46 ] | 2.2 | 2.0 | 2.0 | 4.7 | 4.2 | 4.2 | 4.0 | 3.3 | 3.9 | 10.2 | 10.2 | 9.9 | 5.5 |
| VideoDA [ 5 ] | 5.0 | 4.1 | 4.2 | 6.1 | 5.1 | 5.1 | 5.2 | 4.0 | 4.6 | 50.8 | 47.3 | 46.5 | 10.0 |
| ScanNet | 7-Scenes | Metropolis | |||||||
| SIFT | 100 | SfM | 100 | 8-line | 16-line | 32-line | |||
| DepthAnythingV2 | 4.3 | 3.6 | 7.4 | 3.5 | 3.5 | 3.0 | 1296.6 | 1419.9 | 1413.8 |
| UniDepthV2 | 2.7 | 2.5 | 2.5 | 2.9 | 2.9 | 2.6 | 165.2 | 152.2 | 141.1 |
| MoGe-2 | 4.1 | 3.7 | 3.6 | 3.1 | 2.9 | 2.7 | 219.3 | 205.3 | 199.1 |
| VGGT | 2.3 | 2.2 | 2.0 | 3.1 | 3.2 | 2.9 | 149.4 | 152.5 | 149.0 |
| VideoDA | 3.3 | 3.2 | 2.8 | 3.3 | 3.6 | 2.9 | 179.3 | 160.4 | 141.5 |
| ScanNet (100) | 7-Scenes (SfM) | |||||
| In Cond. | Out Cond. | Diff. | In Cond. | Out Cond. | Diff. | |
| PromptDA | 11.8 | 13.2 | 1.4 | 3.0 | 8.3 | 5.3 |
| PriorDA-v1.1 | 1.9 | 2.5 | 0.6 | 2.0 | 3.7 | 1.7 |
| OMNI-DC-v1.1 | 0.4 | 1.5 | 1.1 | 1.7 | 3.3 | 1.6 |
| Marigold-DC | 2.4 | 3.7 | 1.3 | 1.8 | 4.1 | 2.3 |
| TestPromptDC | 3.1 | 3.8 | 0.7 | 1.7 | 3.1 | 1.4 |
| Parameter Sharing | ScanNet (100) | 7-Scenes (SfM) | Metropolis (8-line) | ||||
| AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | ||
| CAPA | Frame | 1.7 | 4.9 | 4.3 | 4.3 | 8.7 | 153.0 |
| Sequence | 0.9 | 1.9 | 3.3 | 2.7 | 7.7 | 117.0 | |
| CAPA | Frame | 1.5 | 4.1 | 3.6 | 4.0 | 8.8 | 149.9 |
| Sequence | 1.0 | 1.9 | 2.7 | 2.5 | 8.2 | 119.0 | |
| frames ] | steps | ScanNet | 7-Scenes | Metropolis | |||||
| SIFT | 100 | <3m | SfM | 100 | 8-line | 16-line | |||
| CAPA | 40 | 25 | 1.2 | 1.0 | 1.3 | 3.9 | 1.2 | 8.0 | 7.4 |
| 20 | 50 | 1.1 | 0.9 | 1.1 | 3.6 | 1.2 | 7.7 | 7.3 | |
| 10 | 100 | 1.1 | 0.9 | 1.4 | 3.3 | 1.1 | 7.7 | 7.2 | |
| CAPA | 40 | 25 | 1.3 | 1.1 | 1.4 | 3.2 | 1.4 | 8.5 | 8.1 |
| 20 | 50 | 1.3 | 1.0 | 1.5 | 3.1 | 1.3 | 8.3 | 7.8 | |
| param. | ScanNet | 7-Scenes | Metropolis | |||||
| SIFT | 100 | <3m | SfM | 100 | 8-line | 16-line | ||
| VGGT | - | 2.5 | 2.1 | 2.1 | 6.0 | 5.3 | 10.7 | 10.9 |
| FT-All | 100.00 | 1.0 | 0.9 | 1.3 | 3.6 | 1.1 | 7.4 | OOM |
| FT-Encoder | 32.32 | 1.0 | 0.9 | 1.2 | 3.8 | 1.1 | 7.4 | 6.8 |
| FT-Head | 3.47 | 1.2 | 1.1 | 1.3 | 4.0 | 1.5 | 9.1 | 8.5 |
| LoRA-Encoder | 0.04 | 1.1 | 0.9 | 1.4 | 3.3 | 1.1 | 7.7 | 7.2 |
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Base Model | LoRA Rank ( ) | VPT Length ( ) | LoRA lr | VPT lr |
| VGGT [ 46 ] | 4 | 16 | ||
| MoGe-2 [ 48 ] | 16 | 64 | ||
| UniDepthV2 [ 36 ] | 16 | 96 |
| Dataset | ScanNet | 7-Scenes | iBims | Metropolis | ||||||||
| Condition | SIFT | 100 | SfM | 100 | SIFT | 100 | 8-line | 16-line | 32-line | |||
| DepthAnythingV2 | 9.2 | 7.5 | 11.8 | 9.9 | 8.3 | 8.7 | 13.0 | 11.9 | 75.8 | 3569.9 | 3670.8 | 3682.4 |
| UniDepthV2 | 6.1 | 5.3 | 5.9 | 7.6 | 6.7 | 6.7 | 10.6 | 9.1 | 16.0 | 1401.8 | 1316.9 | 1305.3 |
| MoGe-2 | 7.7 | 6.7 | 7.2 | 7.0 | 6.0 | 6.1 | 10.0 | 8.6 | 15.8 | 1307.9 | 1253.7 | 1244.6 |
| VGGT | 4.8 | 4.4 | 4.5 | 8.9 | 8.2 | 8.3 | 14.1 | 12.4 | 20.4 | 861.1 | 839.7 | 833.3 |
| VideoDA | 9.2 | 7.8 | 8.5 | 10.8 | 9.2 | 9.3 | 16.5 | 13.8 | 21.3 | 2341.8 | 2219.1 | 2199.5 |
| Dataset | ScanNet | 7-Scenes | iBims | Metropolis | ||||||||
| Condition | SIFT | 100 | SfM | 100 | SIFT | 100 | 8-line | 16-line | 32-line | |||
| DepthAnythingV2 | 70.1 | 18.8 | 317.6 | 18.4 | 16.0 | 16.2 | 24.4 | 25.0 | 9905.9 | 317854.6 | 363883.5 | 339026.5 |
| UniDepthV2 | 13.0 | 12.3 | 12.9 | 15.6 | 15.0 | 15.0 | 22.6 | 21.8 | 30.2 | 2849.4 | 2845.6 | 2824.4 |
| MoGe-2 | 15.3 | 14.3 | 15.0 | 14.5 | 13.8 | 13.8 | 20.5 | 19.7 | 28.9 | 2424.5 | 2372.7 | 2370.3 |
| VGGT | 11.6 | 11.3 | 11.5 | 19.6 | 19.2 | 19.3 | 30.2 | 29.7 | 39.5 | 2079.8 | 2045.5 | 2048.1 |
| VideoDA | 15.4 | 14.1 | 15.0 | 18.5 | 16.7 | 16.6 | 29.8 | 28.1 | 37.4 | 3758.6 | 3710.5 | 3667.5 |
| Dataset | ScanNet | 7-Scenes | ||||||||||
| Condition | SIFT | 100 | SfM Masked Ground Truth | 100 | ||||||||
| AbsRel↓ | MAE↓ | AbsRel↓ | MAE↓ | AbsRel↓ | MAE↓ | AbsRel↓ | MAE↓ | AbsRel↓ | MAE↓ | AbsRel↓ | MAE↓ | |
| DepthAnythingV2 | 4.9 | 9.5 | 3.8 | 7.5 | 4.9 | 12.7 | 5.2 | 9.6 | 4.6 | 8.3 | 4.6 | 8.7 |
| UniDepthV2 | 3.2 | 6.0 | 2.7 | 5.3 | 2.8 | 5.9 | 4.0 | 7.3 | 3.7 | 6.6 | 3.6 | 6.7 |
| MoGe-2 | 4.0 | 7.6 | 3.3 | 6.6 | 3.3 | 7.2 | 3.6 | 6.5 | 3.3 | 6.0 | 3.3 | 6.0 |
| VGGT | 2.2 | 4.7 | 1.9 | 4.4 | 1.9 | 4.5 | 4.4 | 8.5 | 4.2 | 8.1 | 4.2 | 8.2 |
| Num. Sampled Points | 50 | 100 | 500 | 1000 | 1500 | 2000 | 2500 | |||||||
| AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | |
| VGGT | 2.1 | 2.6 | 2.1 | 2.4 | 2.1 | 2.3 | 2.1 | 2.3 | 2.1 | 2.2 | 2.1 | 2.2 | 2.1 | 2.2 |
| PriorDA-v1.1 | 3.1 | 6.0 | 2.5 | 4.9 | 1.8 | 3.5 | 1.7 | 3.3 | 1.7 | 3.1 | 1.7 | 3.1 | 1.7 | 3.1 |
| OMNI-DC-v1.1 | 1.9 | 3.7 | 1.5 | 3.1 | 1.0 | 2.5 | 0.8 | 2.3 | 0.8 | 2.3 | 0.7 | 2.3 | 0.7 | 2.2 |
| Marigold-DC | 5.0 | 12.4 | 3.7 | 9.7 | 1.8 | 4.6 | 1.4 | 3.6 | 1.3 | 3.2 | 1.2 | 3.1 | 1.1 | 2.9 |
| TestPromptDC | 4.4 | 11.1 | 4.0 | 10.0 | 3.1 | 6.3 | 2.9 | 5.0 | 2.8 | 4.3 | 2.8 | 3.9 | 2.7 | 3.6 |
| Dataset | ScanNet | 7-Scenes | Metropolis | ||||||
| Condition | SIFT | 100 | SfM | 100 | 8-line | 16-line | 32-line | ||
| UniDepthV2 | 2.7 | 2.5 | 2.5 | 2.9 | 2.9 | 2.6 | 165.2 | 152.2 | 141.1 |
| MoGe-2 | 4.1 | 3.7 | 3.6 | 3.1 | 2.9 | 2.7 | 219.3 | 205.3 | 199.1 |
| VGGT | 2.3 | 2.2 | 2.0 | 3.1 | 3.2 | 2.9 | 149.4 | 152.5 | 149.0 |
| VideoDA | 3.3 | 3.2 | 2.8 | 3.3 | 3.6 | 2.9 | 179.3 | 160.4 | 141.5 |
| PriorDA-v1.1 | 5.0 | 4.7 | 3.7 | 3.5 | 4.9 | 4.1 | 268.9 | 233.2 | 195.0 |
| Method | Rank / Token Len. | #Param. | ScanNet | 7-Scenes | Metropolis | ||||
| SIFT | 100 | <3m | SfM | 100 | 8-line | 16-line | |||
| CAPA | 0.20M | 1.1 0 | 0.9 2 | 1.4 2 | 3.8 8 | 1.1 1 | 7.8 4 | 7.2 4 | |
| 0.39M | 1.0 8 | 0.9 1 | 1.4 5 | 3.2 7 | 1.1 2 | 7.7 2 | 7.1 7 | ||
| 0.79M | 1.0 7 | 0.9 0 | 1.2 2 | 3.5 2 | 1.1 1 | 7.7 6 | 7.0 2 | ||
| 1.57M | 1.1 0 | 0.9 5 | 1.3 8 | 2.9 0 | 1.0 9 | 7.8 4 | 7.0 0 | ||
| CAPA | 0.20M | 1.2 1 | 1.0 0 | 1.4 7 | 3.0 7 | 1.2 4 | 8.4 6 | 7.8 5 | |
| Token Initialization | ScanNet | 7-Scenes | Metropolis | ||||
| SIFT | 100 | <3m | SfM | 100 | 8-line | 16-line | |
| Original + Align | 2.5 | 2.1 | 2.1 | 6.0 | 5.3 | 10.7 | 10.9 |
| Xavier | 1.2 | 1.0 | 1.5 | 3.3 | 1.3 | 8.6 | 8.0 |
| Pre-tuned | 1.2 | 1.0 | 1.4 | 2.7 | 1.2 | 8.2 | 7.7 |
| Method | Parameter Sharing | ScanNet (100) | 7-Scenes (SfM) | Metropolis (8-line) | |||
| AbsRel | OPW | AbsRel | OPW | AbsRel | OPW | ||
| MoGe-2 + CAPA | Frame | 1.9 | 5.0 | 3.5 | 3.6 | 11.0 | 164.7 |
| Sequence | 1.1 | 2.1 | 3.1 | 2.6 | 9.9 | 118.2 | |
| MoGe-2 + CAPA | Frame | 1.8 | 4.8 | 3.5 | 3.7 | 11.4 | 168.4 |
| Sequence | 1.2 | 2.2 | 3.2 | 2.7 | 11.0 | 118.6 | |
| Method | Optimization time | Inference Time | Total Time |
| VGGT [ 46 ] | - | 9 | 9 |
| Marigold-DC [ 45 ] | 1615 | - | 1615 |
| TestPromptDC [ 21 ] | 2631 | 40 | 2671 |
| CAPA LoRA | 140 | 9 | 149 |
| CAPA VPT | 146 | 9 | 155 |