赵小强 ,李希尧
(1.兰州理工大学 电气工程与信息工程学院,甘肃 兰州 730050;2.兰州理工大学 甘肃省工业过程先进控制重点实验室,甘肃 兰州 730050;3.兰州理工大学 国家级电气与控制工程实验教学中心,甘肃 兰州 730050)
随着现代人工智能产业不断发展,图像超分辨率重建技术已经成为计算机视觉领域的研究热点.图像超分辨率重建(Super Resolution,SR)技术是指通过输入一张或多张低分辨率(Low Resolution,LR)图像,从中恢复出高分辨率(High Resolution,HR)图像的技术.由于人脸识别[1]、卫星遥感图像[2]、医学成像[3]等许多行业对SR技术的需求,使得SR技术有着十分广泛的应用与研究前景.超分辨率重建是一个典型病态的逆问题,即每个LR 图像都可以对应多个HR 图像.目前的超分辨率重建算法主要分为三大类:基于插值[4]的超分辨率算法、基于重建[5]的超分辨率算法、基于学习[6]的超分辨率算法.其中基于学习的超分辨率重建算法包含基于浅层学习的SR 和基于深度学习的SR,其通过学习高-低分辨率图像的映射关系来建立模型,性能主要取决于学习算法的学习能力,因其具有较好的重建效果,近年来备受关注.
因深度学习的发展,特别是卷积神经网络(Convolutional Neural Network,CNN)的引入,使得基于深度学习的超分辨率算法有了极大的发展.Dong 等人[7]首次将CNN 用于图像超分辨率重建,他们提出了基于卷积神经网络的图像超分辨率重建(Super-Resolution Using Convolutional Neural Network,SRCNN)算法.SRCNN 使用三层结构来训练图像,分别是浅层特征提取层、深层特征提取层、重建层.后来的许多网络大都基于此结构,然而该算法存在计算时间较长的问题.针对上述问题,随后Dong等人[8]提出了基于快速的卷积神经网络超分辨率重建算法(Fast Super-Resolution Convolutional Neural Network,FSRCNN),它是对SRCNN的改进,用反卷积层代替Bicubic 放大尺寸,并将大卷积用小卷积替代,增加更多映射层.但是反卷积会带入过多非客观因素,为此Shi等人[9]提出了基于亚像素卷积的超分辨率重建(Efficient Sub-Pixel Convolutional Neural Network,ESPCN),亚像素卷积在三个卷积后得到通道数为r2与输入同大小的特征图H×W,亚像素卷积使大小为H×W×r2的特征图像被重新排列成rH×rW×1的高分辨率图像.虽然ESPCN解决了上采样问题,但还存在过于依赖小图像区域内容,只对某一尺度有效、收敛速度太慢等问题.Kim 等人[10]基于残差学习,提出了一种20层CNN 的深度卷积网络超分辨率算 法(Very Deep Convolutional Networks for Super-Resolution,VDSR),它使用自适应梯度裁剪与残差网络来降低训练难度,采用更深的网络层,有更大的感受野,残差网络训练的收敛速度变快.然而增加网络的深度会产生更多的参数,这样容易发生过拟合现象,过深的网络会使模型大到难以存储,因此Kim等人[11]提出基于递归神经网络(Deeply-Recursive Convolutional Network,DRCN)的超分辨率重建算法,采用参数共享递归结构,在网络更深的同时,尽可能不增加参数量.VDSR 与DRCN 只采用输入到输出的全局残差学习,而没有共享残差块间的参数,Tai等人[12]结合局部残差学习、全局残差学习和多权重递归学习的思想,提出深度递归残差网络(Deep Recursive Residual Network,DRRN)的图像超分辨率重建算法,不但大幅度加快了训练的速度,还显著提升了性能.Lai 等人[13]提出了基于拉普拉斯金字塔网络(Laplacian Pyramid Super-Resolution Network,LapSRN)的图像超分辨率重建算法,该网络共同学习卷积和上采样层的残差,利用学习的上采样层抑制了双三次插值引起的伪影,显著降低了计算复杂度,并提出了一种新的损失函数.Hui 等人[14]提出了信息蒸馏网络(Information Distillation Network,IDN),采用类似通道注意力[15]关注通道自身的思想,对特征进行通道切片,逐步提取特征,既提升了训练速度,又提高了重建效果,但因其网络结构限制,并不能更好地提取复杂上下文特征信息,同时它只对前向卷积层特征信息进行滤波,没有对相邻卷积层的相关信息进行挖掘,所以存在着特征信息提取不充分的问题.
为了解决上述问题,本文提出一种信息蒸馏级联伸缩(Information Distillation Cascade Expansion and Compression,IDEC)的图像超分辨率重建算法.与IDN[14]中的信息蒸馏模块相比,本文算法主要的贡献包括:1)构造特征伸缩块,在蒸馏前对特征信息进行处理,该块通过扩展激活函数前的特征尺度,使更多数目的特征图被用于图像特征提取;2)在蒸馏之后引入通道注意力模块,可以在蒸馏网络对特征进行切片提炼的基础上,让重要部分的特征得到更多的关注;3)采用特征级联映射的方式,通过残差之后的特征级联叠加,让信息可以跨层传递,充分利用局部特征信息,同时残差结构[16]用来保留输入特征信息,使网络不会发生梯度消失或爆炸.
信息蒸馏网络(IDN)是由Hui 等[14]提出的一种轻量级网络模块,主要由特征提取块(F Block)、多个堆叠信息提取块(D Block)与重建块(R Block)构成.IDN 中最核心的模块D Block,由一个压缩单元和一个增强单元组成.如图1 所示,增强单元中包含两个三层的浅层模块,经过第一个模块的三层特征提取,得到(1-1/r)N的长位移特征,其中r代表蒸馏率,N代表输入通道数目;将提取的长位移特征和输入特征信息进行Concat 的短位移特征.合并后的短位移特征维度为(1+1/r)N,长位移特征进入第二个三层特征提取,得到(1+1/r)N维的特征信息,由于保持相同的维度,使得信息蒸馏网络的长短位移特征能进行叠加,并且为了将通道恢复为输入的大小,通过1×1卷积的压缩单元将通道维度压缩.
图1 D Block网络结构Fig.1 D Block network structure
传统深度特征提取模块进行图像超分辨率重建时,为了得到更好的重建效果,通常会采用较深的网络结构或者复杂的提取方式,这样往往会使网络结构的参数量较大,容易发生梯度消失或梯度爆炸,而信息蒸馏网络作为一种轻量级网络,可以很好地解决此类问题.但是信息蒸馏也存在仅对本层网络特征信息进行捕获,没有将相邻层信息加以连接从而提高网络对特征捕获能力的问题,且信息蒸馏网络本身会失去部分神经网络的学习,所以扩大输入信息蒸馏网络前的感受野很有必要,因此本文提出了一种特征可伸缩的信息蒸馏(Characteristic Telescopic Information Distillation,CTID)块,如图2所示.
图2 特征伸缩和信息蒸馏Fig.2 Characteristic expansion and compression and telescopic information distillation
由于特征在进入非线性激活单元(ReLU)前放大特征的维度有利于特征的通过,且更多的特征通过激活意味着神经网络有更高的非线性,可以让浅层信息更易于传递.所以本文设计一种可以缩放特征维度的特征可伸缩(Characteristic Expansion and Compression,CEC)块,CEC 块由拉伸层和压缩层组成,拉伸层采用3×3 卷积,为了减小参数量,在非线性激活后引入压缩层,同时引入伸缩率k,若拉伸前的维度为C1,经过一个拉伸单元后维度C2=k×C1,这样做可以很灵活地改变维度.若输入伸缩单元前的特征为Si-1,则输入后的Si为:
式中:(·)与HN2(·) 表示两个核为3×3 卷积操作,Wk与W1/k是维度伸缩操作,R表示ReLU 激活函数,维度为C1的特征信息Si-1经过拉伸、卷积、激活、压缩和残差连接得到Si.信息蒸馏网络是一种采用特征通道切片逐层提取特征的神经网络,相比于传统的卷积神经网络,只是单纯地对全部特征进行一次一次的卷积运算,而未考虑到伴随着网络结构加深,这样的训练其参数量会越来越大,训练也会变得困难.采用通道切片的方法,逐层逐次提取特征可以很好地降低参数量,且采用通道切片的思想,动态调节网络各层的通道维度,网络的灵活性得以增加.蒸馏阶段分为两个阶段.第一阶段将CEC 块的输出作为蒸馏网络的输入,特征信息经过第一阶段初步提取得到:
式中:HZ1(·),HZ2(·),HZ3(·)表示卷积操作,其输出的特征信息分别是,,;其通道维度G1,G2,G3之间有G3-G1=G1-G2=n,n表示通道数.
第3 次卷积的输出特征信息分为长路径信息和短路径信息,第一阶段后蒸馏提取的过程为:
式中:r是蒸馏率,S(·) 表示通道切片操作,特征信息输入多卷积层提取的初步信息是,i表示第i次卷积层,i∈(1,2,3,4,5,6),P是特征伸缩信息蒸馏网络轮次,是经过蒸馏后的短路径信息,C(·) 是Concat 连接操作,Ek-1是输入蒸馏网络的特征信息,表示与输入特征融合后的短路径信息.第二阶段的进一步蒸馏提取可以表示为:
式中:(r-1)/r表示局部长路径信息的蒸馏率,是长路径保留的特征信息,R是ReLU 激活函数,HZ6(·)、HZ5(·)、HZ4(·) 是卷积操作,其 通道数有G6-G4=G4-G5=n,是长路径与短路径叠加信息.由图2 可知,通道切片操作采用1×1 卷积,使其可以自适应对通道进行调整,进而得到需要提取的长路径信息和需要保留的短路径信息,最后经过1×1 卷积层将由于蒸馏扩宽的通道数压缩回原来的维度,即QP=HZ(),HZ(·)表示核为1×1的卷积操作.
相比大多数注意力主要针对空间特征,通道注意力主要关注通道间的关系,可以自适应分配权重校正通道信息,保留有价值的特征,去除无价值的特征,以加强特征判别能力.信息蒸馏后将输出引入到通道注意力单元,其过程可以表示为:
其中Sq(·)表示对通道进行挤压,可以表示为:
Sq(·)通过全局平均池化实现,将C×H×W的特征图压成C×1×1的特征图,C为特征图通道数,此特征图可以看成对全局信息进行提炼:
式中:Fv(·)和Fw(·)代表两个卷积层,对信息蒸馏压缩后的C维向量起作用,先通过一个卷积层得到C/r维向量,经过激活函数,再通过第二个卷积层将C/r维转为C维向量,μ是Leaky ReLU 激活函数,σ是sigmoid 激活函数,目的是将结果转化为0~1 的归一化权重,并生成最终特征.
大部分的残差网络是对整个残差模块进行简单的串联堆叠,前一个残差模块的全部信息直接作为输入特征发送给后一个残差模块,以学习整个模块的输出特征,这种连接方式虽然学习到了全局的特征信息,但不能很充分地利用局部特征信息.
为了获得更丰富的深层特征以及更好地利用局部残差特征,本文提出了一种特征级联残差映射(Feature Cascade Residual Mapping Module,FCMM)块,如图3所示.其中,FCMM 块由四个CTID 块组成.FCMM 块通过对每一个CTID 块的输出端加入局部跳跃级联,提取残差模块中残差分支的特征,将前三个CTID 块的输出特征直接发送到FCMM 的末端,和最后的CTID 块的输出特征信息叠加融合,这种连接方式能增强特征信息层间的传递,易于获取更丰富的深层特征信息:
图3 信息蒸馏级联伸缩网络结构Fig.3 Information distillation cascade expansion and contraction network
若将第i-1 个残差块的特征信息FCi-1当作输入,MRMi(·)是第i个残差块的提取操作,FCi是第i个残差块生成输出特征信息.在FCMM 块中,三个残差块提取的特征信息分别是SP1,SP2,SP3:
最后一个CTID 块提取的特征信息是SP4,最终获得的特征融合信息为SP:
式中:HZ1(·)是卷积操作,CTM1(·)、CTM2(·)、CTM3(·)、CTM4(·)是CTID 块对特征信息的提取操作,P(P∈(1,2,…,k))表示FCMM 块的块数,SP0和SP分别对应FCMM块的输入和最终的输出.
特征信息依次通过上述三个CTID 块,再经过一个CTID 块串联,并将三个经CTID 块提取的残差特征直接发送给FCMM 块的尾端,并与最后一个CTID块输出进行信息叠加.最后,把这些特征通过1×1卷积进行特征融合,在将初始特征信息与这个融合的特征信息叠加,相比于传统堆叠残差块,采用FCMM 框架可以在整体和局部两个层面利用残差特征,每个CTID 块提取的有用特征信息可直接传到末端.每个CTID 块残差映射的输出特征采用跳跃连接的方式对该层的残差信息进行直接保留,各层没有信息的损失,直接映射部分,则通过端到端连接的方式对每层特征进一步提取,FCMM 块在末端对保留的残差特征信息与进一步提取的特征信息进行聚合,丰富了提取的图像信息.
本文提出一种基于信息蒸馏级联伸缩网络的图像超分辨率重建算法,其结构如图3 所示,网络的整体结构包括三个部分,分别是浅层特征提取模块、深层特征提取模块、重建模块.
首先,采用3×3 卷积提取浅层特征信息,其过程如式(17)所示:
式中:H0(·)表示初始提取特征的卷积运算,F0表示所提取的初始特征.
其次,F0通过k个IDEC块端对端连接组成,用于逐步提取特征.每个IDEC 块由FCMM 块与一个3×3 卷积采用残差连接构成,IDEC 块中的FCMM 块实现不同提取特征的信息融合,充分利用图像局部特征,使特征信息向网络后端有更多的传递,让网络学习图像更多的高频信息,以提高图像重建性能.非线性映射的过程如式(18)所示:
式中:(·)为第i个IDEC块,Hf(·)表示进一步提取特征的卷积层.
最后,采用亚像素卷积进行上采样,再通过一个卷积层得到最终的重建图像,如式(19)所示:
式中:Tup(·)表示上采样运算,Hr(·)表示重建卷积运算,IHR表示重建的高分辨率图像.
本文实验用训练数据集是DIV2K[17],并对训练数据集进行90°、180°、270°旋转和随机水平翻转增强数据.若不进行数据增强,直接使用DIV2K进行训练则是欠拟合的,且对其他旋转角度使用插值会破坏边缘并影响性能[18].Chatfield 等人[19]经实验指出通过旋转与水平翻转产生额外的样本,采用这些样本对数据进行扩大,可以在训练过程中获得更好的效果,有效地提升模型鲁棒性.数据增强能让有限的数据产生更多的数据,增加训练样本的数量,提高多样性,可以提升模型的泛化能力,相比于获得新数据需要的大量成本,利用已有数据旋转和翻转,是更为节约与高效的方法,因此在CARN-M[20]、IDN[14]、VDSR[10]等许多先进算法中均采用这种方式进行数据增强.对于测试部分,采用常用的四个标准测试数据集Set5[21]、Set14[22]、BSD100[23]和Urban100[24].本文所有实验均基于RGB 三通道,测试时将图像色彩空间从RGB 转换到YCbCr,在其Y通道进行.使用Adam 算法优化,设置β1=0.9、β2=0.999 和ε=10-8,损失函数为L1范数,批处理大小为16,学习率设置为10-4,训练迭代轮次为1 000(epoch),设置衰减率为每200 轮次减半.本实验网络框架搭建、训练和测试在Ubuntu 18.04 系统上进行,使用PyTorch 1.2 完成,实验的硬件GPU 为NVIDIA GeForce RTX 2080Ti,显存为11 G,CPU 为Intel(R)Core(TM)i9-9900K,内存大小为64 G.
浅层特征提取模块采用3×3×64卷积,深层特征提取模块由7 个IDEC 块和一个卷积层组成,卷积层的卷积核为3×3,每个IDEC 由四个特征伸缩信息蒸馏模块和一个卷积层构成,特征伸缩信息蒸馏模块累积使用7×4=28个,重建模块中使用一个卷积核为3×3 的卷积,整合上采样后特征图完成重建.在CTID块中伸缩率设定为4,蒸馏率设定为4,通道注意力全连接层的reduction设定为16.
本文使用平均峰值信噪比(Peak Signal to Noise Ratio,PSNR)和结构相似度(Structural Similarity Index Measurement,SSIM)作为评价实验模型的指标.PSNR 大小与当前图像和参考图像的均方误差以及最大像素值有关,SSIM 是一种全参考图像质量的指标,从亮度、对比度、结构三方面评价图像相似性.
为了客观评价本文提出的IDEC 算法,我们选取Bicubic、SRCNN[7]、FSRCNN[8]、VDSR[10]、DRCN[11]、LapSRN[13]、DRRN[12]、MemNet[25]、IDN[14]、CARNM[20]、ADSRNet[26]、CT-SRCNN[27]、FMAM[28]、GDSR[29]、FGLRL[30]、ESRGCNN[31]等算法进行对比,结果如表1所示,在2、3、4倍放大时分别与上述算法在测试数据集Set5、Set14、BSD100、Urban100 上对比PSNR值和SSIM值大小.
表1 不同算法在四个数据集上2,3,4倍时的PSNR和SSIMTab.1 PSNR and SSIM of different algorithms at 2,3,4 times on four data sets
从表1 可知,本文算法相比于上述对比算法,在2、3、4 倍放大下PSNR 值和SSIM 值都有了明显的提升,在3、4 倍放大时更为明显.本文算法在3 倍放大时在Set5、Set14、BSD100、Urban100 四个测试集上相比于IDN 算法,平均PSNR 值与次优级相比分别提升为0.16 dB、0.32 dB、0.09 dB、0.57 dB,而SSIM 值分别提升0.001 2、0.006 3、0.003 5、0.013 5.4 倍放大时,在以上四个测试集上平均PSNR 值分别提升了0.43 dB、0.38 dB、0.16 dB、0.75 dB,这是由于本文算法相比于IDN,扩展了蒸馏前的感受野,对信息蒸馏的特征提取通道权重信息,使网络能够自适应地关注其包含更多图像信息的部分.与VDSR、DRRN 等主流算法相比,本文算法有着更深的网络层数,通过信息蒸馏逐层提取特征信息,缓解了全卷积滤波而产生的较大运算量,且采用级联聚合的方式,实现了更好的全局特征提取与局部特征关注.IDEC 较于GDSR 与ADSRNet 等算法在PSNR 指标上获得了更大的提升,对于2 倍、4 倍2 个尺度,在基准数据Urban100 上PSNR 值平均提升0.87 dB、0.27 dB、0.92 dB、0.39 dB,SSIM 值平均提升0.007 9、0.002 6、0.028 5、0.013.特别地,在4 倍放大时,本文算法的PSRN 和SSIM 值领先其他所有对比算法,说明本文提出的IDEC 算法在放大倍数更大的情况下在各个数据集上具有更好的性能.
从视觉效果来看,本文算法相比其他对比算法,重建效果更为清晰,如图4 所示.在Urban image_005图片中,本文重建的图片整体窗户边框纹理更清晰,最大程度还原了原始图像高频信息.在图5 的上方外窗框部分,SRCNN、FSRCNN、VDSR 重建效果偏差,且都出现伪影现象,本文提出的IDEC 算法重建效果更为清晰,且相比其他算法,没有伪影现象,更接近HR 图片.图6 中墙上的竖条状装饰痕迹,其他算法有部分失真变形,而IDEC 算法的重建效果没有变形,很好地还原了墙面装饰,对细节的恢复效果相比其他算法更为准确.本文提出的IDEC 算法之所以在视觉效果、失真以及细节方面优于其他算法,是因为其在提取残差信息的基础上,对残差信息进行了二次叠加利用,这样的网络结构可以更好地学习高频信息,充分挖掘复杂纹理细节等信息,同时,全局残差可以保留边缘低频信息,以得到较好的重建效果.
图4 Urban image_005在4倍放大因子下的超分辨率性能对比图Fig.4 Comparison of super-resolution performance of urban image_005 at 4×magnification
图5 Urban image_034在4倍放大因子下的超分辨率性能对比图Fig.5 Comparison of super-resolution performance of urban image_034 at 4×magnification
为了进一步验证本文算法的可行性及合理性,本文进行了消融实验.为了保证实验公平性,所有训练批次均为400 个epoch,其结果如表2 所示.表2 中去掉特征可伸缩块(CEC),在Set5测试集上进行4倍放大因子测试,结果发现不加级联单元和不加伸缩单元PSNR 值分别减少了0.33 dB 和0.20 dB,SSIM 值减少了0.005 5 和0.001 2.在BSD100 数据集上进行4倍放大因子测试,不加级联单元情况下,PSNR 和SSIM 值分别减少0.14 dB 和0.064 7,不加伸缩单元PSNR 和SSIM 值分别减少了0.06 dB 和0.061 3.这验证了本文算法中设计的特征伸缩单元以及特征级联单元对网络学习能力可以起到促进作用.
表2 消融实验Tab.2 Ablation experiment
本文为了解决蒸馏网络中存在的特征信息相关性不足、特征提取不充分及特征利用不充分的问题,提出了一种信息蒸馏级联伸缩的图像超分辨率重建算法.本文设计了特征伸缩块用于提取更多的特征信息,可以对特征通道数先扩展后压缩,并加入通道注意力给特征赋予不同的权重,自适应地调整通道特征信息来提高网络表达能力.同时,为了使特征伸缩信息蒸馏(CTID)块中提取的特征有效传递,采用特征级联残差映射的方法,将残差结构引入CTID块,组成含有CTID 块的残差组,并采用残差级联叠加的方法,将提取的残差信息进一步传递,增加了网络的宽度,使低频信息更好地通过,丰富了网络的边缘信息.