Color Transferred Convolutional Neural Networks for Image Dehazing

612 阅读4分钟

IEEE Transactions on Circuits and Systems for Video Technology 2019

Jia-Li Yin, Yi-Chi Huang, Bo-Hao Chen, Member, IEEE, and Shao-Zhen Ye

简介

该论文提出了一个颜色转换模型进行去雾,即在l\alpha\beta颜色空间下进行去雾操作。颜色转换模型包含两个子网络,第一个子网络是去雾,第二个子网络是纹理增强。其中第一个自网络负责估计(在l\alpha\beta颜色空间下)从有雾图像到无雾图像的映射函数的斜率和偏移。第二个子网络在第一个子网络的基础上,提高图像的纹理细节和对比度。

motivation

先给出大气散射模型的公式:

I_c=J_ce^{-\eta d}+A_c(1-e^{-\eta d})

其中A_c表示大气光值,c\in\{R,G,B\}e^{-\eta d}表示传输图,其中\eta表示浓度,d表示场景深度。在去雾过程中,I_c是唯一已知的量,而去雾的目标结果是获得J_c^{\prime},即去雾结果,即去雾过程可以表达为:

J_c^{\prime}=f(I_c)

文章继续做了一次转换:

J_c^{\prime}=\theta I_c+\epsilon

文章认为可以根据这个公式来得到去雾结果。其中\theta表示自适应的线性系数,\epsilon表示自适应的偏置。所谓自适应即为,输入不同的图像,该公式的\theta\epsilon是不同的。

文章希望可以通过在l\alpha\beta颜色空间中,执行以下公式来计算\theta\epsilon的值:

\theta=\frac{J^s_c}{I^s_c}
\epsilon=J^m_c-\theta I^m_c

其中,c\in \{l,\alpha,\beta\}I_c^sJ_c^s表示有雾图像和无雾图像的标准差;I_c^mJ_c^m表示有雾图像和无雾图像的均值。但是在这两个公式中,只有有雾图是已知的,因此文章希望可以通过输入有雾图像,输出自适应的\theta\epsilon来得到去雾结果J_c^s

model

整体网络框架如上图。

分为整个网络分为两个部分:haze removal part(蓝框部分)负责去雾;texture refinement part(绿框部分)负责纹理增强。

Haze Removal

文章给出了haze removal部分的具体设计。其中MP指max pooling操作,linear指普通的线性激活层。可以看到最终的输出结果是6个数值,分别对应l\alpha\beta三通道下\theta\epsilon数值或者去雾图像的均值和方差。

在这个网络部分的损失函数设计为:

L_m=\frac{1}{N}\sum^N_{i=1}(Y_{c,i}^{\prime}-Y_{c,i})^2

Y_{c,i}^{\prime}Y_{c,i}表示去雾结果和无雾图像的均值和方差。即希望准确的估计\theta\epsilon的值。

  • (a)输入有雾图像

  • (b)Gth无雾图像

  • (c)去雾结果

Texture Refinement

纹理增强部分网络的具体结构如上图。

重点部分是损失函数:

\min_{J^{\prime}_{c,i}}\lambda_cL_c+\lambda_tL_t+\lambda_bL_b

其中L_c,L_t,L_b分别表示内容,纹理,亮度损失。L_c即为MAE(l_1)损失。L_t是一项正则化项,并且其\lambda_t取负值,即网络会放大L_t。其公式如下:

L_t=\frac{1}{N|c||J_{c,i}^\prime|}\sum^N_{i=1}\sum_{\forall c}\sum^{|J_{c,i}^\prime|}(J_{c,i,x+1}^\prime-J^\prime_{c,i,x})^2

其中,c\in \{R,G,B\}i表示这是batch中的第i张图片;该正则项希望能放大相邻像素之间的值,从而增强纹理细节。

最后,文章在HSV颜色空间中的V通道上计算了最后一项损失,L_b(亮度损失)。这也是一项自监督的损失。

L_b=\frac{1}{N}\sum^N_{i=1}||J_{c,i}^\prime||_2

很明显,这个损失的权重也是负的。这一项希望网络能够得到明亮的结果,而不是暗淡的结果。

三个损失函数的权重在实验中分别设置为\lambda_c=1.0\lambda_t=-0.0005\lambda_c=-0.07

数据和训练

数据集

使用了NYU Depth数据集,其中636张合成有雾图像作为训练集,它们的\eta(表示浓度)=\{1.0,1.1,1.2,1.3,1.4,1.5\},另外有720张图像作为测试集,它们的\eta=\{1.1,1.2,1.3,1.4\}

另外使用了:

  • Foggy-Image-500
  • Foggy-Image-100
  • Google Images中的真实雾图像
  • RESIDE中的HSTS
  • RESIDE中的SOTS

作为测试集来进行定性和定量评价。

训练

  • batch-size=8
  • Adam优化器训练去雾模块
  • 随机梯度下降优化器训练纹理增强模块
  • 去雾模块训练50个epoch,学习率为1\times10^{-4}
  • 纹理增强模块前20个epoch学习率为1\times10^{-3},后30个epoch学习率为1\times10^{-6}

对比和测试

评价指标

  • VIF(视觉信息保真度)
  • PSNR
  • SSIM
  • FADE(在文章《Referenceless prediction of perceptual fog density and perceptual image defogging》中提出,其用于评估无Gth的图像中的能见度)

有Gth的数据集的对比结果

无Gth的数据集的对比结果(FADE)

值越小,表示其能见度越高。

合成数据集测试对比展示

  • (a) 有雾图像
  • (b) Gth
  • (c) Li等人提出的方法
  • (d) Cai等人提出的方法
  • (e) DCP
  • (f) Meng等人提出的方法
  • (g) Ren等人提出的方法
  • (h) Tarel等人提出的方法
  • (i) Zhu等人提出的方法
  • (j) 文章提出的方法

真实数据集测试对比展示

  • (a) 有雾图像
  • (b) Li等人提出的方法
  • (c) Cai等人提出的方法
  • (d) DCP
  • (e) Meng等人提出的方法
  • (f) Ren等人提出的方法
  • (g) Tarel等人提出的方法
  • (h) Zhu等人提出的方法
  • (i) 文章提出的方法