基于Transformer的图像去模糊算法:Restormer
我将为您详细讲解Restormer算法,这是一个基于Transformer架构的高效图像去模糊算法。
1. 问题背景
图像去模糊旨在从模糊图像中恢复清晰图像,这是一个典型的逆问题。传统方法通常基于物理先验,但泛化能力有限。基于CNN的方法虽然取得了进展,但受限于局部感受野,难以建模长距离依赖关系。Restormer通过引入Transformer架构,在全局信息建模方面展现出优势。
2. 核心创新点
Restormer的核心创新在于:
- 多头转置注意力(MDTA):在通道维度而非空间维度计算注意力,降低计算复杂度
- 门控前馈网络(GDFN):通过门控机制控制特征传递
- 分层渐进式设计:逐步提升分辨率,平衡效率与性能
3. 网络架构详解
3.1 整体结构
网络采用编码器-解码器架构,包含4个尺度:
- 第1级:输入分辨率(如256×256)
- 第2级:下采样2倍(128×128)
- 第3级:下采样4倍(64×64)
- 第4级:下采样8倍(32×32)
每个尺度包含多个Restormer块,通过卷积进行下采样和上采样。
3.2 Restormer块
每个块包含两个关键组件:
输入 → 层归一化 → MDTA → 层归一化 → GDFN → 输出
4. 多头转置注意力(MDTA)
这是Restormer最核心的创新:
4.1 传统自注意力问题
标准自注意力在空间维度计算,复杂度为O(H²W²C),对于高分辨率图像计算量巨大。
4.2 MDTA实现步骤
假设输入特征X ∈ R^(H×W×C)
-
通过1×1卷积生成Q、K、V:
- Q = W_Q * X # 维度: H×W×Ĉ
- K = W_K * X # 维度: H×W×Ĉ
- V = W_V * X # 维度: H×W×C
-
转置并重塑维度:
- 将Q、K从(H×W×Ĉ)重塑为(Ĉ×HW)
- 将V从(H×W×C)重塑为(C×HW)
-
计算注意力权重:
注意力 = Softmax((Q^T × K) / √d) × V^T其中d是缩放因子,复杂度仅为O(HWC²)
5. 门控前馈网络(GDFN)
GDFN在标准前馈网络上引入门控机制:
5.1 具体结构
输入X → 层归一化
→ 1×1卷积(扩展维度) → GELU激活 → 3×3深度可分离卷积 → GELU激活
→ 1×1卷积(恢复维度) → 门控权重
门控权重控制信息流动,增强网络表达能力。
6. 渐进式学习策略
Restormer采用粗到细的策略:
- 在低分辨率级别捕获全局上下文
- 逐步上采样并融合特征
- 在高分辨率级别恢复细节
7. 损失函数
采用Charbonnier损失函数:
L = √(||Y_pred - Y_gt||² + ε²)
其中ε=1e-3,相比L1损失对异常值更鲁棒。
8. 关键优势
- 计算效率:MDTA将复杂度从空间平方降低到通道平方
- 全局建模:Transformer架构有效捕获长距离依赖
- 细节保持:渐进式设计在多个尺度恢复细节
- 通用性强:在运动去模糊、散焦去模糊等任务都表现优异
9. 实际应用效果
在GoPro、REDS等标准数据集上,Restormer相比之前最佳方法:
- PSNR提升约1-2dB
- 推理速度提升3-5倍
- 在复杂运动模糊场景下仍能保持清晰的边缘和纹理
这个算法展示了如何将Transformer有效应用于底层视觉任务,通过巧妙的维度转置和渐进式设计,解决了传统自注意力在计算复杂度方面的瓶颈。