刘南艳,马圣祥,魏鸿飞
西安科技大学 计算机科学与技术学院,西安 710699
超分辨率重建是当前计算机视觉领域的重要研究方向之一,受到国内外研究者的广泛关注。图像超分辨率(super resolution,SR)重建技术是将一幅模糊的低分辨率(low resolution,LR)图像通过一定的算法转换成一幅高分辨率(high resolution,HR)图像的过程。随着社会发展和人们对于获得高质量图像需求的不断提高,超分辨率重建技术在生产生活的各个领域得到广泛应用,如:医学影像[1-4]、人脸识别[5-8]和卫星成像[9-12]等领域,其中医学影像中有大量相似的小细胞结构,人脸中有许多相同的器官,卫星图像中存在相同的建筑设施,图像中重复的结构都能使用跨尺度来进行重建。目前超分辨率算法主要分为基于单帧图像的超分辨率重建算法[13-18]和基于视频的超分辨率重建算法[19-22],本文主要研究基于单帧图像的超分辨率算法。
图像超分辨率重建技术最早可以追溯到1964年提出的频谱外推法,随后由Tsai 和Huang[23]最先提出运用基于重构方法中的频域法来解决超分辨率重建问题,将低分辨率图像和高分辨图像进行傅里叶变换,使其在频域之间建立线性关系来完成图像重建,之后此类问题受到研究人员的广泛关注。2002年,首次提出基于样例方法的图像自相似性超分辨率重建,揭开了样例方法在超分辨率重建中的应用。然而传统基于重构和样例学习的方法计算复杂而且不能有效恢复出原始图像的信息,目前应用最广的深度学习方法取得了不错的结果,与传统超分辨率重建技术相比,深度学习方法对于重建出来的图像具有更好的视觉效果。
2014 年,Chao 等[24]提出了一种超分辨率卷积神经网络(super-resolution convolutional neural network,SRCNN)模型,该方法仅仅使用了三层卷积层,通过9×9的卷积核来提取一组特征映射,1×1的卷积核进行特征非线性映射和5×5 的卷积核结合空间邻域内预测来生成最终的高分辨率图像。作为深度学习方法在SR技术中的开山之作,为图像超分辨重建技术在深度学习方面应用奠定了基础。为了解决之前SRCNN中重建时计算开销大的问题,Chao 等[25]又在SRCNN 的基础上进行改进,提出了一种加速超分辨率卷积神经网络(fast superresolution convolutional neural network,FSRCNN),虽然SRCNN 在超分辨率重建中取得了不错的结果,但由于其大量的计算开销阻碍实际应用,为此原来的研究团队以卷积核大小和映射层数量互换,用卷积核减小换取映射层增多。这样相较于之前提出的SRCNN虽然在效果上没有得到很大提升,但是大幅度节省了计算开销,实现超过40 倍的最终加速度,在不损失恢复图像质量的前提下实现模型更高训练速度。为了解决之前方法重建之后图像的效果与原图像存在较大差距,Kim等[26]提出了一种高精度单图像超分辨率(accurate image super-resolution using very deep convolutional network,VDSR)方法,借助VGG网络的灵感,将网络层数加深到20层,确实也取得了不错的效果,但是随着网络层数的加深,收敛速度随之受到制约,为此其引入残差结构[27]很好地避免了此问题,在计算开销和视觉效果面均取得了不错的成绩,但是在基准数据集上的性能仍有一定的提升空间。随后,Lim等[28]提出了增强的深度超分辨率网络(enhanced deep residual network for single image super-resolution,EDSR),去除了SRResNet 中的批量归一化(batch normalization,BN)层,从而可以通过加大模型结构来提升性能。从SRCNN至今各种基于卷积网络的重建算法层出不穷,随着网络结构向着更深、更宽、更复杂方向发展,网络模型对于图像特征信息提取更加全面、具有更大的感受野,利用更多的特征信息也会得到更好的图像质量和视觉效果,但是正因为当前网络过于复杂的结构导致其计算开销较高。
生成对抗网络(generative adversarial network,GAN)[29-30]提出以后广泛应用于图像处理、模式识别等各个领域。该网络将零和博弈的思想运用到训练神经网络中,生成器根据随机数来不断创造出新的数据,进而生成一幅图像去交给鉴别器,鉴别器尝试去判断生成器所发来数据的真实性,二者相互博弈,最后不断优化提升达到纳什均衡。Ledig 等[31]首次提出将GAN 网络运用于SR 技术中,其使用16 块深度ResNet 针对MSE进行优化,通过VGG 网络特征图上的计算损失替换MSE 内容损失,同时提出了一种平均意见得分(mean opinion score,MOS)评价指标,在MOS 上取得了不错的成绩,为之后的研究者在SR 技术上开辟了另一条道路,但是对于标准的峰值信噪比(peak signal to noise ratio,PSNR)和结构相似度(structural similarity,SSIM)评价指标,其重建结果并不如之前模型。为了解决SRGAN网络在图像重建过程中产生的伪影问题,Wang等[32]在SRGAN 网络的基础上提出了一种增强的超分辨生成对抗网络(enhanced super-resolution generative adversarial network,ESRGAN),由于残差密集块具有易于训练和更高容量的特点,因此将其引入原始SRGAN 网络中,同时删除了原有结构中的BN 层,使得改进的网络对于重建后的图像具有更锐利的边缘和更少的伪影,但是其对于图像细节部分的重建质量仍然不够理想。
针对网络模型计算复杂度高的问题,Ahn等[33]提出了一种级联残差网络(fast,accurate,and lightweight super-resolution with cascading residual network,CARN)更加轻量化,然而该网络的重建结果不够理想。EDSR网络因为其深层次的网络结构重建效果相对理想,然而巨大的计算开销成为了该网络的主要问题。为此本文提出了一种跨尺度多分支的超分辨率重建算法,在Urban100和Manga109公共数据集上优于目前的重建模型,主要工作如下:
(1)构建了一种跨尺度模块,该模块可以利用图像中相似区域的相关性,通过图像内部的高分辨率区域来辅助重建图像中相似的低分辨率区域,从而加强恢复图像细节信息,提高图像整体质量,获得更好的视觉效果。
(2)构建了一个多分支网络结构,依据图像自身具有的结构特性,将不同复杂度的子图像分别用不同网络重建,来降低重建时的计算开销。
(3)在Urban100 和Manga109 测试集上验证该网络的有效性。
图像内部包含大量的资源信息,观察图像可以发现每张图像中都有许多相似的边角结构。如图1所示,建筑物图像上有很多相同的窗户,虽然这些窗户在图像中的远近高低各不相同,但它们都有着相似的结构。在超分辨率重建时可以考虑图像中长距离特征的相似性,以加强恢复细小结构的纹理信息。
图1 图像相似信息示意图Fig.1 Information schematic of image similarity
卷积层可以对图像中的特征进行提取,但是它提取了图像中的全部特征,这样大尺度区域与小尺度区域以同样的方式被对待,导致图像小尺度区域重建效果不理想,引入该模块后可以利用提取到的大尺度区域特征辅助重建小尺度区域的纹理,为纹理信息分配更多的内容,进而使得超分辨率重建之后的高清图像在细节方面有更好的视觉效果,如图2所示能看出卷积只是简单提取出图像中的特征信息,跨尺度模块可以利用这些特征信息中的重复结构来提升重建效果。
图2 跨尺度模块和卷积特征图Fig.2 Feature maps of cross-scale modules and convolutional
非局部相关性可以通过总结整个图像的相关特征来探索自我范式。在形式上,给定图像特征映射X,非局部相关性定义为:
因此本文研究跨尺度相关性方法,把上面非局部相关性公式扩展到跨尺度相关性,首先寻找LR 图像中小尺度区域和大尺素区域之间的相关性,然后学习大尺度区域与小尺度区域的映射关系来辅助重建图像中小尺度区域。图像重建的上采样因子为s,给定一个大小为(W,H)的特征图X,将特征图X通过双线性插值方式进行s倍下采样得到新的特征图Y,然后将X中p×p的小块与下采样后的Y中同样大小的p×p小块通过匹配函数进行匹配。再将所有X中提取到大小为(sp,sp)的特征块进行加权相加,得到大小为(sW,sH)的特征块Z辅助X进行重建,跨尺度重建公式为:
如图3所示为跨尺度模块的网络结构图,其中蓝色的框内主要用于跨尺度相似性匹配,蓝色框上面的分支是从LR 图像中提取原始的大尺度特征块,由于空间维度的差异性,使用特征相似性的度量方式是不可行的,需要将X进行下采样得到对应的低分辨率图像Y,在Y中搜寻多个与X特征相似的特征块,利用该特征的信息就能找到需要辅助重建的大尺度特征块。
图3 跨尺度模块结构Fig.3 Module structure of cross-scale
图像通过跨尺度模块提取特征之后,将输出结果扩大到对应上采样倍数的图像尺寸,实现由小尺度到大尺度的映射操作。
如图4 所示,在不同上采样因子下,将卷积生成的r2个小尺度特征图重新排列组合,重构放大后得到的SR图像。该算子可以描述为:
图4 小尺度与大尺度映射关系Fig.4 Mapping relationships of small-scale and large-scale
其中ISR是小尺度SR 后的空间张量。XL为小尺度特征图,w和b是可学习的网络权值和偏差。PS()· 是一个周期变换算子,它将一个形状为h×w×c·r2的张量重新排列成形状为hr×wr×c的张量,以实现上采样。
本文使用L1损失函数来计算重建后的小尺度区域与大尺度区域之间的误差,公式可以表示为:
其中IL为上文中大尺度特征Z的空间张量,N为样本点个数。
通过观察可以发现每幅图像都包含复杂的纹理区域和稀疏的平滑区域,对于超分辨率重建而言,平滑区域比复杂区域更容易处理,利用这一特性,可以在重建一整幅大图像时采用适当的SR网络来处理不同区域的子图像。如图5 所示,简单的网络处理平滑区域(绿色),复杂的网络处理纹理区域(红色),黄色区域复杂度介于前两者之间。
图5 图像分区域示意图Fig.5 Area schematic of image division
如图7所示,分别展示了3种分支的网络结构,轻量级网络CARN 通过在局部和全局中使用级联机制集成多个网络层的特性,以cascading block作为网络的主要结构,来反映不同级别的输入表示,以便于接收更多的信息。
图6 整体网络结构Fig.6 Overall network structure
图7 CARN、EDSR和CSSR这3种重建分支网络结构Fig.7 Three reconstructed branch network structures of CARN,EDSR and CSSR
EDSR 网络将原始残差结构进行改进,得到该网络的ResBlock 结构,通过堆叠16 层ResBlock 结构来加强图像的对比度信息,提升网络输出质量。
针对于纹理细节信息的恢复本文提出在EDSR 网络的残差结构中引入跨尺度模块(cross-scale block,CSBlock),专门处理复杂子图像中的相似边、角等结构,得到CSSR 网络的主要结构跨尺度残差块(cross-scale residual block,CS ResBlock)。
为了加强网络对于细节信息的捕获能力,提升网络超分辨率后图像的质量,本文在EDSR中每个ResBlock内部的卷积层提取完特征之后引入CS Block,该模块针对细节部分提供更多的信息辅助重建,防止图像中细节信息丢失,提升特征对于高频信息的表达能力,加强图像重建后的视觉效果。相比CARN、EDSR 在残差内部结构的改进有所不同,如图8 是3 种网络的残差结构内部进行对比,从图中可以看出CARN 方法将原始残差结构内部的深度卷积替换成了分组卷积,选择适合的分组大小来降低参数得到该网络的残差结构,随后EDSR将传统方法中的BN层去除,因为BN层对于网络特征的规范限制了网络的灵活性,本文将CS Block 与ResBlock相结合,得到用图像自身相似结构来重建图像的CS ResBlock,提升图像中细节信息的重建能力。
图8 本文方法与传统方法残差结构对比Fig.8 Comparison of residual structure of proposed method and traditional method
为了获得更高质量的重建图像,本文采用DIV2K[34]数据集对该网络模型进行训练,该数据集中总共包含1 000 张约2 000 像素分辨率的RGB 三通道图像,选用其中的800张图像用于训练,同时为了便于与经典网络模型在峰值信噪比和结构相似度评价指标上进行对比,本实验网络模型选用Urban100 测试集和Manga109测试集中进行测试,其中Urban100 测试集主要以建筑为主,包含各类相似结构的建筑设施图像数据集,Manga109数据集是以动漫为主要图像的数据集。
本次实验首先对训练图像进行预处理,将DIV2K数据集中的高分辨率图像通过Bicubic 算法进行0.6、0.7、0.8 和0.9 倍的下采样生成更多的HR 图像,以增大训练时的数据量,对这些图像进行进一步的下采样生成LR 图像,然后从LR 图像中裁剪尺寸为32×32 的子图像,接下来输入网络中进行训练。训练过程中的批量大小设置为16,使用L1损失函数和Adam 优化器进行训练,其中β1=0.9,β2=0.999,通过余弦退火策略来调整训练速率,初始学习速率设置为10-3,最小的学习速率设置在10-7。在测试过程中,将LR 图像裁剪成32×32 的子图像,步长为28,通过将4 个像素点的重叠区域进行平均,以免重建后的图像出现明显分割痕迹。
PSNR 作为重建图像的评价标准,一方面可以看出图像的重建难度,另一方面可以反映图像纹理结构的复杂程度。如图9所示,通常PSNR值高的图像比较平滑,PSNR 值低的图像具有复杂的纹理,本文通过大量实验后选用PSNR 值为27.16dB 和35.15dB 作为分割子图像的依据,从图中可以看出取得了不错的效果。
图9 子图像分类示意图Fig.9 Classification schematic of sub-image
为了保证实验质量,本次实验均采用统一的硬件配置,其中操作系统为Ubuntu 系统,处理器为AMD EPYC 7642 48-Core Processor,显卡为NVIDIA GeForce RTX3090,并在Python3.6.13、CUDA11.0 环境配置下运行,选用Pytorch1.7.0作为深度学习框架。
通常图像在放大或压缩前后会出现不同程度的误差,为了客观地展现出超分辨后的图像与原始图像之间存在的差距,比较不同超分辨模型之间重建图像质量的区别,本文通过主观和客观两种不同方式对重建图像的质量进行评价。首先采用峰值信噪比和结构相似度对生成的图像进行客观评估,这两种方式是目前超分辨率重建方式中最普遍和广泛使用的客观评价指标,同时为了验证该模型良好的计算效率,本文使用浮点计算数来衡量模型计算的复杂度,对比突出多分支方法与以往单一分支方法计算复杂度的不同。
峰值信噪比是通过对比处理前后图像中对应像素点之间的差距进行计算来评估图像重建后的质量,其计算表达式为:
其中,n为每像素之间的比特数,一般图像灰阶数为256,因此n通常取8,MSE为超分辨率重建前后图像的均方误差。由公式可以看出,重建前后图像的峰值信噪比越大,说明图像失真越少,PSNR单位为dB。
与峰值信噪比不同,结构相似度是从图像亮度、对比度和结构三个方面来判断输出图像与原始图像之间的相似性,其计算表达式为:
其中,ux、uy表示图像x、y的均值,σx、σy表示图像x、y的方差,σxy表示图像x、y的协方差,C1、C2、C3为常数。
标准的客观评价指标虽然可以计算出图像重建前后的失真情况,但是其并没有考虑到人眼观察图像的视觉感受,往往人眼对于图像中像素点之间的差异敏感度较高,会出现客观评价指标与人眼主观感受不一致的情况。为此本文中新增加主观评价指标,任意寻找50 名参与者,从其他模型和本文模型的实验结果中各选取3幅重建图像,参与者在不被告知模型的情况下根据自己主观感受对比不同模型重建后的图像与原始图像进行打分,最终计算出参与者对于每张图像的平均分进行对比。
图像超分辨率重建技术除了衡量图像质量以外,其计算效率也是重要的衡量指标之一,高效、准确地重建出目标图像是当前该领域的重要目标,所以不仅仅要追求更好的视觉效果,对于批量处理图像时计算效率也是应当考虑的因素。因此本文采用浮点计算数(floating point operations,FLOPs)作为衡量模型重建图像计算复杂度的标准,FLOPs的计算公式如下:
其中,HW代表输出图像特征图的大小,Cin代表输入图像的通道数,Cout为输出图像的通道数,K代表卷积核的大小。
3.3.1 客观评价
为了验证平滑区域图像使用轻量级网络CARN、较复杂区域图像使用EDSR 网络与使用单一跨尺度网络重建之间可以获得大致相同的效果,选用3种不同分类的子图像分别放入CARN、EDSR 和CSSR 网络进行重建,再将3类子图像全部放入CSSR网络进行重建,对比重建后的峰值信噪比。
如表1 所示,可以发现CARN 和CSSR 网络重建平滑子图像几乎没有差异,在较复杂子图像上,EDSR 与CSSR网络同样获得大致相同的性能。因此说明了通过多分支网络分区域重建图像来节约计算成本的有效性,且产生图像的质量大致相同。
表1 不同子图像在3种分支下的PSNR对比Table 1 Comparison of PSNR of different sub-images under three branches单位:dB
为了进一步验证实验的有效性,本文将文中方法与当前的经典网络重建图像效果进行对比,其中包括:Bicubic、SRCNN、VDSR、CARN、SRGAN、EDSR。同时将本文中提出的跨尺度单分支网络(CSSR)与跨尺度多分支网络(M-CSSR)也进行了比较,在Urban100数据集和Manga109 数据集上分别对2 倍、3 倍和4 倍放大因子超分辨率重建对比峰值信噪比和结构相似度,结果如表2 和表3 所示,其中粗体字显示为当前比较中的最优结果。
表2 不同算法在Urban100和Manga109数据集上PSNR测试结果Table 2 PSNR test results of different algorithms on Urban100 and Manga109 datasets单位:dB
表3 不同算法在Urban100和Manga109数据集上SSMI测试结果Table 3 SSMI test results of different algorithms on Urban100 and Manga109 datasets
从表中可以看出文中方法与其他方法相比具有更高的PSNR和SSMI,其中客观结果表明SRCNN算法作为最初应用于深度学习领域的超分辨率算法,其理论是开创性的,但是重建效果不够理想,随后出现的深度学习超分辨率重建的在网络深度和宽度上都有一定程度的提升,VDSR、CARN和EDSR通过对网络结构的优化和对网络层数的加深,使得它们在客观评价指标上均有一定的提高,SRGAN 通过使用生成对抗网络完成重建使性能得到一定提升,同时也为超分辨重建开辟了一种新的思路。
相较于前几种方法,文中算法在Urban100 和Manga109数据集上,PSNR和SSMI两种客观评价指标中都取得了不错的结果。本文也将单一的跨尺度网络与跨尺度多分支网络结构进行了比较,从结果中可以看出多分支结构与其单分支结构在峰值信噪比和结构相似度上略有差距,但是其差距并不明显,这两种数据集包含了丰富的重复块,例如一些边、小角,证明跨尺度非局部模块可以利用图像的内部信息提升重建效果,从而表明关注内部资源辅助重建是有效的。
传统的重建方法旨在通过更深的网络结构、更宽的网络宽度来得到更好的视觉效果,这种考虑方式不够全面,良好的视觉效果往往承受着巨大的计算代价。因此在考虑图像峰值信噪比和结构相似度的提升时,还应当将计算开销作为重要的关注点,这样可以更全面的衡量模型的重建性能。本文用Urban100 和Manga109 测试集中图像重建的浮点计算数、实时性和模型参数量3个方面衡量模型的性能,如表4所示。从表中可以看出本文方法CSSR在EDSR的ResBlock中构建了CS Block,因此CSSR网络相较于EDSR网络在参数上增加了0.6×106,实时性略微降低,重建时间增加了0.12 s。然而多分支结构的M-CSSR 网络重建图像的实时性大幅度提升,单幅图像重建时间比CSSR 减少了0.28 s,比EDSR减少了0.16 s。总体来说,本文方法从参数、浮点计算数和实时性方面整体优于EDSR方法。同时可以看出,子图像划分的数量对计算开销也有一定的影响,Manga109测试集中存在的平滑区域比Urban100 测试集相对多,因此在划分子图像时Manga109测试集被划分到简单类别的子图像更多,重建时仅需要原来浮点计算数的53%,而Urban100测试集浮点计算数只减少为原来的56%。
表4 不同模型性能对比结果Table 4 Performance comparison results of different models
3.3.2 主观评价
为了更好地体现不同峰值信噪比和结构相似度在图像中呈现出来的差距,本文从实验结果中选取3张高清图像,通过对于图像中的局部区域进行放大,对比不同方法在这三张图像的重建效果。高频信息是图像中颜色变化快的区域,例如图10 中建筑物的窗户与墙面之间的边缘部分。可以从图中看出Bicubic重建出的图像相对模糊,重建效果与HR图像差距较大,对于低频信息与高频信息的捕获能力均不够理想。虽然CARN 方法相较于Bicubic 方法有所改进,但是其整体重建效果仍然模糊。随后提出的EDSR 方法挖掘低频信息能力方面有所改进,从图中可以看出对于整体墙面的重建效果相对理想,但是图像中没有很好地利用内部信息对细小的结构进行辅助重建,仍然无法挖掘到颜色变化快的高频区域,如图中窗户与墙面之间的窗台区域,导致图像看上不够自然。因此,本文方法中的CS block 利用图像中内部资源的跨尺度相关性,主要针对前几种经典方法中挖掘高频信息不足,纹理细节区域重建效果不理想等问题进行改善,同时使图像变得更加自然和真实,可以看出本文方法在图像中墙面与窗户等相关边界区域呈现出更多的信息。总体来看,本文方法从视觉效果上比以往方法更具有优势。
图10 不同模型重建结果Fig.10 Reconstruction results of different models
同时,本文针对以上3幅图像采用主观打分的方式进行评价,将以上3幅图像中对应的放大区域进行随机排列且不被告知图像模型名称,让参与者仅凭借其主观感受,对不同模型从1 至10 分中进行打分,最终计算出50位参与者在不同模型上的平均得分来进行比较,如表5所示。
本文主要针对当前超分辨率模型纹理结构不清晰、细节信息不明显和网络过深导致重建计算成本过高的问题进行研究,提出了一种跨尺度多分支网络的单帧图像超分辨率重建方法。该模型依据不同区域图像重建难度不同,通过多分支网络的方式解决深度模型重建图像时计算成本过高的问题。此外在残差结构内部通过跨尺度模块,利用图像内部信息辅助重建图像中大量的细节区域,能使图像看起来更加真实自然、纹理细节更加清晰。
为了体现本文的超分辨率模型相比于以往超分辨率模型的优势,采用客观评价与主观评价相结合的方式对不同模型进行比较,在两个公开数据集上对它们之间峰值信噪比和结构相似度进行比较,同时采用主观评分的方式对模型重建图像的视觉效果进行评价。为了体现多分支结构可以降低模型的计算成本,本文采用浮点计算数对模型的复杂程度进行了比较,最终对比表明本文模型不仅能够有效恢复超分辨率图像的纹理细节部分,使图像重建后更加真实自然,具有更好的复原效果,而且模型计算复杂度相比于经典方法有所减少。