Dense Scene Information Estimation Network for Dehazing_CVPR2019
Abstract
通常情况下,除雾算法都会求大气光A和透射图 t ,而后根据去雾模型公式反推得到去雾图像J,在本文中,针对这种去雾方法提出了两个网络,第一个是At-DH,基于DenseNet编码器与两个不同的基于DenseNet的解码器,共同估计去雾图像;第二个网络为AtJ-DH网络,在At-DH的基础上,增加了一个基于DenseNet的解码器,用以与A、t一起重新创建无雾图像,通过自定义的正则项通过GroundTruth进一步增强AtJ-DH中的参数A和t的估计。
Method
本文所提出的深度网络包括一个共享编码器和多个解码器,其中,编码器用作通用特征提取器,对解码器进行训练,并根据从编码器提取的特征来估计场景信息。
本文所提方法旨在从因浓雾而信息损失的图像中估计场景信息,并通过以下building blocks组成:
(1)Encoder: 基于Densely Connected Network(DCN)的结构
(2)Decoder:同Encoder结构相同,但是有着更多的batch normalization层
(3)Refinement blocks:用于优化不同尺度的输出
以下为编码解码网络的结构:
i. Encoder部分,选取DCN结构的前半部分,从‘Base.0’到‘Dense.4’(原因:后部分网络的特征被映射到较低维度的特征空间)
ii. Decoder部分
Trans Block:即Transform Block,作用为重新排序(用1*1卷积层实现)与扩大精炼图像/细节(上采样实现)
Res Block:即Residual Block,合并更多有助于图像恢复的高频信息
BN:设置在Dense Block中,归一化训练数据,使网络参数更为平滑,且是网络有更好的训练稳定性
Refinement:表2中的最后一行是图像的精炼部分,将放大的局部重组图像加在一起,用不同比例的图像信息消除块状伪影
At-DH Network
网络结构如上所示,包括Encoder(Table 1)和两个Decoder(Table 2),分别估计A和t
通过估计所得的A、t求得去雾图像 ????
进而求得有雾图像I
损失函数:
其中Ll2为所估计的 ????,I与真实J、I之间的L2距离
Lvgg为通过VGG网络提取特征后的 ????与真实J、I与真实I之间的L2距离
AtJ-DH Network
At-DH 网络中,当图片浓度较高,导致细节丢失时,使用At-DH 所估计的A与t便不再准确,基于此提出AtJ-DH ,网络结构如下:
Decoder.A:估计环境光A
Decoder.t:估计透射图t
Decoder.J:直接恢复去雾图像,在训练过程中为Decoder.A和 Decoder.t提供guideline,使恢复后的图像更接近于真实图像Ground Truth,且其所有输出都会连结在一起输入至refine10-13中
损失函数:
Decoder.J
Decoder.A与Decoder.t
Decoder.J、Decoder.A与Decoder.t共同训练时所用的损失函数:
Dataset, Training, and Test Procedure
为了训练At-DH和AtJ-DH,本方法使用NTIRE2019Dehaze数据集。 图像是由包括专业烟雾发生器的专业相机收集的,以便在两种条件下(有雾和无雾)都可以捕获相同的场景。 训练数据由45个模糊图像(在室内和室外环境中均生成浓雾)及其相应的具有真实场景信息的地面真实(无雾)图像组成
为了学习具有更强大泛化能力的网络,我们还将NTIRE2018-Dehaze数据集纳入了训练。 与NTIRE2018数据集相比,NTIRE2019数据集中的雾度高得多。 我们开发了一种合成方法来加深NTIRE2018训练图像中的雾度,以达到与NTIRE2019中相同的雾度水平。 我们按照下式生成了合成的浓雾图像:
在本式中,对于室内图片,A= [0.6, 0.6, 0.6],对于室外图片,A= [0.80, 0.81, 0.86],加一层发蓝的环境光,透射率t设置在0.01至0.3之间
在训练过程中,从训练集中选择512*512大小的patches,并作以下操作:
(1)水平翻转并旋转90°、180°、270°
(2)缩放到原始图像尺寸的0.7、0.8和0.9。
(3)将整个图像调整为512×512的大小,并对这些调整大小的图像应用相同的增强策略,并将包括原图片在内的图片以进行训练。
Training
一次性学习整个网络是具有挑战性的,并且由于网络参数化程度高,可能导致训练不稳定。 因此,本文采用了如下所述的两阶段训练策略:
Stage 1:预训练编码器
首先通过将编码器与单个解码器组合来对编码器进行预训练,以使解码器的输出可以重建为地面实况。 编码器和解码器的结构与表1和表2中描述的相同。在此阶段,我们使用NTIRE19和来自NTIRE18的合成浓雾图像来训练编码器80个epochs。
Stage 2:At/AtJ-DH训练
在此阶段,我们将从阶段1开始训练的编码器与新构建的解码器结合起来,以估计A,t和J。对于At-DH,解码器如表3所示,并使用第3.2节中详细介绍的损耗进行训练。 对于AtJ-DH,解码器如表4所示,并使用第3.3节中详细介绍的损耗进行训练。
训练是在两个数据集上进行的。 对于前50个epoch,训练数据与阶段1相同。对于接下来的70个epoch,训练数据仅来自NTIRE19。