IPT:使用Transformer解决超分辨率、去噪和去雨等底层视觉任务.

作者提出了IPT (Image Processing Transformer)模型,用于进行超分辨率、去噪、去雨等底层视觉任务。通过实验表明,当预训练的数据充足时,基于Transformer的视觉模型比CNN具有更好的性能。

IPT设置多个headtail结构用于处理不同的任务,它们共享同一个Transformer模块。大多数底层视觉任务(去噪、去雨)输出与输出具有相同的尺寸,而超分辨率等任务的输出与输入尺寸具有倍数关系。通过headtail进行图像尺寸的匹配,公共的Transformer进行特征处理。为了进行多任务学习,在Transformer的解码模块增加可学习的任务编码。

首先将输入图像$x$经过head结构变换为特征图:

\[f_H = H(x), \quad f_H \in \Bbb{R}^{C \times H \times W}\]

对特征图按照$P \times P$的尺寸切割成$N$块,每一块特征被拉平为特征向量\(f_{p_i} \in \Bbb{R}^{P^2 \times C},i=\{i,...,N\}\),经过Transformer处理,得到维度相同的特征向量\(f_{D_i} \in \Bbb{R}^{P^2 \times C},i=\{i,...,N\}\)。输出的特征向量经过尺寸调整和拼接,得到与输入相同尺寸的特征图。该特征图经过tail结构变换为目标图像。

实验采用ImageNet数据集,对其中的图像进行下采样得到用于超分辨率任务的训练数据;加入噪声生成用于去噪任务的训练数据;加入雨痕产生用于去雨任务的训练数据。

使用不同的headtail,可以进行多任务训练,其监督损失函数为:

\[\mathcal{L}_{supervised} = \sum_{i=1}^{N_t} L_1(IPT(I_{corrupted}^i),I_{clean})\]

为提升模型在预训练时未接触过的任务(如不同倍率的超分辨率、不同噪声强度的去噪任务)上的性能,引入对比学习中的自监督损失函数约束特征块之间的相关性。具体地,来自同一图像的特征块之间的特征应尽可能接近,来自不同图像的特征块的特征应尽可能远离。对比损失如下:

\[l(f_{D_{i_1}}^{j},f_{D_{i_2}}^{j}) = -log\frac{exp(d(f_{D_{i_1}}^{j},f_{D_{i_2}}^{j}))}{\sum_{k=1}^{B} \Bbb{I}_{k≠j}exp(d(f_{D_{i_1}}^{j},f_{D_{i_2}}^{j}))}\] \[\mathcal{L}_{constrastive} = \frac{1}{BN^2} \sum_{i_1}^{N} \sum_{i_2}^{N} \sum_{j=1}^{B} l(f_{D_{i_1}}^{j},f_{D_{i_2}}^{j})\]

预训练完成之后,在微调阶段,只有特定任务对应的headtail结构被激活,其余headtail结构被暂时冻结。

下图分别展示了不同方法在超分辨率、去噪、去雨任务中的处理结果,从中可以看出IPT模型的输出结果更接近实际图像:

作者进一步测试模型的泛化能力。将不同模型应用到噪声强度为$10$和$70$的设置中(预训练为$30$和$50$),IPT模型具有良好的泛化性: