CVPR2018 图像去雾 DCPDN: Densely Connected Pyramid Dehazing Network

Densely Connected Pyramid Dehazing Network
He Zhang, Vishal M. Patel
Rutgers University, Piscataway, 2018

一篇有开源端到端的单张图像去雾算法。也是第一个端到端的图像去雾算法。


Introduction

雾的大气散射造成的图片变差可以这样建模:

其中I是观察到的雾图,J是真实的场景光(true scene radiance);A是全局大气光(global atmospheric light),指示环境光的强度(intensity of the ambient light);z是像素位置;t是传输图,它是一个距离相关的因数,影响到达传感器的光量。当A是均匀的时,t可以表达为$t(z)=e^{-\beta d(z)}$,$\beta$是大气衰减系数(attenuation coefficient of the atmosphere),d是场景深度。单图去雾问题就是给定I,估计J。

这篇论文的主要贡献如下:

  1. 端到端的联合优化去雾网络,把公式1直接嵌入了网络优化。从而同时估计A,t以及去雾图片。网络分步训练
  2. 提出了带边缘保留的金字塔densely encoder-decoder网络,通过edge-preserving loss进行优化
  3. 因为估计的t与去雾图的结构高度相关,因此使用了GAN来判断样本对是否来自数据分布

Alt text
图1是一张效果图。

Proposed Method

所提出的DCPDN网络包含4个模块:

  1. Pyramid densely connected transmission map estimation net
  2. 预测A的网络
  3. 通过公式2进行去雾
  4. joint discriminator

网络结构见图2。

图2

Pyramid Densely Connected Transmission Map Estimation Network

图3

backbone是DenseNet-101的第一个卷积层以及前三个dense block。encoder最终特征图尺寸为输入的1/32,堆叠了5个dense block作为decoder,同一尺度的encoder和decoder的特征图会进行concat。最终还进行了一个multi level pyramid pooling。分别进行4个尺度的pooling,再upsample后concat到一起。整个结构见图3。

Alt text

Atmospheric Light Estimation Network

假定A为均匀的。即A是个2D图,每个点的值都相等。网络是一个8block的UNet,decoder是Dconv。

Dehazing via Eq2

论文声称为了让3个任务同时优化,因此将公式2嵌入了整体的优化网络。

Joint Discriminator Learning

将$G_t$和$G_d$记做生成t和去雾图像的网络,为了让它们生成的结果$G_{t}(I)$、$G_{d}(I)$无法与gt辨识开,把GAN用作joint discriminator。

从公式1和图4中可以看出估计出的t和d高度相关。因此辨识时将它们成对输入。优化目标如下:
Alt text

前两项为生成的图像,期望D输出为0,第三项为gt,期望D输出为1。

Edge-preserving Loss

已知L2 loss倾向于模糊最终结果。

检索了一下这个L2导致模糊的问题,这篇博客的解释是,未归一化的高斯分布,在log后即是L2 loss,因此它倾向于将分布变成高斯分布,一个unimodal distribution,而现实中应该是一个multimodal分布

基于两个观察:

  1. 边缘对应了图片的亮度的不连续,因此能通过图片梯度来描绘
  2. 已知CNN的较浅的层能捕捉较低级的特征,如边缘、轮廓。如图5

图5

因此提出了整体的Edge preserve loss,由L2,两个方向的梯度loss,以及特征loss组成:

其中梯度loss如下:

其中$H_{x}$ and $H_{y}$是水平和垂直方向的梯度算子。特征loss如下:

其中$V_i$指一个CNN结构,$c_{i}, w_{i}, h_{i}$是$V_i$中的对应低维特征。采用了VGG-16的relu1-1和relu2-1前的层作为$V_{1}$和$V_{2}$。

Overall Loss Function

总体loss由4部分组成:

其中$L^{t}$由edge-preserving loss$L^{e}$组成。$L^{a}$是预测大气光a的L2 loss,$L^{d}$是去雾图像d的L2 loss。$L^{j}$是joint discriminator loss,其定义如下:

Stage-wise Learning

直接从头训练整个网络很困难,收敛得很慢。一个可能的原因是不同任务的梯度混合了。因此采用了分步骤训练策略。分开优化每个任务,再整体调优网络。

Experiment

数据集是基于NYU-depth2数据集,这个数据集有深度信息。使用公式1来合成训练样本:$\{\text {Hazy/Clean /Transmission Map/Atmosphere Light}\}$。随机采样大气光$A \in[0.5,1]$,大气衰减系数$\beta \in[0.4,1.6]$来生成雾图。

Alt text

图6

表1和图6是消融测试结果,从左到右依次是,密集连接的encoder-decoder结构(DED)、加入了multi-level pyramid pooling (DED-MLP)、加入了gradient loss、使用了edge-preserve loss,加入了joint discriminator。

图7

图7是在测试集的效果,8、9是真实世界的效果。

图8

图9