单帧图像的耦合生成式对抗超分辨率重建
2020-12-26张贺舒宋公飞
张贺舒,李 涛,宋公飞,2,3
1.南京信息工程大学 自动化学院,南京210044
2.化工过程先进控制和优化技术教育部重点实验室,上海200237
3.南京信息工程大学 江苏省大气环境与装备技术协同创新中心,南京210044
1 引言
超分辨率(Super-Resolution,SR)[1]技术是指从观测到的低分辨率图像重建出相应的高分辨率图像。高分辨率图像具有更高的像素密度,能提供更多的色调、形状、纹理等细节信息,带来更好的视觉体验。现有SR根据输入信息不同可分为两类:从多张低分辨率图像重建出高分辨率图像(多帧图像超分辨)和从单张低分辨率图像重建出高分辨率图像(单帧图像超分辨)。单帧图像超分辨(Single Image Super-Resolution,SISR)利用单幅图像进行超分辨重建,克服了图像序列难以获得和时序性不够的问题。单帧图像由于缺乏多帧图像间的关联信息,难以获取图像降质的先验信息而成为图像超分辨重建的难点。SISR 是一个逆问题,对于一张低分辨率图像可能存在许多不同的高分辨率图像与之对应,为了让逆向图片的结果更接近真实图片,需要让模型在现有的低分辨率像素的色度信息和位置信息约束条件下,在指定领域中来进行可逆训练。传统方法如频域、插值、最大后验概率法等用于SISR时,往往只能提高图像中局部区域的清晰度,对图像整体则会产生钝化、模糊的效果。基于深度学习的SR主要是SISR,为了让模型能够更好地学习和利用约束条件,神经网络直接优化低分辨率图像到高分辨率图像的损失函数进行端到端训练。文献[2]最先提出使用卷积神经网络实现图像超分辨(Super-Resolution Convolutional Neural Network,SRCNN),SRCNN包含特征提取层、非线性映射层和重建层,实验效果明显优于传统算法,但该方法使得网络计算量大、运算周期长。文献[3]提出快速超分辨率卷积神经网络(Fast Super-Resolution Convolutional Neural Network,FSRCNN),增加了网络的深度,以低分辨率图像作为网络的输入,使用反卷积运算将低尺寸的高维特征图转换为高分辨率图像,效果和速度较SRCNN 均有提升。
在图像放大四倍及以上时,上述网络所得到的结果会显得有些平滑,缺少一些细节上的真实感。原因是这些网络使用的代价函数是基于像素点的最小均方差(Mean Square Error,MSE),使得重建结果有较高的信噪比,但缺少高频信息,出现过度平滑的纹理。2016年Ledig等人提出了基于生成对抗网络(Generative Adversarial Network,GAN)的图像超分辨重建算法(Super Resolution Generative Adversarial Network,SRGAN)[4],利用生成对抗网络和感知损失函数使得重建的高分辨率图像与真实的高分辨率图像无论是在低层次的像素值还是高层次的抽象特征及整体概念和风格上都很接近。文献[5]提出了一种可以无监督学习联合分布的耦合生成对抗网络(Coupled Generative Adversarial Networks,CoGAN)。Berthelot等人针对GAN在训练中难以收敛、容易出现模式坍塌[6]等缺点,提出一种边界平衡生成对抗网络(Boundary Equilibrium Generative Adversarial Networks,BEGAN)[7]。
受以上工作启发,本文提出一种改进的单帧图像超分辨率重建算法,主要工作和创新点为:(1)将CoGAN经调整改进后应用于图像超分辨重建;(2)引入自注意力增强卷积,兼顾图像中每个位置及其远端的细节,提升图像的重建效果;(3)对生成器和判别器的学习能力做出平衡,在图像的多样性和生成质量间做出平衡;(4)使用相对判别损失函数作为来自对抗神经网络的目标函数,使得网络结构更加稳定,生成更高质量的图片;(5)与传统对抗神经网络使用随机向量作为网络输入不同,将低分辨率图像作为输入,实现四倍上采样的图像超分辨率。
2 相关工作
2.1 生成对抗网络
生成对抗网络由Goodfellow 等[8]在2014 年第一次提出,是生成式模型最新也是目前最为成功的一项技术。
GAN的主要思想是自由博弈论[9]中的零和博弈,通过两个玩家的对抗实现学习。博弈双方为生成器网络和判别器网络,生成器的主要工作是学习训练样本的数据分布,生成样本,尽可能使其看上去与训练样本一致。判别器是一个二分类模型,目的是准确判断输入样本是否属于真实的训练样本。假设网络输入为z,则生成器的输出为G(z),判别器的输出根据输入不同可分为D(x)和D(G(z)),理想情况下D(x)=1,D(G(z))=0。上述博弈过程可表示为如下目标函数:
式(1)中V(D,G) 是生成对抗网络整体的目标函数,V(D,G)是生成器的目标函数,V(D,G)是判别器的目标函数。生成器和判别器的训练过程交替进行,更新一方参数时,另一方参数固定住不更新。固定住生成器,对判别器进行更新:优化判别器D网络,使其对真实输入判别结果D(x)尽可能大,对生成器输出判别结果D(G(z))尽可能小,即求目标函数V(D,G)的最大值;固定住判别器,对生成器进行更新:优化生成器G网络,尽可能欺骗判别器,让判别器判断生成器生成结果为真的概率D(G(z))趋于1,即求目标函数V(D,G)的最小值。具体实现流程如图1所示。
图1 生成对抗网络
通常情况下,判别器的学习能力优于生成器[10],且生成器和判别器的学习能力并不固定,会随着学习程度而变化,本文在训练网络时使用了动态学习率来改善这一问题,尽可能保持生成器和判别器训练同步。
2.2 耦合生成对抗网络
耦合生成对抗网络将两个GAN 组合在一起,每个GAN 针对一个图像域(image domain),本质上GAN 学习的图像分布p(x′)要足够逼近训练样本分布p(x),则任意输入噪声到训练好的生成器中,都能生成足够像训练样本的图像。在CoGAN 中,因为涉及到域自适应(domain adaption)问题,将单个分布p(x)拓展到联合分布p(x,y)上。在传统domain adaption 中,需要学习或训练一个域适配器(domain adaptor),而domain adaptor需要用源域(source domain)和对应的目标域(target domain)的训练图片来训练。如果直接训练这两个GAN,那么CoGAN得到的是这两个边际分布的内积而不是联合分布即p(x,y)!=p(x)p(y)。因此CoGAN 通过对网络加上无监督的权值共享约束同时求解边界分布的内积分布解使得其可以在两个domain不存在对应图像(corresponding images)的情况下实现无监督的学习一个联合分布,如可以学习图片的颜色和深度两个不同属性的联合分布。
图2 生成网络结构图
3 方法
3.1 生成对抗网络
受以上文献所做工作的启发,本文设计了耦合生成式对抗超分辨率重建算法来完成单帧图像超分辨重建任务。通过构建两个生成器和两个判别器,共享输入进行同步训练,训练方法与经典GAN 网络类似。为了实现更好的图像超分辨重建效果通过“耦合”的方式对生成器2进行指导,“耦合”穿插在正常训练中。D1(Gen_1)和D2(Gen_2)分别为生成器1和生成器2的生成数据是否为真的判别结果,定义:
当e≤0 时认为生成器1重建后图像更为真实,此时拉近生成器2 到生成器1 的距离,将生成器1 网络层前几层的权值共享给生成器2,使得生成器2 获得更优的高频细节特征。当e >0 时认为生成器2 重建后的图像更加真实,则不进行权值共享。
本文中设计每单独训练生成器两次(无权值共享),根据e的大小判断是否“耦合”训练(e≤0 权值共享,e >0 不发生改变)一次。经典的对抗式训练能够拉近生成器生成的分布和真实的数据分布之间的距离,而本文中穿插“耦合”训练的方式不仅能够拉近生成器1 和生成器2分布之间的距离,指导生成器2的数据生成,提高生成器2 的学习能力,而且降低了网络的参数量,提高模型的收敛速度。
由于本文设计的生成网络中生成器间共享输入且会发生“耦合”即权值共享的情况,很可能会发生两个生成器间生成的分布重合,因此,设计网络时进行了随机权值初始化,对于不会发生权值共享的生成网络卷积层使用不同尺寸的卷积核,训练过程中两个生成器始终保持生成结果的差异,没有发生重合的情况。判别器的输出很大程度上影响了网络训练过程中是否会出现“耦合”训练的情况,设计两判别器具有完全相同的网络结构。
以下从网络结构和损失函数设置两个部分进行详细介绍。
使用深度残差网络作为生成网络,深度卷积网络作为判别网络。网络框架结构如图2、图3所示。
如图2所示,生成网络由浅层特征提取[11]模块、基于残差块[12]的特征提取模块、基于自注意力增强卷积[13]的深层特征提取模块、图像上采样模块和图像重建模块五部分组成。当生成器间发生“耦合”时,生成网络中高层语义信息进行权值共享,一方面保证GAN 的生成器能够解码出高层的语义信息,另一方面使得生成器中解码底层细节的层可以将共性的表达转换成各自domain中不同的内容,进而混淆判别器。由此生成网络学习低分辨输入图像ILR到高分辨图像IHR之间的映射关系,进而重建出与ILR对应的超分辨图像ISR,具体操作如下。
(1)浅层特征提取:从低分辨图像ILR中提取小块,将每个小块表示为相应的高维向量,这些向量即为提取的浅层特征。通过一组卷积核对图像进行卷积操作,激活函数为PReLU。
(2)深层特征提取:将上一步骤中的高维向量非线性映射到另一高维向量,得到的每个映射向量为重建的高分辨率图像小块的表示。通过16组残差块(Residual Block)、一组自注意力增强卷积(Augmentedconv)、批归一化实现。传统卷积操作通过低分辨率图像中的空间局部点来生成高分辨率细节特征,仅在局部邻域上工作,可能会错失全局信息。自注意力机制则可以在不增加参数的前提下获取长范围多层次的依赖交互关系,生成图像时能够协调好每个位置的细节和远端的细节。自注意力增强卷积使用自注意力机制来增强卷积,将卷积特征图(强制局部性)连接到自注意特征图(能够建模更长程的依赖),联合注意空间子空间和特征子空间,引入额外的特征图而不是进行精细化处理,纳入相对位置信息的同时维持平移等效性。
(3)图像上采样:聚集高分辨小块,利用两个上采样块将图像放大四倍。上采样块为“卷积+BN+PixelShuffle+PRELU 激活函数”操作,其中,PixelShuffle 算法[14]将大小为H×W的低分辨率输入图像经过Sub-Pixel操作转变为rH×rW的高分辨率图像,参数r为上采样因子(upscaling factor)即图像的扩大倍率,本文中r设置为2。
(4)图像重建:经上采样操作后的特征图通过一层卷积层进行重建,生成高分辨率图像ISR。
如图3 所示,判别网络由七层卷积层构成,前六层卷积层中每两层的卷积核由64×64 递增至512,提取图像特征,最后将提取的512维特征输入到一个卷积核为1的卷积层。判别网络的输入是生成器的输出IHR或真实的高分辨图像ISR,与以往GAN中判别器作为分类器输出真或假的结果不同,本文中判别器的输出仍是与输入同样尺寸的图像形式。
图3 判别网络结构图
3.2 损失函数
生成对抗网络的性能的发挥很大程度上取决于损失函数的定义和使用。针对本文设计的网络模型,最终的损失值由输入图片自身内容方面的损失值和来自对抗神经网络的损失值共同组成。自身内容方面的损失值包括基于像素点的损失值和基于特征空间的损失值。
3.2.1 生成器损失函数
设计生成器损失函数如式(3)所示,各项具体含义如下:
IHR(x,y)为真实高分辨率图像,ILR(x,y)为低分辨率图像,h、w、r为图像的长、宽、通道数,G(ILR(x,y))为生成器重建后的图像。
(2)基于特征空间[15]的感知损失函数,利用训练好的VGG19 网络[16]计算网络生成的图像IHR和真实高分辨率图像ISR的相应特征值,然后通过特征图欧式距离来计算相应的损失函数:
φ(i,j)为第i个池化层之前第j个卷积所得到的特征映射,W(i,j)、H(i,j)为φ的维度。
(3)来自对抗神经网络的损失值能够评价生成器生成的图片IHR和真实图片ISR之间的相似性。本文采用相对损失函数,评估给定的实际数据比随机抽样的假数据更真实的概率,融合两层特征更好地明确了损失函数改进的方向,GAN的结构更加稳定。
假设传统GAN 中生成器的损失函数为如式(6)所示,结合相对判别本文改进为式(7)形式:
g1、g2为标量函数,ISR为重建后的高分辨率图像,D(ISR)为判别器判断重建后的图像是真实图像的。
3.2.2 判别器损失函数
在对抗网络训练中,判别器的学习能力远远强于生成器,针对这一问题,本文除了在训练过程中使用动态学习率以外,在设置判别器损失函数时对生成器和判别器的能力做出平衡。具体损失函数lD设计如式(8)~(12):
f1、f2为标量函数。L(.)为L1 范数损失函数。pi+1为pi的更新,参数p平衡生成器和判别器的学习能力。γ是生成样本损失的期望和真实样本损失的期望的比值,能够在生成图像的多样性和生成质量间做出平衡。
4 实验
4.1 实验准备
实验中使用数据集为针对本文提出的网络结构,使用DIV2K数据集中的800张训练图片作为训练集,分别在Set5 数据集、Set14 数据集、BSD100 数据集上进行测试。将训练集中的图片使用双三次插值方法进行4 倍下采样操作得到的低分辨率图片作为网络输入。使用Adam 优化器,每迭代2 000 次,学习率衰减为1/10。对重建结果使用评价指标图像峰值信噪比(Peak Signalto-Noise Ratio,PSNR)和图像结构相似度(Structural Similarity,SSIM)进行量化评估。与代表方法如双三次线性插值(Bicubic)方法、SRCNN方法、FSRCNN方法以及SRGAN重建效果进行对比。运行环境为Pytorch1.0,16 GB RAM,显卡为NVIDIA GeForce 2080。
4.2 消融实验
本文算法中生成器生成结果分别用Gen_1和Gen_2表示,Gen_2为网络中接收权值共享的对抗网络生成器的输出。
4.2.1 自注意力增强对模型性能的影响
为了验证生成网络中自注意力增强的使用对模型最终重建能力的影响,在保证其他条件相同的情况下,使用卷积代替本文中的自注意力增强卷积的模型attent在Set5数据集上进行测试,如图4所示。计算得到重建4倍后的图像与真实图像的PSNR和SSIM值,结果如表1。
由表1可知,使用自注意力增强模块使得生成图像的PSNR和SSIM值都有一定提高。
4.2.2 相对损失对模型性能的影响
损失函数设置的好坏很大程度上影响了模型的最终重建效果,为此在Set14 数据集上训练了本文模型和未使用相对判别器的输出为损失的模型relat 进行损失函数选择的对比实验。实验对比图如图5所示,量化指标对比如表2所示。
图4 自注意力增强模块使用的重建效果对比图
表1 自注意力增强模块在Set5数据集上的测试结果
图5 相对损失使用的重建效果对比图
表2 相对损失在Set14数据集上的测试结果
由图5可知,模型使用相对损失重建出的花朵图像高频信息更加丰富,边缘锐化效果较好。由表2 中可知,模型使用相对损失重建出的图像取得更高的PSNR、SSIM值。从视觉效果和量化指标均证明相对损失更加适合超分辨重建任务。
4.2.3 平衡学习能力对模型性能的影响
生成器和判别器训练程度的差异直接影响模型最终重建效果,将平衡了生成器和判别器学习能力的本文模型和未平衡的模型balan进行对比,如图6所示,定性对比如表3所示。
图6 平衡学习能力方法使用的重建效果对比图
表果
图6 中,红色方框标出为感兴趣部分,本文方法中在重建花瓣等高频细节中做得更好。由表3 可知本文方法重建的图像在PSNR 和SSIM 指标上较模型balan都有提高。以上均证明了平衡生成器和判别器学习能力这一方法在实现图像超分辨重建上的有效性。
4.3 实验结果与分析
网络训练共进行了20 万次左右迭代,经过16 万次迭代后,各项参数逐步收敛。本文方法较双线性插值(Bicubic)方法在PSNR 和SSIM 值上提升约2.8 dB、0.08,和SRGAN相比提升约0.75 dB、0.04。实验说明了本文提出的耦合生成式对抗超分辨率重建算法在单帧图像超分辨重建上的有效性。
超分辨重建视觉结果对比如图7~9,对图像细节部分进行了局部放大,被红色矩形框标注的是感兴趣区域。从图中可以看出,本文方法重建后的图像和Bicubic、SRCNN、FSRCNN 方法重建的图像相比,轮廓更加清晰;和SRGAN方法相比,Set5数据集中选取示例图像baby(图7),本文算法中图像眼部的睫毛以及帽子上的线条更加清晰;Set14 数据集中选取图像baboon(图8),本文生成图像面部的毛发和嘴部的胡须细节更加明显;BSD100 数据集中选取1 号石像(图9),本文算法生成的石像的眼部上方和底部锯齿花纹的纹理细节信息更加丰富,且SRGAN 生成的石像眼部上方类似于牙齿的形状处出现了明显的模糊和缺陷,这也是GAN网络在生成图像结果方面的一个显著缺陷,本文算法在一定程度上改善了这一问题。结合在Set5、Set14 和Set100数据集上的实验结果,本文算法生成的图像更接近真实的高分辨图片。
使用Inception Score(IS)评估标准针对本文提出的方法和SRGAN生成的图像做平均评估,评估结果如表4所示,与SRGAN 相比本文算法中IS 值提升约0.4,这说明了本文算法模型具有优良性质,生成图片的清晰度和多样性更好,能够增强生成图像的质量。
图7 Set5数据集超分辨重建效果对比图
图8 Set14数据集超分辨重建效果对比图
图9 BSD100数据集超分辨重建效果对比图
表4 IS值对比图
本文使用评价指标图像峰值信噪比PSNR 和图像结构相似度SSIM对重建结果进行量化评估。PSNR反映两幅图像间像素点的误差,值越高,误差越小,则重建图像质量越高。
SSIM 代表重建图像和真实图像间的结构相似性,其值越接近于1,两者结构越相似,重建效果越好。
l(x,y)、c(x,y)、s(x,y)表示图像的亮度、对比度、结构相似性。
在放大因子为4的情况下,将本文算法重建后的图像与bicubic、SRCNN、FSRCNN方法重建图像的PSNR、SSIM值进行对比,如表5、表6所示。可见,本文方法在数据集Set5、Set14、BSD100上均取得了优异的结果,本文方法较结果最好的SRGAN 在PSNR 和SSIM 值上提高约0.75 dB、0.04。由此可证明本文算法结果优异。在Set14 和BSD100 数据集上,Gen_2 较Gen_1 结果更好,证明了本文方法在实现图像超分辨重建上的有效性。
表5 各数据集上超分辨重建结果PSNR值对比 dB
表6 各数据集上超分辨重建结果SSIM值对比
5 结束语
本文提出了一种耦合生成式对抗超分辨率重建算法对单帧图像进行超分辨重建。生成器中使用了自注意力增强卷积,判别器中使用相对损失函数,提高生成样本的多样性和生成质量。对生成器和判别器的能力做出平衡,使得网络训练更加稳定快速。在Set5 数据集、Set14数据集、BSD100数据集上进行实验,相较于其他超分辨方法,本文提出的方法在重建细节和图像边缘锐化方面做得更好,在PSNR 值和SSIM 值上都有一定的提升。使用IS 值作为GAN 生成图像评估标准,将本文方法与SRGAN生成图像做对比,在IS值上提升超过0.4,提高了生成图像的多样性。以上均证明了本文提出的方法在图像超分辨率重建方面的有效性。在大多数情况下本文方法中生成器2 表现优于生成器1,但在数据集Set5上生成器1表现较好,后期工作将探究这一现象的原因。