【论文阅读】Semi-supervised Transfer Learning for Image Rain Removal

论文发表于CVPR2019
论文链接
github

以往的去雨方法需要收集大量的合成雨图和无雨图,使得神经网络倾向于学习到合成雨水的特有的式样,但是在不太一样的真实雨水面前,则显得缺少泛化能力。该论文提出一种半监督的方法, 将真实雨图(无需对应的无雨图)加入训练集,将雨图和无雨图之间的残差视为一个参数化雨水分布,网络可以通过有监督的合成雨水来适应真实无监督多种雨类型,这样缺少训练样本和真实与合成数据之间存在差别的问题可被显著减轻

本文主要有以下贡献:

  • 第一个将单张图像去雨任务视为领域自适应问题,第一个提出半监督模型解决去雨问题

  • 为在图像修复任务中同时利用有监督和无监督样本提供了方法。对于有监督的样本,最小均方误差即可;对于无监督样本,使用雨图和背景图的残差与一个参数化分布的似然来衡量

  • 设计了一个EM算法和梯度下降算法来解决提出的模型

模型

【论文阅读】Semi-supervised Transfer Learning for Image Rain Removal_第1张图片
真实雨水复杂多样,很难提取出雨层,但可以设计一个参数化分布来精确地近似真实雨水的随机配置(stochastic configuration)。雨水出现在距离摄像机不同的位置,因此一般包含多模态结构。如果学习到合适的参数,就可以用混合模型实现对任意连续函数的逼近,因此可以用GMM(Gaussian Mixture Model)来描述雨水
【论文阅读】Semi-supervised Transfer Learning for Image Rain Removal_第2张图片
k表示不同的分布的序号, N \mathcal{N} N即高斯分布, π k , μ k , ∑ k \pi_{k}, \mu_{k}, \sum_{k} πk,μk,k分别是混合系数、高斯分布的均值和方差

对这些无监督样本使用如下的负对数似然(negative log likelihood function)作为无监督部分的损失:
在这里插入图片描述
K是混合的分布的数量,N是样本数量。高斯分布的均值按照一般情况设为0,这个值不影响结果

对于有监督的样本,采用DerainNet的网络结构和负残差映射(negative residual mapping)(即下图公式中的 f ω f_{\omega} fω)生成无雨图,有监督的样本的损失即为无雨图与ground truth之间的平方损失
【论文阅读】Semi-supervised Transfer Learning for Image Rain Removal_第3张图片
为了让GMM更好地拟合真实雨水的样本分布,最小化K-L散度,约束真实雨水分布和合成雨水分布之间的差异,使得模型从合成雨水的域转移到真实雨水的域,而不是任意域
在这里插入图片描述
为了更好地去除雨水,还加入Total Variation regularizer对图像进行一些平滑,得到的总loss如下:
【论文阅读】Semi-supervised Transfer Learning for Image Rain Removal_第4张图片
x i x_{i} xi y i y_{i} yi分别是合成雨图的对应的ground truth, x ~ \tilde x x~是真实雨图, x ~ n − f ω ( x ~ ) n \tilde x_{n}-f_{\omega}(\tilde x)_{n} x~nfω(x~)n是提取到的雨层,与 R n \mathcal R_{n} Rn等价。 λ , α , β \lambda, \alpha, \beta λ,α,β是对不同loss进行比例控制的超参,为0时则模型退化为全监督。第一项为有监督的loss,第二项为TV正则,第三项为KL散度,最后一项为无监督loss

EM算法

因为提出的损失函数不好处理,作者改进了EM算法,一步步地解决这个问题

E步计算代表某一混合分量的后验分布,将损失函数展开为关于GMM参数可微分的;在M步中,更新混合分布和卷积神经网络的参数

实验

domain transfer learning

作者使用两种不同的方式合成两个雨图数据集,一种作为有监督的训练集,一种分为两部分,一部分作为无监督的训练集,一部分作为验证集。因此有监督的训练集和验证集的数据分布是不同的。为了显示该模型的分布转换的能力,作者可视化了训练过程中有监督的训练集和验证集的PSNR值的变化:
【论文阅读】Semi-supervised Transfer Learning for Image Rain Removal_第5张图片
实线表示有监督的训练集,虚线表示验证集,红、绿、蓝分别代表 λ \lambda λ为0, 0.2, 1的情况,从上到下三排图像分别代表训练数据有500, 5000, 10000个图片块。从第三列可以看到,如果损失函数中不加入无监督项,随着训练过程的推进,如果训练集和验证集的数据分布不同,当训练数据增加时,模型越来越拟合训练数据,但越来越难以泛化到验证集数据。也就是说训练集的效果变好了,但是测试效果没有更好,甚至更差。但从最后两列可以看到,在加入无监督项后,这个问题得到缓解

定量结果

作者对两种场景的雨图进行测试,一种是带有雾效的大雨场景,一种是雨水比较稀疏,但深浅、长度不一的场景。与其他几种以前的无监督模型,和之后出现的有监督的深度学习模型进行对比
在这里插入图片描述

定性结果

sparse rain场景和dense rain场景下的效果图:

真实雨图的去雨结果,最后一列为该论文的模型,可以看到细节部位的去雨效果和背景保留效果最好

你可能感兴趣的:(深度学习,图像处理)