VGGT-SLAM

MIT-SPARKBSD-2-Clause更新放缓

基于 VGGT 的稠密 RGB SLAM 系统,在 SL(4) 流形上做位姿优化,用纯视觉输入实现稠密建图与定位。

VGGT-SLAM: Dense RGB SLAM Optimized on the SL(4) Manifold

暂无版本1,176star131fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/MIT-SPARK/VGGT-SLAM
cd VGGT-SLAM
conda create -n vggt-slam python=3.11
conda activate vggt-slam
chmod +x setup.sh
./setup.sh
硬件要求按 README 说明

README 未说明显存要求;在线模式需插入 RealSense 相机,离线模式只需图像文件夹,未提及 CPU 运行或 GPU 型号限制

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 VGGT 前馈重建的稠密 RGB SLAM 系统,在 SL(4) 流形上做位姿优化,支持实时建图

基于 VGGT 的稠密 RGB SLAM 系统,在 SL(4) 流形上做位姿优化,用纯视觉输入实现稠密建图与定位。

核心能力

  • 用 setup.sh 自动拉取 VGGT、SAM 3、Perception Encoder 等第三方依赖
  • 在 SL(4) 流形上优化位姿,支持回环闭合与子图拼接
  • 用 viser 增量可视化建图过程,可调体素稀疏化点云
  • 支持 --run_os 开启开放词表 3D 物体检测并画 3D 框
  • 提供 main_realtime.py 接 RealSense 相机在线运行

容易踩的坑

setup.sh 会联网下载 VGGT、SAM 3、Perception Encoder 等第三方包,需保证网络与磁盘空间;开放词表检测依赖 SAM 3 与 Perception Encoder,仅在加 --run_os 时使用;大数据集全量点云送 viser 可能卡顿或崩溃,需用 --vis_voxel_size 稀疏化

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    This repo contains the code for VGGT-SLAM 2.0 (located here) and VGGT-SLAM (located on the version1.0 branch of this repo).

    📚 Table of Contents


    Installation of VGGT-SLAM

    Clone VGGT-SLAM:

    git clone https://github.com/MIT-SPARK/VGGT-SLAM
    
    cd VGGT-SLAM
    

    Create and activate a new conda environment

    conda create -n vggt-slam python=3.11
    
    conda activate vggt-slam
    

    Make the setup script executable and run it

    This step will automatically download all 3rd party packages including Perception Encoder, SAM 3, and our fork of VGGT. More details on the license for Perception Encoder can be found here, for SAM3 can be found here, and for VGGT can be found here. Note that we only use SAM 3 and Perception Encoder for optional open-set 3D object detection.

    chmod +x setup.sh
    ./setup.sh
    

    Quick Start

    run python main.py --image_folder /path/to/image/folder --max_loops 1 --vis_map replacing the image path with your folder of images. This will create a visualization in viser which shows the incremental construction of the map.

    As an example, we provide a folder of test images in office_loop.zip which will generate the following map. Using the default parameters will result in a single loop closure towards the end of the trajectory. Unzip the folder and set its path as the arguments for --image_folder, e.g.,

    unzip office_loop.zip
    

    and then run the below command:

    python3 main.py --image_folder office_loop --max_loops 1 --vis_map
    

    Use the --run_os flag to enable 3D open-set object detection. This will prompt the user for text queries and plot a 3D bounding box of the detection on the map in viser. The office loop scene does not have very many interesting objects, but some example queries that can be used are "coffee machine", "sink", "printer", "cone", and "refrigerator." For some example scenes with more interesting objects, check out the Clio apartment and cubicle scene which can be downloaded from here.

    Collecting Custom Data

    To quickly collect a test on a custom dataset, you can record a trajectory with a cell phone and convert the MOV file to a folder of images with:

    mkdir <desired_location>/img_folder
    

    And then, run the command below:

    ffmpeg -i /path/to/video.MOV -vf "fps=10" <desired_location>/img_folder/frame_%04d.jpg
    

    Note while vertical cell phone videos can work, to avoid images being cropped it is recommended to use horizontal videos.

    Adjusting Parameters

    See main.py or run --help from main.py to view all parameters.

    For visualizing larger datasets, displaying all 3D points in Viser can either slow or crash the visualizer. One way to mitigate this is to sparsify the point cloud that is sent to Viser which can be done with --vis_voxel_size 0.005. Increasing the number will decrease the number of displayed points. Note that this does not affect the number of points stored or used internally in VGGT-SLAM. Also, by default, camera images are not shown in Viser (only frustums). The images can be added with --vis_imgs, but this will slow down the visualizer.


    Running Evaluations

    To automatically run evaluation on TUM and 7-Scenes datasets, first install the datasets using the provided download instructions from MASt3R-SLAM. Set the download location of MASt3R-SLAM by setting abs_dir in the bash scripts /evals/eval_tum.sh and /evals/eval_7scenes.sh

    In Tum Dataset

    To run on TUM, run ./evals/eval_tum.sh <w> and then run python evals/process_logs_tum.py --submap_size <w> to analyze and print the results, where w is the submap size, for example:

    ./evals/eval_tum.sh 32
    
    python evals/process_logs_tum.py --submap_size 32
    

    To visualize the maps as they being constructed, inside the bash scripts add --vis_map. This will update the viser map each time the submap is updated.

    Running Online

    To run online, plug in a RealSense camera and run python main_realtime.py --vis_map. Support for open-set object detection can be enabled with --run_os and objects can be queried in Viser. Note that it may be desirable to reduce submap size when running the realtime code just to have more frequent map updates. For example, by adding --submap_size 8.

    News and Updates

    • May 2025: VGGT-SLAM 1.0 is released
    • August 2025: SL(4) optimization is integrated into the official GTSAM repo
    • September 2025: VGGT-SLAM 1.0 Accepted to Neurips 2025
    • November 2025: VGGT-SLAM 1.0 Featured in MIT News article
    • January 2026: VGGT-SLAM 2.0 is released
    • May 2026: VGGT-SLAM 2.0 Accepted to RSS 2026
    • May 2026: FOUND-IT is released link which builds a 3D scene graph on top of VGGT-SLAM 2.0
    • June 2026: Real-time code added along with upgraded features to the visualizer

    Acknowledgement

    This work was supported in part by the NSF Graduate Research Fellowship Program under Grant 2141064, the ARL DCIST program, and the ONR RAPID program.

    Citation

    If our code is helpful, please cite our papers as follows:

    @article{maggio2025vggt-slam,
      title={{VGGT-SLAM}: Dense RGB SLAM Optimized on the SL (4) Manifold},
      author={Maggio, Dominic and Lim, Hyungtae and Carlone, Luca},
      journal={Advances in Neural Information Processing Systems},
      volume={39},
      year={2025}
    }
    
    @article{maggio2025vggt-slam2,
      title={{VGGT-SLAM 2.0}: Real-time Dense Feed-forward Scene Reconstruction},
      author={Maggio, Dominic and Carlone, Luca},
      journal={Robotics: Science and Systems},
      year={2026}
    }