Home

Awesome

Single Image Reflection Removal with Edge Guidance, Reflection Classifier, and Recurrent Decomposition (WACV 2021 accepted)

PyTorch implementaton of the following paper. In this paper, we propose a novel model with auxiliary techniques to tackle the problem of single image reflection removal.

<div align=center><img height="300" src="https://github.com/JennaChangY/Reflection-Removal-with-Auxiliary-Techniques/blob/main/teaser.png"/></div> Given a reflection contaminated input image (the first column), our method aims to decompose the reflection layer (the last column) and generate the reflection-free transmission layer (the third column), which must be quite similar to its corresponding groundtruth (the second column).

Paper

Single Image Reflection Removal with Edge Guidance, Reflection Classifier, and Recurrent Decomposition
Ya-Chu Chang, Chia-Ni Lu, Chia-Chi Cheng, Wei-Chen Chiu
IEEE Winter Conference on Applications of Computer Vision (WACV), 2021.

Please cite our paper if you find it useful for your research.

@inproceedings{chang21wacv,
 title = {Single Image Reflection Removal with Edge Guidance, Reflection Classifier, and Recurrent Decomposition},
 author = {Ya-Chu Chang and Chia-Ni Lu and Chia-Chi Cheng and Wei-Chen Chiu},
 booktitle = {IEEE Winter Conference on Applications of Computer Vision (WACV)},
 year = {2021}
}

Installation

git clone https://github.com/JennaChangY/Reflection-Removal-with-Auxiliary-Techniques.git
cd Reflection-Removal-with-Auxiliary-Techniques

Testing

Download our pretrained models from here and put them under weights/.
Run the sample data provided in this repo:

python test.py

Run your own data:

python test.py --data_dir YOUR_DATA_PATH
               --save_dir YOUR_SAVE_PATH

Training

Create the synthetic training data,

Download the real-world training data obtained from Zhang et al. and apply typical data augmentation techniques (flipping and random cropping).
Or you can download whole training dataset here and put them under train_data/.
Then directly run the training code:

python train.py