文章目录
1. 摘要
文章提出了一种端到端的全卷积网络进行单张图片的反射分离,其中卷积网络的loss函数不仅考虑了低层的信息,还涵盖了高层的图片信息。具体来说,loss函数包括两个感知的loss(perceptual losses):
- 一个来自perception network的
feature loss
- 一个adversarial loss
不仅如此,还提出了一个exclusion loss,这个loss可以起到像素级别的反射分离。
其他的贡献:制作了一个数据集,一类为现实中带反光的图片,另一类为同一场景下不带反光的图片。
我们的模型在PSNR,SSIM以及perceptual user study的指标中,都超过了state-of-the-art.
2. 介绍
P1:反光在日常生活中很常见。因此从一张image中分离出reflection
层和transmission
层,也称为the reflection separation problem
,是一个比较热门的领域。
P2:假如一张带反射的图片作为输入,即
I = R m × n × 3 I = R^{m \times n \times 3} I=Rm×n×3
然后T代表transmission layer, R代表reflection layer,这样的话就有
I = T + R I = T + R I=T+R
也就是一张照片等于transmission layer 加上 reflection layer。
我们的目的是想在给定 I I I,将 T T T求出来,也就是给出反光照片,去除反光得到不带反光的照片。但是这个一个不可解问题,如果没有给出额外的限制条件或先决条件的话。
P3:因为分离反光问题是病态问题(ill-posed)的,因此之前人们解决它都需要额外的输入图片和精心设置的先决条件。
比如使用很多张照片和用户指导,但是显示中没有那么多照片,用户指导也不可靠。近来研究者提出使用单张图片进行反射消除,但依靠精心设计的先决条件,比如ghose cues和相对平滑的反射,这样泛化效果并不好。前段时间,CEILNet用了DNN训练了一个模型进行反光消除,但是只学到了像颜色、边缘这样的低层信息,学不到高层的信息。Low-level信息对于反光消除是远远不够的,因为颜色是随机的。
P4:提出了独特的loss,内容和综述差不多。perceptual losses有两个,这两个分别是对图片信息的不同level进行处理的:feature loss主要是来自visual perceptual network,adversarial loss主要是去修正输出的transmission layer的。
而exclusion loss主要是为了在梯度上对独立的层进行分离。
3. 相关工作
3.1 Multiple-image methods
说的就是输入多张图片,然后再输出消除反光的照片。
3.2 Single-image methods
一般来说用单张图片作为输入都要有预先定义的先验条件。比较常用的有两种:
- 用图片的梯度稀疏性(gradient sparsity)来找到最小的边缘和角点,然后进行层的分离。gradient sparsity一般都有用户的协助。这类方法是基于low-level 的图片信息,所以面对high-level时就无能为力了。
- 另一个的假设(先验条件)是反射层总是失焦并且比较平滑(out of focus and appears smooth)。虽然反射层相对平滑是合理的,但是如果反射层对比度比较高的话,这就不可行了。
最近提出的Cascaded Edge and Image Learning Network(CEILNet)[级联边缘和图像学习网络],把消除反光当成边缘简化任务,并且学习一个中间边缘图引导层分离。CEILNet单纯学习low-level的loss,因为loss仅仅对比颜色空间和梯度域的不同。我们和CEILNet主要的不同是后者在训练时没有充分利用perceptual的信息。
ps:CEILNet的github地址,有数据集:https://github.com/fqnchina/CEILNet
3.3 基准数据集
这个数据集有目前已经开源了:https://sir2data.github.io/。
感觉不错呀这个数据集。
4. 概述
P1:给一张带反光的照片:
I ∈ [ 0 , 1 ] m × n × 3 I \in [0,1]^{m \times n \times 3} I∈[0,1]m×n×3
(图像在0到1,说明要做归一化处理)
然后我们的方法将 I I I分解为transmission layer f T ( I ; θ ) f_T(I;\theta) fT(I;θ) 和 reflection layer f R ( I ; θ ) f_R(I; \theta) fR(I;θ),其中 θ \theta θ是网络的权重。
网络 f f f的训练数据为 D = { ( I , T , R ) } D=\{(I,T,R)\} D={
(I,T,R)},其中 I I I是输入图片, T T T是输入图片 I I I的transmission layer, R R R是输入图片 I I I的reflection layer。
loss函数包括三部分:
- feature loss: L f e a t L_{feat} Lfeat,比较图片的featur space
- adversarial loss: L a d v L_{adv} Lad