深度学习超分辨率算法(对抗生成网络路线)——ESRGAN方法

目录

  1. 引言
  2. ESRGAN 的核心思路
  3. 网络结构与数学表达
    1. RRDB 主体网络(Residual in Residual Dense Block)
    2. 生成器(Generator)
    3. 判别器(Discriminator)
  4. 损失函数
    1. 对抗损失:相对判别器(Relativistic Discriminator)
    2. 感知损失(Perceptual Loss)
    3. 像素损失(可选)
    4. 总体损失
  5. 训练流程
  6. 与 SRGAN 的主要区别
  7. 详细数学公式说明
  8. 代码示例
  9. 代码简要解读

引言

ESRGAN (Enhanced Super-Resolution Generative Adversarial Networks) 是对 SRGAN 的改进,能够生成在视觉上更具“真实感”且拥有更锐利高频细节的超分辨率图像。SRGAN 通过引入对抗损失(GAN)与感知损失(Perceptual Loss)已经在视觉质量上显著提升,但仍然存在纹理失真、放大伪影等问题。ESRGAN 在网络结构(如 RRDB 模块)与对抗训练方式(相对判别器)上做出改进,从而在多个数据集上取得更佳的主观和客观评估效果。


ESRGAN 的核心思路

  1. RRDB 主体网络

    • 采用 “残差中的残差” 设计,并融合 DenseNet 风格的 RDB (Residual Dense Block),去除 BN 层,保证在深层网络中能稳定地提炼丰富高频特征。
  2. 相对判别器(Relativistic Discriminator)

    • 不只是简单地判定“真 / 假”,而是判定真实图和生成图之间的相对真度差异;
    • 引入类似 RaGAN(Relativistic Average GAN) 的方法,提高判别器对细微纹理差异的敏感度。
  3. 感知损失(Perceptual Loss) + (可选)像素损失

    • 在高层特征空间(VGG 等)度量生成图与真实图的距离,让网络注重纹理结构的一致性;
    • 同时可保留少量 ℓ 1 \ell_1 1 ℓ 2 \ell_2 2 像素损失,辅助稳定训练。
  4. 残差缩放

    • 在 RRDB 中,对输出乘以较小的缩放因子(如 0.2)以缓解梯度爆炸,并稳定大规模训练。

网络结构与数学表达

RRDB 主体网络(Residual in Residual Dense Block)

ESRGAN 的生成器使用 RRDB 代替传统 ResBlock 作为基本构件。RRDB 本身由三个 RDB 串行组成,并在最外层包裹一个残差连接 + 缩放因子。

  • RDB (Residual Dense Block)
    在 RDB 中,每一层卷积的输入都是所有先前卷积层的输出拼接(Dense 连接),并在输出端加一个局部残差。可写作:
    x d = σ ( W d ∗ [ x 0 , x 1 , . . . , x d − 1 ] + b d ) , d = 1 … D , x_{d} = \sigma\bigl(W_d * [x_0, x_1, ..., x_{d-1}] + b_d\bigl), \quad d = 1 \dots D, xd=σ(Wd[x0,x1,...,xd1]+bd),d=1D,
    RDB ( x 0 ) = x 0 + W lff ∗ [ x 0 , x 1 , . . . , x D ] , \text{RDB}(x_0) = x_0 + W_{\text{lff}}^{} * [x_0, x_1, ..., x_D], RDB(x0)=x0+Wlff[x0,x1,...,xD],
    其中 D D D 是 RDB 内部卷积层数, σ \sigma σ 多用 LeakyReLU 或 ReLU。

  • RRDB = RDB + RDB + RDB + 残差
    RRDB ( x ) = x + β ⋅ ( F RDB 3 ∘ F RDB 2 ∘ F RDB 1 ( x ) ) , \text{RRDB}(x) = x + \beta \cdot \bigl(\mathcal{F}_{\text{RDB}_3} \circ \mathcal{F}_{\text{RDB}_2} \circ \mathcal{F}_{\text{RDB}_1}(x)\bigr), RRDB(x)=x+β(FRDB3FRDB2FRDB1(x)),
    其中 β ≈ 0.2 \beta\approx0.2 β0.2 控制残差输出的幅度, ∘ \circ 表示函数复合。

生成器(Generator)

ESRGAN 的生成器 G θ G_\theta Gθ (参数 θ \theta θ)可分为:

  1. 头部卷积:初步特征提取
  2. RRDB 组:堆叠 N 个 RRDB,形成深度表征
  3. 全局残差:将 RRDB 组输出与头部特征相加
  4. 上采样:通常用 PixelShuffle 上采样到目标倍数(如 x4)
  5. 输出卷积:映射到 3 通道 (RGB),得到 I ^ SR = G θ ( I LR ) \hat{I}_{\text{SR}} = G_\theta(I_{\text{LR}}) I^SR=Gθ(ILR)

判别器(Discriminator)

  • 判别器 D ϕ D_\phi Dϕ 输出对输入图像的打分;在 ESRGAN 中,多采用相对GAN(如 RaGAN)的方法,使判别器关心真实图与生成图打分的相对差异
  • 网络结构常见:卷积+BN+LeakyReLU+全连接,与 SRGAN 类似,但在损失计算时将真实、生成样本打分做差值。

损失函数

对抗损失:相对判别器(Relativistic Discriminator)

RaGAN 设定下,对抗损失不再是单纯的二分类,而是包含相对真度判断:

  1. 判别器损失 L D \mathcal{L}_D LD
    L D = − [ log ⁡ ( D Ra ( x r , x f ) ) + log ⁡ ( 1 − D Ra ( x f , x r ) ) ] , D Ra ( x r , x f ) = σ ( D ϕ ( x r ) − E [ D ϕ ( x f ) ] ) , \begin{aligned} \mathcal{L}_D &= - \Bigl[\log\bigl(D_{\text{Ra}}(x_r, x_f)\bigr) + \log\bigl(1 - D_{\text{Ra}}(x_f, x_r)\bigr)\Bigr], \\ D_{\text{Ra}}(x_r, x_f) &= \sigma\bigl(D_\phi(x_r) - \mathbb{E}[D_\phi(x_f)]\bigr), \end{aligned} LDDRa

### 使用深度学习进行图像清晰化处理的技术方法 #### 超分辨率重建 超分辨率重建是一种重要的图像清晰化技术,旨在从低分辨率图像中恢复高分辨率版本。该过程通常涉及训练卷积神经网络(CNN),使其能够捕捉到输入图像的高频细节并生成更精细的结果[^1]。 对于具体实现方式而言,一种流行的方法是采用生成对抗网络(GANs)框架下的ESRGAN模型。此模型不仅提升了图像的空间分辨率,还改善了视觉质量,使得输出图片看起来更加自然逼真。下面是一个简单的Python代码片段展示如何利用预训练好的ESRGAN模型来进行单张图片放大: ```python from PIL import Image import torch from basicsr.archs.rrdbnet_arch import RRDBNet from realesrgan import RealESRGANer model = RRDBNet(num_in_ch=3, num_out_ch=3, num_feat=64, num_block=23, num_grow_ch=32) upsampler = RealESRGANer(scale=4, model_path='weights/RealESRGAN_x4plus.pth', dni_weight=None) img = Image.open('input_image.png') output, _ = upsampler.enhance(np.array(img), outscale=4) Image.fromarray(output).save('output_image.png') ``` 这段脚本首先加载了一个预先训练过的RRDBNet架构作为核心组件;接着实例化`RealESRGANer`类用于执行实际放大的操作;最后读取待处理的照片文件,并调用`.enhance()`函数完成增强工作后保存新创建的高清版副本。 #### 图像去噪 除了提高空间分辨率外,去除噪声也是让图像变得更清晰的关键步骤之一。基于深度学习方法可以通过自编码器(autoencoder)或U-Net这样的结构来有效减少随机分布在整个画面内的干扰点。这类算法可以在保持原有特征的同时过滤掉不必要的杂音成分,进而提升整体画质。 #### 图像去模糊 当面对因相机抖动或其他原因造成的运动型失焦现象时,则需借助专门设计用来解决此类问题的工具——即所谓的“盲解卷积”。现代解决方案往往依赖于端到端可微分编程环境内构建起来的大规模深层残差网络(Residual Networks),它们能自动推断出最有可能引起目标物体轮廓变得不锐利的因素是什么,并据此调整参数直至获得满意的效果为止[^3]。 综上所述,通过上述几种途径相结合的方式,可以显著改进各类应用场景下所获取原始素材的质量水平,无论是日常生活中随手拍得风景照还是专业领域里至关重要的医疗成像资料都能从中受益匪浅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuHz

喜欢就支持一下 ~ 谢谢啦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值