HiP3R: Hierarchical Pose Graphs for Long-Horizon 3D Reconstruction
Organizations: S-Lab, Nanyang Technological University · Imperial College London · ACE Robotics
Abstract
Feed-forward models accurately estimate camera motion and 3D geometry from short video windows. However, computational and memory costs prevent direct inference on sequences containing thousands of frames. Long videos must therefore be processed as overlapping chunks. This division produces independent local reconstructions with inconsistent coordinate frames and duplicate estimates of shared cameras. Achieving global consistency requires propagating constraints from adjacent overlaps and distant revisits across the sequence. This requirement naturally motivates pose graph optimization. However, the choice of graph level creates a trade-off. Chunk-level graphs efficiently resolve scale drift and close large loops. Yet, their rigid transformations cannot correct internal errors or conflicting frame predictions. Conversely, frame-level optimization offers local flexibility, but scaling it globally is computationally expensive and can break metric scale. HiP3R resolves this trade-off using a hierarchical pose graph. HiP3R first optimizes a robust chunk-level graph to establish the global layout and scale. It then holds this layout fixed and estimates one shared camera per frame, turning overlapping window predictions into a single trajectory. Experiments across multiple benchmarks demonstrate the effectiveness of HiP3R in improving camera trajectories and 3D reconstruction. Our method applies to both chunk-based and streaming backends without additional training or fine-tuning. The codes are available at https://kkakkkka.github.io/HiP3R.
Figures & tables
| Method | Mean ATE | Mean RPE rot | Mean RPE trans |
|---|---|---|---|
| CUT3R ( Wang et al., 2025b ) | 44.894 | 4.469 | 1.4600 |
| TTT3R ( Chen et al., 2026b ) | 23.775 | 5.077 | 0.8077 |
| LoGeR ( Zhang et al., 2026a ) | 40.691 | 2.086 | 1.1035 |
| VGGT ( Wang et al., 2025a ) | 20.914 | 3.159 | 1.6396 |
| ZipMap ( Jin et al., 2026 ) | 28.230 | 2.792 | 0.9454 |
| LingBot-MAP ( Chen et al., 2026a ) | 8.288 | 1.818 | 1.4152 |
| ATE | |||||
| Backend | Method | Oxford | KITTI | VBR | Mean |
| VGGT-Omega | Baseline | ||||
| VGGT-Long (w/o loops) | |||||
| VGGT-Long (w/ loops) | |||||
| HiP3R (Ours) | 1.579 | 9.730 | 22.44 | 11.25 | |
| VGGT | VGGT-Long (released) | ||||
| Method | AUC@5 | AUC@15 | AUC@30 | Chamfer | F1 |
|---|---|---|---|---|---|
| VGGT-Omega | 29.77 | 50.24 | 63.22 | 0.0759 | 65.92 |
| HiP3R (VGGT-Omega) | 50.75 | 67.98 | 75.21 | 0.0272 | 91.26 |
| LingBot-MAP | 17.83 | 38.61 | 53.19 | 0.1423 | 61.13 |
| HiP3R (LingBot-MAP) | 22.01 | 51.35 | 66.90 | 0.1042 | 74.60 |
| Configuration | ATE | Graph Build & Solve (s) | Final solve (s) |
|---|---|---|---|
| Baseline | 21.7751 | 12232.18 | 1404.54 |
| Bounded sampling | 21.7569 | 2004.20 | 1345.43 |
| Fit weighting | 21.7770 | 2077.49 | 1387.14 |
| Progressive loops | 21.5241 | 1477.59 | 688.02 |
| Complete | 17.4708 | 753.43 | 41.28 |
| VGGT-Omega | LingBot-MAP | |||||
|---|---|---|---|---|---|---|
| ATE | RPE rot | RPE trans | ATE | RPE rot | RPE trans | |
| Layout Only | 4.9143 | 0.6412 | 0.0817 | 4.0517 | 1.1837 | 0.2126 |
| Single | 4.9079 | 0.6238 | 0.0695 | 4.0256 | 1.1131 | 0.1930 |
| Unary | 4.9067 | 0.6010 | 0.0674 | 4.0192 | 1.0871 | 0.1828 |
| Motion | 11.6776 | 0.5877 | 0.0619 | 6.5007 | 1.0464 | 0.1816 |
| Shared | 4.9061 | 0.5899 | 0.0622 | 4.0168 | 1.0549 | 0.1824 |
| Tracking Error | Runtime (s) | |||||
|---|---|---|---|---|---|---|
| Dataset | Stage | ATE | RPE rot ( ∘ ) | RPE trans | Inference | Stage solve |
| KITTI ( ) | Baseline | – | ||||
| Layout Only | ||||||
| Full | ||||||
| VBR ( ) | Baseline | – | ||||
| Layout Only | ||||||
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| Refinement graph | ATE | RPE rot | RPE trans | (s) | |
|---|---|---|---|---|---|
| Overlap averaging | — | — | |||
| Uniform stride | |||||
| Motion stride | |||||
| Uniform stride |
| Consensus | Uniform | Uniform | |||||
|---|---|---|---|---|---|---|---|
| Scene | RPE rot | RPE trans | RPE rot | RPE trans | RPE rot | RPE trans | |
| campus_train0 | |||||||
| spagna_train0 | |||||||
| downtown2 | |||||||
| Dense | Uniform | ||||||
|---|---|---|---|---|---|---|---|
| Scene | ATE | RPE rot | RPE trans | ATE | RPE rot | RPE trans | |
| Courthouse | |||||||
| downtown1 | |||||||
| KITTI | |||||||
| Quantity | Value |
|---|---|
| VGGT-Omega default window | , frames |
| LingBot-MAP default window | , frames, windowed inference |
| Loop window | frames per endpoint |
| SALAD retrieval | similarity , top- , NMS frames, minimum chunk separation , one pair per chunk pair (first hit) |
| Loop-constraint addition | configured span-ordered stages, expanded to at most by adaptive continuation |
| Keyframe subgraph ( ) | uniform stride , all chunk endpoints, at least frames in each overlap , correction interpolation (Appendix C ) |
| Dataset | Domain | #Seq. | What it tests |
|---|---|---|---|
| 7-Scenes | Indoor RGB-D | 38 | Textureless rooms, motion blur |
| ETH3D | Indoor and outdoor | Mixed-scale laser-scanned scenes | |
| Neural RGB-D | Indoor RGB-D | Cluttered rooms, fine geometry | |
| Tanks and Temples | Outdoor structures | 6 | Large objects and buildings |
| Oxford Spires | Campus indoor and outdoor | 9 | Loops and scale change ( ) |
| KITTI seq00 | Driving | 1 | Long outdoor loop ( ) |
| Split | ||||
| Method | Component | Oxford | KITTI seq00 | VBR |
| ( ) | ( ) | ( ) | ||
| HiP3R (Ours) | Local baseline chunk inference ( ) | |||
| Loop-window inference ( ) | ||||
| CPU coarse + fine solves ( ) | ||||
| Component sum | ||||
| Method | 7S | ETH | KITTI | NRGBD | Oxford | T&T | VBR |
|---|---|---|---|---|---|---|---|
| VGGT-Omega ( Wang et al., 2026b ) | 0.0370 | 0.118 | 77.42 | 0.0190 | 9.861 | 0.518 | 41.914 |
| ( Wang et al., 2025c ) | 0.0574 | 0.104 | 68.22 | 0.0244 | 12.06 | 0.467 | 87.269 |
| GlueMap ( Pan et al., 2026 ) | 0.0624 | 0.810 | 193.5 | 0.0232 | 16.65 | 0.521 | 105.4 |
| Scal3R ( Xie et al., 2026 ) | 0.0720 | 0.236 | 86.25 | 0.0471 | 4.573 | 0.572 | 101.535 |
| VGGT-Long ( Deng et al., 2025 ) | 0.0743 | 0.204 | 48.84 | 0.0374 | 9.451 | 0.550 | 99.832 |
| VGGT-Align ( Zhang et al., 2026b ) | 0.0731 | 0.209 | 69.80 | 0.0374 | 8.567 | 0.537 | 99.867 |
| Method | 7S | ETH | KITTI | NRGBD | Oxford | T&T | VBR |
|---|---|---|---|---|---|---|---|
| VGGT-Omega ( Wang et al., 2026b ) | 0.501 | 0.868 | 0.895 | 0.146 | 5.757 | 2.458 | 2.117 |
| ( Wang et al., 2025c ) | 0.510 | 0.729 | 0.218 | 0.0999 | 6.912 | 2.036 | 0.636 |
| GlueMap ( Pan et al., 2026 ) | 0.507 | 1.755 | 0.535 | 0.0984 | 4.337 | 2.308 | 1.388 |
| Scal3R ( Xie et al., 2026 ) | 0.520 | 2.036 | 0.215 | 0.0957 | 2.193 | 1.985 | 2.589 |
| VGGT-Long ( Deng et al., 2025 ) | 0.535 | 1.257 | 0.264 | 0.118 | 5.135 | 2.027 | 0.806 |
| VGGT-Align ( Zhang et al., 2026b ) | 0.536 | 1.258 | 2.141 | 0.118 | 5.109 | 2.027 | 0.808 |
| Method | 7S | ETH | KITTI | NRGBD | Oxford | T&T | VBR |
|---|---|---|---|---|---|---|---|
| VGGT-Omega ( Wang et al., 2026b ) | 0.0172 | 0.101 | 2.358 | 0.0109 | 4.044 | 0.128 | 0.2557 |
| ( Wang et al., 2025c ) | 0.0158 | 0.091 | 0.150 | 0.0091 | 1.999 | 0.106 | 0.1591 |
| GlueMap ( Pan et al., 2026 ) | 0.0145 | 0.583 | 1.805 | 0.0079 | 2.268 | 0.115 | 8.599 |
| Scal3R ( Xie et al., 2026 ) | 0.0176 | 0.238 | 0.335 | 0.0092 | 0.259 | 0.107 | 0.2260 |
| VGGT-Long ( Deng et al., 2025 ) | 0.0188 | 0.190 | 0.221 | 0.0098 | 0.997 | 0.110 | 0.2292 |
| VGGT-Align ( Zhang et al., 2026b ) | 0.0188 | 0.191 | 14.88 | 0.0098 | 1.053 | 0.110 | 0.2633 |
| Chamfer | F1 | |||
|---|---|---|---|---|
| Dataset | Baseline | HiP3R | Baseline | HiP3R |
| ETH3D | 0.0339 | 0.0334 | 98.92 | 99.00 |
| Neural RGB-D | 0.1310 | 0.0205 | 40.53 | 90.05 |
| 7-Scenes | 0.0739 | 0.0269 | 58.45 | 87.13 |
| Chamfer | F1 | |||
|---|---|---|---|---|
| Dataset | Baseline | HiP3R | Baseline | HiP3R |
| ETH3D | 0.1295 | 0.1295 | 86.49 | 86.49 |
| Neural RGB-D | 0.1620 | 0.0675 | 42.66 | 65.24 |
| 7-Scenes | 0.1403 | 0.1071 | 54.87 | 72.01 |
| Dataset | VGGT-Omega ( Wang et al., 2026b ) | LingBot-MAP ( Chen et al., 2026a ) | ||||
|---|---|---|---|---|---|---|
| ATE | vs | ATE | vs | |||
| 7-Scenes | ||||||
| ETH3D | ||||||
| KITTI | ||||||
| NRGBD | ||||||
| Oxford | ||||||
| Layout Only | Full | ||||||
|---|---|---|---|---|---|---|---|
| Sequence | ATE | RPE rot | RPE trans | ATE | RPE rot | RPE trans | |
| KITTI seq00 | |||||||
| spagna_train0 | |||||||
| campus_train1 | |||||||
| Configuration | ATE | RPE rot | RPE trans | Graph Build & Solve (s) | Final solve (s) |
|---|---|---|---|---|---|
| Clean loop measurements | |||||
| Baseline | 21.7751 | 1.31094 | 0.11296 | 12232.18 | 1404.54 |
| Bounded sampling | 21.7569 | 1.31093 | 0.11280 | 2004.20 | 1345.43 |
| Fit weighting | 21.7770 | 1.31084 | 0.11262 | 2077.49 | 1387.14 |
| Progressive loop scheduling | 21.5241 | 1.31077 | 0.11070 | 1477.59 | 688.02 |
| Complete | 17.4708 | 1.30972 | 0.09834 | 753.43 | 41.28 |
| VGGT-Omega | LingBot-MAP | ||||
|---|---|---|---|---|---|
| Output | Chamfer | F1 | Output | Chamfer | F1 |
| Native | 0.0759 | 65.92 | Native | 0.1423 | 61.13 |
| Layout Only | 0.0273 | 91.20 | Layout Only | 0.1049 | 74.49 |
| Full | 0.0272 | 91.26 | Full | 0.1042 | 74.60 |
3D Reconstruction
3D reconstruction recovers a scene’s shape, appearance, and camera motion from images, video, depth, or other sensor measurements.
See all 957 papers