Project Page | Video | Paper
Implementation for Neural-PIL. A novel method which decomposes multiple images into shape, BRDF and illumination with a split-sum preintegrated illumination network.
Neural-PIL: Neural Pre-Integrated Lighting for Reflectance Decomposition
Mark Boss1, Varun Jampani2, Raphael Braun1, Ce Liu3, Jonathan T. Barron2, Hendrik P. A. Lensch1
1University of Tübingen, 2Google Research, 3Microsoft Azure AI (work done at Google)
A conda environment is used for dependency management
conda env create -f environment.yml
conda activate neuralpil
python train_neural_pil.py --datadir [DIR_TO_DATASET_FOLDER] --basedir [TRAIN_DIR] --expname [EXPERIMENT_NAME] --gpu [COMMA_SEPARATED_GPU_LIST]
Most setup is handled by configurations files located in configs/neural_pil/.
--config configs/neural_pil/blender.txt
--config configs/neural_pil/nerf_blender.txt
--config configs/neural_pil/real_world.txt
Often objects are captured in a spherical manner and the flag --spherify
should be applied for those scenes.
All datasets are taken from NeRD.
Mainly camera poses and segmentation masks are required. For the poses the scripts from NeRF are used to prepare the scenes. The dataset then needs to be put in the following file structure:
images/
[IMG_NAME_1].jpg
[IMG_NAME_2].jpg
...
masks/
[IMG_NAME_1].jpg
[IMG_NAME_2].jpg
...
poses_bounds.npy
The poses_bounds.npy
is generated from the LLFF script.
The train_neural_pil.py can be called with a --render_only
flag and the --config
flag pointing to the args.txt
of the experiments folder.
@inproceedings{boss2021neuralpil,
title = {Neural-PIL: Neural Pre-Integrated Lighting for Reflectance Decomposition},
author = {Boss, Mark and Jampani, Varun and Braun, Raphael and Liu, Ce and Barron, Jonathan T. and Lensch, Hendrik P.A.},
booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
year = {2021},
}