基于Transformer的图像去噪算法:Restormer
好的,我将为你详细讲解一个在计算机视觉图像复原领域非常先进的算法——Restormer。这个算法巧妙地将Transformer架构应用于图像去噪等任务,并解决了传统视觉Transformer在计算效率和对高分辨率图像处理上的瓶颈。
题目描述
问题:图像去噪的目标是从一张被噪声污染的图像中,恢复出清晰、干净的原始图像。这是一个典型的“病态”逆问题,因为对于一张噪声图像,可能存在无数种清晰的图像与之对应。传统的去噪算法和早期的深度学习模型在处理复杂噪声、保持图像细节和纹理方面存在局限。
Restormer的革新点:Restormer(意为“复原Transformer”)的核心思想是,利用Transformer强大的全局建模能力来捕获图像中长距离的像素依赖关系,从而更准确地判断一个像素是噪声还是真实细节,实现更高质量的图像复原。它通过一系列关键设计,使得Transformer能够高效处理高分辨率图像。
循序渐进解题过程
我们可以将Restormer的解题过程分解为几个关键步骤。
步骤一:整体架构——宏观流程
Restormer采用了一种编码器-解码器式的对称架构,中间包含多个Transformer模块进行特征提炼。整个流程可以看作是一个“收缩-处理-扩张”的过程。
-
输入与浅层特征提取:
- 输入:一张噪声图像 \(Y\)(例如,大小为 \(3 \times H \times W\),3表示RGB三个通道)。
- 过程:使用一个简单的 \(3 \times 3\)卷积层对输入图像进行初步处理。这个卷积层的作用是将原始像素空间映射到一个更高维的特征空间,生成初始的浅层特征图 \( F_0 \((例如,大小为 \) C \times H \times W $,C是特征通道数)。
-
多尺度特征提炼(编码器-解码器):
- 编码阶段(收缩路径):浅层特征 \(F_0\) 会经过若干级(例如4级)的下采样。每一级都包含以下操作:
- 下采样:使用像素重排(Pixel Unshuffle)操作。这与上采样(Pixel Shuffle)相反,它将空间尺寸(H, W)缩小,同时增加通道数。例如,将 \((H, W, C)\)下采样为 \((H/2, W/2, 4C)\)。这是一种高效的下采样方式。
- 特征变换:下采样后,特征图会通过一系列核心的Transformer模块(Restormer Block)。这是算法的心脏,我们稍后详细拆解。
- 解码阶段(扩张路径):经过最底层的特征提炼后,特征开始上采样,与编码器对应级别的特征进行融合。
- 上采样:使用像素重排的逆操作——像素重排(Pixel Shuffle)进行上采样,将特征图尺寸放大,通道数减少。
- 跳跃连接:解码器每一级上采样后的特征会与编码器对应级别的特征(通过一个 \(1 \times 1\)卷积调整通道数后)进行拼接(Concatenation)。这有助于恢复在下采样过程中可能丢失的空间细节。
- 特征变换:拼接后的特征再次通过Transformer模块进行融合和精炼。
- 编码阶段(收缩路径):浅层特征 \(F_0\) 会经过若干级(例如4级)的下采样。每一级都包含以下操作:
-
重建:
- 解码器的最后一层输出特征图。
- 使用一个 \(3 \times 3\)卷积层将高维特征投影回图像空间,生成残差图像 \(R\)(即“噪声”或“需要修复的部分”)。
- 输出:最终的去噪图像 \(X\) 通过 \( X = Y - R $计算得到。这是一种学习残差的方式,被证明比直接学习干净图像更容易收敛、效果更好。
步骤二:核心引擎——Restormer Transformer模块的细节
这是Restormer最精妙的部分,它针对标准Transformer在视觉任务中的两大痛点进行了改进:计算复杂度和特征通道间的关系建模。
-
多头转置注意力(MDTA):
- 问题:标准Transformer的自注意力机制是在序列的“令牌”(Token)之间计算的。如果将图像的每个像素视为一个令牌,那么序列长度就是 \(H \times W\)。计算所有像素对之间的注意力,其复杂度是 \( O((H \times W)^2) $,对于高分辨率图像,这是无法承受的计算负担。
- Restormer的解决方案:
- 转置视角:MDTA不直接在空间维度(HxW)上计算注意力,而是在通道维度(C) 上计算!它认为,不同的特征通道代表了图像的不同属性(如边缘、纹理、颜色),理解通道之间的关系同样至关重要。
- 具体过程:
a. 输入特征图 \(X\)(形状为 \(H \times W \times C\))先通过三个 \(1 \times 1\)卷积层,生成Query(Q)、Key(K)、Value(V)三个投影。注意,这里 \(1 \times 1\)卷积是深度可分离卷积,能大幅减少参数量。
b. 将Q、K、V的维度从 \((H, W, C)\)重塑(reshape)为 \( (H \times W, C) \(。现在,我们把每个空间位置(共HxW个)看作一个“样本”,而每个样本有C个特征。 c. 计算注意力:\) Attention(Q, K, V) = V \cdot Softmax(K^T Q / \sqrt{d}) \(。这里,Q和K的矩阵乘法是在通道维度C上进行的,得到的注意力图大小是 \) C \times C \(,它描述了**不同通道之间的相关性**。复杂度是 \( O(C^2 \times H \times W) \)。对于固定特征维度C,这与图像尺寸呈线性关系,效率极高。
d. 将结果重塑回 \(H \times W \times C\),再通过一个 \(1 \times 1\)卷积和跳跃连接输出。
-
门控前馈网络(GDFN):
- 问题:标准前馈网络(FFN)只是两个全连接层加一个激活函数,模型容量有限。
- Restormer的解决方案:
- 门控机制:GDFN受门控线性单元(GLU)启发,引入了门控来控制信息流。
- 具体过程:
a. 输入特征X被分成两个分支处理。
b. 每个分支都先经过一个 \(1 \times 1\)卷积提升维度(例如到2倍C),再经过一个 \(3 \times 3\)的深度卷积(Depthwise Convolution)来融合空间信息,最后再经过一个 \(1 \times 1\)卷积降低维度。
c. 关键一步:一个分支经过GELU激活函数后,与另一个分支(未经激活)进行逐元素相乘。这个乘法操作就是“门控”,它允许网络有选择地放大或抑制某些特征。
d. 结果再通过一个 \(1 \times 1\)卷积调整维度,并与原始输入X相加(跳跃连接)。
步骤三:总结与优势
通过以上设计,Restormer的工作流程可以概括为:
噪声图像 -> 浅层特征提取 -> 多尺度(编码器-解码器)处理(核心是MDTA和GDFN模块) -> 残差图像重建 -> 清晰图像。
它的主要优势在于:
- 高效全局建模:通过MDTA在通道维度计算注意力,以线性复杂度捕获全局上下文,有效区分噪声和真实结构。
- 强大的局部特征提取:GDFN中的深度卷积和门控机制能有效处理局部纹理和细节。
- 多尺度处理:对称的编码器-解码器结构使其能同时利用不同尺度的信息,对于去除不同大小的噪声斑块和恢复整体结构非常有效。
Restormer不仅在图像去噪上取得了顶尖性能,在图像去雨、去运动模糊等多项图像复原任务上也表现出色,展示了Transformer架构在底层视觉问题上的巨大潜力。