Hi, I built an open-source pipeline for processing videos longer than VGGT's memory limit: vggt-factor-refinement
It chunks VGGT into memory-sized batches and stitches them with a GTSAM factor graph for global consistency. Tested on TUM-RGBD (5 sequences) and Replica (4 scenes).
Results: 70.3% average ATE reduction vs naive overlap stitching across 9 sequences.
Key components:
- Sim(3) overlap alignment between chunks (handles per-chunk scale ambiguity)
- DINOv2 appearance-based loop closure detection
- ORB geometric verification
- Cauchy robust kernel on loop closure factors
- Batch Levenberg-Marquardt optimization
Scaling on Replica room0 (VGGT single-shot OOMs at ~50 frames on 24GB):
| Frames |
VGGT |
Naive Stitch |
Factor Graph |
| 30 |
0.004m |
0.038m |
0.004m |
| 50 |
0.005m |
0.057m |
0.005m |
| 80 |
OOM |
0.051m |
0.015m |
| 120 |
OOM |
0.189m |
0.037m |
Different from VGGT-SLAM (SL(4) manifold, code not yet released). This is a simpler approach that works well when intrinsics are known or roughly estimated. Sharing in case it's useful to others hitting the memory limit.
Hi, I built an open-source pipeline for processing videos longer than VGGT's memory limit: vggt-factor-refinement
It chunks VGGT into memory-sized batches and stitches them with a GTSAM factor graph for global consistency. Tested on TUM-RGBD (5 sequences) and Replica (4 scenes).
Results: 70.3% average ATE reduction vs naive overlap stitching across 9 sequences.
Key components:
Scaling on Replica room0 (VGGT single-shot OOMs at ~50 frames on 24GB):
Different from VGGT-SLAM (SL(4) manifold, code not yet released). This is a simpler approach that works well when intrinsics are known or roughly estimated. Sharing in case it's useful to others hitting the memory limit.