李 岚,张 云,杜 佳,尹 喆
(兰州文理学院 数字媒体学院,甘肃 兰州 730010)
图像超分辨率重建(Image Super-resolution Reconstruction,SR)算法的基本思想是利用数字图像处理、计算机视觉等领域的相关知识,借由特定的算法和处理流程,从给定的低分辨率(Low Resolution,LR)图像中重建出高分辨率(High Resolution,HR)图像的过程,其目的是克服或补偿由于图像采集系统或采集环境本身的限制,导致的成像图像模糊、质量低下、感兴趣区域不显著等问题.该技术对硬件要求较低,不受环境影响,在卫星遥感、医学成像、公共安全、军事等领域应用广泛[1-2].随着计算机视觉技术的快速发展,促使深度学习的图像超分辨率重建技术受到广泛关注,并取得了良好的重建效果.Dong等[3]在传统方法的基础上,首次提出将卷积神经网络(CNN)的方法用于图像重建,借助了神经网络的强大学习功能.该方法结构简单,易于实现,但因层数较少,网络训练能力较弱,导致重建性能较差.文献[4]在残差网络的启发下,将网络卷积层的深度提升到了20层,增加了卷积层的感受野,提高了网络的收敛速度.文献[5]采用深度递归卷积网络,实现网络参数共享,降低了训练难度.文献[4-5]方法取得了较好的重建效果,其缺点是随着网络层数的增加,存在梯度消失和网络训练难以收敛.Dong等[6]提出的FSRCNN算法在初始阶段采用双三次插值法进行图像放大,破坏了图像原有的细节信息.Shi等[7]提出的亚像素卷积方法(ESPCN)主要通过对低分辨率图像进行特征提取,在网络末端应用亚像素卷积操作,对特征图像重新排列,达到提高图像质量的目的.
上述方法在网络中主要采用单个尺度的卷积核对LR图像进行特征提取时没有充分利用原始LR图像信息,存在网络感受野小以及在增加网络深度的同时导致梯度弥散或者梯度爆炸等问题.针对上述问题,本文提出了一种多尺度融合卷积与空洞残差相结合的卷积神经网络.首先在特征提取阶段采用多尺度融合卷积操作,获取原始图像中更有用的信息;然后,采用空洞残差单元代替原始残差网络进行特征映射,扩大特征图像的感受野,避免梯度消失,将底层提取的特征图像作为残差模块的输入;最后将LR特征信息与残差模块输出的特征图像进行重建,得到最终的HR图像.
空洞卷积(扩张卷积)在扩大卷积网络感受野范围的同时不降低图像尺寸,从而保留更多的图像细节信息,不需要引入额外的计算量,就能达到提升网络性能的目的,许多学者在研究中应用了不同方式的空洞卷积[8-9].普通卷积和空洞卷积扩张率为2的结构如图1所示.
图1 普通卷积和空洞卷积示意图
根据上图所示,对于一个3×3的卷积核来说,当扩张率d=1时,网络感受野为3×3,相当于不扩张;当扩张率d=2时,网络感受野大小为7×7;当扩张率为d=3时,网络感受野为13×13,感受野计算公式如下:
v=2(d-1)×(k-1)+k,
(1)
其中:v表示当前层的感受野,d表示扩张率;k表示卷积核大小.可以看出空洞卷积在不引入额外参数的情况下扩大感受野,同时保持特征图像分辨率不变,从而可以在网络训练中传递更多的细节信息.
ResNet(Deep Residual Network, ResNet)[10]相对于传统网络而言,引入了跳跃连接,即在卷积网络上每间隔2到3层增加一个跳跃连接,这样就产生一个残差单元,该结构使用3×3和1×1的小卷积核,使得网络更深.通过残差网络可以避免简单堆叠的卷积神经网络梯度消失或爆炸以及精度退化问题.因为只学习图像的高频信息,所以学习量小,有利于网络性能提升,残差单元结构如图2所示.
假设存在一个恒等映射X,一般卷积网络直接拟合所需函数H(X)=X,在ResNet中,激活函数采用ReLU,将H(X)假设为由几个堆叠层(残差网络采用3个堆叠层)匹配的基础映射,用X表示第一层的输入,将原始所需函数H(X)转换成F(X)+X.即输出
H(X)=X+F(X).
(2)
如图2所示,如果前面层达到最优值时,后面层的操作就可以简化或者去掉,通过这种跳跃结构,将优化目标从一个恒等映射变为逼近零,这样就可以解决深层网络难以训练的问题.
图2 残差单元结构
根据以上分析,本文在VDSR网络的基础上,结合ResNet思想,构建一个包含20层的网络框架,整个网络结构如图3所示,主要包括3部分.第1部分为改进后的多尺度特征融合卷积层,应用不同大小的卷积核进行LR图像特征提取,获得更多的高频有用信息;第2部分为6个串联的空洞卷积残差块,实现对特征图像的训练;第3部分是图像重建,将学习到的图像高频信息与初始LR图像结合,重建HR图像.
首先,对LR图像进行多尺度融合卷积特征提取.其次,网络结构中间由6个空洞残差块组成,每个空洞残差块对原始ResNet残差块进行改进,移除了BN(Batch Normalization,BN)层,有助于网络的稳定性,该残差块分别由扩张率为1、2、3的残差单元串联组成, 经过一个空洞残差块之后,每个像素的感受野为13×13,由于使用了不同的扩张率,可以避免单一扩张率带来的“网格”化现象导致图像信息不连续的问题.最后,将残差块输出的特征图像与一个3×3的卷积核进行卷积,得到一个与输入图像大小相同的高频残差图像,与输入图像残差融合,重建HR图像.
图3 本文网络结构
不同于SRCNN网络的初始插值操作,而是直接将从LR图像进行子块特征提取.特征融合方式分为相加(add)和拼接(concat)两种,因为后者在不同特征通道中具有较好的灵活性,所以本文选择拼接方式.在网络初始阶段应用3个不同大小的卷积核结合跳跃连接构建一种多尺度融合结构(如图4所示),实现对输入图像的特征提取,从而获取更多的原始图像边缘轮廓和细节特征.
图4 多尺度特征提取模块
第1个通道为56个1×1大小的卷积核,第2通道和第3通道分别应用28个5×5和3×3大小的卷积核进行特征提取,具体计算公式为:
F1j(Y)=W1j*ILR+B1j,
(3)
其中:F1j(Y)表示第j通道卷积层输出的特征图,j=1,2,3;W1j表示第j通道权重; * 表示卷积操作;B1j表示第j通道偏置项.
将第2通道与第3通道卷积特征信息通过拼接操作,并与第1通道特征数据进行跳跃连接,具体公式如下:
F23(Y)=
F12(Y)+F13(Y),
(4)
F1(Y)=
W14*(F12(Y)+F13(Y))+B1,
(5)
其中:F23(Y)表示第2通道和第3通道连接后的特征图;F1(Y)表示融合后的特征图;W14表示融合层的权重;B1表示该层的偏置项.
整个特征训练过程由6个空洞残差卷积块完成,每个残差块由扩张率分别为1、2、3的卷积核且大小为3×3的卷积层串联而成.扩张系数为1时与普通卷积相同,扩张系数为2和3时,表示相邻卷积核的权值之间分别有1个和2个“补0”像素值,本文设计的空洞残差块如图5所示.
图5 本文空洞残差卷积块
HR图像包含高频信息和低频信息,而低频信息均存在于LR图像和HR图像中,所以只需要预测图像的高频信息,即HR图像与LR图像的残差图像,本文图像创建的损失函数表示为:
(6)
卷积操作中使用的函数为带参数的PReLU[11],能够取到负值,可以避免ReLU函数中出现梯度为0的缺点,从而提高网络训练的精度,PReLU激活函数表达式为:
(7)
其中:xi表示PReLU函数的输入;f(xi)表示PReLU函数的输出;λ为参数.
实验的硬件平台处理器为Intel(R) Core(TM)i7-1065G7,显卡为11G GTX1080Ti,内存为32 G,GPU为NVIDIA Titan CUDA .软件平台为Windows10操作系统、Python 3.7.0,深度学习框架为Pytorch 1.2.在学习率设置上,本文采用学习率衰减的方法防止训练时间过长.
本文借鉴VDSR网路,超分辨率输入图像大小为56×56,在训练放大4倍后,与之对应的HR图像大小为224×224.训练集采用总量为800张图像的DIV2K数据集,在每一张图片上连续截取56×56的图像作为输入.该数据集图像的细节部分清晰,包括高分辨率的原始图像和对应的缩放尺度为2、3、4和8的图像,该操作使得数据扩充数倍,可以有效避免过拟合,本文优化算法采用 Adam来优化损失函数, 学习率设置为 10-4, batchsize设置为 16, 训练迭代次数设置为 20 次.
使用3个标准测试集Set5、Set14和BSD100进行定量和定性比较.用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似比(Structural Similarity Index,SSIM)衡量算法的定量结果[12].为了验证本文算法的有效性,当尺度因子为×2倍、×3倍和×4倍时与双三次插值(Bicubic)、FSRCNN、VDSR、ResNet18算法进行比较,结果如表1所列.
由表1可知,通过客观评价标准对比不同算法,本文算法的重建质量优于其他几种算法.相较于VDSR算法,在Set5数据集上进行测试,当放大因子为×2、×3和×4 时,PSNR 值分别提高了0.50 dB、0.28 dB和 0.17 dB;在 Set14测试集上PSNR 值分别提高了 0.47 dB、0.26 dB和0.20 dB;在BSD100测试集上PSNR 值分别提高了0.16 dB、0.12 dB和0.23 dB.在 Set5 测试集上,当放大因子为×2、×3和×4 时,SSIM 值分别提高了0.0 022、0.0 101 和 0.0 050;在 Set14 测试集上,SSIM 值分别提高了0.0 024、0.0 184和0.0 194;在BSD100测试集上,SSIM 值分别提高了0.009、0.0 099和0.0 446.
为了分析不同残差网络下模型的特征学习能力,在相同的训练集和参数条件下,采用不同残差结构进行训练.实验中,两种方法均采用6个残差块在Set14测试集上尺度因子为×3的测试结果.将本文方法与VDSR方法在不同迭代次数对应的PSNR值对比,结果如图6所示.
表1 不同方法的PSNR和SSIM测试结果(采样因子=2、3、4)
图6 Set14测试集上不同方法的PSNR收敛曲线
由图6可以看出,经过40万次训练后,Set14上本文方法的PSNR值更大,表示重建效果更好,并且收敛曲线在10×104次迭代后波动较小,更趋于稳定.
主观评价标准下当尺度因子为×2倍和×3倍时,在Set5和Set14测试集上使用3种经典方法和本文方法的重建图像结果对比,对比结果如图7、图8所示.
通过图7、图8可以看出,本文方法重建后的图像纹理更清晰,细节更丰富,整体视觉效果更好.Bicbuic算法、FSRCNN算法和VDSR算法在特征提取时采用单一尺度,获得图像纹理信息较少,网络感受野较小,获得的局部信息过多,导致全局信息的丢失,重建图像仍然存在边缘清晰度差的缺点.本文算法相比前3种算法在区分图像边缘和改善纹理细节中有较好的效果.
本文受FSRCNN和ResNet网络启发,在 VDSR 的基础上进行改进,提出了一种改进的空洞残差卷积神经网络的图像超分辨率重建算法,为了获得初始图像的更多信息,在算法的特征提取阶段, 设计了多通道多尺度特征提取结构,分别使用不同大小的卷积核,对图像的不同特征运用不同尺寸的卷积操作;在网络的非线性映射阶段,采用不同扩张率的空洞残差块,扩大网络感受野的同时避免单一扩张率的“网格”化现象.与3种典型算法相比,本文方法结果在峰值信噪比、结构相似性指标上都有提高,在视觉效果上图像重建质量更好.下一步将研究使用更多高分辨率图像中的高频信息和尝试更多样的扩张系数及组合,将其应用到更多的网络框架中,提升图像重建效果.
图7 不同算法在Set5测试集上的重建结果
图8 不同算法在Set14测试集上的重建结果