学习资料
- 论文题目:基于生成对抗网络的照片级单幅图像超分辨率(Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network)
- 论文地址:https://arxiv.org/abs/1609.04802
代码:GitHub - xiph/daala: Modern video compression for the internetGitHub - jbhuang0604/SelfExSR: Single Image Super-Resolution from Transformed Self-Exemplars (CVPR 2015)http://cv.snu.ac.kr/research/DRCN/https://twitter.box.com/s/lcue6vlrd01ljkdtdkhmfvk7vtjhetogGitHub - david-gpu/srez: Image super-resolution through deep learning
1. WHY
现有方法的局限性
特点/优点:主要关注最小化均方重建误差(MSE)(目标函数);能提高峰值信噪比(PSNR)(目标函数)
缺点:恢复的图像缺乏高频细节;在感知上不令人满意;无法匹配在更高分辨率下预期的保真度,尤其在大放大因子下问题更明显。
GAN 的优势及应用潜力
GAN 为生成具有高感知质量的逼真自然图像提供了框架,可使重建向自然图像流形移动,有潜力解决超分辨率问题中的感知质量不佳问题。
2. WHAT
问题设定
在单图像超分辨率(SISR)的任务中:
目标阐述
其目的在于依据低分辨率输入图像来估计出超分辨率图像。其中是其对应的高分辨率图像的低分辨率版本,高分辨率图像仅在训练期间提供。
低分辨率图像的来源
这里所提到的低分辨率输入图像()是与之对应的高分辨率图像()的低分辨率版本。并且,高分辨率图像仅在训练阶段才会被提供。
在训练过程中,低分辨率输入图像()是通过以下方式获取的:
- 首先对高分辨率图像()应用高斯滤波器。
- 接着进行具有特定降采样因子()的降采样操作。(本文中)
图像的描述方式
对于具有个颜色通道的图像:
- 低分辨率输入图像()用大小为来描述。
- 超分辨率图像()则用来描述。
2.1. SRGAN
:生成器网络的整体表示。
:表示由参数参数化的生成器函数。
:生成器函数根据低分辨率图像生成的超分辨率图像。
:判别器函数对真实高分辨率图像的判别输出。
:判别器函数对生成的超分辨率图像的判别输出。
:表示在真实高分辨率图像服从数据分布的情况下数学期望。在概率论和统计学中,数学期望(或均值)是试验中每次可能结果的概率乘以其结果的总和。在这里,它用于衡量在给定的真实高分辨率图像分布下,的平均表现。
:表示在低分辨率图像服从数据分布的情况下的数学期望。
对于判别器,当看到真实的高分辨率图像时,它希望越大越好,也就是判断正确的概率越高越好;当看到生成器生成的图像时,它希望越大越好,也就是判断为假的概率越高越好。
而生成器呢,它就希望通过调整自己的参数,让越小越好,这样生成的图像就越能骗过判别器,让判别器以为它是真实的高分辨率图像。
2.1.1. 生成器网络
最终目标是训练生成函数来估计给定输入图像对应的对应,即。
SRResNet 在 SRGAN 中充当了生成器的基础架构部分,为 SRGAN 生成器提供了初始的网络结构和参数,是 SRGAN 生成器的重要组成部分。
B个残差块
这是生成器网络的核心结构。生成器网络的核心由(在本文中)个残差块组成。这些残差块具有相同的布局,它们是网络能够学习到有效特征表示的关键部分,有助于在提升图像分辨率的同时保留图像的重要信息。(就是那些深蓝色的矩形块,第一个矩形块详细描述了内部结构,图中画残差块有所省略,应该有16个深蓝色的矩形块)
每个残差块中使用了两个具有小核和 64 个特征图的卷积层,这种小卷积核的设计有助于提取图像的局部特征,并且在不增加过多参数的情况下增加网络的表达能力。(就是深蓝色的矩形块里的浅蓝色矩形块)
是对卷积层的一种参数表示方式。
其中,表示卷积核的大小为 ,这意味着在进行卷积操作时,卷积核会在输入图像或特征图上以的窗口进行滑动计算。
表示卷积层输出的特征图数量为 64 个,即经过该卷积层处理后,图像的深度(通道数)变为 64。(说明有64个卷积核)
表示卷积的步长为 1,这意味着卷积核在滑动过程中每次移动 1 个像素的距离,较小的步长有助于提取更精细的图像特征,同时也能保持图像的空间分辨率相对不变,避免因过大的步长而丢失过多信息。
在卷积层之后,接着是批归一化层(Batch Normalization),其作用是加速网络训练过程中的收敛速度,减少内部协变量偏移问题,使得网络训练更加稳定。(就是深蓝色的矩形块里的橘色矩形块)
最后使用参数化 ReLU(Parametric ReLU)作为激活函数,引入了可学习的参数,增强了网络的非线性表达能力,有助于生成器生成更逼真的图像。(就是深蓝色的矩形块里的黄色矩形块)
亚像素卷积层与分辨率提升
在残差块之后,使用了 Shi 等人提出的两个经过训练的亚像素卷积层。这些亚像素卷积层的主要作用是增加输入图像的分辨率,将低分辨率图像逐步提升到高分辨率,从而实现超分辨率的目标。通过这种方式,生成器能够有效地将低分辨率图像转换为具有更多细节和更高清晰度的超分辨率图像。
跳跃连接
在生成器网络中还存在跳跃连接(Skip Connection),它将输入直接连接到残差块的输出,这种连接方式有助于缓解网络在学习身份映射时的困难,使得网络能够更好地处理深层次网络中的梯度消失问题,保证信息在网络中的有效传递,同时也有助于生成器在生成图像时保留更多的原始图像信息,提高生成图像的质量。
2.1.2. 判别器网络
为了区分真实的图像和生成的样本,训练一个判别器网络。
卷积层
这里的卷积层用于特征提取。判别器网络包含 8 个卷积层,其中滤波器核大小为。
从网络的浅层到深层,特征数量逐渐增加,从 64 个核开始,每次增加一倍,这种设计使得判别器能够逐步学习到图像更高级、更抽象的特征表示,从而更好地区分真实高分辨率图像和生成的超分辨率图像。在特征数量增加时,使用跨步卷积(Strided Convolution)来降低图像分辨率,这样可以在保持感受野大小不变的情况下,减少计算量并增加网络的感受野,使判别器能够关注到图像更广泛区域的特征信息。
(就是深蓝色的矩形块里的浅蓝色矩形块)
激活函数
整个判别器网络使用 LeakyReLU 激活函数(),LeakyReLU 函数在负数区间也有一定的斜率,避免了传统 ReLU 函数在负数区间导致的神经元 “死亡” 问题,使得网络在反向传播过程中能够更好地传递梯度信息,加快训练速度并提高训练效果。
同时,判别器网络避免了使用最大池化(Max Pooling)操作,这有助于保留更多的图像细节信息,使得判别器能够更准确地对图像进行分类判断。
(就是深蓝色的矩形块里的浅黄色矩形块)
全连接层
在经过一系列卷积层提取特征后,判别器网络接着使用两个密集层(全连接层),将前面卷积层提取到的特征映射到一个低维空间,进一步整合特征信息。(荧光色矩形块)
分类输出
最后通过一个 sigmoid 激活函数输出样本分类的概率,该概率值表示输入图像被判别为真实高分辨率图像的可能性,概率值越接近 1,表示判别器认为该图像是真实高分辨率图像的可能性越高;概率值越接近 0,表示判别器认为该图像是生成的超分辨率图像(即假图像)的可能性越高。通过这种方式,判别器能够有效地对输入图像进行分类,从而在生成对抗网络的训练过程中,与生成器相互竞争、相互学习,共同提高网络的性能。
2.2. 感知损失函数
论文中使用了感知损失函数(Perceptual Loss Function)来训练网络,同时使用平均意见得分(Mean Opinion Score,MOS)来评估不同方法重建图像的感知质量。
如果只是用普通的损失函数,比如只看像素是不是一样(像均方误差 MSE 那种),得到的高分辨率图像可能看起来还是不那么好,缺乏一些细节,看起来不真实。所以我们需要一个更好的方法来衡量生成的高分辨率图像好不好,这就有了感知损失函数。
感知损失函数是内容损失和对抗损失的加权组合,就像做一个蛋糕需要面粉和糖一样,公式为
2.2.1. 内容损失
内容损失函数是看生成的超分辨率图像和原始的高分辨率图像在内容上像不像,包括像素级 MSE 损失(常用但有缺陷)和基于 VGG 网络特征图的 VGG 损失(更符合感知相似性)
像素级 MSE 损失
一个一个地对比两个图像与的像素是不是一样,计算它们差值的平方和然后平均。
由于它只看像素,得到的图像可能很平滑,没有真实图像的那种细节,基于此优化的结果往往缺乏高频内容,感知上不够令人满意。
最常用的优化目标,计算公式为
VGG 损失
这个就聪明一点啦。它是利用一个已经训练好的 VGG 网络,看生成的图像和原始图像经过 VGG 网络某些层后的特征是不是一样(通过计算它们特征之间的距离)。这样就不是只看像素啦,而是看图像更本质的特征,得到的结果会更符合我们人眼看到的真实感。
基于预训练的 19 层 VGG 网络的 ReLU 激活层定义。
2.2.2. 对抗损失
是生成器函数生成的图像。
觉得是生成的概率越大,越接近0,损失函数越小;
觉得是的概率越大,越接近1,损失函数越大。
2.3. 实验
2.3.1. 数据集
实验在三个广泛使用的基准数据集 Set5、Set14 和 BSD300 测试集 BSD100 上进行,所有实验均以 4 倍比例因子处理低分辨率与高分辨率图像,相当于图像像素减少 16 倍。为确保公平比较,PSNR 和 SSIM 度量在中心剪切的 y 通道上计算,从图像边界去除 4 像素宽的条带,使用 daala 包进行处理6。
2.3.2. 训练细节和参数
训练数据与预处理
使用 ImageNet 数据库中 35 万张图像的随机样本进行网络训练,这些图像与测试图像不同。对 HR 图像(BGR,C = 3)采用降采样因子 r = 4 的双三次核进行降采样得到 LR 图像。每个小批处理中,从 16 个随机 96×96 的不同训练图像中裁剪 HR 子图像。输入的 LR 图像范围缩放为 [0, 1],HR 图像范围缩放为 [-1, 1],在 [-1, 1] 强度范围的图像上计算 MSE 损失,VGG 特征图按 12.751 倍重新缩放,使 VGG 损失与 MSE 损失尺度相当(乘以约 0.006 的缩放因子)6。
优化器与学习率策略
采用 Adam 优化器(β1 = 0.9)。
SRResNet 网络的学习率分别为 10⁻⁴和 10⁻⁶次更新迭代;训练 SRGAN 时,先使用训练好的基于 MSE 的 SRResNet 网络初始化生成器,以避免局部最优,所有 SRGAN 变体先以 10⁻⁴的学习率进行 10⁵次更新迭代训练,再以 10⁻⁵的较低学习率进行 10⁵次迭代训练,且交替更新生成器和判别器网络(k = 1)6。
网络架构与测试设置
生成器网络有 16 个相同(B = 16)的残差块,基于 Theano 和 Lasagne 实现。测试期间关闭 batch - normalization 更新,以获得仅依赖于输入的确定性输出56。
训练过程
使用 ImageNet 数据库中 35 万张图像的随机样本在 NVIDIA Tesla M40 GPU 上训练网络,对 HR 图像降采样得到 LR 图像,裁剪随机 HR 子图像,缩放输入和 HR 图像范围,重新缩放 VGG 特征图,使用 Adam 优化器,设置不同学习率训练 SRResNet 和 SRGAN。
2.3.3. 平均意见评分(MOS)测试
测试方法与评分标准
进行 MOS 测试,邀请 26 名评分者为超分辨率图像打分(1 - 5 分,1 为质量差,5 为质量优秀)。
评分者对 Set5、Set14 和 BSD100 上的图像进行评分,包括多种方法(最近邻、双三次、SRCNN、SelfExSR、DRCN、ESPCN、SRResNet - MSE、SRResNet - VGG22、SRGAN - MSE、SRGAN - VGG22、SRGAN - VGG54 和原始 HR 图像)的重建结果。每个评分者对大量实例(1128 个)进行评分,图像以随机方式呈现,评分者事先在校准图像上进行校准,确保评分标准一致67。
测试结果分析
测试结果显示,评分者对不同方法的评分差异明显,如一致将 NN 插值的测试图像评为 1,将原始 HR 图像评为 5。SRGAN 在 Set14 和 BSD100 数据集上的表现显著优于其他方法,其 MOS 评分更接近原始高分辨率图像。在 Set5 上结果不太确定,但整体趋势仍表明 SRGAN 在感知质量方面具有优势。不同方法的 MOS 分数分布和平均排名进一步证实了 SRGAN 的优越性,其在 BSD100 上的表现尤为突出,与其他方法相比,MOS 差异显著(除 SRCNN 与 SelfExSR 外)714。
2.3.4. 含量损失的调查
研究内容与损失函数选择
研究不同内容损失选择对 GAN 感知损失的影响,具体调查了三种内容损失:SRGAN - MSE(以标准 MSE 作为内容损失)、SRGAN - VGG22(在表示低级特征的特征映射上定义损失)和 SRGAN - VGG54(在更深网络层的更高级别特征映射上定义损失)。在训练 SRResNet - VGG22 时,添加了权重为 2×10⁻⁸的额外总变异损失。通过比较这些不同损失函数下的网络性能,分析其对生成图像质量的影响7。
结果与观察
实验发现,MSE 优化虽能提供高 PSNR 值,但生成图像在感知上较平滑,不如对视觉感知更敏感的损失分量生成的图像令人信服,这是由于 MSE 内容损失和对抗性损失之间的竞争。在少数基于 SRGAN - MSE 的重建中观察到次要重建伪影,也归因于目标竞争。在 Set14 上,SRGAN - VGG54 在 MOS 方面显著优于其他 SRGAN 和 SRResNet 变体,表明使用更高级别的 VGG 特征图可产生更好的纹理细节。不同损失函数下的网络在 PSNR、SSIM 和 MOS 等指标上表现各异,体现了内容损失选择对生成器性能的重要影响7。...
3. HOW
MOS 测试结果:SRGAN 在感知质量方面取得显著进步,其 MOS 分数更接近原始高分辨率图像,优于其他参考方法。不同内容损失对 MOS 分数有影响,更深层的 VGG 特征图可产生更好纹理细节。
网络性能比较:SRResNet 在 PSNR/SSIM 方面设置了新技术水平,SRGAN 在很大程度上优于所有参考方法,为逼真图像 SR 设定了新技术水平。对抗性损失可提高感知质量,但也会使基于 MSE 的解决方案在感知上更平滑。