mvsplat360

donydchenMIT更新放缓

从稀疏视角前馈式合成 360 度场景,结合高斯泼溅与视频扩散模型,无需逐场景优化即可生成可自由漫游的新视角画面。

🎞️ [NeurIPS'24] MVSplat360: Feed-Forward 360 Scene Synthesis from Sparse Views

暂无版本327star14fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
conda create -n mvsplat360 python=3.10
conda activate mvsplat360
pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 xformers==0.0.25.post1 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
硬件要求按 README 说明

README明确标注:渲染至少需22G显存,渲染视频至少38G显存,训练至少需80G显存;安装命令使用cu118的PyTorch 2.2.2,未说明CPU运行与具体GPU型号。

8G 显存可跑
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

从稀疏视角前馈生成360度场景的NeurIPS'24开源实现,用于新视角合成

从稀疏视角前馈式合成 360 度场景,结合高斯泼溅与视频扩散模型,无需逐场景优化即可生成可自由漫游的新视角画面。

核心能力

  • 基于MVSplat与SVD扩散模型做前馈式新视角渲染
  • 支持DL3DV与RealEstate10K数据集训练与评测
  • 提供dl3dv_480p预训练权重直接推理出图
  • 可渲染视频序列,需更高显存
  • 附指标计算脚本compute_dl3dv_metrics.py

容易踩的坑

推理前需从HuggingFace手动下载dl3dv_480p.ckpt并放到checkpoints目录;训练还需额外下载MVSplat的re10k.ckpt和SVD的svd.safetensors权重;数据集需自行按DL3DV/RealEstate10K流程预处理,可先用dl3dv_tiny小样本验证。

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

最近发版

0 个版本

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

用户点评

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

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

    README 原文

    未翻译

    https://github.com/user-attachments/assets/4cfa6654-5bb5-4f72-a264-6941bcf00bed

    Installation

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

    conda create -n mvsplat360 python=3.10
    conda activate mvsplat360
    pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 xformers==0.0.25.post1 --index-url https://download.pytorch.org/whl/cu118
    pip install -r requirements.txt
    

    Acquiring Datasets

    This project mainly uses DL3DV and RealEstate10K datasets.

    The dataset structure aligns with our previous work, MVSplat. You may refer to the script convert_dl3dv.py for converting the DL3DV-10K datasets to the torch chunks used in this project.

    You might also want to check out the DepthSplat's DATASETS.md, which provides detailed instructions on pre-processing DL3DV and RealEstate10K for use here (as both projects share the same code base from pixelSplat).

    A pre-processed tiny subset of DL3DV (containing 5 scenes) is provided here for quick reference. To use it, simply download it and unzip it to datasets/dl3dv_tiny.

    Running the Code

    Evaluation

    To render novel views,

    • get the pre-trained models dl3dv_480p.ckpt, and save it to /checkpoints

    • run the following:

    # dl3dv; requires at least 22G VRAM
    python -m src.main +experiment=dl3dv_mvsplat360 \
    wandb.name=dl3dv_480P_ctx5_tgt56 \
    mode=test \
    dataset/view_sampler=evaluation \
    dataset.roots=[datasets/dl3dv_tiny] \
    checkpointing.load=checkpoints/dl3dv_480p.ckpt
    
    • the rendered novel views will be stored under outputs/test/{wandb.name}

    To evaluate the quantitative performance, kindly refer to compute_dl3dv_metrics.py

    To render videos from a pre-trained model, run the following

    # dl3dv; requires at least 38G VRAM
    python -m src.main +experiment=dl3dv_mvsplat360_video \
    wandb.name=dl3dv_480P_ctx5_tgt56_video \
    mode=test \
    dataset/view_sampler=evaluation \
    dataset.roots=[datasets/dl3dv_tiny] \
    checkpointing.load=checkpoints/dl3dv_480p.ckpt 
    

    Training

    • Download the encoder pre-trained weight from MVSplat and save it to checkpoints/re10k.ckpt.
    • Download SVD pre-trained weight from generative-models and save it to checkpoints/svd.safetensors.
    • Run the following:
    # train mvsplat360; requires at least 80G VRAM
    python -m src.main +experiment=dl3dv_mvsplat360 dataset.roots=[datasets/dl3dv]
    
    • Alternatively, you can also fine-tune from our released model by appending checkpointing.load=checkpoints/dl3dv_480p.ckpt and checkpointing.resume=false to the above command.
    • You can also set up your wandb account here for logging. Have fun.

    Camera Conventions

    The camera intrinsic matrices are normalized (the first row is divided by image width, and the second row is divided by image height). More details are at this comment.

    The camera extrinsic matrices are OpenCV-style camera-to-world matrices (+X right, +Y down, +Z camera looks into the screen).

    BibTeX

    @article{chen2024mvsplat360,
        title     = {MVSplat360: Feed-Forward 360 Scene Synthesis from Sparse Views},
        author    = {Chen, Yuedong and Zheng, Chuanxia and Xu, Haofei and Zhuang, Bohan and Vedaldi, Andrea and Cham, Tat-Jen and Cai, Jianfei},
        booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
        year      = {2024},
    }
    

    Acknowledgements

    The project is based on MVSplat, pixelSplat, UniMatch and generative-models. Many thanks to these projects for their excellent contributions!