mvsplat

donydchenMIT更新放缓

从稀疏多视角图像前馈式重建 3D 高斯,用代价体积做几何匹配,无需逐场景优化就能快速合成新视角。

🌊 [ECCV'24 Oral] MVSplat: Efficient 3D Gaussian Splatting from Sparse Multi-View Images

暂无版本1,322star86fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/donydchen/mvsplat.git
cd mvsplat
conda create -n mvsplat python=3.10
conda activate mvsplat
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
硬件要求按 README 说明

训练使用单张 A100 80GB GPU,也可用多张显存较小的 GPU 并调小每卡 batch size;README 未说明推理所需显存,也未提及非 NVIDIA 硬件。

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

项目说明

由 README 自动翻译提炼

从稀疏多视角图像高效重建 3D 高斯,用于新视角合成

从稀疏多视角图像前馈式重建 3D 高斯,用代价体积做几何匹配,无需逐场景优化就能快速合成新视角。

核心能力

  • 用稀疏多视角图像前馈预测 3D 高斯
  • 基于 cost volume 估计深度并做深度细化
  • 提供 RealEstate10K 与 ACID 预训练模型
  • 支持渲染新视角图像与视频并计算指标
  • 支持多节点 SLURM 分布式训练

容易踩的坑

需自行下载预训练模型放到 checkpoints 目录,训练还需额外下载 UniMatch 骨干权重;数据集需按说明解压到项目根目录的 datasets 文件夹;PyTorch 版本固定为 2.1.2 且需 cu118 源。

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

最近发版

0 个版本

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

用户点评

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

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

    README 原文

    未翻译

    https://github.com/donydchen/mvsplat/assets/5866866/c5dc5de1-819e-462f-85a2-815e239d8ff2

    Installation

    To get started, clone this project, create a conda virtual environment using Python 3.10+, and install the requirements:

    git clone https://github.com/donydchen/mvsplat.git
    cd mvsplat
    conda create -n mvsplat python=3.10
    conda activate mvsplat
    pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
    pip install -r requirements.txt
    

    Acquiring Datasets

    RealEstate10K and ACID

    Our MVSplat uses the same training datasets as pixelSplat. Below we quote pixelSplat's detailed instructions on getting datasets.

    pixelSplat was trained using versions of the RealEstate10k and ACID datasets that were split into ~100 MB chunks for use on server cluster file systems. Small subsets of the Real Estate 10k and ACID datasets in this format can be found here. To use them, simply unzip them into a newly created datasets folder in the project root directory.

    If you would like to convert downloaded versions of the Real Estate 10k and ACID datasets to our format, you can use the scripts here. Our preprocessed versions of the datasets can be found here.

    DTU (For Testing Only)

    • Download the preprocessed DTU data dtu_training.rar.
    • Convert DTU to chunks by running python src/scripts/convert_dtu.py --input_dir PATH_TO_DTU --output_dir datasets/dtu
    • [Optional] Generate the evaluation index by running python src/scripts/generate_dtu_evaluation_index.py --n_contexts=N, where N is the number of context views. (For N=2 and N=3, we have already provided our tested version under /assets.)

    Running the Code

    Evaluation

    To render novel views and compute evaluation metrics from a pretrained model,

    # re10k
    python -m src.main +experiment=re10k \
    checkpointing.load=checkpoints/re10k.ckpt \
    mode=test \
    dataset/view_sampler=evaluation \
    test.compute_scores=true
    
    # acid
    python -m src.main +experiment=acid \
    checkpointing.load=checkpoints/acid.ckpt \
    mode=test \
    dataset/view_sampler=evaluation \
    dataset.view_sampler.index_path=assets/evaluation_index_acid.json \
    test.compute_scores=true
    
    • the rendered novel views will be stored under outputs/test

    To render videos from a pretrained model, run the following

    # re10k
    python -m src.main +experiment=re10k \
    checkpointing.load=checkpoints/re10k.ckpt \
    mode=test \
    dataset/view_sampler=evaluation \
    dataset.view_sampler.index_path=assets/evaluation_index_re10k_video.json \
    test.save_video=true \
    test.save_image=false \
    test.compute_scores=false
    

    Training

    Run the following:

    # download the backbone pretrained weight from unimatch and save to 'checkpoints/'
    wget 'https://s3.eu-central-1.amazonaws.com/avg-projects/unimatch/pretrained/gmdepth-scale1-resumeflowthings-scannet-5d9d7964.pth' -P checkpoints
    # train mvsplat
    python -m src.main +experiment=re10k data_loader.train.batch_size=14
    

    Our models are trained with a single A100 (80GB) GPU. They can also be trained on multiple GPUs with smaller RAM by setting a smaller data_loader.train.batch_size per GPU.

    #SBATCH --nodes=2           # should match with trainer.num_nodes
    #SBATCH --gres=gpu:2        # gpu per node
    #SBATCH --ntasks-per-node=2
    
    # optional, for debugging
    export NCCL_DEBUG=INFO
    export HYDRA_FULL_ERROR=1
    # optional, set network interface, obtained from ifconfig
    export NCCL_SOCKET_IFNAME=[YOUR NETWORK INTERFACE]
    # optional, set IB GID index
    export NCCL_IB_GID_INDEX=3
    
    # run the command with 'srun'
    srun python -m src.main +experiment=re10k \
    data_loader.train.batch_size=4 \
    trainer.num_nodes=2
    

    References:

    python -m src.main +experiment=re10k data_loader.train.batch_size=14 \
    checkpointing.load=checkpoints/re10k.ckpt \
    checkpointing.resume=false
    

    Ablations

    We also provide a collection of our ablation models (under folder 'ablations'). To evaluate them, e.g., the 'base' model, run the following command

    # Table 3: base
    python -m src.main +experiment=re10k \
    checkpointing.load=checkpoints/ablations/re10k_worefine.ckpt \
    mode=test \
    dataset/view_sampler=evaluation \
    test.compute_scores=true \
    wandb.name=abl/re10k_base \
    model.encoder.wo_depth_refine=true 
    

    Cross-Dataset Generalization

    We use the default model trained on RealEstate10K to conduct cross-dataset evaluations. To evaluate them, e.g., on DTU, run the following command

    # Table 2: RealEstate10K -> DTU
    python -m src.main +experiment=dtu \
    checkpointing.load=checkpoints/re10k.ckpt \
    mode=test \
    dataset/view_sampler=evaluation \
    dataset.view_sampler.index_path=assets/evaluation_index_dtu_nctx2.json \
    test.compute_scores=true
    

    More running commands can be found at more_commands.sh.

    BibTeX

    @article{chen2024mvsplat,
        title   = {MVSplat: Efficient 3D Gaussian Splatting from Sparse Multi-View Images},
        author  = {Chen, Yuedong and Xu, Haofei and Zheng, Chuanxia and Zhuang, Bohan and Pollefeys, Marc and Geiger, Andreas and Cham, Tat-Jen and Cai, Jianfei},
        journal = {arXiv preprint arXiv:2403.14627},
        year    = {2024},
    }
    

    Acknowledgements

    The project is largely based on pixelSplat and has incorporated numerous code snippets from UniMatch. Many thanks to these two projects for their excellent contributions!