  Reflections are very common phenomena in our daily photography, which
distract people's attention from the scene behind the glass. The problem of
removing reflection artifacts is important but challenging due to its ill-posed
nature. The traditional approaches solve an optimization problem over the
constraints induced from multiple images, at the expense of large computation
costs. Recent learning-based approaches have demonstrated a significant
improvement in both performance and running time for single image reflection
removal, but are limited as they require a large number of synthetic
reflection/clean image pairs for direct supervision to approximate the ground
truth, at the risk of overfitting in the synthetic image domain and degrading
in the real image domain. In this paper, we propose a novel learning-based
solution that combines the advantages of the aforementioned approaches and
overcomes their drawbacks. Our algorithm works by learning a deep neural
network to optimize the target with joint constraints enhanced among multiple
input images during the training phase, but is able to eliminate reflections
only from a single input for evaluation. Our algorithm runs in real-time and
achieves state-of-the-art reflection removal performance on real images. We
further propose a strong network backbone that disentangles the background and
reflection information into separate latent codes, which are embedded into a
shared one-branch deep neural network for both background and reflection
predictions. The proposed backbone experimentally performs better than the
other common network implementations, and provides insightful knowledge to
understand the reflection removal task.
