# ReflectNet
**Repository Path**: mirrors_NVlabs/ReflectNet
## Basic Information
- **Project Name**: ReflectNet
- **Description**: Source code and the model for ReflectNet: Separating Reflection and Transmission Images in the Wild, ECCV 2018
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-18
- **Last Updated**: 2026-05-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ReflectNet: Separating Reflection and Transmission Images in the Wild
Patrick Wieschollek, Orazio Gallo, Jinwei Gu, Jan Kautz (ECCV 2018)
Abstract
-------------------
The reflections caused by common semi-reflectors, such as glass windows, can impact the performance of computer vision algorithms.
State-of-the-art methods can remove reflections on synthetic data and in controlled scenarios.
However, they are based on strong assumptions and do not generalize well to real-world images. Contrary to a common misconception, real-world images are challenging even when polarization information is used.
We present **ReflectNet**, a deep learning approach to separate the reflected and the transmitted components of the recorded irradiance that *explicitly* uses the polarization properties of light.
To train it, we introduce an accurate synthetic data generation pipeline, which simulates realistic reflections, including those generated by curved and non-ideal surfaces, non-static scenes, and high-dynamic-range scenes.
The following figure shows a common case and our estimation of the reflection and transmission images compared with state-of-the-art methods.
This repository contains the source code and the model for ReflectNet, our 2018 ECCV paper "Separating Reflection and Transmission Images in the Wild." To compare against existing state-of-the-art, we also implemented several previously published methods, which may be useful to others in the research community. Specifically, in addition to our [ReflectNet](ReflectNet), we offer implementations for:
- [Polarization and statistical analysis of scenes containing a semireflector *(Schechner et al. [1])*](./other_methods/Schechner_et_al)
- [A physically-based approach to reflection separation: From physical modeling to constrained optimization *(Kong et al. [3])*](./other_methods/Kong_et_al)
- [Single Image Reflection Suppression *(Arvanitopoulos et al. [4])*](./other_methods/Arvanitopoulos_et_al)
- [Separating reflections and lighting using independent components analysis *(Farid and Adelson [5])*](./other_methods/Farid_et_al)
More Resources
-------------------
- [Project page](https://research.nvidia.com/publication/2018-09_Separating-Reflection-and)
- [Paper](https://research.nvidia.com/publication/2018-09_Separating-Reflection-and)
- [Dataset](https://drive.google.com/file/d/1eWk1DcZB9YMyPCQPsBGPlaM86y4hqon4/view?usp=sharing)
Requirements
-------------------
- OpenCV with Python bindings
- tensorpack 0.8.8 (`pip install -U git+https://github.com/ppwwyyxx/tensorpack.git --user`)
- [dcraw](https://www.cybercom.net/~dcoffin/dcraw/)
- TensorFlow >=1.3.0 (`pip install tensorflow-gpu --user`)
Performing Inference with ReflectNet
-------------------
Download the [data](https://drive.google.com/file/d/1eWk1DcZB9YMyPCQPsBGPlaM86y4hqon4/view?usp=sharing) and run
```console
user@host $ cd ReflectNet && ./run_example.sh
```
Citation
-------------------
If you use the code in this repository or the [dataset](https://drive.google.com/file/d/1eWk1DcZB9YMyPCQPsBGPlaM86y4hqon4/view?usp=sharing), please cite our paper:
```
@inproceedings{eccv2018/Wieschollek,
author = {Patrick Wieschollek and
Orazio Gallo and
Jinwei Gu and
Jan Kautz
},
title = {Separating Reflection and Transmission Images in the Wild},
booktitle = {European Conference on Computer Vision (ECCV)},
month = {September},
year = {2018}
}
```
References
-------------------
[1] Schechner, Y.Y., Shamir, J., Kiryati, N., "Polarization and statistical analysis of scenes containing a semireflector," Journal of the Optical Society of America, 2000.
[2] Kong, N., Tai, Y.W., Shin, J.S., "A physically-based approach to reflection separation: From physical modeling to constrained optimization,"
IEEE TPAMI, 2014.
[3] Fan, Q., Yang, J., Hua, G., Chen, B., Wipf, D., "A generic deep architecture for single image reflection removal and image smoothing," IEEE ICCV, 2017.
[4] Arvanitopoulos Darginis, N., Achanta, R., Süsstrunk, S., "Single image reflection suppression," IEEE CVPR, 2017.
[5] Farid, H., Adelson, E.H., "Separating reflections and lighting using independent components analysis," IEEE CVPR, 1999.