Learning deep transmission network for efficient image dehazing

357 阅读4分钟

Multimedia Tools and Applications 2018

Zhigang Ling, Guoliang Fan, Jianwei Gong, Siyu Guo

简介

文章设计了一个传输网络来估计传输图来进行去雾。文章的亮点在于考虑了不同的颜色受光波长的影响,在传输过程中的损耗不同。此外文章研究了其他网络和其他算法,以及对大气散射模型做了较为细致的分析。

Motivation

文章提出了几个问题:

  • 过去提出的一些先验并不完全适应真实的场景。
  • 一些端到端的网络未能利用投射图和大气光之间的物理模型。
  • 过去的大多数算法都认为RGB三通道具有相同的传输值,而实际上三个通道仍然有一定的区别。

Background

文章介绍了来自Koschmieder[20]提出的大气散射模型,主要由直接衰减(direct attenuation)和遮蔽光(veiling light)组成:

I(x,\lambda)=\frac{E_{\infty}(\lambda)r(\lambda)}{{d(x)}^2}e^{-\beta(\lambda)d(x)}+E_{\infty}(\lambda)(1-e^{-\beta(\lambda)d(x)}) \tag{1}

d(x) is the depth of a scene point x from the observer and λ is the wavelength. 其中d(x)表示传感器在点x观察到的距离,\lambda为波长,E_{\infty}(\lambda)为horizon brightness(视野亮度),r(\lambda)为物体固有的反射率。该公式的\frac{E_{\infty}(\lambda)r(\lambda)}{{d(x)}^2}e^{-\beta(\lambda)d(x)}反映了场景辐射是如何衰减的,E_{\infty}(\lambda)(1-e^{-\beta(\lambda)d(x)})是造成色偏的核心因素。

如果用单色照相机拍摄的图像可以用如下公式表达[27]:

I(x,\lambda)=I_\infty \rho(x,\lambda)e^{-\beta(\lambda)d(x)}+I_\infty(1-e^{-\beta(\lambda)d(x)}) \tag{2}

其中I_\infty为大气光,\rho(x,\lambda)为物体反射率,t(x)=e^{-\beta(\lambda)d(x)}为传输图。

而散射系数\beta(\lambda)和大气波长有关。在可见光谱上,Rayleigh大气散射定律提供了散射系数与波长之间的关系,如下所示:

\beta(\lambda)=\frac{3.912}{V}(\frac{\lambda}{0.55})^s \tag{3}

其中V(km)为可视距离,波长\lambda的单位是\mu m,而s \in[-4,0]取决于确切粒径和可视距离:

s=2[\tanh(p_1(w+p_4-1))]+p_2e^{-p_3(w+p_5)^2}
w=\log_{10}r_e
r_e=10\left(\frac{0.05}{V}\right)^{0.5}

对于无雾晴朗天气,空气中的颗粒,与光的波长相比非常小,因此散射系数与波长的相关性很强,即s=−4,短(蓝色)波长占主导,因此天空呈现出蓝色。

对于雾颗粒,与光的波长相比,组成粒子(水滴)大,所有具有不同波长的光均被散射,因此会看到灰(或白色)雾,其中s=0

而气溶胶产生了大范围的大气条件,其粒径介于微小的空气分子(10−4μm)和大雾滴(1−10μm)之间。因此,此类气雾环境(如轻度雾霾)对波长高度敏感。

对于DCP算法,其暗通道可以表达为:

L^{dark}(x)=\min_{y\in \phi(x)}\min_{c\in\{r,g,b\}}\left(\frac{I^c(y)}{I^c_\infty}\right) \tag{4}

如果使用归一化以后的图像的暗通道可以表达为:

L_n^{dark}(x)=\min_{y\in\phi(x)}\min_{c\in \{r,g,b\}}\left(\frac{L^c}{I^c_\infty}\right)=\min_{y\in\phi(x)}\min_{c\in \{r,g,b\}}\left(\rho^c(y)\right) \tag{5}

会发现这和物体本身的反射率有关。

显然,根据上图所示的自然物体的反射率,雪,冷杉和天空区域的反射率没有在任何波长处接近零,因此DCP不适用于这些物体。

Model

给定一个模糊图像I,我们首先将该模糊图像标准化为A的深度网络输入 对于给出的有雾图I,文章将其标准化为I_n(x)=1-\frac{I(x)}{I_\infty},和公式(2)联立可得:

I_n(x)=(1-\rho(x))t(x) \tag{6}

文章将I_n(x)作为输入。其中I_\infty为大气光,被设置为[255,255,255]

该网络由3个卷积层和一个max函数组成。其中f_2=1,为1*1卷积。其中4个操作公式如下:

F_1(I_n)=\min(\max(0,W_1*I_n+B_1),1) \tag{7}
F_2(I_n)=\min(\max(0,W_2*F_1(I_n)+B_2),1) \tag{8}
F_3(I_n)=\min(\max(0,W_3*F_2(I_n)+B_3),1) \tag{9}
F_4(I_n(x))=\max_{y\in\Omega(x)}F_3^c(I_n(y)) \tag{10}

最后输出为3通道的传输图。该网络使用l_2损失。使用和DCP同样的方法估计大气光,使用这个大气光将图像归一化以后再输入到网络中。此外,使用了一个增强曝光的算法提高去雾结果的亮度。

数据和训练

数据集

文章建立了一个具有波长敏感性的有雾数据集。 首先,我们从给定的无雾图像中随机采样许多大小为r×r的小块,并假设同一块中的所有像素趋向于具有相同的深度值。 然后,我们采用以下过程为图像补丁构建朦胧的副本。

  • 文章从无雾图像中采样r×r的图像块,并假设同一块中所有像素具有相同的深度值。

  • 随机产生[0.1,50](km)范围内的可见距离V,并通过公式3构造RGB通道的散射系数\beta_c(c=r,g,b),其中红色,绿色和蓝色的波长分别设置为0.7μm,0.55μm和0.435μm。

  • 随机产生一个在[0.01,V]范围内的局部深度值d,然后建立透射图t_c

  • 设置大气光I_\infty=[255,255,255]

  • 根据大气散射模型合成即可。

  • 测试集1:D-HAZY由Middelbury和NYU组成(合成数据集)

  • 测试集2:FRIDA和FRIDA2(合成数据集)

训练设置

  • SGD优化器

对比和测试

测试指标

  • MSE
  • SSIM
  • 当没有Gth时,采用Choi等人提出的感知雾密度D。D值越小,表示图像除雾方法的除雾性能越好。但,当过度去雾是,也会使D值小。

指标对比

文章对比了3通道输出深度传输网络(3CDTN),1通道输出深度传输网络(1CDTN)。此外,文章将像素最大操作应用于3CDTN的输出,以开发一个称为1CM3CDTN的1通道输出深度传输网络

这个数据表现出了三通道输出的结果较好。

结果展示