system: [SYSTEM]

user: 4. 实验过程 4.1. 实验数据集 实验数据集选择Set5 [ 13 ]，Set14 [ 14 ]，BSD100 [ 15 ]，Urban100 [ 16 ] 这些经常被图像超分辨率重建用于作为结果对比的公开数据集。四个数据集分别包含5张、14张、100张、100张高分辨率图片及对应的低分辨率图片，图片格式均为png。实验采用python中的matplotlib包将这些图像读到内存，将图像像素为[0，255]的值域进行转换，低分辨率图像像素值域映射到[0，1]，高分辨率图像像素值域映射到[−1，1]。 4.2. 实验设计 本文的对比实验包括：改进生成器之后的SRGAN与原文使用SRResNe生成器的SRGAN对比；与其它公开结果的模型进行对比实验，包括与最近邻插值法、双立方插值法 [ 17 ]、SRCNN [ 18 ]、SCSR [ 19 ] 等进行对比实验；进行转置卷积与亚元素卷积的对比实验，分析两者对重建结果与训练速度的影响。 实验使用keras复现SRGAN的SRResNet生成器网络，设置的参数与RDB训练的网络一致，使用ImageNet数据集进行训练。 实验使用的最近邻插值法和双立方插值法属于传统插值超分辨率重建算法，优点体现在速度快，缺点也非常明显，因为丢失高频细节导致重建结果会出现模糊的情况。实验使用的SRCNN是最早几种采用卷积网络进行超分辨率重建的模型。模型使用的卷积层数较少，仅堆叠了三层卷积层，模型首先通过双立方插值进行图像放大，然后采用卷积网络进行特征提取和筛选，最后一层卷积输出作为重建结果。 本文为了验证模块数量对重建结果的影响，以及残差密集块对梯度弥散的减轻程度，采用堆叠不同数量RDB模块进行实验。因为显卡显存容量大小限制，本文分别将RDB堆叠数量设置为8，10，12进行对比实验，每个RDB模块采用6个卷积核数量为32的卷积层进行特征提取。模型使用的其它卷积层，包括最开始的浅层特征提取、LFF、GFF，均采用64个卷积核。实验结果显示在堆叠较多的RDB模块后，仍能起到促进作用。 本文针对DenseNet改进主要是在RDB结构中加了更多1 × 1卷积，因此每层卷积层可以使用更多的卷积核进行特征提取。本文针对卷积核数量影进行了对比实验，分别将RDB中卷积层的卷积核数量设为16、32、64进行对比实验，分析卷积核数量对模型的影响。 4.3. 实验结果 4.3.1. 堆叠RDB块数量对比实验 Table 1 The number of RDB’s influence on the networ Set5 Set14 训练时间 参数数量 K = 8 29.437/0.848 26.809/0.816 161 ms 2，502，019 K = 10 29.536/0.883 26.855/0.816 193 ms 3，041，155 K = 12 29.717/0.895 27.005/0.821 223 ms 3，580，291 表1. 堆叠RDB数量对网络的影响 表1中的K表示堆叠RDB块数量，训练时间是模型训练完一个batch所消耗的时间。表1中第2列与第3列数据显示，模型增加堆叠RDB块，重建图像的PSNR值与SSIM值会增加，K = 12的值比前两者的值都高，说明堆叠更多的RDB模块能够提升重建结果，原因是每堆叠一个RDB，网络会增加6个卷积层，从而提升网络表示能力，最终提升重建结果，但提升的精度细微。从表1的第4列与第5列可以看到，随着堆叠的RDB块增加，训练时间大大增加，带来细微精度的提升；模型参数数量也随着堆叠的RDB块增加而提高了不少，如果GPU的显存不够大，参数数量过多会导致显存不够训练无法继续，堆叠的RDB块不能太多，在对重建精度要求不高的使用场景，可以堆叠较少RDB提升训练效率和重建速度。 4.3.2. 卷积核数量对比实验 Table 2 The number of kernel’s influence on the networ Set5 Set14 参数数量 G = 16 29.491/0.880 26.955/0.816 1，597，699 G = 32 29.717/0.895 27.005/0.821 3，580，291 G = 64 29.889/0.888 27.38/0.827 10，033，795 表2. 卷积核数量对网络表现的影响 表2中G表示卷积层包含的卷积核数量，实验数据表明，增加卷积核数量可以提升模型能力，但提升不是很明显。与RDB堆叠数量相似，当特征图数量过多时参数数量增大，最终会导致显存不够无法继续训练。 4.3.3. 卷积方法对比实验 Table 3 Compare transposed convolution with sub-pixel convolutio Set5 Set14 训练时间 转置卷积 29.887/0.885 27.39/0.832 381 ms 亚元素卷积 29.889/0.888 27.38/0.827 319 ms 表3. 转置卷积与亚元素卷积对比 本文采用转置卷积与亚元素卷积两种不同的卷积方案进行了对比实验，实验结果如表3所示，两种不同的卷积方式的结果精度并没有太大的差别。但在训练时间上，亚元素卷积比转置卷积要快一些。 4.3.4. 不同生成器对比实验 Table 4 Compare different generator Set5 Set14 Urban100 BSD100 SRResNet 23.303/0.635 21.024/0.535 19.381/0.567 20.983/0.545 RDB 26.245/0.814 24.717/0.756 22.753/0.729 24.348/0.732 表4. 不同生成器对比 图10. 左图为SRGAN (SRResNet)右图为SRGAN (RDB) 本文的核心工作是改进SRGAN的生成器，并对基于RDB改进生成器的SRGAN模型与原来使用SRResNet作为生成器的SRGAN模型在四个测试集上分别进行了超分辨率重建对比实验，表4显示的是实验结果，结果显示基于本文改进的RDB生成器模型，在每个数据集上，PSNR与SSIM均有较明显的提升，见图10。 实验结果显示将密集块与残差块结合起来，的确可以提升SRGAN的重建结果。由于密集网络充分利用了不同层级之间的特征，低频信息重建与高频细节重建都起到了帮助。虽然SRGAN主要依靠GAN补足高频细节，但是生成器的改进对重建也带来了帮助。 4.3.5. 不同算法对比实验 本文最后将本文改进后的SRGAN模型与其它经典的超分辨率算法在各个公开测试集进行了对比实验，结果如表5所示。 Table 5 Compare to other algorithm Set5 Set14 Urban100 BSD100 最近邻插值 24.607/0.731 22.982/0.646 20.733/0.619 23.728/0.629 双立方线性插值 26.694/0.789 24.247/0.686 21.701/0.651 24.654/0.661 SCSR 27.237/0.806 24.631/0.706 22.510/0.695 25.258/0.694 SRCNN 28.089/0/829 25.161/0.720 22.626/0.696 25.345/0.698 SRGAN(RDB) 26.245/0.814 24.717/0.756 22.753/0.729 24.348/0.732 表5. 与其他算法结果对比 图11. 左一LR左二SRCNN右二SRGAN(RDB)右一HR 从表5的结果可以看出GAN模型的重构图像由于生成了许多假细节，在PSNR指标上比不过一些方法，但重构图像在真实度上有较大提升，更符合人眼观察到的高清图像，见图11。 因此，对于重构图像真实度要求不是特别高的场景，可以采用SRGAN进行超分辨率重建，比如复原哪些压缩严重的风景画或者照片，但对于那些对图像真实要求很高的医疗、遥感等图像的重构就不太适合。