This is the implementation described in the paper "Learning to Separate Multiple Illuminants in a Single Image, Zhuo Hui, Ayan Chakrabarti, Kalyan Sunkavalli, Aswin C. Sankaranarayanan, CVPR 2019" .
Website: https://huizhuo1987.github.io/learningIllum.html
The code skeleton is based on "https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix" and "https://github.com/lixx2938/CGIntrinsics". If you use our code for academic purposes, please consider citing:
@inproceedings{hui2019learning,
title={Learning to Separate Multiple Illuminants in a Single Image},
author={Hui, Zhuo and Chakrabarti, Ayan and Sunkavalli, Kalyan and Sankaranarayanan, Aswin C},
booktitle={Computer Vision and Pattern Recognition (CVPR 2019)},
year={2019}
}
Download the dataset from Google drive: https://drive.google.com/file/d/1vcXDEKEQ_Id-ote0tfn4RDEF2fw6fzYs/view?usp=sharing
Download the test image dataset from Google drive: https://drive.google.com/file/d/1MIPR3bvOVf-Bvcltu6-LZcTl7-sgl93U/view?usp=sharing
Download the pretrained the model: https://www.dropbox.com/s/cn1xylahysyqmnr/pretrained_models.zip?dl=0
To train your network, run the following command
python train.py --dataroot {path_to_training_data} --model threelayers --name {your_training_name}
--lrA 0.0001 --lrB 0.0001 --niter 100 --niter_decay 100 --display_id -1 --gpu_ids {your_gpu_ids}
To test the performance, run the following command
python test.py --dataroot {path_to_test_data} --model threelayers --name {your_training_name}
--gpu_ids {your_gpu_ids}