基于生成对抗网络的单图像超分辨率重建

2021-11-26 07:48朱海琦李定文
吉林大学学报(理学版) 2021年6期
关键词:残差分辨率卷积

朱海琦, 李 宏, 李定文, 李 富

(1. 东北石油大学 电气信息工程学院, 黑龙江 大庆 163318; 2. 大庆钻探工程公司 钻井一公司, 黑龙江 大庆 163458)

图像超分辨率是指从一张低分辨率图像或图像序列重建出含有更多高频信息和纹理细节的高分辨率图像, 在人脸识别[1]、视频监控[2]、卫星遥感[3]和医学成像[4]等领域应用广泛. 传统的图像超分辨重建方法主要有3类: 基于插值的[5]、基于重建的[6]和基于学习的[7-8]方法. 但上述方法重建出的图像存在边缘模糊、丢失高频信息或只能处理结构简单的图像等问题. 由于神经网络具有较强的拟合建模能力, 可在数据驱动下充分提取图像的本质特征, 所以基于深度学习的超分辨率重建方法能得到更好的图像视觉效果. Dong等[9]将卷积神经网络(convolutional neural network, CNN)应用于图像超分辨率, 提出了一种基于CNN的超分辨率重建算法(super resolution convolutional neural network, SRCNN), 该方法使用3层卷积神经网络学习低分辨率图像和高分辨率图像之间的映射, 其重建效果好于其他传统算法; Shi等[10]采用亚像素卷积层上采样, 提出了一种亚像素卷积神经网络(efficient sub-pixel convolutional neural network, ESPCN)方法, 提高了图像的重建质量; He等[11]设计了一种残差网络(residual network, ResNet)解决网络结构较深时无法训练的问题; 在此基础上, Kim等[12]提出了一种基于深度卷积神经网络的超分辨率算法(very deep convolutional networks, VDSR), 扩大了图像的感受野; Lai等[13]提出了基于Laplace金字塔网络的超分辨率重建算法(deep Laplacian pyramid networks for fast and accurate super-resolution, LapSRN), 通过级联方式逐步上采样, 很好地实现了图像中纹理细节的重建; Tong等[14]设计了一种基于密集跳跃连接网络的超分辨率重建算法(super-resolution using dense skip connections, SRDenseNet), 有效提高了图像重建质量; Li等[15]提出了一种反馈网络实现超分辨率重建(feedback network for image super-resoluition, SRFBN), 提高早期重建能力以恢复出高质量的重建图像; Ledig等[16]将生成对抗网络(generative adversarial networks, GAN)应用于图像超分辨率, 提出了一种基于生成对抗网络的超分辨率重建算法(super-resolution generative adversarial networks, SRGAN), 利用感知损失驱动重建出逼真的高分辨率图像.

受文献[16-19]的启发, 本文设计一种新的生成对抗网络结构, 将GCNet模块和像素注意力机制相结合, 形成通道和像素的双重注意力机制模块(channel and pixel attention mechanism), 简称为CP模块. 首先, 在生成器网络中采用WDSR-B残差块代替传统的残差块充分提取图像的浅层特征信息; 然后, 在每个WDSR-B残差块后加入一个CP模块学习不同特征通道的重要程度, 抑制不重要的特征并学习图像中的高频信息; 最后, 在鉴别器的浅层和深层也分别加入一个CP模块, 并用谱归一化[20](spectral normalization, SN)代替批标准化(batch normalization, BN)减小计算开销、稳定训练.

1 预备知识

1.1 生成对抗网络

生成对抗网络[21]结构包括生成器网络和判别器网络, 两个网络通过相互对抗的方式进行学习, 最终达到Nash均衡, 其模型结构如图1所示. 随机噪声z输入生成器G得到假数据样本G(z), 生成器的目的是学习真实数据样本的分布, 并尽可能生成与真实样本高度相似的数据样本. 判别器D是一个二分类器, 输入由生成器生成的假样本G(z)和真实样本数据x两部分组成, 输出是一个概率值, 表示生成器生成的假数据样本被认为是真实数据的概率, 若输入来自真实样本, 则为1, 否则为0. 与此同时, 判别器会将输出反馈给生成器, 用于指导生成器的训练. 通过这种方式不断地对抗训练, 理想情况下达到判别器D无法判断输入数据来自真实样本还是由生成器生成的假样本, 即D每次输出为1/2时为模型最优. GAN的目标函数为

(1)

其中V(D,G)表示GAN待优化的损失函数,Pdate(x)表示真实数据分布,Pz(z)表示随机噪声分布.

1.2 WDSR-B残差块

由于目前的网络结构在提取特征过程中存在丢失浅层信息的问题, 即使后来通过在低层和深层网络之间引入密集连接或跳跃连接解决了该问题, 但结构相对复杂, 所以Yu等[17]提出了一种使通道数先变多后变少的WDSR残差块, 其原理是在激活函数前的特征图通道数越多, 低层特征信息越容易传递到深层网络, 从而提高网络性能. WDSR-B残差块的结构如图2所示. 由图2可见, 对于输入特征x, 首先通过1×1卷积核将特征图通道数扩大r倍, 然后通过ReLU激活函数进行非线性映射, 并引入线性低秩卷积(linear low-rank convolution)将一个大卷积核分成两个低秩卷积核, 1×1卷积用于减小特征通道数, 3×3卷积用于进行空间特征提取, 最后将提取结果加上原来的特征输入得到WDSR-B残差块的最终输出.

图1 生成对抗网络模型Fig.1 Model of generative adversarial network

图2 WDSR-B残差块结构Fig.2 WDSR-B residual block structure

1.3 GCNet模块

生成对抗网络大多数通过卷积操作学习图像特征, 但卷积操作只适合在局部邻域内建立像素关系, 当学习远距离范围特征信息时效率较低, 无法捕捉特征通道之间的依赖关系, 所以Cao等[18]结合NLNet[22]和SENet[23]的特点提出了一种既能利用全局上下文信息建模, 又轻量的结构, 称其为GC模块, 其结构如图3所示.

图3 GCNet模块Fig.3 GCNet block

图4 像素注意力机制模块Fig.4 Pixel attention mechanism block

1.4 像素注意力机制

传统卷积神经网络对像素特征的处理是平等的, 但图像特征中的高频信息分布并不均匀, 低频信息和高频信息的像素权重明显不同, 所以Qin等[19]采用了一种像素注意力机制关注高频信息, 其结构如图4所示.

2 本文方法

本文在SRGAN网络的基础上, 首先用WDSR-B残差块代替SRGAN网络中使用的传统残差块, 然后充分结合了GCNet模块和像素注意力机制两者的优势, 提出既关注特征通道的相关性又可以捕获图像高频信息的CP模块, 并受文献[18]启发在每个WDSR-B残差块后加一个CP模块, 此外, 在鉴别器中的浅层和深层分别引入一个CP模块, 并且去除了不利于图像超分辨率重建和大量增加网络参数量的批归一化层, 在生成器和鉴别器分别采用权值归一化(weight normalization, WN)和谱归一化加速模型收敛和稳定训练, 最后在损失函数中添加整体变分(TV)正则项约束噪声.

2.1 生成器网络

设计生成器网络时, 先使用一个9×9的卷积层对输入低分辨率图像进行特征提取, 然后通过16个WDSR-B残差块和CP模块, 每个WDSR-B残差块包含两个1×1卷积层和一个3×3卷积层, 并使用ReLU作为激活函数, 本文在残差块中选择r=4, 即特征通道数在ReLU激活函数前先扩大4倍, 然后通过两次卷积将通道数变回原来的通道数量(通道数先减小为扩大后的0.8倍, 然后再减小到原来的通道数量). 在CP模块中所有的卷积层均为1×1卷积, 在通道注意力阶段的全局信息上下文建模后, 对特征通道数进行一个先缩小16倍再扩大16倍的变化, 在像素注意力阶段先通过一个1×1卷积将输入通道数缩小8倍, 然后经过ReLU激活函数后再用一个1×1卷积将通道数扩大到原来的通道数. 特别地, 在WDSR-B残差块和CP模块阶段输入通道数均为64, 然后通过跳跃连接的方式进行特征融合, 生成器中的归一化层采用权值归一化, 最后通过亚像素卷积层进行图像上采样到相应放大因子的高分辨率图像大小, 整体过程如图5所示. 图5中的k,n,s分别表示卷积核大小、通道数和卷积步长.

图5 生成器网络结构Fig.5 Generator network structure

2.2 判别器网络

设计判别器网络时, 采用1组卷积层+Leaky ReLU激活函数形式和7组卷积层+谱归一化+Leaky ReLU激活函数形式, 每个卷积层的卷积核大小均为3, 通道数依次为64,64,128,128,256,256,512,512, 在第1个和8个卷积层后分别加入一个CP模块, 每个CP模块的输入通道数分别为64和512, 然后通过全连接层+Sigmoid将图像数据维度铺平对图像分类判断真假, 判别器的结构如图6所示.

图6 判别器网络结构Fig.6 Discriminator network structure

2.3 损失函数

本文方法的损失函数由均方误差(mean square rrror, MSE)损失、对抗损失和TV损失的加权和组成. MSE损失衡量了生成图像和真实图像的像素级差异, 更符合人的视觉感知; 对抗损失体现了网络生成器和判别器互相博弈的过程, 有利于恢复图像的高频信息; TV正则项有利于保持生成图像的平滑性, 减少噪声. MSE损失、对抗损失和TV损失数学表达式分别为

L=LMSE+Ladv+LTV.

(5)

3 实 验

为验证本文算法的超分辨率重建性能, 本文在VOC2012数据集上进行训练, 其中包括16 700张训练图像, 425张验证图像. 实验在放大因子为2倍和4倍的条件下, 使用的测试集为Set5,Set14,BSD100和Urban100; 在放大因子为8倍的实验中使用的测试集为SunHays80. 实验在Intel(R) Xeon(R) Gold 5218处理器, NVIDIA Tesla P100 16 GB显卡, Pytorch环境下进行.

3.1 参数设置

由于受实验设备条件限制, 在实验过程中训练集的图像被裁剪为88×88, batch_size=64, 实验迭代次数为100次, 生成器和判别器使用Adam算法进行优化, 初始学习率设为10-4, 后20次迭代学习率调整为10-5, 本文涉及的超参数分别为α=10-3,β=2×10-8.

3.2 结果与分析

先将本文算法在数据集Set5,Set14,BSD100和Urban100上进行放大2倍和4倍的测试, 在数据集SunHays80上进行放大8倍测试, 再将重建效果与传统的双三次插值法(Bicubic)[24]、ESPCN算法[10]、SRCNN算法[9]和SRGAN算法[16]进行主观和客观的对比. 为使测试结果更公平, 所有方法均使用VOC2012数据集进行训练; 由于测试平台配置和所用框架不同, 对比算法测试结果可能与原文献不一致.

图7 不同方法在Set5测试集中图像“baby”重建效果对比Fig.7 Comparison of reconstruction effects of image “baby” in Set5 test set by different methods

图8 不同方法在Set14测试集中图像“butterfly”重建效果对比Fig.8 Comparison of reconstruction effects of image “butterfly” in Set14 test set by different methods

图9 不同方法在Set14测试集中图像“Lenna”重建效果对比Fig.9 Comparison of reconstruction effects of image “Lenna” in Set14 test set by different methods

在主观视觉上, 不同算法放大4倍的重建效果分别如图7~图9所示. 由图7可见, 在婴儿的局部眼睛放大图中, Bicubic算法重建的图像最模糊, ESPCN和SRCNN算法重建的图像比Bicubic算法重建的图像更清晰, 但出现了伪影, SRGAN算法和本文算法重建图像的效果相似且好于前3种算法, 但本文算法重建的图像眼睛含有更多的细节信息, 睫毛和人眼轮廓更清晰. 由图8和图9可见, 在翅膀和头发的放大图中, 本文算法重建的图像与其他算法重建的图像相比纹理细节更丰富, 恢复了更好的边缘信息. 因此, 本文算法重建的图像取得了最好的视觉效果, 原因是本文方法通过引入WDSR-B残差块和CP模块提高了浅层特征利用率, 并学习到了特征通道的相关性和图像高频信息, 从而可以成功地捕捉到图像的几何特征和细节纹理信息.

本文采用的客观评价指标为峰值信噪比(peak signal to noise ratio, PSNR)和结构相似性(structural similarity index measure, SSIM). PSNR反应了真实图像和重建图像对应点的像素差异, 其值越大表示图像失真越小, 重建质量越好; SSIM表示真实图像和重建图像的相似程度, 其值越接近1表示重建效果越好. 在放大因子为2,4,8的条件下, 不同算法在基准数据集的测试结果列于表1.

表1 不同方法的客观指标对比结果

由表1可见, 本文算法除在放大因子为2和测试集为BSD100的情形下PSNR值略低于SRGAN算法外, 其他情况均取得了最优的结果. 在放大因子为4的情形下, 本文算法在Set5,Set14,BSD100和Urban100测试集上的PSNR值相比SRGAN算法分别提高0.63,0.40,0.31,0.48 dB, SSIM值分别提高了0.021 9,0.020 3,0.016 9,0.023 7; 在放大因子为8的情形下, 本文算法在SunHays80测试集上的PSNR值和SSIM值相比SRGAN算法分别提高了0.37和0.015 3, 表明了本文算法在超分辨率重建上的有效性.

综上所述, 针对在图像超分辨率重建过程中浅层特征信息利用不充分、难以学习各特征通道的重要程度和丢失高频信息的问题, 本文结合SRGAN网络的优点提出了一种新的生成对抗网络用于图像超分辨率. 该网络在生成器中引入WDSR-B残差块和CP模块, 并使用权值归一化代替批归一化, 在判别器网络的浅层和深层分别加入一个CP模块, 并使用谱归一化代替批归一化, 最后在损失函数中加入TV正则项. 与其他经典算法进行实验对比的结果表明: 本文方法在主观上重建出了较好的视觉效果, 重建了逼真的细节纹理信息和几何特征; 在客观评价指标上, 本文方法取得了较高的PSNR和SSIM值, 从而验证了本文方法在超分辨率重建上的有效性.

猜你喜欢
残差分辨率卷积
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
EM算法的参数分辨率
从滤波器理解卷积
原生VS最大那些混淆视听的“分辨率”概念
基于傅里叶域卷积表示的目标跟踪算法
基于深度特征学习的图像超分辨率重建