2019 CVPR

本篇文章是2019CVPR的一篇文章,主要是提出了一个两个阶段的网络,基于物理的主干网络+深度指导的GAN细化网络。

在这里插入图片描述

对于大雨中的场景,雨纹明显可见,密集的雨堆积或遮雨效果明显,图像被雨纹洗刷去,远处的场景相对更加模糊等。
本文主要提出了一种方法来解决大雨问题。网络结构主要分为两个阶段:基于物理信息的主干网络和深度信息指导的GAN细化网络。
1、第一阶段:根据基本的物理原理来估计雨纹、传输图和大气光。为了更可靠地提取这些分量,我们使用了一个引导滤波框架来将图像分解成低频和高频分量。这种过滤是由一幅无雨残差图像引导的——其内容用于以空间变化的方式设置两个通道的通频带,这样背景细节就不会与雨条纹混淆。
2、第二阶段,采用了一个深度指导的GAN去修复第一阶段中没有被恢复的背景细节,同时纠正引入的伪影。

创新之处:

1、整合了两个阶段的神经网络:物理子网络和细化子网络。物理子网络用于估计S、A、T,然后生成J。细化子网络则包含一个 cGAN 网络。
2、提出了一个雨纹感知分解,将雨纹分别分为包含雨纹的高频成分和包含雨积累的低频成分。解决了雨纹和雨积累的缠结问题,同时能使用低频成分解决估计大气光的问题。
3、提供了一种新的以一种与场景深度一致的方式来合成遮挡效果的合成数据生成管道。为了更加真实,还在传输图和背景上添加了高斯模糊来模拟暴雨场景下的散射效果。

前人工作:

1、目前存在的去雨的方法,大多都不是为大雨场景下设计的。
2、Kang等人提出第一个使用双边滤波器将输入图像分解为低频分量和高频分量的单幅图像去雨方法。这种方法下,高频成分包含了雨纹和高频背景细节
不足:它基于稀疏编码的字典方法不能区分真实的物体细节和雨条纹。
3、Li等人使用高斯混合模型(GMMs)作为背景和雨纹层的先验,将雨图像分解为无雨背景层和雨条纹层。还尝试使用预处理除雾步骤来解决雨水积累问题。然而,除雾步骤进一步增强了清晰雨条纹,导致雨条纹的对比度和强度远远高于训练数据。因此,后续的雨纹去除方法不能有效地去除提振的雨斑。
4、DDN。提出了一种基于图像分解步骤的深度细节网络解决方案,同样细节层包含了雨条纹和背景细节,这不利于雨条纹的学习。
5、JORDER。在他的递归框架中使用除雾方法[4]作为迭代步骤来去除雨水积累。
然而在暴雨场景中,大量隐藏在大气面纱中的噪声将通过去雾的方法得到增强,而这是JORDER无法处理的。
6、DID-MDN、RESCAN分别通过密度感知和递归网络完成去雨,但它们不能处理雨水的累积,也不能干净地去除雨水条纹。

存在问题:

1、大多数现有方法所使用的雨图模型无法很好的描述雨图信息。
2、大雨和小雨,也就是雨纹和雨水堆积没有明确的分界。
3、现实世界中,雨纹和雨水积累是相互缠结在一起的,没有办法用简单的物理模型进行分开。因此,先去除雨纹,再去除雨水积累的过程不能很好地解决这个问题。
4、由于雨纹的存在,大气光更为复杂,不好估计。
5、雨纹和雨水积累带来的损失没有在模型中体现出来,过度依赖模型。

网络结构:

在这里插入图片描述

具体工作:

1、雨图模型

在这里插入图片描述
其中,I 是输入的含雨图像,J是无雨的背景图像,Si是第i层雨纹的雨纹强度。T 是传输图或是透射率图,A是全局大气光,1表示全1 的矩阵,圈点表示向量乘法。

2、整体网络概述

因此,无雨的背景图像可以表示:
在这里插入图片描述
于是:I --------------> J --------------->C

在第一阶段,物理模型是真实雨图的近似估计,为网络提供约束。毕竟是粗略估计,健壮性可能较差。
在第二阶段,采用约束更少,更适应数据的网络来细化雨纹或雨水积累带来的没有在模型中表示出来的损伤。

3、Stage1: 基于物理的复原

在这里插入图片描述

将输入图像分解为高频分量和低频分量,由高频分量估计雨条纹图S,由低频分量估计传输图T和大气光A。

残差通道指引分解:

在大雨图像中,雨纹和雨水积累相互缠结,导致S,A,T 难以估计。
雨纹的存在导致A和T难以估计,雨水积累导致S难以估计。
于是,将输入图像分成高频和低频分量,减少估计的复杂性,增加网络的健壮性。

图像分解是采用自《Fast end-to-end trainable guided filter 》,创建了一个分解CNN层,细节如下图所示:

在这里插入图片描述

如图,输入图像经过残差转换得到参考图像,然后输入到指导滤波层也就是低通平滑过程,分解得到高频成分和低频成分,再输入到一组平滑核K中,在每个频率通道中,再将这些图像连接起来,并将它们发送到一个1×1的卷积核,再去进行参数的估计。

具体来说,我们首先对输入图像I进行图像平滑。平滑得到低频分量IL,而高频分量为IH = I−IL。

在这里插入图片描述
同时,大气光恒定不变,假设AH = 0 ,假设低频分量中SL可以忽略,SL = 0 。所以:

在这里插入图片描述
并且,使用残差图像作为参考图像指导低通平滑过程。这个指导滤波使得具有一个空间变化的低频通带,可以选择性地保留低频通道中的高频背景细节。因此,高频通道只包含未被高频背景细节破坏的雨条纹,这极大地促进了对雨条纹的学习。

残差图像:
在这里插入图片描述
其中,Ic,Id 是I的颜色通道。

在这里插入图片描述
如图,残差通道没有雨纹,只包含背景细节。本文采用彩色残差图像作参照图像。
同时,采用一组平滑核K,k = 2i。解决雨纹尺寸变化问题。
然后通过1x1的卷积层来适应维度。

学习过程:

雨纹学习S:12个残差块的全连接卷积网络(从高频成分IH中学习)
在这里插入图片描述

大气光学习A:5Conv + ReLU 加2FC 再通过一个上采样变成输入图像大小(从低频成分IL中学习)
在这里插入图片描述
传输图学习T:使用一个跳跃连接的auto-encoder,并在前两个卷积层中使用实例正则化代替BN
IN的作用:可以加速模型收敛,并且保持每个图像实例之间的独立。
在这里插入图片描述

损失函数:
在这里插入图片描述
这里因为全都是相同尺度下的MSE误差,权重全部设置为1.

4、Stage2: Model-Free 细化

在这里插入图片描述

这一部分主要包含一个cGAN即条件生成对抗网络。
cGAN整体损失函数:
在这里插入图片描述
其中,C是最终生成的干净图像

生成网络:13 Conv-ReLU模块,增加跳跃连接保存更多图像细节。

损失函数:MSE和感知
在这里插入图片描述
权重设置为8,感知损失基于VGG16在ImageNet上的预训练。

生成器整体的损失函数:

在这里插入图片描述
其中,在这里插入图片描述,权重设置为0.01.

判别网络: 接受生成网络的输出,并检查它是否像一个真实的清晰场景。

首先,利用传输图T,根据关系将其转换为相对深度图:
在这里插入图片描述
其中,d表示场景深度,β表示雾纱或者雨水积累的强度,本实验中β是均匀分布[3,4.2]的随机抽样.

然后,我们从鉴别器的第6对Conv-ReLU层 提取特征,计算这些特征与归一化为[0;1]深度图的MSE损失:
在这里插入图片描述
其中,D©m表示判别器第 m 层的特征。使用学习得到的深度地图来衡量来自前一层的特征,以元素的方式相乘。

在这里插入图片描述

判别器整体损失函数:
在这里插入图片描述

实验

生成数据集:
现有的数据集不包括雨水堆积效果。

第一阶段:

在这里插入图片描述

使用上述算法,从NYU-Depth-v2数据集中选取背景图生成新的数据集NYU-Rain。添加进雾纱效果和模糊效果。
该数据集包含16200个图像样本,其中13500个图像用作训练集。

第二阶段:
使用数据集Outdoor-Rain。
使用单图像深度估计方法来估计场景的深度。
该数据集包含9000个训练样本和1500个验证样本。

分页符

Logo

鸿蒙生态一站式服务平台。

更多推荐