这是一篇基于分解-组成网络的去雨方法,是一篇SCI二区的文章CVIU吧,天津大学的李思源是作者。同样他还发了一篇2019年的CVPR,提出了一个benchmark。
2019 CVIU:DDC Net
本文所提出网络的主要思想是将雨图先分解成雨层和背景层,然后再进行合成作为分解的输入,提高分解网络分解的质量。
本篇文章主要是设计了一种新颖的端到端多任务学习结构,减少了输入到输出的映射范围,提高了性能。
首先是设计了一个分解网络,将雨图分解成干净的背景层和雨层,该模型除了包含一个表示所需的干净图像的成分,还包含一个表示雨层的额外成分。
在训练阶段,我们进一步采用合成结构将分离出来的干净图像和雨水信息重新生成输入,以提高分解质量。
主要创新之处:
1、设计提出了一种新的深度分解合成网络(DDC-Net),可以在不同条件下有效地去除单幅图像中的雨纹等。
2、网络由分解网络和合成网络组成。分解网络用于将雨图分解成清晰的背景层和雨层,合成网络是将分解网络中分离出来的两层重新生成输入的雨图。进一步提升分解质量,同时还能保持模型体积小,性能良好。模型明确地考虑了雨层的恢复精度。
3、根据屏幕混合模式,不是简单的加和,合成了一个新的数据集包含10400个[雨水图像,干净的背景,雨水信息]。测试阶段只需要分解网络。
网络结构:
由网络结构,可以看出整体网络主要是基于一个编解码网络。
在分解网络部分,将含雨图像在编码器部分分解成清晰的背景和雨层,在多尺度的基础上完成分解,在解码器部分主要是两个分支分别是清晰的背景分支和附加的雨水分支。
在合成网络部分,将分解网络分离得到的雨水层和背景层进行合成,合成后的图片再传送到分解网络的输入作为输入图像,提升分解的质量。
最终不断完善后的分解网络的结果作为去雨的结果。
同时,网络使用最大池化完成下采样,损失函数则是使用了GAN loss和MSE loss。
具体实现:
1、分解网络
灵感来源于编解码网络在其他低级图像处理任务上的有效性,整体分解网络基于残差编码和解码结构并对清晰背景和雨层进行具体的设计。
(1)编码器部分的前两个卷积使用扩张卷积以扩大感受野,扩张卷积的步长是1x1带有填充,同时使用最大池化层对特征图进行下采样。
(2)使用了两个解码器网络分别恢复清晰的背景层和雨层。
(3)清晰背景分支去卷积的特征连接到附加的雨分支,以便在上采样阶段获取雨信息。原则是背景特征被期望帮助去除来自雨的背景纹理。并且将雨的特征加到背景分支中,但是效果改善不明显。
残差编解码网络包含五个卷积模块,每个包含几个卷积层+ReLU+跳跃连接。
2、在合成数据上预训练
由于在没有成对监督的情况下,分解问题具有挑战性,因此模型可以学习任意映射到目标域,而不能保证将单个输入映射到它想要的干净背景和雨点层。在此基础上,我们首先将图像去雨问题转化为成对的图像到图像的映射问题,其中我们将干净的图像和相应的合成的雨天图像作为成对的信息。为了测量恢复后的图像与地面真实图像之间的内容差异,我们利用得到的结果与目标图像之间的欧氏距离。因此,在预训练阶段的分解过程中,净背景和雨层的损失可以计算为:
3、在真实图片上的细化
利用合成图像的学习模型,我们的分解网络可以保证将单个雨输入映射到它想要的干净背景和雨层。但是,由于人工合成的雨层在真实场景辐射中无法区分场景辐射和飞溅这两个方面,因此我们使用收集到的真实无雨和有雨图像对模型进行优化。
提出了通过引入生成对抗网络GAN损失更好地建模形成雨天图像,来解决图像间的不配对问题。
对抗损失:
鉴别器D由五个卷积层组成,每个卷积层后跟一个ReLU非线性层。
一个 sigmoid 激活函数应用于最后一个卷积层的输出,以产生一个输入图像被检测为真实或虚假的概率。
这里在网络中没有体现出来
4、合成网络
由于下雨的图像中还有其他的因素,如雾霾和飞溅等,它受到了限制。
为了解决这个问题,我们首先从分解网络中拼接干净的背景图像和雨层,然后使用额外的CNN块来建模真实的雨天图像构造。
提出的合成网络可以实现更一般的形成过程,并能解释真实图像中的一些未知现象。
然后,我们设计了一个二次训练代价函数来度量重构后的雨天图像与原始雨天图像之间的差异。
5、屏幕混合模型
其中, ? 代表 Hadamard product。
在这个模式中,两个图层中的像素值被反转、相乘,然后再反转。
干净的背景图像B来自BSD300 dataset,降雨部分R是在步进后产生的,其强度、方向和重叠程度各不相同。最后,我们以屏幕融合的方式将这两部分融合。
这样,合成的雨天图像更有物理意义。