1. 超分辨率重建的技术演进背景
十年前,当我们试图将一张模糊的老照片放大时,得到的往往是更加模糊的马赛克图像。传统基于插值的放大方法(如双三次插值)只能机械地填充像素,无法还原真实细节。2014年,深度学习开始改变这一局面——SRCNN首次将卷积神经网络引入超分辨率领域,开启了基于学习的超分时代。
2017年,SRGAN的横空出世标志着生成对抗网络(GAN)在图像超分领域的成功应用。它不再满足于仅仅提高PSNR指标,而是通过对抗训练让网络学会生成更符合人眼视觉感知的高频细节。但SRGAN生成的纹理常常存在伪影和失真,这正是ESRGAN要解决的核心问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. ESRGAN的核心创新解析
2.1 RRDB网络结构设计
ESRGAN抛弃了SRGAN中的批量归一化(BN)层,转而采用残差中的残差密集块(RRDB)。这种设计带来了三个关键优势:
-
BN层在训练时会引入伪影,特别是在GAN架构中。实验表明,移除BN后生成的图像质量显著提升,PSNR提高约0.15dB。
-
密集连接让每层的特征都能直接传递到后续所有层,公式表示为:
code复制F_{n} = H_{n}([F_{n-1}, F_{n-2}, ..., F_{0}])其中[]表示特征拼接,这种信息流动方式极大缓解了梯度消失问题。
-
残差缩放机制(residual scaling)通过引入0-1之间的权重因子,稳定了深度网络的训练过程。代码实现只需在残差路径添加一个可学习参数:
python复制class RRDB(nn.Module): def __init__(self): self.beta = nn.Parameter(torch.zeros(1)) def forward(self, x): return x + self.beta * dense_block(x)
2.2 改进的感知损失函数
ESRGAN对SRGAN的损失函数进行了三项关键改进:
- 在VGG特征空间计算感知损失时,使用激活前的特征图(before activation)而非激活后的。这保留了更多的梯度信息,使训练更稳定。实验数据显示,这种改
