Skip to content

Repository files navigation

StructSplat: Generalizable 3D Gaussian Splatting from Uncalibrated Sparse Views

Jia-Chen Zhao1,2  Beiqi Chen1Xinyang Chen1Guangcong Wang2,3  Liqing Nie1
1Harbin Institute of Technology (Shenzhen)   2Great Bay University   3Guangzhou CloudButterfly Technology Co., Ltd.

teaser

TL;DR: We present StructSplat, a feed-forward and generalizable NVS framework that predicts 3D gaussians from uncalibrated images without requiring camera parameters.

Abstract

We present StructSplat, a feed-forward and generalizable 3D Gaussian reconstruction framework that operates directly on uncalibrated images without requiring camera parameters. Existing methods either rely on per-scene optimization or assume known camera poses, and often entangle geometry and appearance within a unified backbone, limiting reconstruction fidelity and generalization. Our key idea is to adopt a structured representation that organizes geometry, semantic, and texture cues with explicit roles in the reconstruction process. Specifically, we introduce a pixel-aligned feature injection mechanism to enable accurate texture modeling from 2D observations, incorporate semantic-aware priors to improve global consistency, and design a camera alignment strategy to prevent information leakage and improve generalization. Experiments show that our method significantly outperforms prior approaches on challenging benchmarks.

Demo Video

Demo Video

Installation

Clone Our Codebase

git clone --recursive https://github.com/iLearn-Lab/ECCV26-StructSplat.git
cd StructSplat

Set Up the Environment

conda create -n structsplat python=3.10.19
conda activate structsplat
pip install torch==2.4.0 torchvision==0.19.0 -i https://download.pytorch.org/whl/cu118
pip install -r requirements.txt

Dataset

  • DL3DV

    Download training set and evaluation set. Put them into folder data as:

    data
    ├── dl3dv
    │   ├── 1K
    │   ├── 2K
    │   ├── 3K
    │   ├── ...
    │   └── DL3DV-bm
    └── ...
    

Training

  • Download pretrained VGGT and Dino V3 checkpoints. Put them into folder ckpts as:

    ckpts
    ├── dinov3_convnext_large
    │   └── ...
    ├── vggt
    │   └── ...
    └── ...
    
  • Run the following command to train the model:

    python train.py -c config/dl3dv.yaml
    
  • Importan arguments:

    • --configor-c: Configuration file path.
    • --gaussian_training_stage.data.annotations: List of training data annotation file pathes, default: [dataset_annotations/dl3dv_train_clean.json].

Evaluation

  • [Optional] Download our pretrained checkpoint. Put it into folder ckpts as:
    ckpts
    ├── dinov3_convnext_large
    │   └── ...
    ├── vggt
    │   └── ...
    └── structsplat
        └── pytorch_model.bin
    
  • [Optional] Convert a trained checkpoint from Deepspeed format into binary format:
    python -m deepspeed.utils.zero_to_fp32 "$deepspeed_checkpoint_dir" "ckpts/structsplat" --max_shard_size 10GB
    
  • Run the following command to evaluate the model:
    python evaluation.py -c config/dl3dv.yaml
    
  • Importan arguments:
    • --configor-c: Configuration file path.
    • --gaussian_evaluation_stage.data.annotations: List of evaluation data annotation file pathes, default: [dataset_annotations/dl3dv_eva_src-2_tar-2.json].
    • --gaussian_evaluation_stage.ckpt: Checkpoint file path, default: ckpts/structsplat/pytorch_model.bin.

Citation

@inproceedings{zhao2026structsplat,
 title={StructSplat: Generalizable 3D Gaussian Splatting from Uncalibrated Sparse Views},
 author={Zhao, Jia-Chen and Chen, Beiqi and Chen, Xinyang and Wang, Guangcong and Nie, Liqing},
 booktitle={European Conference on Computer Vision},
 year={2026}
}

About

[ECCV 2026] StructSplat: Generalizable 3D Gaussian Splatting from Uncalibrated Sparse Views

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages