README.md
SwiftVGGT: A Scalable Visual Geometry Grounded Transformer for Large-Scale Scenes
Jungho Lee · Minhyeok Lee · Sunghun Yang · Minseok Kang · Sangyoun Lee
Yonsei University
🔭 Introduction
Abstract: 3D reconstruction in large-scale scenes is a fundamental task in 3D perception, but the inherent trade-off between accuracy and computational efficiency remains a sigificant challenge. Existing methods either prioritize speed and produce low-quality results, or achieve high-quality reconstruction at the cost of slow inference times. In this paper, we propose SwiftVGGT, a training-free method that significantly reduce inference time while preserving high-quality dense 3D reconstruction. To maintain global consistency in large-scale scenes, SwiftVGGT performs loop closure without relying on the external Visual Place Recognition (VPR) model. This removes redundant computation and enables accurate reconstruction over kilometer-scale environments. Furthermore, we propose a simple yet effective point sampling method to align neighboring chunks using a single Sim(3)-based Singular Value Decomposition (SVD) step. This eliminates the need for the Iteratively Reweighted Least Squares (IRLS) optimization commonly used in prior work, leading to substantial speed-ups. We evaluate SwiftVGGT on multiple datasets and show that it achieves state-of-the-art reconstruction quality while requiring only 33% of the inference time of recent VGGT-based large-scale reconstruction approaches.
🆕 News
- 2025-11-25: [arXiv paper] is available.
- 2025-11-21: Code, [project page] are available.
🔧 Installation
Clone the repository and create an anaconda environment using.
git clone https://github.com/Jho-Yonsei/SwiftVGGT.git
cd SwiftVGGT
conda create -y -n swiftvggt python=3.10.18
conda activate swiftvggt
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121
pip install -r requirements.txt
python setup.py install
Then, download the VGGT checkpoint.
mkdir -p ckpt
wget https://huggingface.co/facebook/VGGT_tracker_fixed/resolve/main/model_tracker_fixed_e20.pt
mv model_tracker_fixed_e20.pt ckpt
🔦 Inference for Custom Data
Put the --image_dir to your image path and run following command:
CUDA_VISIBLE_DEVICES=<GPU> python run.py --image_dir <image_path> --output_path <output_path> --save_points
If Out of Memory occurs, then set smaller --chunk_size and --overlap_size.
🔦 Inference & Evaluation
For inference and evaluation of KITTI odometry dataset, just add --gt_pose_path as follows:
CUDA_VISIBLE_DEVICES=<GPU> python run.py --image_dir <image_path> --gt_pose_path <gt_pose_path> --output_path <output_path>
🌟 Acknowledgements
Our repository is built upon VGGT, VGGT-Long, and FastVGGT. We thank to all the authors for their awesome works.