APP下载

改进的生成对抗网络图像超分辨率重建

2020-02-18黄初华

计算机工程与应用 2020年4期
关键词:低分辨率高分辨率残差

李 诚,张 羽,黄初华

贵州大学 计算机科学与技术学院,贵阳550025

1 引言

超分辨率图像重建(Super Resolution Image Reconstruction,SRIR)[1-2]是近年来计算机视觉和图像处理领域的一个研究热点,由于广泛的应用场景和理论价值,超分辨率图像重建引起了研究者的广泛关注。超分辨率图像重建本质上是如何由一幅或多幅低分辨率(Low Resolution,LR)图像生成一个具有良好视觉效果和接近真实图像的高分辨率(High Resolution,HR)图像的问题。在图像的实际应用中,为了减轻传输或存储负担等问题,通常对图像进行下采样等降质操作,而降质操作具有不可逆性,所以该问题是病态问题。因此从低分辨率图像重建为高分辨率图像的关键是找到低分辨率和高分辨率图像之间的映射关系。

目前主流的超分辨率重构技术大致分为三类:基于插值[3]、基于重建[4-5]和基于学习[6-8]的方法。基于插值的方法,例如最近邻域插值和双三次插值,该类方法能有效地增强图像分辨率,但图像边缘部分会出现模糊。基于重建的方法重点是恢复图像丢失的高频信息,该类方法简单且工作量低,但无法处理结构比较复杂的图像。基于学习的方法是近年来的主流方法,该类方法旨在通过对大量数据样本的学习,建立低分辨率图像和高分辨率图像之间的映射关系。其中,基于深度学习[9]的超分辨率重建相比于传统只能人工提取特征进行相对简单的函数拟合的浅层学习,深度学习可以自动学习得到层次化的特征表示,实现更加复杂的非线性函数模型逼近。基于深度学习的算法性能超越了之前的很多经典算法。

Dong等人[10]首次将卷积神经网络应用于超分辨率重建上,提出基于卷积神经网络的超分辨率(Super-Resolution Convolutional Neural Network,SRCNN)算法,使用3个卷积层,将图像特征从低分辨率空间非线性映射到高分辨率空间,重建效果优于其他传统算法。Kim等人[11]加深了卷积层数,提出了一个20层的深度卷积神经网络模型(Very Deep Convolutional Networks,VDSR),提高了图像的重建质量。Kim等人[12]提出的基于深度循环神经网络的图像超分辨率重建(Deeply-Recursive Convolutional Network,DRCN)和Tai等人[13]提出的基于深度循环残差网络的图像超分辨率重建(Deep Recursive Residual Network,DRRN)均在网络中加入循环神经网络,大幅度减少了网络参数。Tong等人[14]提出使用密集跳跃连接实现图像超分辨率重建(Super-Resolution Dense Skip Connections Network,

SRDenseNet),脱离了加深网络层数和加宽网络结构来提升网络性能的定式思维,有效地提高了重建质量。Zhang等人[15]将残差块(Residual Block)和密集块(Dense Block)整合为残差密集块(Residual Dense Block,RDB),提出残差密集网络(Residual Dense Network,RDN),并应用在超分辨率重建上,提高重建质量。

随着近年来生成对抗网络(Generative Adversarial Networks,GAN)的出现,Ledig等人[16]首次将GAN应用到超分辨率重建上,提出了基于生成对抗网络的超分辨率重建(Super-Resolution Generative Adversarial Networks,SRGAN),在将残差网络(Residual Network,ResNet)作为生成器部分的基础上,增加一个判别器,使用MSE损失函数和VGG损失函数来重建逼真的超分辨率图像,实验证明,生成对抗网络能适用于超分辨率重建。之后,Lim等人[17]提出的增强深度残差(Enhanced Deep Super-Resolution,EDSR)网络在SRGAN的结构基础上修改了残差块的设计,去除了其中的批归一化(Batch Normlization,BN)层,实验证明,去除BN层后可以节省约40%的GPU内存空间。

由于生成对抗网络在超分辨率重建领域的优势,本文基于生成对抗网络框架,提出基于残差密集网络的生成对抗网络的图像超分辨率重建算法。在SRCNN基础上添加判别器网络,扩展成生成对抗网络框架,并分别架构生成器网络和判别器网络:使用残差密集网络作为生成对抗网络的生成器网络,将残差块替换为残差密集块,加深网络深度以及提高特征信息的利用率;使用PatchGAN作为判别器网络部分,解决训练不稳定和收敛慢的问题。

2 相关工作

2.1 生成对抗网络

GAN是Goodfellow等人[18-19]在2014年提出的一种生成式模型。其思想受博弈论中的二人零和博弈(即二人的利益之和为零,一方的所得正是另一方的所失)的启发,由一个生成器和一个判别器构成。生成器捕捉真实数据样本的潜在分布,并生成新的数据样本;判别器是一个二分类器,判别输入的是真实数据还是生成数据。生成器和判别器均可采用深度神经网络模型实现。GAN发展至今,其家族在不断扩大,常用的模型有DCGAN(Deep Convolutional Generative Adversarial Networks)[20]、WGAN(Wasserstein GAN)[21]、PatchGAN[22]等。目前GAN已经在图像处理、计算机视觉、语音识别等方面得到了应用。相较于其他方法,加入GAN算法的模型能充分利用图像信息,因此模型的准确率均有提高。

2.2 SRCNN算法

Dong等人[10]提出了基于卷积神经网络的超分辨率算法,将深度学习应用到图像超分辨率重建中,这是首次将卷积神经网络(Convolutional Neural Network,CNN)应用到超分辨率重建领域。

SRCNN直接学习高低分辨率图像之间的端对端映射。映射表现为一个深度卷积神经网络,输入的是低分辨率图像,输出的是高分辨率图像。SRCNN网络结构如图1所示。SRCNN不像传统的稀疏表示的图像超分辨率重建分开处理每个部件,它共同优化了所有的层,有很好的重建质量,在实际应用中也取得了很好的效果。

SRCNN从总体上大致由特征提取和表示、非线性映射、重建三部分组成,每层负责特定的任务。

图1 SRCNN网络架构

图像块提取和表示:该操作从低分辨率图像中提取多个特征块,并将每个特征块表示为高维度向量,这些向量构成第一层的特征图。

非线性映射:该操作是非线性地将来自第一层的每个高维向量映射到另一个高维向量上。每个映射向量都是一个高分辨率图像块的表示,这些映射向量构成了第二层的特征图。

重构:该操作集合了上一层的高分辨率图像块,来生成最终的高分辨率图像。

3 本文方法

3.1 算法结构

图像超分辨率重建通常是通过提取低分辨率图像的细节信息、重建等步骤得到相应的高分辨率图像,在特征信息的利用上存在着利用率不高的问题。本文通过增加一个判别器网络,将原本基于卷积网络框架拓展成基于生成对抗网络框架,用生成对抗网络来约束图片。其中生成器网络部分使用RDB提高特征信息利用率,提高生成图像质量。判别器网络部分使用PatchGAN来提高收敛速度和提高重建图像质量。本文网络框架如图2所示。

本文主要在网络架构和特征利用方面对SRCNN进行改进,与SRCNN和SRGAN结构相比,本文有以下特点:

(1)使用残差网络和密集网络结合后的残差密集网络来替代SRCNN中特征提取和表示、非线性映射、重建三部分,使用残差网络增加网络的深度,使用密集网络提高对图像特征信息的利用,最终提高重建图像的质量。

(2)使用PatchGAN替换GAN的原始判别器网络部分,与SRGAN的判别器网络部分相比,PatchGAN输出的是一个N×N的矩阵。本算法在原本SRGAN可以提高重建图像质量的基础上,将输入图像以图像块的形式进行处理,可以减少参数量和运算量,以解决收敛慢的问题。

3.2 生成器网络

SRCNN算法以及一些基于SRCNN的算法,很多情况都只是通过加深网络的深度来提高重建图像质量,这种加深网络深度方法虽然可以提高重建图像的质量,但每层的特征信息无法被重复利用,导致特征利用率低,重建图像质量不高。本文算法使用将残差网络和密集网络结合在一起的残差密集网络构成生成器网络,在使用残差网络加深网络深度的基础上,使用密集网络,通过RDB将所有具有相同特征映射大小的特征图连接起来,每层的输入都附加了前面所有层的输出,通过从前面层到后续层的短路径不仅可以缓解梯度消失问题,而且增强了特征传播,促进了特征再利用,保留了前向传播的特性。这种卷积层和激活层的输出附加到后面卷积层的输入的方法,使得网络具有连续记忆的功能,每层的状态得以连续传递,将每层的特征信息重复利用,解决SRCNN中特征信息利用率低的问题。

图2 本文网络架构

生成器网络架构使用RDB构建,主要由输入、特征提取、残差密集块、特征融合、全局残差学习(Global Residual Learning,GRL)、重建和输出组成。每层详细介绍如下:

(1)特征提取层:使用3×3卷积核的卷积层对输入的低分辨率图像进行卷积处理,提取特征图。

(2)RDB层:由RDB组成,结构如图3所示,使用由卷积层和激活层组成的特征提取单元多次重复串接组成,这样可以在获得较深的网络层数的前提下,通过密集连接重复利用前后特征信息。LRL(Local Residual Learning)为局部残差学习。本文引入EDSR[17]的网络架构特点删除残差网络结构中的BN层,因为使用BN层来归一化特征会使得网络参数大量增加,占用较多内存,不利于网络收敛,所以生成器网络部分删除BN层,提高收敛速度。

图3 RDB块结构

(3)特征融合层:将每个残差块输出的特征图进行连接,形成密集特征融合。

(4)GRL层:在特征图进行重建之前,将输入图像经过底层卷积操作后得到的特征图再次融合到经过残差块提取的特征图中,形成全局残差学习,这样做有利于网络训练和梯度保持。

(5)重建模块:使用反卷积层对特征图进行扩充处理,反卷积可以加速超分辨率图像的重建过程,同时获取的大量LR图像的纹理信息可以被用于推断HR图像的细节信息。

3.3 判别器网络

判别器部分受到Isola等人[22]提出的基于图像块的判别器PatchGAN的启发,设计6层的卷积神经网络作为判别器网络。该判别器网络由卷积层、批归一化层、激活层和最大池化层交替构成,卷积层和最大池化层的步幅均设置为2,以增大输出特征的感受野,批归一化层的使用可以提高判别器网络的泛化能力。

GAN一般情况下的网络结构,在一些人的实验中已经表明对于要求高分辨率、高细节保持的图像领域并不适合,与SRGAN的原本判别器网络相比,PatchGAN辨别器网络对小尺寸的图像块进行运算,大大减少了参数数量和运算量,缓解了原本GAN网络收敛慢的问题。而Isola等通过实验验证,当图像块的尺寸大于70×70时,生成图像的效果已经十分接近对真实图像进行判定的结果。因此,本文算法使用判别器网络部分可以提高重建图像质量和解决收敛速度慢的问题。

3.4 损失函数

本文采用均方误差(Mean Square Error,MSE)损失和对抗损失的加权和作为训练生成器网络的目标函数,而未使用SRGAN中的VGG损失。基于像素的MSE损失用于保留图像的低频部分,对抗损失用于恢复图像的高频信息。损失函数表达式如下:

LG=LMSE+αLA

其中,LG是生成网络的总体损失,LMSE为MSE损失,LA为对抗损失,α为加权系数权重。

3.4.1 MSE损失

为获得高质量的重建图像,算法采用MSE损失计算生成图像与目标图像对应像素的欧几里德距离。MSE更接近人的视觉感知,对数值差异较大的异常像素点更加敏感,但难以捕捉图像感知上的区别,因此将MSE作为目标函数的网络模型生成的图像趋于平滑。而像素是数字图像的最小单位,减小像素间的差距能够更加快速、有效地保证图像信息的准确性,因此MSE损失虽然会丢失图像的一部分高频信息,但能够很好地恢复图像的低频内容。

MSE损失函数表达式如下:

式中,IHi代表高分辨率图像,ILi代表低分辨率图像,G(x,θ)代表生成网络学习低分辨率图像和高分辨率图像之间的映射函数。

3.4.2 对抗损失

基于生成网络和对抗网络的对抗机制,参照SRGAN网络的对抗损失函数,设定对抗损失的表达式如下:

其中,D(G(ILi,θ))为判别器网络判定生成图像为真实图像的概率。

4 实验与分析

4.1 训练细节

本文方法基于PyTorch框架进行实验,实验的硬件参数如下:IntelCorei7-4790K 4.00 GHz,NVIDIA GTX1060 6 GB。采用NTIRE2017中提供的DIV2K训练集,该训练集由1 000幅RGB图像组成,其中训练集包含800幅图像,验证集和测试集各100幅图像,所有图像至少在垂直或水平上包含2 040像素。训练部分不采用原本SRCNN的优化,而使用Adam算法进行优化,总迭代次数为100次,初始学习率设置为10-4,随迭代进行,微调学习率,损失函数的参数α经交叉验证设为0.1。

4.2 实验测试

为验证本文的超分辨率重建算法性能,实验选用通用的基准测试集Set5、Set14、BSD100进行测试,并将测试结果与Bicubic[23]、SRCNN[10]、VDSR[11]、DRCN[12]、SRGAN[16]等算法在主观效果和客观指标两方面进行对比。为了保证客观准确的对比,所有网络模型均在放大因子为4的比例下进行实验测试,由于测试平台配置不同,所得测试结果可能与原文献数据略有不同。

4.2.1 主观效果

为保证对比效果,从Set5和Set14数据集中各选取一张图片,在放大4倍的情况下,比较各个算法的实际重建情况。不同算法在Set5和Set14上的重建效果图如图4和图5所示。

图4 Set5数据集上重建效果

图5 Set14数据集上重建效果

图4表示的是在Set5测试集上,放大因子为4时,本文提出的超分辨率重建算法和其他算法的对比结果。Set5测试集中婴儿的图像在放大细节后可以观察到,本文提出的算法重建图像质量更好,细节部分纹理更加清晰。图5表示的是在Set14测试集上,放大因子为4时。本文提出的超分辨率重建算法和其他算法的对比结果。通过Set14测试集中狒狒图像在边缘处放大后的细节可以看出,本文重建算法的纹理与Bicubic、SRCNN、VDSR等算法重建的图像对比,本文算法重建后更加清晰。

4.2.2 客观效果

本文采用目前图像处理中常用的两个检测指标:峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似性(Structural Similarity,SSIM)作为客观评价指标,从而更准确地表明本文算法相较其他算法的优越性。PSNR反映两幅图像对应像素点间的误差,其值越高表明输出图像失真越少,图像重建质量越好。SSIM是表示两幅图像相似度的评价指标,其值越接近于1代表输出图像越接近于原始高分辨率图像,即重建效果越好。

在放大因子为4的情况下,仅对本文算法的生成器网络部分进行性能测试,在基准数据集Set5、Set14、BSD100下测试其平均PSNR值(dB)和测试时间(s),如表1所示。

表1 各数据集上生成器网络测试结果

在放大因子为4时,在基准数据集Set5、Set14、BSD100下与Bicubic[23]、SRCNN[10]、VDSR[11]、DRCN[12]、SRGAN[16]算法对比PSNR和SSIM值如表2和表3所示。可以看出,本文方法在Set5、Set14和BSD100上PSNR的效果要普遍优于比较算法,比较算法的PSNR值比最高的SRResNet算法分别高0.34 dB、0.28 dB和0.10 dB,除了在Set14上的SSIM值要比SRResNets低0.033以外,SSIM值在Set5和BSD100上要高0.003 4和0.003 1,因此可以证明本文算法要优于其他算法。

表2 标准数据集Set5、Set14和BSD100上PSNR值对比dB

表3 标准数据集Set5、Set14和BSD100上SSIM值对比

5 结束语

本文针对图像超分辨率重建中特征信息利用率低的问题,结合生成对抗网络和卷积网络的网络结构,提出了基于残差密集生成对抗网络的图像超分辨率重建算法,通过将SRCNN扩展为生成对抗网络框架,构建网络的生成器和判别器部分,定义损失函数。本文提出的算法可以较好地增强特征传播,促进特征再利用,提高特征利用率。通过实验部分的主观效果和客观数据对比,可以看出本文算法能够较全面地提取低分辨率图像特征,较好地提高对特征信息的重复利用率,较充分地恢复图像的纹理信息,在加速模型收敛的同时,进一步提升图像重建质量。未来研究工作主要是对特定的领域或特定的场景图像进行超分辨率重建,以及将基于深度学习的方法与传统方法相结合实现更优的超分辨率重建算法。

猜你喜欢

低分辨率高分辨率残差
红外热成像中低分辨率行人小目标检测方法
基于双向GRU与残差拟合的车辆跟驰建模
基于残差学习的自适应无人机目标跟踪算法
基于边缘学习的低分辨率图像识别算法
高分辨率合成孔径雷达图像解译系统
基于递归残差网络的图像超分辨率重建
树木的低分辨率三维模型资源创建实践
综合电离层残差和超宽巷探测和修复北斗周跳
高分辨率对地观测系统
基于Curvelet-Wavelet变换高分辨率遥感图像降噪