I2-SDF: Intrinsic Indoor Scene Reconstruction and Editing via Raytracing in Neural SDFs (CVPR 2023)
April 20, 2026 · View on GitHub
News
04/04/2023dataset preview release: 2 synthetic scenes available15/04/2023code release: 3D reconstruction and novel view synthesis part21/04/2023dataset release: real data
TODO
- Full dataset release
- Code release for 3D reconstruction and novel view synthesis
- Code release for intrinsic decomposition and scene editing
Dataset released
- Synthetic:
kitchen_0,bedroom_relight_0,bedroom_0,bedroom_1,bedroom_relight_1,diningroom_0,livingroom_0,livingroom_1, more scenes to be released - Real:
inria_livingroom,nisr_livingroom,nisr_coffee_shop_0,nisr_coffee_shop_1, release complete
I2-SDF: Intrinsic Indoor Scene Reconstruction and Editing via Raytracing in Neural SDFs (CVPR 2023)
Project Page | Paper | Dataset
Setup
Installation
conda env create -f environment.yml
conda activate i2sdf
Data preparation
Download our synthetic dataset and extract them into data/synthetic. If you want to run on your customized dataset, we provide a brief introduction to our data convention here.
Dataset
We provide a high-quality synthetic indoor scene multi-view dataset, with ground truth camera pose and geometry annotations. See HERE for data conventions. Click HERE to download.
3D Reconstruction and Novel View Synthesis
Training
python main_recon.py --conf config/<config_file>.yml --scan_id <scan_id> -d <gpu_id> -v <version>
Note: config/synthetic.yml doesn't contain light mask network, while config/synthetic_light_mask.yml contains.
If you run out of GPU memory, try to reduce the split_n_pixels (i.e. validation batch size), batch_size in the config. The default parameters are evaluated under RTX A6000 (48GB). For RTX 3090 (24GB), try to set split_n_pixels 5000.
Evaluation
Novel view synthesis
python main_recon.py --conf config/<config_file>.yml --scan_id <scan_id> -d <gpu_id> -v <version> --test [--is_val] [--full]
The optional flag --is_val evaluates on the validation set instead of training set, --full produces full-resolution rendered images without downsampling.
View Interpolation
python main_recon.py --conf config/<config_file>.yml --scan_id <scan_id> -d <gpu_id> -v <version> --test --test_mode interpolate --inter_id <view_id_0> <view_id_1> [--full]
Generates a view interpolation video between 2 views. Requires ffmpeg being installed.
The number of frames and frame rate of the video can be specified by options.
Mesh Extraction
python main_recon.py --conf config/<config_file>.yml --scan_id <scan_id> -d <gpu_id> -v <version> --test --test_mode mesh
Intrinsic Decomposition and Scene Editing
Brewing🍺, code coming soon.
Citation
If you find our work is useful, please consider cite:
@inproceedings{zhu2023i2sdf,
title = {I$^2$-SDF: Intrinsic Indoor Scene Reconstruction and Editing via Raytracing in Neural SDFs},
author = {Jingsen Zhu and Yuchi Huo and Qi Ye and Fujun Luan and Jifan Li and Dianbing Xi and Lisha Wang and Rui Tang and Wei Hua and Hujun Bao and Rui Wang},
booktitle = {CVPR},
year = {2023}
}
Acknowledgement
- This repository is built upon Pytorch lightning.
- Thanks to Lior Yariv for her excellent work VolSDF.
- Thanks to Scalable-NISR team for providing their real-world dataset.