- SwinIR: Image restoration using Swin Transformer
- SwinIR: 使用Swin Transformer 进行图像恢复
- Liang J, Cao J, Sun G, et al.
- Proceedings of the IEEE/CVF international conference on computer vision. 2021: 1833-1844.
文章目录
摘要
- 首先,介绍了Image restoration的含义
- 图像恢复是一个长期存在的low-level问题,旨在从低质量图像(例如,缩小的、有噪声的和压缩的图像)恢复高质量图像。
- 接着,指出目前SR技术的sota模型都是基于卷积神经网络,而很少使用Transformer(虽热Transformer在high-level任务上实现了sota)。
- 然后,提出了本文的sota模型
- SwinIR—一种基于 Swin Transformer 的baseline模型
- SwinIR由三部分组成:浅层特征提取、深层特征提取、高质量特征重建。
- 其中,深层特征提取模块由多个residual Swin Transformer blocks (RSTB)构成,而每个RSTB都有多个Swin Transformer和残差连接。
- 最后,作者将SwinIR用于图像恢复的三个表征性问题的实验:
- 图像超分辨率(包括经典、轻量级和真实世界图像超分辨率)
- 图像去噪(包括灰度和彩色图像去噪)
- JPEG压缩伪影减少
- 结论,SwinIR实现了SOTA,并行模型的参数总数大大减少。
1. 引言
- 首先,介绍了图像恢复技术的含义,以及CNN是此技术的主流框架;虽然CNN比传统技术性能更高,但是CNN作为backbone有两个基本问题。
- 图像和卷积核之间的交互是与内容无关的(content-independent)。使用相同的卷积核恢复不同的图像区域可能不是最好的选择。
- 在局部处理的原则下,卷积对于长距离依赖建模并不有效。
- 接着,针对CNN的问题,引出了Transformer的定义,虽然对于一些high-level任务(如分类、检测)有良好的性能,但是对于low-level任务(图像恢复)仍然会有一些问题
- 用于图像恢复的ViT通常将输入图像划分为固定大小(例如 48×48)的块,并独立处理每个块。这种策略不可避免地会产生两个缺点:
- 边界像素不能利用块之外的相邻像素来进行图像恢复。
- 恢复的图像可能会在每个补丁周围引入边界伪影。(虽然这个问题可以通过补丁重叠(patch overlapping)来缓解,但它会带来额外的计算负担。)
- 然后,指出最近的Swin Transformer有很大的前景,因为它集成了CNN和Transformer的优由势。
- 由于局部注意力机制,它具有CNN处理大尺寸图像的优势。
- 可以通过移位窗口方案对远距离依赖建模,它具有Transformer的优势。
- 最后,提出了本文的SwinIR模型,以及说明了本模型的优势,实现了SOTA
- SwinIR:一种基于Swin Transformer 的图像恢复模型
- SwinIR由三部分组成:浅层特征提取、深层特征提取、高质量特征重建模块。
- 浅层特征提取模块:
- 使用卷积层提取浅层特征,提取的浅层特征也直接传输到重建模块以保留低频信息。
- 深层特征提取模块:
- 主要由多个residual Swin Transformer blocks (RSTB)构成,每个RSTB利用多个Swin Transformer层进行局部注意力和跨窗口交互。
- 此外在块的末尾添加了一个卷积层,来进行特征增强,并使用残差连接来为特征融合提供捷径(shortcut)。
- 高质量特征重建模块:
- 在重建模块中融合浅层和深层特征,以实现高质量的图像重建。
- 相对于CNN的IR技术,SwinIR有几个优点:
- 图像内容和注意力权重之间基于内容的(content-based)交互。(可以理解为空间变换的卷积)
- 通过移位窗口机制实现长距离依赖建模。
- 能够使用更少的参数来获得更高的性能。
2. 相关工作
2.1 图像恢复(Image Restoration)
- 相较于传统的图像恢复技术(列举了几个),基于CNN的IR技术性能更好。
- CNN_IR经常从大规模配对数据集中学习低质量和高质量图像之间的映射。
- CNN_IR技术性都是通过使用更复杂的神经网络架构设计(残差块、密集块、其他)
- 还有一些利用了CNN框架内的注意力机制(通道注意力、非局部注意力、自适应patch aggregation)
2.2 视觉Transformer(Vision Transformer, ViT)
- 用于NLP的的Transformer在high-level的计算机视觉任务中很受欢迎(图像分类、目标检测、分割、人群计数)
- ViT通过探索不同区域之间的全局相互作用来学习关注重要的图像区域。
- ViT也被引入到low-level的IR任务中(IPT(依赖于大量参数)、VSR-Transformer(用自注意力机制在视频SR中实现更好的特征融合,但图像特征仍然从CNN中提取))
- 但是IPT和VSR-Transformer都是patch-wise的attention,所以不适用于IR技术。
- 此外,一项并行工作提出了一种基于Swin Transformer 的U形架构。
3. 方法论
3.1 网络结构
如上图所示,SwinIR由3个模块构成:浅层特征提取、深层特征提取、高质量特征重建。(对于IR的三个表征性任务使用相同的特征提取模块,使用不同的重建模块)
-
浅层特征提取模块:
F 0 = H S F ( I L Q ) ( 1 ) F_0 = H_{SF}(I_{LQ}) \ \ \ (1) F0=HSF(ILQ) (1)
其中: -
I L Q ∈ R H × W × C i n I_{LQ}\in R^{H×W×C_{in}} ILQ∈RH×W×Cin:输入的低质量图像(low-quality),
-
H S F ( ⋅ ) H_{SF}(·) HSF(⋅):浅层特征提取函数,3×3的卷积层。
-
F 0 ∈ R H × W × C F_0\in R^{H×W×C} F0∈RH×W×C:提取的浅层特征。
-
使用卷积层提取浅层特征的优势:
- 卷积层很擅长早期的视觉处理,导致更稳定的优化和更好的结果,它还提供了一种将输入图像空间映射到更高维特征空间的简单方法。
-
深层特征提取模块:
F D F = H D F ( F 0 ) ( 2 ) F_{DF} = H_{DF}(F_0)\ \ \ \ (2) FDF=HDF(F0) (2)
其中: -
F D F ∈ R H × W × C F_{DF}\in R^{H×W×C} FDF∈RH×W×C:提取的深层特征。
-
H D F ( ⋅ ) H_{DF}(·) HDF(⋅):深层特征提取函数,包含K个residual Swin Transformer blocks(RSTB)和1个3×3的卷积层。
具体地:
F i = H R S T B i ( F i − 1 ) , i = 1 , 2 , . . . , K , F D F = H C O N V ( F K ) ( 3 ) \begin{align} F_i = H_{RSTB_i}(F_{i-1}), i = 1, 2, ..., K,\\ F_{DF} = H_{CONV}(F_K) \end{align}\ \ \ \ \ \ \ \ (3) Fi=HRSTBi(Fi−1),i=1,2,...,K,FDF=HCONV(FK) (3)
其中: -
F 1 , F 2 , . . . , F K F_1, F_2, ..., F_K F1,F2,...,FK:中间层特征
-
H R S T B ( ⋅ ) H_RSTB(·) HRSTB(⋅):第i个RSTB
-
H C O N V ( ⋅ ) H_{CONV}(·) HCONV(⋅):最后一个卷积层。
-
在深层特征提取的最后使用卷积层的优势:
- 可以将卷积运算的归纳偏差带入基于Transformer的网络中,为后期浅层和深层特征的聚合打下更好的基础。
-
图像重建模块:
-
SR任务(需要上采样操作):
I R H Q = H R E C ( F 0 + F D F ) ( 4 ) I_{RHQ} = H_{REC}(F_0 + F_{DF}) \ \ \ \ (4) IRHQ=HREC(F0+FDF) (4)
其中:- R R H Q R_{RHQ} RRHQ:重建的高质量图像(high-quality)。
- F 0 ∈ R H × W × C F_0\in R^{H×W×C} F0∈RH×W×C:提取的浅层特征。
- F D F ∈ R H × W × C F_{DF}\in R^{H×W×C} FDF∈RH×W×C:提取的深层特征。
- H R E C H_{REC} HREC:重建模块函数, 这里使用亚像素卷积(sub-pixel convolution)
- 这里:
- 浅层特征主要包含低频信息,深层特征侧重于恢复丢失的高频信息,通过长跳跃连接,SwinIR可以将低频信息直接传输到重建模块,这可以帮助深度特征提取模块专注于高频信息并稳定训练。
-
图像去噪和JPEF压缩伪影减少任务(不需要上采样操作):
I R H Q = H S w i n I R ( I L Q ) + I L Q ( 5 ) I_{RHQ} = H_{SwinIR}(I_{LQ}) + I_{LQ}\ \ \ \ (5) IRHQ=HSwinIR(ILQ)+ILQ (5)
其中:
- H S w i n I R H_{SwinIR} HSwinIR:深层特征提取中SwinIR的函数。 -
损失函数:
l = ∣ ∣ I R H Q − I H Q ∣ ∣ 1 ( 6 ) l = ||I_{RHQ} - I_{HQ}||_1\ \ \ \ \ (6) l=∣∣IRHQ−IHQ∣∣1 (6)
其中: -
I R H Q I_{RHQ} IRHQ:将低质量图像 I L Q I_{LQ} ILQ作为SwinIR的输入得到的重建高质量图像。
-
I H Q I_{HQ} IHQ:LQ图像对应的GT图像(ground-truth)。
对于经典(classical)和轻量级(lightweight)图像SR: -
损失函数仅使用公式(6)中的==L1损失==,来显示设计的SwinIR网络的有效性。
对于真实世界(real-world)图像SR: -
损失函数使用==像素损失+GAN损失+感知损失(pixel_loss+GAN_loss+perceptual_loss)==,来提高视觉质量。
**对于图像去噪和JPEF压缩伪影减少任务: -
损失函数使用==Charbonnier loss=