PDR-Net: Perception-Inspired Single Image Dehazing Network with Refinement

1,735 阅读6分钟

IEEE Transactions on Multimedia 2019

Chongyi Li, Chunle Guo, Jichang Guo, Ping Han, Huazhu Fu, Senior Member, IEEE, and Runmin Cong Member, IEEE

简介

文章提出了PDR-net,其包含两个子网络,分别为Haze Removal子网和Refinement子网。Haze Removal子网负责对输入的有雾图像进行去雾,而Refinement子网负责对去雾结果进一步细化,以提高其对比度和饱和度等。由于文章认为室内RGB-D数据集合成的去雾数据会使网络产生低对比度和单调色彩的结果,室外数据能够弥补这个问题,以及室外去雾数据集雾浓度变化较小,不利于网络去不同浓度的雾,室内数据集可以弥补这个缺点,因此该网络的训练使用了室内室外两个数据集,分别利用了其优点。文章使用了多个损失函数,包括感知损失(VGG)、颜色损失、对抗损失等。

问题

文章认为以往的文章存在以下问题:

  • 估计大气散射模型中的A和t后,合并这些变量会放大估计步骤中的误差。
  • 使用室内RGB-D数据集合成的训练数据会使网络产生低对比度和单调色彩的结果。
  • 室外有雾数据集的雾浓度较低,限制了去雾网络在浓雾上的去雾能力。

网络框架

网络输入为RGB有雾图,其在经过Haze Removal Subnetwork(去雾子网)后,得到了初步的去雾结果,即Dehazed Image。再将Dehazed Image放入Refinement Subnetwork(细化子网)中,得到最终的细化结果,即Refined Image。

其中Conv_10+ReLU模块是为了应对有雾图像直接传输到输出结果处而导致去雾结果存在噪声和伪像。

整个网络包含22个卷积层,即认为其使一个轻量级的CNN。此外,为了减少边界伪像,文章不使用任何池化层,卷积为0填充。

损失函数

文章在两个子网中使用了三种不同的损失。perceptual loss(感知损失)、color loss(颜色损失)、contrast loss(对比度损失)。其中去雾子网仅使用感知损失。

perceptual loss(感知损失)

感知损失在去雾子网和细化子网中均使用到。 先介绍在去雾子网中的感知损失:

L_{pl}^{\phi,j}=\frac{1}{C_jH_jW_j}\sum^M_{i=1}||\phi_j(\hat{y_i})-\phi_j(y_j)||

其中\phi表示使用Imagenet预训练的VGG19网络,j表示第j层卷积层(在ReLU层后),\hat{y}y分别表示表示去雾结果和Ground Truth,CHW表示通道数、高、宽,M表示批大小。

在细化子网中的公式相同,只有\hat{y}y变为去雾结果图(中间结果)和细化目标图。

color loss(颜色损失)

颜色损失仅在细化子网中使用。颜色损失使用了2D高斯核对输出细化结果图和目标细化图进行模糊,并求取它们的l_2损失。

L_{col}=\sum_{i=1}^N{||\hat{z}_{bi}-z_{bi}||}^2

\hat{z}z表示输出细化结果图和目标细化图的模糊结果。

contrast loss(对比度损失)

将输出细化结果图和目标细化图转为灰度图,文章表示,这样可以让鉴别器网络(D)关注对比度而不是颜色信息。

L_{contr}=-\sum^N_{i=1}log(D(\hat{z}_{gi},z_{gi}))

同样的,\hat{z_g}z_g使细化结果图和目标细化图的灰度图。生成器G(细化子网)负责生成细化结果,使\hat{z_g}尽可能的与z_g相似,而鉴别器D负责区分\hat{z_g}z_g。另外,鉴别器D的网络结构在文章中未展示。

综上所述,总损失函数如下:

L_{total}^{re}=W_{con}\cdot L_{con}+W_{col}\cdot L_{col}+W_{contr}\cdot L_{contr}

其中W_{con}W_{col}W_{contr}表示权重,分别为10,0.5,1。

数据集和训练

室内图像数据集使用了NYU-V2数据集,根据大气散射模型合成有雾图像。其中A\in[0.7,1.0],\beta\in[0.6,2.8]。 将NYU-V2数据集分为1000张(训练集)和449张(验证和测试集),对于每张照片随机选择A\beta各五个,生成5张有雾图像,一共得到5000张(训练集)和449张(验证测试集)。文章还将图像缩小到207×154×3。

室外图像数据集使用了RESIDE下的SOTS数据集,其包含500张户外图像,将其分为400张(训练集)和100张(验证测试集),并将其不重叠的裁剪为100×100×3的尺寸,最终得到8000张(训练集)和1000张(验证测试集)。

NYU-V2数据集用于训练去雾子网,SOTS数据集用于训练细化子网。具体的说,NYU-V2数据集合成的有雾图作为Hazy Image输入到Haze Removal Subnetwork中,其得到结果Dehazed Image与NYU-V2数据集的Ground Truth计算损失。SOTS数据集也作为Hazy Image输入到Haze Removel Subnetwork中,得到Dehazed Image,但这一步不参与训练,再将Dehazed Image输入到Refinement Subnetwork中得到细化后的最终结果,并与SOTS数据集的Ground Truth计算损失。

其他设置

  • 除雾子网batch size=16
  • 细化子网batch size=64
  • 感知损失计算VGG19的ReLU5_4层
  • 高斯模糊卷积核的幅值、均值、方差分别设为0.053、0、1

结果展示和对比

(b)表示去雾结果,(c)表示细化结果。可以看出(c)的更亮、更鲜艳。

文章使用前文提到的验证测试集进行测试,测试集1为NYU数据集中的测试集,测试集2为SOTS数据集中的测试集。测试指标为PSNR和SSIM。

测试集1测试结果

Metrics DCP CAP DehazeNet MSCNN All-in-One ProximalNet cGAN-based PDR-Net
PSNR 16.71 16.38 17.35 16.66 16.83 17.03 17.79 17.89
SSIM 0.7813 0.7622 0.7812 0.7755 0.7829 0.7711 0.7993 0.8227

测试集2测试结果

Metrics DCP CAP DehazeNet MSCNN All-in-One ProximalNet cGAN-based PDR-Net
PSNR 17.34 22.08 22.62 19.47 20.47 19.16 22.01 21.70
SSIM 0.7359 0.8812 0.8677 0.8381 0.9121 0.8515 0.8477 0.8847

文章认为,其获得最佳评分的原因是:

  • 除雾子网将重建损失降到最低,从而产生更好的逐像素相似性(即PSNR)
  • 改进子网进一步提高了对比度和细节,从而产生更好的结构相似性(即SSIM)

室外真实场景测试图像

其表现其实略差于DCP。

室内合成场景测试图像

当然,在大量的白色物体的场景下,其表现优于DCP。

对比研究

文章重新使用了l_2l_1损失来研究,得到以下图与表:

Loss PSNR (dB) SSIM
PD-Net1 21.47 0.7013
PD-Net2 19.72 0.6579
PD-Net 18.09 0.7997

文章表示,l_2会惩罚较大的错误,但是它更能够容忍较小的错误。而l_1不会惩罚大错误,也会优化小错误。相比之下,感知损失鼓励输出在感知上更加愉悦的输出而适当牺牲了PSNR。其在实验上证明了感知损失的有效性。