现代超分辨率——ESRGAN 到扩散模型

从 SRGAN 到 ESRGAN(2018)

SRGAN(Super-Resolution GAN)在 2016 年首次将生成对抗网络(GAN)引入超分辨率领域,通过感知损失(perceptual loss)生成的图像在视觉质量上显著超越了传统的 PSNR 优化方法。但 SRGAN 仍有改进空间——2018 年 Wang 等人提出的 ESRGAN(Enhanced Super-Resolution GAN)在四个关键方向上进行了优化。

**RRDB(Residual-in-Residual Dense Block)**结合了残差连接和密集连接的优点。密集连接让每层都能访问前面所有层的特征,避免特征冗余;残差连接则稳定了深层网络的训练。ESRGAN 将多个残差密集块堆叠,形成 Residual-in-Residual 结构——宏观上用残差连接多个块,微观上每个块内部用密集连接。

ESRGAN 的另一个创新是 RaGAN(Relativistic GAN)判别器。传统 GAN 的判别器只判断单张图像是真实还是生成,而 RaGAN 判别器比较两张图像——“这张真实图像是否比那张生成图像更真实?"。这种相对判别提供了更丰富的梯度信号。

感知损失的改进也很关键。SRGAN 使用 VGG 网络激活后的特征计算距离,但激活函数(ReLU)会导致稀疏性,很多位置是零值,梯度消失。ESRGAN 改在激活之前计算特征距离,保留了更多原始信息。

最后,ESRGAN 去除了批量归一化(Batch Normalization)。BN 在分类任务中有效,但在图像恢复中会引入伪影,因为 BN 归一化了特征分布,可能破坏图像的局部统计特性。去掉 BN 后,网络泛化能力更强,生成的图像更自然。

图1 - 超分辨率技术演进时间线(从 SRCNN 到扩散模型):

mermaid
flowchart TD
    A["SRCNN (2014)<br/>首个 CNN 超分辨率<br/>端到端学习"] --> B["SRGAN (2016)<br/>引入 GAN 与感知损失<br/>视觉质量突破"]
    B --> C["ESRGAN (2018)<br/>RRDB + RaGAN<br/>去除批量归一化"]
    C --> D["Real-ESRGAN (2021)<br/>真实退化建模<br/>高阶退化链"]
    D --> E["SwinIR (2021)<br/>Swin Transformer<br/>长距离依赖建模"]
    E --> F["扩散模型 (2021+)<br/>SR3 / LDM<br/>极致质量"]

    classDef milestone fill:#2196F3,color:#fff
    class A,B,C,D,E,F milestone

Real-ESRGAN——真实世界图像的挑战

训练超分辨率模型通常需要成对的低分辨率和高分辨率图像,但真实世界中的低分辨率图像往往来自复杂的退化过程——镜头模糊、传感器噪声、压缩失真、多次缩放……Real-ESRGAN(2021,Wang et al.)的核心思想就是高阶退化模型

传统的退化模型假设图像先模糊再下采样。Real-ESRGAN 的退化链更复杂:

$$ I_{deg} = [(I_{HR} \otimes k) \downarrow_r + n]_{JPEG} $$

这个过程包括模糊(用卷积核 $k$ 模拟镜头和运动模糊)、下采样($\downarrow_r$ 表示缩小到 $1/r$)、添加噪声 $n$、JPEG 压缩。更关键的是,这个过程可以重复多次——一张图像可能被多次压缩、重新缩放,形成复杂的伪影。

Real-ESRGAN 还用 sinc 滤波器模拟振铃(ringing)和过冲(overshoot)等真实世界的退化伪影。这些伪影在传统退化模型中难以捕捉,但在真实低质量图像中很常见。

判别器也换成了 U-Net 结构,并使用谱归一化(Spectral Normalization)稳定训练。U-Net 的跳跃连接让判别器能同时看局部和全局特征,提供更精细的像素级反馈。生成器则继承了 ESRGAN 的架构,但在真实数据上重新训练。

图2 - Real-ESRGAN 的高阶退化链(模糊 → 下采样 → 噪声 → 压缩):

mermaid
flowchart TD
    A["高分辨率图像<br/>HR Image"] --> B["模糊操作<br/>Blur Kernel"]
    B --> C["下采样<br/>Downsample"]
    C --> D["添加噪声<br/>Add Noise"]
    D --> E["JPEG 压缩<br/>JPEG Compression"]
    E --> F["低分辨率图像<br/>LR Image"]

    classDef img fill:#9C27B0,color:#fff
    classDef op fill:#2196F3,color:#fff
    class A,F img
    class B,C,D,E op

SwinIR——Transformer 的长距离依赖

Transformer 在自然语言处理中大放异彩,但直接将其应用到图像恢复面临计算复杂度问题。标准自注意力的复杂度是 $O(N^2)$,其中 $N$ 是图像像素数——对 256×256 的图像,这已经无法承受。SwinIR(2021,Liang et al.)用移位窗口(Shifted Window)注意力机制解决了这个问题。

Swin Transformer 的核心思想是将图像分成不重叠的局部窗口,在每个窗口内计算自注意力,复杂度降低到 $O(N)$。更巧妙的是,Swin Transformer 在交替层中移动窗口位置,让不同层能聚合不同区域的信息,最终实现全局建模。

SwinIR 的网络结构分为三部分:浅层特征提取用 3×3 卷积提取初始特征;深层特征提取用多个残差 Swin Transformer 块(RSTB),每个块包含若干 Swin Transformer 层和卷积层;高质量图像重建用亚像素卷积和卷积层生成最终图像。

Transformer 的优势在于全局建模能力。卷积网络的感受野受限,难以捕获长距离依赖;SwinIR 的自注意力机制能直接建模像素间的全局关系,更好地恢复纹理细节和结构信息。在图像去噪、去模糊、超分辨率等任务上,SwinIR 都取得了 SOTA 性能。

扩散模型——从噪声到清晰图像

扩散模型(Diffusion Models)是 2020-2022 年图像生成和恢复领域的突破。它的基本思想分为前向和反向两个过程。

前向过程逐步向清晰图像添加高斯噪声,直到图像变成纯噪声。每一步的噪声添加满足:

$$ q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t I) $$

其中 $\beta_t$ 是噪声调度参数,控制每步添加多少噪声。经过 $T$ 步后,$x_T$ 几乎服从标准正态分布。

反向过程训练神经网络逐步从噪声中恢复清晰图像。网络学习预测每一步应该去除的噪声:

$$ p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) $$

在超分辨率中,扩散模型将低分辨率图像作为条件信息输入去噪网络。网络在每一步迭代时,同时参考低分辨率图像的引导和当前噪声图像的状态,逐步生成高分辨率细节。

扩散模型的优势在于生成结果极其逼真,能合成合理的纹理细节。但代价是推理速度慢——需要多步迭代(通常 50-1000 步)才能完成去噪。代表工作包括 SR3(Image Super-Resolution via Iterative Refinement)和 LDM(Latent Diffusion Model)——LDM 将扩散过程放在潜在空间,大幅提升了推理速度。

图3 - 扩散模型的前向和反向过程(噪声添加与迭代去噪):

mermaid
flowchart TD
    A["清晰图像<br/>x₀"] --> B["添加噪声<br/>x₁ → x₂ → ... → x_T"]
    B --> C["纯噪声<br/>x_T ~ N(0,1)"]
    C --> D["去噪网络<br/>预测噪声"]
    D --> E["移除噪声<br/>x_{T-1} → ... → x₁ → x₀"]
    E --> F["恢复的清晰图像<br/>x₀̂"]

    classDef img fill:#4CAF50,color:#fff
    classDef process fill:#2196F3,color:#fff
    classDef noise fill:#FF9800,color:#fff
    class A,F img
    class B,E process
    class C,D noise

方法对比与选型指南

传统方法 vs 深度学习方法

维度传统方法深度学习方法
计算资源需求低,可在嵌入式设备运行高,通常需要 GPU
推理速度快,实时处理较慢,扩散模型尤其慢
泛化能力依赖退化模型假设,泛化有限数据驱动,泛化能力强
纹理细节难以生成逼真纹理能合成自然纹理
可解释性强,数学原理清晰弱,黑盒模型
训练需求无需训练需要大量数据和算力
适合场景已知退化模型、资源受限复杂真实场景、质量优先

各方法适用场景

方法最佳适用场景不推荐场景
双三次插值实时预览、对质量要求不高大幅放大(>4x)
维纳滤波已知 PSF 的去模糊、天文图像盲去模糊、噪声未知
双边滤波轻度降噪、边缘保持强噪声、纹理区域
SRCNN快速超分辨率、移动端纹理丰富的自然图像
SRGAN/ESRGAN照片增强、视觉质量优先需要严格保真的场景
Real-ESRGAN真实世界低质量图像恢复艺术风格化处理
扩散模型极致质量、细节合成实时应用、资源受限

评估指标

超分辨率的评估指标可以分为两类:像素级指标衡量重建精度,感知级指标衡量视觉质量。

**PSNR(Peak Signal-to-Noise Ratio)**是最常用的像素级指标,计算重建图像和真实图像之间的均方误差(MSE):

$$ \text{PSNR} = 10 \cdot \log_{10}\left(\frac{\text{MAX}_I^2}{\text{MSE}}\right) $$

其中 $\text{MAX}_I$ 是像素最大值(8 位图像为 255)。PSNR 越高越好,但它只关注像素差异,不考虑人眼感知特性。

**SSIM(Structural Similarity Index)**衡量结构相似性,从亮度、对比度和结构三个维度评估。SSIM 范围是 -1 到 1,1 表示完全相同。SSIM 比 PSNR 更符合人眼感知,但仍然倾向于平滑结果。

**LPIPS(Learned Perceptual Image Patch Similarity)**是感知级指标,用预训练的深度网络(如 VGG 或 AlexNet)提取特征,计算特征空间的距离。LPIPS 越低表示感知质量越好,能更好地反映人眼对纹理和细节的评价。

**FID(Fréchet Inception Distance)**常用于评估生成质量,计算真实图像分布和生成图像分布在 Inception 网络特征空间中的 Fréchet 距离。FID 越低表示生成分布越接近真实分布。

实际应用中,需要根据场景选择指标。如果追求像素级保真度,优先看 PSNR 和 SSIM;如果追求视觉质量,优先看 LPIPS 和 FID;扩散模型通常在感知级指标上表现最好,但 PSNR 可能不如其他方法。

总结

从 SRGAN 到扩散模型,超分辨率技术经历了从感知损失到对抗训练、从真实退化建模到 Transformer 全局建模、从单步重建到迭代去噪的演进。每个方法都有其优势和适用场景:

  • ESRGAN 提供了良好的质量和速度平衡
  • Real-ESRGAN 专攻真实世界低质量图像
  • SwinIR 用 Transformer 实现了强大的全局建模
  • 扩散模型达到了极致的视觉质量,但推理成本高

选择方法时,需要权衡质量、速度、计算资源和应用场景。对于实时应用,可以选择 SRCNN 或 ESRGAN;对于照片增强,Real-ESRGAN 是不错的选择;对于需要极致质量的场景,扩散模型目前是最佳选择。