DD-CycleGAN: Unpaired image dehazing via Double-Discriminator Cycle-Consistent G

1,202 阅读2分钟

Engineering Applications of Artificial Intelligence 2019

Jingming Zhao, Juan Zhang, Zhi Li, Jenq-Neng Hwang, Yongbin Gao, Zhijun Fang, Xiaoyan Jiang, Bo Huang

简介

文章提出了一种具有双鉴别器的Cycle GAN网络(DD-CycleGAN)。其作用类似于CycleGAN。

Motivation

文章提到,目前没有足够的成对的数据集来给一般的深度神经网络进行学习,所以选择了CycleGAN。

为了使鉴别器得到最优解并平衡生成器和鉴别器,文章增加了鉴别器的数量。

此外,文章使用了权重裁剪代替交叉熵,来解决训练不稳定和模式崩溃的问题。并提高了训练速度。这是从vanilla的CycleGAN中修改而来的,即vanilla的CycleGAN使用了交叉熵。

Durugkar等人在2016年的某一篇论文中提出了具有多个鉴别器的GAN,这些鉴别器在为发生器提供反馈时应该更稳定。这些鉴别器具有相同结构,随机初始化。文章认为多个鉴别器可以达到鉴别器的近似最优解。例如:当其中一个鉴别器达到生成器的最佳收敛时,另外一个鉴别器依然可以提供梯度来更新生成器。

Model

如图所示,在网络结构上,该网络和过去的CycleGAN去雾网络的区别仅仅为多了两个鉴别器D_{x2}D_{y2},而它们和D_{x1}D_{y1}的区别仅为在初始化的过程中为随机初始化。

其中生成器和鉴别器网络结构如下图所示:

其中黄色块为残差块,蓝色块为下采样卷积和上采样卷积。

损失函数

循环一致性损失

L(G,F)=E_{x\sim P_{data(x)}}||F(G(x))-x||_1+E_{y\sim P_{data(y)}}||G(F(y))-y||_1

鉴别器损失

L_{GAN}(G,D_{Y1},X,Y)=E_{y\sim P_{data(y)}}[D_{Y1}(x)]-E_{x\sim P_{data(x)}}[D_{Y1}(G(x))]
L_{GAN}(G,D_{Y2},X,Y)=E_{y\sim P_{data(y)}}[D_{Y2}(y)]-E_{x\sim P_{data(x)}}[D_{Y2}(G(x))]

总损失函数

L(G,F,D_{X1},D_{X2},D_{Y1},D_{Y2})=\lambda_{1}L_{GAN}(G,D_{Y1},D_{Y2},X,Y)+\lambda_{2}L_{GAN}(F,D_{X1},D_{X2},Y,X)+\lambda_{3}L(G,F)

其中\lambda_{1},\lambda_{2},\lambda_{3}为权重,分别为0.5,0.5,10。

数据和训练

数据集

  • 训练集:RESIDE和O-HAZE

  • 测试集:RESIDE和O-HAZE

训练设置

  • 初始学习率为0.0002
  • 一共训练100轮
  • 学习率线性下降至0
  • 使用Adam优化器
  • 批大小为1

对比和测试

测试指标

  • PSNR
  • SSIM

指标对比

对网络结构的消融研究

可以看到使用Weight clipping(权重裁剪)和Double Discriminator(两个鉴别器)能达到更好的效果。

和其他算法的对比

结果展示

对网络结构的消融研究

和其他算法的对比