陈蔚瑞, 侯培国
(燕山大学 电气工程学院,河北 秦皇岛 066004)
图像超分辨率重建技术,是采用特定的算法将低分辨率图像恢复成相应高分辨率图像。由于超分辨率重建技术可以增加图像分辨率,因此在相关领域都有广泛的应用。
传统的超分辨率重建算法一般分为3种:①基于插值的算法[1];②基于退化模型的算法[2];③基于学习的算法[3]。基于学习的算法是利用了大量的训练数据,在其中学习低分辨率图像(LR)和高分辨率图像(HR)的某种对应关系,并通过这种对应关系预测低分辨率图像对应的高分辨率图像。由于深度学习的不断发展,基于学习的算法已成为目前研究的热点[4,5]。
2014年Dong C等[6]将卷积神经网络首次运用于图像超分辨重建技术,提出了超分辨率卷积神经网络(super-resolution convolutional neural network,SRCNN)网络。SRCNN网络由3个卷积层构成,得到了当时在图像超分辨率重建技术中最佳的效果。2016年Dong C等[7]提出了加速超分辨率卷积神经网络(fast super-resolution convolutional neural networks,FSRCNN),将反卷积层应用到模型中放大图片的尺寸,反卷积层的使用不需要在网络外部进行图像放大尺寸的操作,与SRCNN相比FSRCNN的速度有较大提升;同年,又提出了亚像素卷积神经网络(efficient sub-pixel convlutional neural network,ESPCN)亚像素卷积层的概念[8],在超分辨率重建过程中,其速度和性能都得到了提升。增加网络的深度能够提升模型的性能,使得网络能够从输入图像中学习到更多的信息,但是直接堆叠网络,会使网络难以收敛,从而导致网络退化甚至出现梯度消失等问题。残差网络(residual network,ResNet)[9]是2015年He K M等提出的,能够很好地解决上述存在的问题,近年来被应用在超分辨率重建算法中。加深的超分辨率(very deep super-resolution,VDSR)、增强的深度超分辨率(enhanced deep super-resolution,EDSR)[10]、深度注意力超分辨率(deep attentive super-resolution,DASR)[11]以及超分辨率生成对抗网络(super-resolution generative adversarial network,SRGAN)[12]等均采用了残差学习的方法,除了残差学习之外,密集连接[13]、注意力机制[14]、递归学习[15]等方法也被应用在超分辨重建过程中,网络层的深度不断加深,重建性能也在不断提高。
激活函数能够解决卷积神经网络在非线性上的问题[16],非线性的激活函数有Sigmoid函数、tanh函数、Relu函数、ELU函数等,由于Relu函数能够克服梯度消失的问题并且能够加快训练速度,所以在超分辨率重建算法中经常使用。但是若输入为负值,则输出为0即完全不激活,会造成部分神经元的失活,导致缺失部分信息。
针对Relu激活函数在算法中存在的一些问题,本文设计了一种基于Relu激活函数FSRCNN补充模块的图像超分辨率重建算法。
超分辨率是将低分辨率图像恢复成相应的高分辨率图像,设高分辨率图像为Iy,则相应低分辨率图像Ix的退化过程如下:
Ix=D(Iy,σ)
(1)
式中:D表示退化映射函数;σ表示模型中的参数。
低分辨率图像重建高分辨率图像的数学原理为
(2)
超分辨率的学习目标:
(3)
式中:L为损失函数;λ为权衡参数;φ(θ)为正则项。
超分辨率重建技术常用于参考图片质量的评价指标一般为两种,一种是峰值信噪比PSNR[17],一种是结构相似性SSIM[18]。
峰值信噪比一般以dB作为单位,数值越大表明图像质量越好。峰值信噪比公式如下:
(4)
式中:MAX表示的是图像中像素值中的最大值;MSE是重建图像SR和原高清图像HR的均方误差;单通道图像的MSE表示为
(5)
多通道图像的MSE表示为
(6)
式中:C代表通道数;H、W分别代表图像的高度和宽度;X(i,j)和Y(i,j)分别代表重建图像对应的像素点和原高清图像对应的像素点。
结构相似性是衡量重建图像和原高清图像相似度的指标,结构相似性SSIM的值越大表示重建图像失真越小。
(7)
(8)
(9)
(10)
(11)
式中:μX和μY分别表示重构图像和原高清图像的均值;σX和σY分别表示重构图像和原高清图像的方差;σXY表示重构图像和原高清图像的协方差。
亮度相似函数:
(12)
对比度相似函数:
(13)
结构相似函数:
(14)
SSIM分别从亮度、对比度、结构这3个方面度量图像相似性。
SSIM(X,Y)=l(X,Y)×c(X,Y)×s(X,Y)
(15)
式中:C1,C2,C3为常数。
补充模块是基于ReLU激活函数在神经网络中会造成部分神经元失活而提出的一种方法。ReLU函数表达式为
ReLU=max(0,x)
(16)
图1 ReLU函数图像Fig.1 ReLU function image
从ReLU函数图像可以看出,当x<0时,y值全部取0,在超分辨率重建算法中会导致部分特征的损失。本文提出的补充模块是由与ReLU函数作用相反的rReLU函数和卷积层构成,其中rReLU函数表达式为
rReLU=min(0,x)
(17)
反向rReLU函数如图2所示,是对输入的负值输出原本的数值,在输入为正值时输出直接置0。rReLU函数的作用是在算法中对经过卷积层的数据进行负值提取。
图2 rReLU函数图像Fig.2 rReLU function image
补充模块的作用是将通过ReLU激活函数置0的负值信息重新加入到模型中。模块中rReLU函数负责提取上一层卷积结果的负值信息,提取的负值信息作为输入传入到补充模块卷积层,其中补充模块中的卷积层已进行了降维操作,降低了运算量,提升了模型运行性能。
在补充模块结构图中,设输入为X,第1层卷积层操作可以表示为
F(X)=W1*X+Bi
(18)
通过rReLU激活函数的操作是
r(X)=min(0,F(X))
(19)
第2层卷积层表示为
S(X)=W2*r(X)+B2
(20)
式中:W代表滤波器;B代表积;*代表卷积操作。
补充模块结构如图3所示:
图3 补充模块结构图Fig.3 Supplementary Module Structure Diagram
FSRCNN模型主要特点是将输入的低分辨率图像不经过上采样操作直接作为输入图像,在经过一系列卷积操作后,利用反卷积层完成上采样操作,最后得到重建图像.
图4为FSRCNN模型示意图。
图4 FSRCNN模型示意图Fig.4 Schematic diagram of the FSRCNN model
图4可分为以下5个部分:
第1个部分是特征提取层,作用是从输入图像中提取特征,输入图像是没有经过上采样操作的原始图像,卷积核大小为5×5,输出通道数设为56; 第2个部分是收缩层,收缩层采用1×1卷积核进行降维操作,可以减少网络参数量,提高网络运行速率,输出通道为1; 第3个部分是映射层,映射层是为了对特征映射再一次进行非线性映射处理,其中卷积核大小为3×3,在这个过程中输出通道与输入通道保持一致; 第4个部分是扩展层,扩展层扩充维度,保持与收缩层一致,与收缩层作用相反,输出通道为56; 最后第5个部分是反卷积层,进行上采样操作,卷积核大小是9×9,得到重构图像。FSRCNN模型5个部分中前4个部分都为卷积层。
模型中选用MSE作为损失函数,Adam优化器更新参数,其中优化目标L(θ)为
(21)
公式中:n是训练样本的数目;Xi是高分辨率图像;Yi是低分辨率图像;θ是网络参数;F(Yi;θ)是重建图像;模型中的所有参数都采用反向传播及随机梯度下降的方法来进行优化,L(θ)优化目标的结果要求最小。
FSRCNN模型原采用PReLU函数作为激活函数,PReLU函数如下:
(22)
式中:参数a一般为0到1之间随机抽取的值,并且通常相对较小。
在负值域,PReLU的斜率较小,同样可以避免神经元失活的问题。但是由于负值域斜率与正值不同,导致部分特征信息的比例不一致,从而影响超分辨率重建的效果。
基于FSRCNN补充模块的结构如图5所示。
图5 结构图Fig.5 Structure diagram
基于补充模块的超分辨率算法是对ReLU激活函数在模型中存在的问题进行改进,所以对于加入补充模块的网络模型中激活函数选择ReLU函数。从图中可以看出模型中卷积层的结果作为输入通过补充模块后得到具有一通道的特征向量,之后将特征向量重新加入到模型中再进行下一步卷积操作。而在超分辨率重建方法中,很少会出现过拟合的现象,将补充模块加入到超分辨率模型中并未出现过拟合的问题。
本文以DIV2K作为训练数据集,Set5、Set14、Urban100作为测试数据集,使用Pytorch深度学习框架完成实验。
训练前对图像进行预处理,将图像分割成56×56的图像块,步长设置为56,训练过程中初始学习率设置为0.001,每50轮迭代后学习率衰减,衰减指数设置为0.5。PSNR和SSIM作为评价指标来评估算法性能。超分辨率重建效果对比如表1所示。
表1 超分辨率重建效果对比Tab.1 Comparison of super-resolution reconstruction effects
表1中SM是加入补充模块的FSRCNN算法,PReLU是以PReLU作为激活函数的FSRCNN算法,ReLU是以ReLU作为激活函数的FSRCNN算法。
从表1结果可以看出,在相同训练条件下,基于补充模块的FSRCNN算法客观指标得到的数值均高于仅使用激活函数ReLU或者PReLU的FSRCNN算法,而且随着图片放大倍数的增大,加入补充模块的FSRCNN算法呈现的效果越好。
图像重建效果对比如图6所示,图6中左边是Set14数据集中的一幅图片,右边的(a)、(b)、(c)、(d)、(e)小图分别为原高清图像、经过双三次下采样的图像、采用ReLU函数作为激活函数的FSRCNN重建图像、采用PReLU函数作为激活函数的FSRCNN重建图像和加入了补充模块后的FSRCNN重建图像。
图6 图像重建效果对比Fig.6 Comparison of image reconstruction effects
本文提出一种基于FSRCNN补充模块的超分辨率重建算法。其中补充模块是将算法训练过程中通过卷积层但无法通过ReLU激活函数的特征值,经过rReLU函数和卷积操作再次加入到算法中进行下一步卷积运算的过程。在此过程中rReLU提取当前卷积层的负值信息作为卷积输入特征,补充模块中的卷积部分是将输入特征转换为一通道的输出特征,该输出特征与通过ReLU激活函数的输出特征相连。
ReLU激活函数在超分辨率重建过程中,根据表1结果的对比,可以看出其导致的部分神经元失活问题会对超分辨率重建性能有一定的影响。而本文提出的补充模块加入到算法中,从测试结果上表明,补充模块能够解决神经元失活问题,并且可以进一步加强算法对信息的提取,提升算法的性能。