持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情
绪论
- 问题:SRGAN生成逼真纹理同时伴随着伪影
- 研究改进:SRGAN
- 网络架构
- 对抗损失
- 感知损失
- 创新点
- RRDB(Residual-in-Residual Dense Block):移除批标准化
- 预测相对真实性,而非绝对真实性:借用relativistic GAN的思想
- 使用激活前的特征来改善感知损失:为亮度一致性和纹理恢复提供更强的监督
引言
感知驱动方法
- 感知损失:在特征空间而非像素空间中优化模型
- Perceptual losses for real-time style transferand super-resolution. ECCV. (2016)
- Enhancenet: Single image super-resolution through automated texture synthesis.ICCV.(2017)
- 语义图像先验
ecovering realistic texture in image super-resolution by deep spatial feature transform. CVPR. (2018) - SRGAN:残差块+感知损失
ESRGAN
- RRDB:残差中残差密集块
- 如EDSR一样去除BN层:增加容量并更好训练
- 残差缩放和更小的初始化:便于训练深度网络
- 改进鉴别器:使用RaGAN(相对平均GAN),学习判断图像是否更真实而非图像的真假
- 改进感知损失方法:激活前使用VGG特征,而非SRGAN中在激活后使用
平衡视觉质量和PSNR
- 网络插值策略:不断调整重建风格和平滑度
- 图像插值:逐像素插值图像
相关工作
- 强化学习
Crafting a toolchain for image restoration by deep reinforcement learning. CVPR. (2018) - 感知驱动方法
- 感知损失:最小化特征空间而不是像素空间中的误差来提高视觉质量
- 上下文损失:通过使用一个聚焦于特征分布而不仅仅是外观比较的目标来生成具有自然图像统计信息的图像
本文方法
网络架构(生成器)
- 去除所有BN层
- BN层原理
训练:使用批中的均值和方差对特征进行规范化
测试:使用整个训练数据集的估计均值和方差,当训练集和测试集的统计差异很大时,BN层往往会引入伪影,从而限制了泛化能力 - 去除BN的好处
稳定训练和性能
提高泛化能力,减少计算复杂性和内存使用
- 使用RRDB替换基本块
- Residual in Residual (RIR):残差中残差
思想:大残差内加入小残差
外层:G个残差组以及一个长跳跃连接构成,形成粗粒度的残差学习
内部:每个残差组内由B个残差通道注意力块(RCAB)以及一个小的跳跃连接构成
原理:长跳跃连接使网络在粗粒度的层次上学习到残差信息,短跳跃连接则是细粒度的identity-based的跳跃连接,能过滤大量不需要的低频信息 - 密集连接:使网络容量变高
- 训练深度网络的技术
- 残差标度:将残余值添加到主路径之前,通过乘以0-1之间的常数来缩小残差值,以防止不稳定
- 更小的初始化:当初始参数方差变小时,残差架构越容易训练
相对鉴别器
C(x)是非变换鉴别器的输出,Exf[·]表示平均小批中的所有伪数据
标准GAN:预测单一输入图像的真实性
相对GAN:比较两张图片哪张更真实
感知损失
约束激活前的特征,而非SRGAN中约束激活后的特征
网络插值
- 目标:在基于GAN的方法中去除伪影,同时保持良好的感知质量
- 原理:首先训练一个面向PSNR的网络GPSNR,然后微调获得一个基于GAN的网络GGAN,最后对两个网络所有相应的参数进行插值,得到插值模型GINTERP
- 优点
- 不引入伪影的情况下为任何可行的α生成有意义的结果
- 不重新训练模型的情况下持续平衡感知质量和真实度
- 其他方法
逐像素插值输出图像
缺点:插值图像太模糊或带有伪影