APP下载

生成对抗网络的单图像超分辨率重建方法*

2020-09-13彭晏飞杜婷婷訾玲玲

计算机与生活 2020年9期
关键词:分辨率卷积损失

彭晏飞,高 艺,杜婷婷,桑 雨,訾玲玲

辽宁工程技术大学电子与信息工程学院,辽宁葫芦岛 125105

1 引言

图像超分辨率问题,特别是单图像超分辨率,近年来受到越来越多的关注,已成为一个研究的热点问题。单图像超分辨率是一个病态的求逆问题,目标是从一幅低分辨率的图像中恢复出具有更多纹理细节和高频信息的高分辨率图像,在卫星成像[1]、监控设备[2]、遥感影像[3]、医学成像[4]等许多现实领域中都有广泛的应用。

图像超分辨率重建主要有:基于插值的[5]、基于重建的[6]和基于学习的[7]三种方法。基于插值的超分辨率方法实现简单,重建速度快,但同时也存在依赖自然图像的先验知识,使重建图像细节较差的缺点。基于重建的超分辨率根据已有的退化模型,通过提取低分辨率图像中的关键信息,并结合对未知的超分辨率图像的先验知识来约束超分辨率图像的生成。由于所获得的先验知识有限,因此如果遇到复杂的图像所重建出的图像性能也有限。基于学习的超分辨率利用大量的训练数据,通过训练建立低分辨率与高分辨率的映射关系,根据学习到的先验信息从低分辨率图像中重建出高分辨率图像。相比其他方法,基于学习的方法可以利用学习到的先验知识来预估对应的高分辨率图像,重建图像质量高,目前已成为主流的重建方法。

近年来,随着深度学习在计算机视觉的成功应用,深度神经网络受到了广泛关注,其影响力也已扩展到图像超分辨率领域,使用基于卷积神经网络的图像超分辨率,其质量大大改善。Dong等人[7]首先提出了一种基于3层卷积神经网络的超分辨率方法(super-resolution convolutional neural network,SRCNN),成功将深度学习引入到超分辨率领域,该网络结构简单,易于实现,但仍然存在由于感受野小、泛化能力差、卷积层数少而导致的重建性能差的问题。Shi等人[8]提出增加亚像素卷积层来减少计算开销,提高图像的重建效率。Kim等人[9]加深网络结构到20层,提高了感受野,并通过残差学习来提高训练的收敛速度。Lim等人[10]去掉了残差块中不必要的批规范化层(batch normalization,BN),使模型更加紧凑,提高了图像的重建质量。Lai等人[11]提出的深层拉普拉斯金字塔网络(LapSRN)将L2损失函数换为Charbonnier损失函数,通过级联学习逐步上采样,逐步输出残差结果,一步步得到重建图像。Haris等人[12]提出一种不断进行上采样和下采样的网络(deep backprojection networks,DBPN),通过为每个阶段建立错误反馈机制来指导重建。以上方法多数以MSE(mean squared error)为目标函数,虽然生成图像有着较高的PSNR(peak signal-to-noise ratio),但生成质量却缺少高频信息和纹理细节,且感知效果不尽如人意。

随着生成对抗网络(generative adversarial network,GAN)[13]的提出,大家开始尝试利用生成对抗网络处理各种计算机视觉任务。2017年,Ledig等人[14]首次将生成对抗网络用于图像超分辨率重建(superresolution generative adversarial networks,SRGAN),提升了生成图像的视觉效果。2018年,Wang等人[15]去除掉生成器中所有的BN层,并提出用残差密集块代替原始基础块来训练一个非常深的网络,进一步提升了视觉质量。受其启发,本文在SRGAN模型的基础上,使用支持向量机(support vector machine,SVM)中的hinge损失作为目标函数,在生成网络中使用更加稳定、抗噪性更强的Charbonnier损失函数来代替L2损失,改善使用L2损失函数会使重建图像在普通区域产生斑点伪影的问题。同时去掉了残差块和判别器中会使特征归一化的BN层,并在生成器和判别器中使用谱归一化(spectral normalization,SN)来减少计算开销,稳定模型训练。在激活函数的选择上,本文在判别器中使用了复杂度更小、对噪声鲁棒性更好的指数线性单元(exponential linear units,ELU)激活函数代替LeakyReLU激活函数,通过以上方法进一步提升图像的视觉效果,使其更接近人类的视觉感知。

2 生成对抗网络

受二人零和博弈的启发,2014年,Ian Goodfellow提出生成对抗网络[14]的概念,其由两个神经网络相互竞争的特殊对抗过程组成,具体结构如图1所示。生成网络G(z)捕捉真实样本数据的潜在分布,并生成新的样本数据,判别网络D(x)是一个二分类器,试图区分真实数据与生成网络创造出来的假数据,即判别输入是真实数据还是生成的样本。判别网络会生成一个在[0,1]范围内的标量,代表数据是真实数据的概率。生成对抗网络的训练实际是一个极小极大博弈的过程,优化目标是达到纳什平衡,即生成器生成的样本与真实样本无差别,判别器无法准确判断生成的数据与真实数据,此时判别器认为生成器输出的结果是真实数据的概率为0.5。生成器与判别器的对抗过程如式(1)所示:

其中,V(D,G)表示GAN优化的目标函数,E(·)表示数学期望,x表示从真实的数据分布pdata(x)中获取的数据,D(x)表示真实数据经由判别器判别为真的概率,z为随机噪声信号,生成器G(z)从概率分布P(z)中接收输入z,并把它输入到判别器网络D(x)。

Fig.1 Structure diagram of GAN图1 GAN结构图

判别器部分如式(2)所示:

其中,固定生成器,对于真实样本x,即公式的前一项,希望得到的结果D(x)越大越好,因为得到真样本的结果越接近1越好。对于假样本,希望得到的结果D(G(z))越小越好,也就是1-D(G(z))的结果越大越好,因为它的标签是0。

生成器部分如式(3)所示:

在其优化过程中,没有真样本,希望假样本的标签为1,D(G(z))的结果越大越好,即1-D(G(z))的结果越小越好。

3 本文方法

本文以SRGAN为基础,首先迁移了SVM中的hinge损失作为目标函数,又在原有的感知损失中加入了更加稳定、抗噪性更强的Charbonnier损失函数和TV正则项,最后去除了会使图像特征归一化且会使网络参数大量增加的BN层,并在生成器和判别器中同时加入SN来稳定GAN的训练。

3.1 目标函数

Hinge损失作为SVM中著名的目标函数,常用于二分类问题,在SAGAN[16]和BigGAN[17]中均有应用。SVM优化的目标是最大化两个类之间的边界,这意味着判别器的更新也可以很容易地与SVM的更新相结合,因为判别器更新的目标也可以被认为是最大化两个类之间的边界。这里摒弃了原始GAN的目标函数,在判别器中使用hinge损失,利用支持向量机分离超平面。SVM代价函数值不依赖于边界外的特征向量,完全由支持向量决定。为更新判别器参数,只需将支持向量推向边缘边界。同时,生成器更新尝试将伪特征向量向分离超平面的法向量方向移动,以便将它们分类为真特征向量。然后,通过交替极小化实现判别器与生成器之间的对抗性训练,最终模型的目标函数如式(4)、式(5)所示:

3.2 感知损失

同SRGAN不同,本文在感知损失中加入了Charbonnier损失函数和TV正则项。

为保证生成器构建图像低频部分的正确性,引入了Charbonnier损失。如表1所示,现今基于卷积神经网络的SR方法大多以L2损失优化网络。L2损失可以直接优化PSNR值,但不可避免地会产生模糊的预测。由于L2损失未能捕捉到潜在的HR patch的多模式分布,即同样的LR patch可能有很多对应的HR patch,重构的图像往往过于平滑,无法接近人类对自然图像的视觉感知。与L1损失相比,L2损失虽可以更好地重建图像高频信息,却在普通区域留下伪影。而L1损失虽然能以更清晰的边缘重建为代价函数去除斑点和伪影,却花费更多的重建时间。相比之下,本文使用一个鲁棒的Charbonnier损失函数代替L2损失来优化深度网络处理异常值,提高重构精度,不仅训练时间更少,重建结果的PSNR值也更高。Charbonnier损失函数的数学表示如式(6)所示:

其中,α为超参数,y表示HR图像,G(x)表示SR图像,为Charbonnier损失函数的惩罚项,σ为常数项,这里取值为σ=10-8。

Table 1 Comparison of loss function表1 损失函数对比

与SRGAN相同,本文使用预训练的VGG网络的Relu激活层来重定义内容损失,这里使用的是16层VGG网络,如式(7)所示:

其中,φi,j表示VGG16网络中第i个最大池化层之前的第j个卷积(激活后)得到的特征映射。Wi,j和Hi,j描述了在VGG网络中各个特征映射的大小,β为超参数。

对抗损失同SRGAN一样,如式(8)所示:

其中,G(x)为重建图像;D(G(x))为重建图像的概率;γ为超参数。

为保持图像的平滑性,消除图像重建过程中可能带来的伪影,同时保持图像边缘和细节的清晰,本文在损失函数中加入了TV正则项,如式(9)所示,其中δ为超参数。

综上,本文改进的感知损失如式(10)所示:

3.3 网络模型

Miyato等人[18]首先提出将谱归一化应用于判别器网络来稳定GAN的训练,通过限制每层的谱范数来约束判别器的Lipschitz常数,与其他归一化技术相比,谱归一化不需要额外的超参数调整(将所有加权层的光谱范数设置为1)。此外,计算成本也相对较小。这里,在生成器和判别器中均加入了谱归一化。

在生成网络的设计上,使用5个相同结构的残差块,每个残差块包含两个卷积层,每层由64个3×3大小的卷积核构成,并使用参数化修正线性单元(PRelu)作为激活函数,原始SRGAN中残差块中含有BN层,由于批处理的归一化层会将图像的特征归一化,降低网络的灵活性,这里去除了BN层,简化了网络结构。之后采用2个亚像素卷积层来对图像进行上采样,具体结构如图2所示。

同样,去除判别网络中的BN层。判别器网络结构采用8组卷积层+ELU激活函数的形式,每组卷积核大小均为3×3,深度依次为64、64、128、128、256、256、512、512。如图3所示,经过8层卷积加1层平均池化后,最后通过全连接层Dense将图像数据的维度压平。

模型整体训练细节流程图如图4所示。

Fig.2 Structure of generator network图2 生成器网络结构

Fig.3 Structure of discriminator network图3 判别器网络结构

Fig.4 Training details flow chart图4 训练细节流程图

4 实验结果与分析

4.1 实验设置及过程

本文实验硬件设备为Intel®CoreTMi7-9750H@2.60 GHz处理器,16 GB运行内存,NVIDIA GeForce GTX 1660Ti(6 GB)显卡。相关设计软件有Anaconda3-4.3.14-Windows-x86_64,cuda_10.0.132,PyCharm。

实验使用的数据集为近年来新提出的一组高质量(2K分辨率)的图像数据集DIV2K[19],其包含800张训练图像,100张验证图像,100张测试图像。但由于测试图像还未发布,这里采用基准数据集Set5[20]、Set14[21]来进行测试。训练时,将训练集图像双三次下采样4倍作为网络的输入LR图像。

由于实验设备限制,图像被裁剪为88×88大小,batch_size设置为16,epochs设置为100,生成器和判别器均使用Adam优化器,文中涉及的超参数分别为α=10-4,β=10-3,γ=6×10-3,δ=2×10-6。训练时尝试将判别器的卷积核大小设置为5×5,虽然测试的图像效果有所增强,但是训练参数也增加了将近3倍,增加了计算成本,权衡考虑,实验仍使用3×3的卷积核。

本文使用的评价指标为图像超分辨率领域常用的峰值信噪比(peak signal to noise ratio,PSNR)和结构相似性(structural similarity index measure,SSIM),如式(11)、式(12)所示。PSNR的值越大,说明图像失真越小;SSIM的值越大,说明SR图像与原图像结构越相似。

其中,W、H、C分别表示图像的宽、长和通道数,xˉ表示SR图像,x表示原始图像。

其中,μX、μY分别表示图像X和Y的均值,σX、σY分别表示图像X和Y的方差,σXY表示图像X和Y的协方差,C1、C2为常数。

同时,本文对不同方法在测试集上的运行时间进行比较。由于同一方法每次的测试时间不同,这里取前5次测试时间的平均值来进行比较。

4.2 结果与分析

实验在数据集Set5和Set14上测试本文模型,在与Bicubic、ESPCN等经典图像超分辨率方法比较的同时,也与SRGAN及最新的ESRGAN进行了比较。为了使测试结果更加公平,实验在所有测试方法中均使用DIV2K数据集进行训练,因此对比方法的实验结果与原论文数据有所出入。表2、表3、表4分别为各超分辨率重建方法的测试时间、PSNR和SSIM值的对比。

Table 2 Comparison of testing time for each super-resolution reconstruction method表2 各超分辨率重建方法测试时间对比 s

Table 3 Comparison of PSNR for each super-resolution reconstruction method表3 各超分辨率重建方法PSNR 对比 dB

Table 4 Comparison of SSIM values for each superresolution reconstruction method表4 各超分辨率重建方法SSIM值对比

通过表2发现,ESPCN的测试时间要快很多,可能是由于基于卷积神经网络的方法要比基于生成对抗网络的方法要快;在生成对抗网络的基础上,本文方法要比SRGAN快1 s左右,在Set5上比ESRGAN慢1 s左右,而在Set14上要快很多,说明了本文方法的优越性。从表3、表4可以看出,在4倍放大尺度因子下,相比基于插值的方法,基于学习的超分辨率重建方法在PSNR和SSIM值上有着显著的优势,这是因为深度学习对外部样本具有良好的学习能力,充分融合了学习样本的有效信息。在基于学习的方法中,相比SRGAN,本文方法的PSNR和SSIM值均有大幅提高;相比ESRGAN,除了Set5上的PSNR值,本文方法的其他值均高于ESRGAN,说明本文的网络模型是有效的;但是与ESPCN相比,本文模型提高得并不明显,PSNR值大约提高了0.2 dB,SSIM值大约提高了0.02。表中取得的结果虽有一定进展但似乎不尽如人意。实验又在Set5和Set14测试集中选取“baby”“butterfly”“zebra”“woman”“lenna”等图像来展示上述各方法的可视化效果,如图5~图9所示。从截取区域可以看出,bicubic重建的图像严重模糊,重建效果最差。ESPCN重建的图像比Bicubic重建的图像更加清晰,但是出现较多伪影,SRGAN、ESRGAN与本文方法重建的图像主观上比前两种更好,但是本文重建图像与ESRGAN重建图像的视觉效果要优于SRGAN。本文方法与ESRGAN的重建效果相似但本文方法几乎在全部图像上拥有更高的PSNR和SSIM值。从图中可以看出,本文方法重建的图像在所有方法中PSNR和SSIM值几乎都是更高的,只在“baby”和“lenna”图像中略低于ESPCN,在“butterfly”图像中略低于ESRGAN,但是本文方法重建的图像具有较好的视觉效果,再次证明了更高的PSNR值不一定有更好的感知效果。

Fig.5 Reconstruction comparison graph of image“baby”in Set5 test set图5 Set5测试集中图像“baby”重建对比图

Fig.6 Reconstruction comparison graph of image“butterfly”in Set14 test set图6 Set14测试集中图像“butterfly”重建对比图

Fig.7 Reconstruction comparison graph of image“zebra”in Set14 test set图7 Set14测试集中图像“zebra”重建对比图

Fig.8 Reconstruction comparison graph of image“woman”in Set14 test set图8 Set14测试集中图像“woman”重建对比图

Fig.9 Reconstruction comparison graph of image“lenna”in Set14 test set图9 Set14测试集中图像“lenna”重建对比图

5 结束语

为了使超分辨率重建图像在大尺度因子下也能有更多的高频信息和纹理细节,提高超分辨率重建图像的视觉效果,本文在SRGAN的基础上,提出了一种生成对抗网络的单图像超分辨率重建方法。该方法使用hinge损失作为目标函数,引入Charbonnier损失代替L2损失函数,去掉了残差块和判别器中不必要的BN层,并在生成器和判别器中使用谱归一化来稳定模型训练。本文使用DIV2K数据集进行实验,使用PSNR、SSIM和测试时间作为图像超分辨率重建的客观评价指标,并在实验中证明了与其他方法相比,本文方法重建的图像具有较好的视觉效果、较高的PSNR及SSIM值和较快的测试时间,证明了本文方法的有效性。未来的研究工作将主要放在如何减少训练参数,减小网络结构同时获得更好的重建质量上。

猜你喜欢

分辨率卷积损失
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
好画质不局限于分辨率 探究爱普生4K PRO-UHD的真面目
两败俱伤
ARM发布显示控制器新品重点强化对分辨率的支持
损失
那些损失上百万的演员