深度学习超分辨率——SRCNN 与 SRGAN

从数学模型到数据驱动

在超分辨率任务中,传统方法依赖精心设计的数学模型——插值算法、稀疏表示、先验约束等。但深度学习带来了范式转变:从大量成对的低分辨率(LR)-高分辨率(HR)图像数据中,直接学习从退化空间到清晰空间的映射。

核心思想很简单:训练一个神经网络 $F_{\theta}$,使其能将低分辨率图像映射到高分辨率图像:

$$ \hat{I}{HR} = F{\theta}(I_{LR}) $$

训练过程就是优化网络参数 $\theta$,最小化预测结果与真实高分辨率图像的差异:

$$ \theta^* = \arg\min_{\theta} \sum_{i} \mathcal{L}(F_{\theta}(I_{LR}^{(i)}), I_{HR}^{(i)}) $$

不再需要手动设计滤波器或先验,让网络自己从数据中学到如何恢复细节。

SRCNN:三层的起点

SRCNN(Super-Resolution Convolutional Neural Network)由 Dong 等人于 2014 年在 ECCV 发表,是深度学习超分辨率的奠基工作。论文的核心洞察是:超分辨率问题的三个传统步骤(图像块提取、非线性映射、重建)可以用三层卷积网络直接实现。

网络结构清晰明了:

图1 - SRCNN 网络架构(三层卷积直接对应传统超分辨率的三个步骤):

mermaid
flowchart TD
    INPUT["输入 LR 图像<br/>已插值放大至目标尺寸"] --> FE["特征提取<br/>9x9 卷积 + ReLU<br/>提取边缘、纹理等底层特征"]
    FE --> NLM["非线性映射<br/>1x1 卷积 + ReLU<br/>映射到高维特征空间"]
    NLM --> REC["重建<br/>5x5 卷积<br/>聚合特征生成 HR 图像"]
    REC --> OUTPUT["输出 HR 图像"]

    classDef io fill:#2196F3,color:#fff
    classDef layer fill:#9C27B0,color:#fff
    class INPUT,OUTPUT io
    class FE,NLM,REC layer

特征提取层

第一层是 $9 \times 9$ 的卷积核加 ReLU 激活。卷积操作相当于在图像上滑动一个窗口,提取局部特征。大的核尺寸($9 \times 9$)能捕获更大范围的上下文信息。ReLU 引入非线性,让网络能学习更复杂的特征。

这一层从已插值放大的低分辨率图像中提取边缘、纹理等底层特征——这些是重建细节的基础。

非线性映射层

第二层是 $1 \times 1$ 卷积加 ReLU。$1 \times 1$ 卷积不会改变空间尺寸,但可以改变通道数——相当于对每个像素位置的特征做一次线性变换组合,映射到更高维的特征空间。

这是网络"理解"图像的关键:将低维的像素值映射到高维的语义特征空间,为重建提供更丰富的表达。

重建层

第三层是 $5 \times 5$ 卷积,没有激活函数。这一层将高维特征聚合回图像空间,生成最终的高分辨率图像。

损失函数

SRCNN 使用像素级均方误差(MSE)作为损失函数:

$$ \mathcal{L}{MSE} = \frac{1}{N} \sum{i=1}^{N} | F_{\theta}(I_{LR}^{(i)}) - I_{HR}^{(i)} |_2^2 $$

MSE 衡量预测图像与真实图像在每个像素位置的差异——优化 MSE 就是让网络学会生成与真实图像尽可能接近的像素值。

局限性与历史意义

SRCNN 的网络很浅(仅 3 层),感受野有限,难以捕捉长距离依赖。此外,它需要先对输入进行双三次插值放大,计算效率不高。放大因子也是固定的,无法灵活调整。

但 SRCNN 的历史意义不可忽视:它证明了深度学习方法在超分辨率任务上有效,为后续研究开辟了道路。在此之前,超分辨率主要依赖稀疏表示、先验约束等传统方法。

SRGAN:感知质量的新维度

SRGAN(Super-Resolution Generative Adversarial Network)由 Ledig 等人于 2017 年在 CVPR 发表,首次将生成对抗网络(GAN)引入超分辨率任务。SRGAN 的两个核心创新——感知损失(Perceptual Loss)和对抗损失(Adversarial Loss)——彻底改变了超分辨率的质量评判标准。

图2 - SRGAN 训练流程(生成器与判别器的对抗博弈,结合 VGG 感知损失):

mermaid
flowchart TD
    LR["低分辨率<br/>图像"] --> G["生成器 G<br/>ResNet + 亚像素卷积"]
    G --> SR["超分辨率<br/>图像"]
    SR --> D["判别器 D<br/>判断真实性"]
    SR --> VGG["VGG 特征提取<br/>计算感知损失"]
    G --> VGG
    HR["真实高分辨率<br/>图像"] --> D
    HR --> VGG

    D --> LOSS_D["对抗损失<br/>L_adv"]

    VGG --> LOSS_P["感知损失<br/>L_perceptual"]

    classDef io fill:#2196F3,color:#fff
    classDef net fill:#9C27B0,color:#fff
    classDef loss fill:#FF9800,color:#fff
    class LR,HR io
    class G,D,VGG net
    class LOSS_D,LOSS_P loss

感知损失

SRGAN 的第一个创新是感知损失。传统方法(包括 SRCNN)优化的是像素空间上的 MSE,但这有个问题:MSE 倾向于生成"平均"的像素值,导致结果模糊。

为什么?考虑一个边缘区域:真实图像的边缘可能是清晰的黑白边界(像素值 0 或 255),但如果网络预测中间值(如 128),MSE 只是小幅增加——因为误差是 $|128-0|^2 = 16384$ 和 $|128-255|^2 = 16129$,而网络的平均预测可能是 128 以最小化总误差。

感知损失的思路是:不在像素空间计算距离,而是在 VGG 网络的特征空间计算距离。VGG 是在 ImageNet 上预训练的分类网络,其中间层的特征编码了图像的语义信息(纹理、形状等)。

$$ \mathcal{L}{perceptual} = | \phi(I{HR}) - \phi(\hat{I}_{HR}) |_2^2 $$

其中 $\phi$ 是预训练 VGG 网络的中间层特征提取器。

优化感知损失意味着:让生成图像在特征层面接近真实图像,而不是在像素层面接近。这能产生更清晰、更真实的纹理——因为 VGG 特征对纹理细节很敏感。

对抗损失

SRGAN 的第二个创新是对抗损失。GAN 的核心思想是生成器(Generator)和判别器(Discriminator)的对抗博弈:

  • 生成器 G 试图生成逼真的超分辨率图像,欺骗判别器
  • 判别器 D 试图区分真实的高分辨率图像和生成器生成的假图像

生成器的目标函数包含两部分:感知损失和对抗损失:

$$ \mathcal{L}G = \mathcal{L}{perceptual} + 10^{-3} \mathcal{L}{content} + \lambda \mathcal{L}{adv} $$

其中 $\mathcal{L}_{adv}$ 是对抗损失:

$$ \mathcal{L}{adv} = \sum{n=1}^{N} -\log D(G(I_{LR}^{(n)})) $$

生成器希望 $D(G(I_{LR}))$ 尽可能大(判别器认为生成图像是真实的),所以最大化 $\log D(G(I_{LR}))$,即最小化 $-\log D(G(I_{LR}))$。

判别器的目标函数是:

$$ \mathcal{L}D = -\sum{n=1}^{N} [\log D(I_{HR}^{(n)}) + \log (1 - D(G(I_{LR}^{(n)})))] $$

判别器希望 $D(I_{HR})$ 尽可能大(正确识别真实图像),$D(G(I_{LR}))$ 尽可能小(正确识别生成图像)。

通过这种对抗训练,生成器学会生成更符合真实图像统计分布的纹理——因为如果纹理太假,判别器会轻易识别出来。

生成器架构

SRGAN 的生成器采用深度残差网络(ResNet)结构,包含 16 个残差块。每个残差块包含两个 $3 \times 3$ 卷积层,通过跳跃连接缓解梯度消失。

上采样使用亚像素卷积(Sub-pixel Convolution)。亚像素卷积由 Shi 等人于 2016 年在 ESPCN(Efficient Sub-Pixel Convolutional Neural Network)中提出,SRGAN 采用了这一技术。

亚像素卷积的核心思想是:先用卷积生成 $r^2$ 个通道的特征图($r$ 是放大因子),然后通过周期洗牌(Periodic Shuffling)重新排列像素,将通道维度转换为空间维度:

$$ I_{HR} = PS(W * I_{LR} + b) $$

其中 $PS$ 是周期洗牌操作。例如,如果放大因子是 2,先生成 4 个通道的特征图,然后重新排列成 2 倍宽和高的单通道图像。

亚像素卷积比传统的双三次插值更高效——插值上采样会引入大量冗余计算,而亚像素卷积直接在低分辨率空间学习上采样滤波器。

图3 - 像素损失 vs 感知损失(为什么 GAN 生成更清晰的纹理):

mermaid
flowchart TD
    PIXEL["像素损失(MSE)<br/>优化像素值差异"] --> BLUR["倾向生成<br/>模糊的平均结果"]
    PIXEL --> REASON_P["原因:边缘区域<br/>预测中间值<br/>能最小化总误差"]

    PERCEPTUAL["感知损失(VGG)<br/>优化特征空间差异"] --> SHARP["倾向生成<br/>清晰的纹理细节"]
    PERCEPTUAL --> REASON_V["原因:VGG 特征<br/>对纹理敏感<br/>惩罚模糊结果"]

    GAN["对抗损失(GAN)<br/>生成器与判别器博弈"] --> REAL["生成符合真实<br/>图像统计分布的纹理"]
    GAN --> REASON_G["原因:判别器<br/>能识别不自然的<br/>纹理模式"]

    classDef loss fill:#2196F3,color:#fff
    classDef result fill:#FF9800,color:#fff
    classDef reason fill:#9C27B0,color:#fff
    class PIXEL,PERCEPTUAL,GAN loss
    class BLUR,SHARP,REAL result
    class REASON_P,REASON_V,REASON_G reason

质量与指标的权衡

SRGAN 的一个有趣现象是:生成图像的视觉质量(主观感受)显著优于 SRCNN,但 PSNR 指标可能略低。

PSNR(Peak Signal-to-Noise Ratio)基于 MSE 计算,衡量的是像素层面的保真度。MSE 优化倾向于生成模糊的平均结果,而 GAN 的对抗训练会引入一些"合理"的纹理——这些纹理可能不是像素层面的精确匹配,但看起来更真实。

这揭示了图像质量评估的核心矛盾:像素级保真度(PSNR)和感知质量(Perceptual Quality)并不总是对齐。SRGAN 选择优化感知质量,而牺牲一些像素级指标。

从 SRCNN 到 SRGAN:演进逻辑

从 SRCNN 到 SRGAN,深度学习超分辨率经历了两次关键演进:

  1. 网络架构演进:从 3 层浅网络到深度的 ResNet,从固定插值上采样到亚像素卷积高效上采样
  2. 损失函数演进:从像素级 MSE 到特征空间的感知损失,从单一损失函数到对抗训练的博弈机制

这两次演进都围绕一个核心目标:让网络生成更清晰、更真实的纹理。

SRCNN 证明了深度学习在超分辨率上的可行性,但受限于网络深度和损失函数,生成的图像仍然偏模糊。SRGAN 通过感知损失和对抗损失,突破了这个限制,生成了视觉质量更高的图像。

但 SRGAN 也不是终点。后续研究(如 ESRGAN、Real-ESRGAN)进一步优化了感知损失、对抗损失和网络架构,在质量上持续提升。

小结

深度学习超分辨率的核心思想是数据驱动:从成对的低分辨率-高分辨率图像中学习映射,而不是依赖手工设计的数学模型。

SRCNN 用三层卷积网络证明了深度学习的可行性,是超分辨率领域的奠基工作。SRGAN 通过感知损失和对抗损失,将超分辨率从像素级保真度提升到感知质量的新维度。

理解这些方法的关键在于:为什么感知损失优于像素损失?为什么对抗训练能生成更真实的纹理?答案在于——人类视觉系统对纹理和细节敏感,而不仅仅关注像素值。优化与人类感知对齐的目标函数,才能生成视觉上更好的图像。

参考文献

  • Dong, C., Loy, C. C., He, K., & Tang, X. (2014). Learning a deep convolutional network for image super-resolution. In European conference on computer vision (pp. 184-199). Springer.
  • Shi, W., Caballero, J., Huszár, F., Totz, J., Aitken, A. P., Bishop, R., … & Vedaldi, A. (2016). Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1874-1883).
  • Ledig, C., Theis, L., Huszár, F., Caballero, J., Cunningham, A., Acosta, A., … & Shi, W. (2017). Photo-realistic single image super-resolution using a generative adversarial network. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 4681-4690).