利用对抗性边缘学习模型生成超分辨率图像
2021-08-03白明明张运杰
白明明, 张运杰, 张 膑
(大连海事大学数学系,大连 116000)
图像超分辨率(image super-resolution, ISR)任务是通过增加图像中单位面积中像素个数来提高图像的空间分辨率。在图像超分辨率重构过程中对已有的低分辨率(low resolution, LR)来恢复出包含丰富纹理细节的高分辨率(high resolution, HR)图像。目前可以将ISR算法分成两大类:单帧ISR重构和多帧ISR重构[1-2]。单帧图像SR重构算法是利用单独一张低分辨率图像来重构出相应的HR图像;多帧图像SR重构算法则是将多帧内容和结构相似的视频序列来重构出一张或多张HR分辨率图像。
卷积神经网络(convolutional neural network,CNN)凭借着强大的非线性拟合能力,在各个领域广受欢迎,特别是在图像处理或者计算机视觉领域大放光彩。Dong等[3]首先将CNN应用到图像超分辨率重建领域,提出了SRCNN(super resolution convolutional neural network),他们利用成对的LR/HR图像来训练一个具有三层卷积的神经网络模型,来拟合LR和HR图像之间的非线性映射关系,从而LR图像可以通过这种非线性映射来重构出相应的HR图像。Kim等[4]在图像识别的深度卷积神经网络VGG(visual geometry group)的启发下,提出了一种网络非常深的超分辨率重建方法VDSR(accurate image super-resolution using very deep convolutional networks),并且证明了随着网络的加深,模型的性能也有较大的提升,与此同时计算代价也是越来越大。Haris等[5]提出了一种持续进行迭代的上采样和降采样的深度反向投影网络(deep back projection network,DBPN)的超分辨率方法,很好地利用了传统算法迭代反投影,并通过深度网络实现出来的结构,为每个阶段的映射错误提供错误反馈机制。Li等[6]采用迭代上采样的方法提出了SRFBN(feedback network for image super-resolution)模型,充分将不同深度的特征信息映射重建高分辨率图像。
Goodfellow等[7]根据对抗博弈的思想提出了生成对抗网络(generative adversarial networks, GAN),GAN的出现将无监督学习的图像重构算法推向了更加高的地位。Ledig等[8]在GAN的基础上提出了图像超分辨率模型SRGAN(super resolution generative adversarial networks),成功地将GAN引入了图像超分辨率的任务中,SRGAN则利用生成网络和判别网络通过相互对抗的方式来训练模型,通过这种对抗竞争关系使得生成网络能够生成纹理更加清晰的SR图像。Wang等[9]在SRGAN的基础上进行改进,在网络中引入了密集残差块,同时还在感知损失函数中加入了风格化损失,目的是为了提高超分辨率图像的总体感知质量。乔昕等[10]在SRGAN的基础上将生成器加入轻量化的密集残差网络,提高了模型的收敛速度;Yang等[11]利用图像的边缘来引导图像的超分辨率重构;Yu等[12]利用自由形式的掩码和边缘引导对受损的图像进行修复。
受以上工作的启发,提出了一种对抗性边缘学习模型来生成超分辨率图像,主要的工作如下。
(1)改进图像纹理边缘检测网络,在该网络中加入亚像素卷积对特征图进行上采样,将LR图像送入该网络可以直接预测出高分辨率图像的边缘二值图。
(2)对图像超分生成网络进行改进,对LR图像用双三次插值进行放大,超分生成网络由编码器、解码器和残差模块组成。在残差模块中加入了扩张卷积来增大模型的感受野,使得模型能学习到图像的全局信息。
(3)对模型的损失函数重新定义,对均方误差损失函数进行替换,由内容损失、基于VGG19网络的风格化损失以及对抗损失三部分来组成新的感知损失函数。
1 相关内容
1.1 基于GAN的图像超分辨率模型
GAN模型是Goodfellow等[7]在2014年被首次提出,GAN是由生成器和鉴别器两个组件构成,分别表示为G和D,通过对抗的方式进行训练来交替优化这两个组件,使模型不断地提高自身的泛化能力。Ledig等[8]将GAN运用到了图像超分领域,SRGAN的主要工作:首先将一幅LR图像输入到生成器G中,通过G来生成HR图像,然后将这张图像送入到鉴别器D网络中,通过D来判断这张图像是由G网络生成的,还是数据集中的原始图像。当鉴别器D不能明显区别G网络生成的图像与真实图像之间的差距的时候,也就表示这个超分模型已经训练完成了。
1.2 基于边缘的图像重构
在过去的几十年里,基于图像先验的图像重构方法取得了较快的发展。在所有的图像先验中,图像的边缘先验信息是最有效的先验之一,因为图像边缘是图像的重要特征[13]。广泛的基于边缘辅助和边缘引导的图像处理方法验证了图像边缘先验的可行性和必要性。例如,Yang等[11]将图像边缘引入到了卷积神经网络模型中,提出了基于深度边缘引导的循环残差学习的图像超分辨率模型。该模型将低分辨率图像经过双三次插值处理,处理后的图像作为网络的输入,然后使用Sobel边缘检测器直接在经过插值放大后的图像上获取图像的边缘,作为边缘提取网络的标签,这可能会引入额外的噪声,导致获取到的图像边缘模糊,并有可能导致重构的图像产生伪影。其次,该模型直接将获取的图像边缘特征图加到低分辨率图像,相加的方法不能最大限度地利用图像的边缘先验。Yu等[12]将图像边缘引导机制用在图像修复的任务中,本文中将对抗性边缘学习引入到图像超分的任务中。
2 基于边缘学习的生成对抗网络
整个网络框架分为两个部分:图像边缘学习部分、图像超分重建部分。这两个部分都由它们自己的生成器/鉴别器对组成,将图像超分辨率问题分解为两个独立的问题,即结构问题和纹理问题。设G1和D1分别为边缘学习网络的生成器和鉴别器,G2和D2为图像生成超分辨率网络的生成器和鉴别器。
2.1 图像边缘学习网络
边缘学习网络主要是由生成对抗网络组成,图像边缘生成网络中通过亚像素卷积来对网络中的特征进行上采样,这样可以直接通过此网络生成放大后的高分辨边缘特征图。具体的网络结构如图1和图2所示。
图1 生成模型G1的结构
图2 判别模型D1的结构
Epred=G1(ILR)
(1)
式(1)中:ILR作为网络G1的输入。生成器和鉴别器上的对抗损失采用变体的铰链损失函数[14]来定义为
(2)
(3)
式中:e(·)表示真实数据或生成数据的概率。边缘学习网络中还包括一个特征点匹配损失函数lFM,它是利用鉴别器中每一个卷积层激活后的特征图来计算损失,可以定义为
(4)
jG1=λG1lG1+λFMlFM
(5)
式(5)中:λG1和λFM是生成网络G1的联合损失函数jG1的正则化参数,这里所有的实验中选择λG1=1,λFM=10。
2.2 图像超分重构网络
图像超分重构网络是图像超分辨率任务的核心,超分重构网络的表达能力直接影响到SR图像的质量,网络结构越深,模型的表达能力越强,重构出来的图像质量越好。对于网络的加深,模型的计算复杂度会倍增,为了降低运行时间,网络采用编码器、解码器和残差网络结构来构造生成器,通过加入SN标准化来稳定模型的训练过程,在残差模块中加入扩张卷积来增大网络的感受野,使模型能学到全局信息。具体图像超分重构网络模型结构如图3和图4所示。
图3 生成模型G2的结构
图4 判别模型D2的结构
(6)
同样对G2网络也采用联合损失函数进行训练,联合损失函数包括L1损失、铰链损失、感知损失和风格化损失。G2和D2的铰链损失表示为
lG2=-eEpred[D2(Ipred,Epred)]
(7)
lD2=e(IHR,Epred){max[0,1-D2(IHR,Epred)]}+
eEpred{max[0,1+D2(Ipred,Epred)]}
(8)
在联合损失目标函数中包括了风格化损失lstyle和感知损失lperc。将预测图像和真实图形分别送入已经在ImageNet数据集上训练完成的VGG-19网络中,然后最小化它们在VGG-19网络的隐层中所产生的特征图之间的曼哈顿距离,这样能够增加预测图像与真实图像标签的相似性,感知损失函数定义为
(9)
(10)
Sajjadi等[16]展示了风格化损失能够缓解由扩张卷积所造成的棋盘伪影。在图像重构阶段,没有使用特征匹配损失。特征匹配损失在边缘生成网络中,能够对对抗损失起到一种正则化的作用,而在图像重构阶段使用的感知损失具有同样的效果,而且它能在图像重构的任务中表现出更加出色的效果。因此完整的联合损失目标函数为
jG2=λl1ll1+λG2lG2+λplperc+λstylelstyle
(11)
在所有试验中令权重系数分别为λl1=1,λG2=λp= 0.1,λs=250来有效地最小化联合损失函数,以生成更加逼真的高分辨率图像。
3 试验
3.1 实验条件
试验所有的代码都是在PyTorch框架下基于python语言来实现的,pytorch的版本为1.20。所有的实验均是在2 × NVIDIA RTX 2080Ti GPU的服务器上完成的,模型训练所使用的数据为公开的2K数据集DIV2K和Flickr2K。服务器的操作系统为Ubuntu18.04版本,CPU的型号为Intel Xeon CPU E5-2678 v3,内核数为48,服务器的运行内存62 GB,CUDA的版本为9.2。
3.2 模型训练的数据
试验训练集采用公开的2K数据集DIV2K和Flickr2K,为了使训练的数据更加丰富,对图像进行旋转、随机裁剪和镜像操作来扩展训练集的数目。在实验中将高分辨率图像的尺寸固定在512×512大小,低分辨率图像根据缩放因子进行相应的下采样,采用双三次插值的方法对图像进行下采样,因此可以得到高/低分辨率图像对,即ILR和IHR,后面就运用这些图像对进行网络训练,训练过程中图像的批次大小设置为8。
3.3 模型训练策略
众所周知,生成对抗网络的训练过程不太稳定为了使网络模型在训练过程中能够更加稳定,采用循序渐进的训练策略,把模型的训练分为了四个阶段。
第一个阶段,将图像边缘生成网络G1与D1网络进行对抗性训练。交替迭代更新各自的网络权重。图5展示使这个阶段4倍超分因子的实验结果。图5(a)表示的是原始的高分辨率图像IHR,图5(b)表示的是Canny边缘检测器在IHR上提取的边缘特征图EHR,图5(c)表示的是边缘生成网络所预测的高分辨率图像边缘特征图Epred。
图5 4倍缩放因子的边缘预测结果
第二个阶段,训练图像重构网络G2。这个阶段的网络输入为ILR和EHR,然后再与D2网络进行对抗性训练,网络的输出就是预测的高分辨率图像Ipred。
第三个阶段,还是训练图像重构网络G2和鉴别网络D2。在EHR和Epred中以50%的概率选择一个,然后和ILR一起作为这一阶段的训练输入。
第四个阶段,直接将图像边缘生成网络G1和图像重构网络G2进行联合训练,并将低分辨率图像ILR输入到网络G1中,可以得到Epred,然后再将Epred与ILR一起送入到G2网络中,与D2网络进行对抗性训练,同时G1和G2的网络权重进行迭代更新。
3.4 模型的评估
图6 不同超分辨率重建方法在Urban100上img_092的4倍重构结果比较
图7 不同超分辨率方法在4倍放大中的重建结果
表1 不同算法的PSNR比较
表2 不同算法的SSIM比较
表3 不同算法的PI比较
从上述测试结果中可以看出本文模型生成的HR图像的PSNR指标略低于Bicubic和SRCNN,但是通过SSIM和PI指标的评价分析和所生成的图像可以看出本文算法在细节纹理上要明显优于其他的算法。SRCNN的PSNR指标之所以这么高,是因为该网络模型是基于均方误差来优化的,优化均方误差的就等价于最大化PSNR指标,但在重构的过程中忽略图像中的高频细节信息。而PI指标的评估更加接近人类视觉的感知,在捕获人类视觉感知方面表现出更好的性能。由图6、图7所示,可以看出本文算法所重构出来的图像,在图像的边缘和纹理上表现得更加清晰和细致,带来更佳的视觉体验感。
4 结论
本文提出了对抗性边缘学习生成超分辨率图像的算法。该算法通过边缘生成网络,使得图像边缘信息在图像超分辨率任务中得到充分的利用。依靠图像的边缘信息来引导和约束图像超分重构网络,以此来生成高频纹理细节更加丰富的高分辨率图像,充分验证了图像边缘先验信息在图像超分辨率任务中具有很好的引导作用。根据定性和定量的分析,本文算法在图像边缘重建方面上较其他算法有很大的改善,重建出来的高分辨率图像视觉效果较好,在超分放大因子较大的情况下,重构出来的高分辨率图像依然没有出现较大的失真现象,同时消除了边缘重影和锯齿的现象。