论文阅读:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes

CVPR2020:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes

个人的第一篇博客,现在想记录一下自己近期所看过得论文。首次写文献阅读,文笔功夫很差,如有不足之处,恳请海涵。

Paper: https://arxiv.org/abs/2006.05580

Code: https://github.com/rajeevyasarla/Syn2Real

Baseline: Semi-supervised transfer learning for image rain removal

下文中我们直接将Baseline称为SIRR。

Abstract

  • 现有的方法只能在完全标记的数据集上进行训练。
  • 想要或者真实的去雨标记图像是非常困难的,现有的方法都只能生成数据集,并且这对真实数据的泛化效果是很差的。
  • 现有方法使用真实数据训练的研究还不够。

Introduction

  • 图像去雨主要的两个问题是降雨条纹的尺度、密度和方向的变化程度很大,缺少真实的标记训练数据。
  • 合成数据集在真实图像上的性能不是最优的,因为合成图像和真实图像之间还是存在分布偏移。
  • SIRR中提出一个半监督学习的图像去雨网络,但是存在三个问题。
  1. 训练过程中使用未标记图像的预测残差来建模GMM,然后使用相同的模型来计算后续预测残差的可能性,若高斯混合模型(GMM)参数不准确,则会导致性能不佳。(PS:高斯混合模型和其他拓展内容放在最后的部分)
  2. 使用KL散度来模拟真实雨的分布可能也会出现上面的问题。
  3. GMM模型需要选择混合组件的参数,这会导致模型对这些参数敏感。
  • Contribution
  1. 使用一种半监督学习的非参数方法,将未标记的真实数据整合到培训过程中。
  2. 利用高斯过程对未标记的数据生成伪ground-truth,然后用伪GT对为标记的数据进行监督学习。

Proposed method

  1. 首先是图像去雨有两种基本的方式,一种是直接从下雨图像恢复为干净图像,另一种是通过论文阅读:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes
    下雨图像减去降雨分量得到干净图像,那么就是说整个网络学习的是下雨图像中的降雨分量。整个网络的架构基于U-Net,其中的基础块使用的是Res2Block。

  2. 对于标记数据使用L1损失和感知损失 Lsup=L1+λpLpL_{sup} = L_1 + \lambda_p L_p , 都是计算ground-truth和预测图像之间的一个损失,感知损失使用的是预训练的VGG-16进行计算。

  3. 对于未标记数据的训练阶段则要复杂了许多。但在我的理解中大概是这样的一个情况,类似于稀疏理论,作者将之前标记数据的潜在空间特征全部保存,然后用已有的潜在空间特征和0均值的加性白噪声来表征未标记信号的潜在空间,Zu=i=1NlαiZli+ϵZ_u = \sum_{i=1}^{N_l} \alpha_i Z_l^i + \epsilon , 用遗传算法对标记样本和未标记样本的潜在空间向量分布进行联合建模,对于未标记样本将得到下面的条件高斯分布。但是其中使用的事所有的标记数据来表示未标记数据,作者认为这存在两个缺点,一是不同图像或者说不同矢量中表征的雨纹的内 容、密度、方向存在着很大的差别,只考虑那些与未标记向量最接近的向量是很重要的;二是使用所有向量来进行计算是存在问题的。那么作者在所有的潜在空间特征中寻找未标记数据的最近邻函数,也就是找到一些最接近未标记数据的标记数据来表征未标记数据。

论文阅读:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes

  1. 通过最小化未标记数据特征与伪GT数据特征,我们更新编码器的损失来提高模型的泛化性。但是由于潜在空间已标记数据向量之间同样也是存在不同的(这种不同是由于雨纹的组成不同),那么这样也可能导致预测的伪GT存在很多错误。因此作者在此也最小化上式的方差(最接近的几个标记数据向量),这样可以使所使用的标记数据向量最为接近,同时最大化最远向量之间的方差,使他们不会影响到伪GT的预测。

论文阅读:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes

  1. 总体损失函数就是 Ltotal=Lsup+λunsupLunsupL_{total} = L_{sup}+ \lambda_{unsup} L_{unsup} , 使用一个预定的参数控制两者之间的分布情况。

Result

​ 大概看了一下实验结果,在综合测试集上的效果效果比较突出,尤其是在使用综合数据和真实世界图像联合训练的模型中取得了良好的效果。在消融实验中对未标记数据和标记数据训练比例进行了了一系列对比实验,实验结果表明是在使用60%的标记数据和40%的未标记数据训练时能达到一个100%使用标记数据训练的效果。

论文阅读:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes
论文阅读:Syn2Real Transfer Learning for Image Deraining using Gaussian Processes

Some Problem

  • 在第一个列表中,我们很明显可以看到该模型在性能上与其他方法的一个显著提升,但是对于下表,性能最多只能达到一个趋近,这是为什么呢?
  • 使用多个标记数据的潜在特征向量来表征未标记数据的特征,然后通过编码器得到伪GT,这样加强了泛化性。在损失函数中最小化最近函数的方差,最大化最远函数的方差,但如果不增加这两项,不要求最近特征来拟合伪GT,这样应该更加能增加泛化性能不是么?
  • 虽然实验结果的表现非常出色,成功的去除了明显的雨纹和雾气,但是也带来了较为明显的颜色偏移问题,尤其是在图5中。

Learning

  • 很明显的一个优点就是使用了无参数的半监督学习过程完成了图像区域去噪任务,使用半监督方法增强了模型在真实场景中的泛化能力。
  • 使用高斯过程对网络中的潜在空间进行建模,然后使用标记数据的叠加逼近未标记数据生成伪GT图像,使用伪GT图像对未标记数据与编码器进行监督。

Related work