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

本文介绍了一种CVPR2019发表的半监督单图去雨方法,通过引入真实雨图训练,提升模型泛化能力。模型结合有监督和无监督样本,使用EM算法优化GMM参数,实现从合成雨到真实雨的领域自适应。实验显示,此方法在不同雨量条件下均能有效去雨,尤其在细节保留方面表现突出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文发表于CVPR2019
论文链接
github

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

本文主要有以下贡献:

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

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

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

模型

在这里插入图片描述
真实雨水复杂多样,很难提取出雨层,但可以设计一个参数化分布来精确地近似真实雨水的随机配置(stochastic configuration)。雨水出现在距离摄像机不同的位置,因此一般包含多模态结构。如果学习到合适的参数,就可以用混合模型实现对任意连续函数的逼近,因此可以用GMM(Gaussian Mixture Model)来描述雨水
在这里插入图片描述
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之间的平方损失
在这里插入图片描述
为了让GMM更好地拟合真实雨水的样本分布,最小化K-L散度,约束真实雨水分布和合成雨水分布之间的差异,使得模型从合成雨水的域转移到真实雨水的域,而不是任意域
在这里插入图片描述
为了更好地去除雨水,还加入Total Variation regularizer对图像进行一些平滑,得到的总loss如下:
在这里插入图片描述
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值的变化:
在这里插入图片描述
实线表示有监督的训练集,虚线表示验证集,红、绿、蓝分别代表 λ \lambda λ为0, 0.2, 1的情况,从上到下三排图像分别代表训练数据有500, 5000, 10000个图片块。从第三列可以看到,如果损失函数中不加入无监督项,随着训练过程的推进,如果训练集和验证集的数据分布不同,当训练数据增加时,模型越来越拟合训练数据,但越来越难以泛化到验证集数据。也就是说训练集的效果变好了,但是测试效果没有更好,甚至更差。但从最后两列可以看到,在加入无监督项后,这个问题得到缓解

定量结果

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

定性结果

sparse rain场景和dense rain场景下的效果图:
在这里插入图片描述
真实雨图的去雨结果,最后一列为该论文的模型,可以看到细节部位的去雨效果和背景保留效果最好
在这里插入图片描述

### STiL 方法概述 Semi-supervised Tabular-Image Learning (STiL) 是一种用于处理多模态数据的半监督学习方法[^1]。该方法旨在通过结合表格数据和图像数据来提升模型性能,特别是在标注数据有限的情况下。STiL 的核心目标是从不同模态的数据中提取任务相关信息并加以融合。 #### 多模态分类中的任务相关信息探索 在多模态分类场景下,任务相关信息通常分布在不同的数据源之间。STiL 方法通过设计特定机制,在训练过程中逐步识别哪些特征对于当前任务最为重要[^2]。具体而言: - **跨模态关联建模**:STiL 利用注意力机制捕获表格数据与图像数据之间的潜在关系。这种机制能够动态调整各模态的重要性权重,从而聚焦于最相关的部分[^3]。 - **自监督信号增强**:为了充分利用未标记样本的信息,STiL 引入了自监督学习策略。这些策略可以通过预测旋转角度、对比学习等方式生成额外的学习信号,进一步优化模型参数[^4]。 - **联合表示空间构建**:通过对齐两种模态的嵌入向量,STiL 创建了一个统一的任务相关表示空间。这使得即使某些模态缺失或质量较差时,模型仍能保持较高的鲁棒性和准确性[^5]。 以下是实现上述功能的一个简化代码框架: ```python import torch.nn as nn class STILModel(nn.Module): def __init__(self, tabular_dim, image_channels): super(STILModel, self).__init__() # 图像编码器初始化 self.image_encoder = ImageEncoder(image_channels) # 表格数据编码器初始化 self.tabular_encoder = TabularEncoder(tabular_dim) # 跨模态注意层 self.cross_modal_attention = CrossModalAttention() # 输出层定义 self.classifier = Classifier() def forward(self, table_data, image_data): img_features = self.image_encoder(image_data) tab_features = self.tabular_encoder(table_data) combined_features = self.cross_modal_attention(img_features, tab_features) output = self.classifier(combined_features) return output ``` 此代码展示了如何分别对图像和表格数据进行编码,并利用 `CrossModalAttention` 层完成两者间的交互操作[^6]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值