1. 引言
图像,作为现代社会中非常常见的一种信息载体,能够传递丰富的信息。它通过色彩、明暗、结构等多维度的信息,传递信息到人类的视觉系统,有着语言、文字无法比拟的优势。而图像分辨率,是对图像信息量大小的一种衡量,是评价图像在细节信息表现力方面是否优秀的一个重要指标。相对于低分辨率(Low Resolution, LR)图像来说,高分辨率(High Resolution, HR)象征着更高的像素密度,也因此能为人们提供更加丰富的纹理细节以便于做出更准确的判断,故而高分辨率图像在众多数字图像应用领域中都有着极大的需求 [1]。然而在现实生活当中,由于环境干扰、成像设备缺陷、传输失真、图像降质模型自身影响等各种约束条件的存在,直接获得细节清晰、边缘完整的理想高分辨率图像通常是很困难的 [2]。在这种情况下,采取一些有效的措施来提高图像的分辨率就显得尤为重要。
在提升图像分辨率的方法中,对光学硬件设备进行改良是最为直截了当的一种举措,但是一般来说高精度的成像设施其造价都较为高昂;另一方面,对一些特殊场合(如医疗影像、航空航天、卫星遥感、军事侦察等)下的成像系统而言,受限于技术水平方面的瓶颈,其制造工艺难以大幅改进,面临着一些很难攻克的问题 [3]。因此,以软件和算法作为出发点来获得更加符合要求的高清图片是非常迫切且至关重要的,超分辨率重建(Super-Resolution, SR)技术就在这种背景下诞生了。顾名思义,超分辨率重建技术就是运用一些特殊的方式对给定的LR图像进行处理,根据其所含有的碎片信息最终恢复出一幅HR图像的方法 [4]。相比起直接优化图像的采集设备、成像设备,通过SR技术来直接改善图像效果,更加方便,成本也更加低廉,具有大范围推广的可行性,应用价值较高。
目前,基于深度学习的超分辨率技术取得了显著优于传统方法的效果,随着网络的加深和不同性能模块的引入,图像的生成质量不断提高,但是客观评价指标的高低与人眼视觉感知的效果并不等价。基于像素层面的优化往往会缺失对高频信息的关注,导致重构的图像趋于像素平均化,与人眼感知效果有一定的出入,同时因为超分辨率的生成过程是一个不适定问题,同一个低分辨率图像可能会对应着多张不同的高分辨率图片,导致生成的效果并不稳定,会偏离人眼的感知。
本文提出了一种基于对偶学习的超分辨率方法,通过添加SR图像下采样的子任务,进一步生成约束图像的解空间,使传统的LR—>HR映射转变成了LR < — > HR的闭环双向映射,使得生成图像更加贴近自然世界的图片;同时引入了密集连接的残差通道注意力模块,改变不同通道平均化的问题,使得图像的特征能够更好地呈现,获得了更好的主观视觉效果。
2. 超分辨率重构理论基础
2.1. 图像超分辨率的基本概念
图像超分辨率重构技术顾名思义,便是基于原始信息,获取成像极限之外的信息,提高图像的分辨率,也就是通过像素质量较低的低分辨率图像来恢复与之对应的高分辨率图像。我们所拥有的LR图像可以看作是HR图像通过一定的退化过程而来,如式(1):
(1)
其中D代表一定的退化方式,
为退化过程中的相关参数(比如噪声、尺寸等)。我们在获取到一张LR图片等时候,对于他的退化过程是未知的(即D和
未知),而我们则要通过一定的方法,来生成一张超分辨率图片,我们希望这张SR图片能够无限地趋近于真实的HR图片。超分辨率需要解决的其实就是退化过程的逆过程,找到合适的方法来降低或者消除图像降质过程的模糊和噪声,并上采样获得像素量更大的图像素,提高分辨率,它的过程即可用式(2)来简单表示
(2)
其中,F表示一定的超分辨率方式,
表示相关的参数。而我们获得的SR图片,他越接近于HR图片,就说明重构的效果越好。
超分辨率技术的实现方式可以分为基于插值、基于重建和基于学习的方法,目前最为常用、效果最好的则是通过卷积神经网络来实现的基于深度学习的超分辨率方法。
2.2. 基于卷积神经网络的超分辨率算法
基于卷积神经网络的超分辨率算法是一种端到端的方法,通过中间层的处理,将输入的低分辨率图像,生成高分辨率的图像。SRCNN [5] 首次使用全卷积神经网络进行了单图的超分辨率重构,开辟了用深度卷积网络来解决超分问题的先河,当下的多数模型都是在此之上的扩展和延伸。
该模型首先通过双三次插值的方法,将输入的LR图像放大到目标尺寸,然后通过三层的卷积神经网络映射和重建,得到目标的HR图片,结构如图1。

Figure 1. Diagram of SRCNN network structure
图1. SRCNN网络结构图
三个卷积层分别完成了特征块提取和表示、非线性映射和重构三个任务,具体如下:
1) 特征块提取与表示:将插值放大后的低分辨率图像提取
的图像块后输入卷积,输出每个图像块的
维特征块。如式(3),其中
代表卷积操作,
表示
个卷积核,
为一个偏置向量。
(3)
2) 非线性映射:将特征块输入第二层卷积,通过非线性变化,得到一个
维的矢量。如式(4),
表示
个大小为
个卷积核,
为
维的向量。
(4)
3) 重构:通过一个反卷积的操作,得到最终的高分辨率图像块。如式(5),
表示c个大小为
的滤波器,
为c维的偏置向量。
(5)
该方法取得的效果显著优越于传统的超分辨率方法,在视觉效果和PSNR (峰值信噪比,Peak Signal to Noise Ratio)值上都表现出了更好的性能,也成为了后续使用深度学习进行超分辨率研究的基础框架,本文的后续研究也是基于此框架进行的。
3. 基于对偶学习的残差注意力超分辨率算法
单图超分辨率的目的,是希望生成的ISR能够尽量地逼近IHR,我们将ILR作为信息输入后,希望得到一个合适的解。但实际上这是一个不适定的问题,因为存在无数可能的IHR在通过同一降采样手段后,会得到同一张的ILR。所以在反向求解的过程中,就会存在解空间过大的问题,缺少约束条件,导致重构的图像尽管可能获得了较高的客观评价指标,但在视觉上却存在失真的问题。
本章通过引入对偶学习的框架,除了进行将ILR生成ISR的常规任务外,增加了将生成的ISR再次下采样生成ILR的任务。两个任务互联关联,形成闭环的彼此监督,通过新增的对下采样的约束,进一步减小了ISR的解空间范围,提高了生成图像的质量。
3.1. 任务框架
本文的对偶网络包含两个任务,一个是将ILR生成ISR的主任务,即常规SR任务,另一个是将生成的ISR下采样为
的对偶任务。
训练的目标一方便是希望生成的ISR能尽可能的逼近IHR,另一方面是希望ISR的下采样结果
也能尽可能的逼近ILR,用以对生成的ISR做进一步的限制,减小解空间。因为如果生成的ISR能接近于IHR,那么他的下采样结果也理应和真实图像的下采样结果相似,由此将传统的LR—>HR映射转变成了LR < — > HR的闭环双向映射,以获得更好的SR效果。如图2所示为本网络的思路框架。

Figure 2. Diagram of dual task framework
图2. 对偶任务框架图
3.2. 网络结构
3.2.1. 密集连接通道注意力模块
大多数基于深度学习的SR重构方法,在重构时忽略了分层特征的使用,而对于不同尺度的图像/特征图来说,特征的显著部分也存在着较大的差异。虽然使用残差块可以将原始LR图像的信息进行传递,但是对于一个很深的网络来说,在中间过程中的信息该如何利用依旧是一个问题。直接提取每个卷积层的输出很难,为了更好地进行多层次信息的传递,我将残差通道注意力模块(RCAB, Residual Channel Attention Block)进行了密集连接,将每个层都与前面所有层在通道维度上连接在了一起,作为下一层的输入,以此构成了Residual Dense Channel Attention Blocks (简称RDCAB模块)。比起简单的跳跃连接,使用concat进行的密集连接,将不同层的特征图进行了更好地复用,使状态进行有效地传递,让图像特征信息拥有更好的表征。如图3为RDCAB模块的结构图。

Figure 3. Structure diagram of RDCAB module
图3. RDCAB模块结构图
第b个RDCAB模块的输入为上一个模块输出的特征图
,经过3 × 3尺寸,且步长、padding皆为1的卷积核后,特征图保持原有的尺寸不变,通过concat进行信息的拼接。通过这一模块进一步利用不同层的特征,可以提高模型学习的性能。
3.2.2. 模型细节
我们的网络借鉴了U-Net [6] 结构,模型包含编码和解码两个过程。ILR首先通过编码层进行特征提取,再通过解码层进行上采样,重建获得ISR。为了更好地传递不同层次的特征细节,在阶段性的上/下采样特征图中进行恒等映射,使得同尺度的ILR与ISR中能够共享低频信息。如图4,为×4尺寸的网络结构图。
对于输入的LR图像,我们先通过双三次插值的方法,放大到目标尺寸。先经过一次卷积后,将通道数转化为64,通过两个下采样模块,得到1024通道的特征图。下采样模块结构如图5(a),其中,先通过一个size为3,步长为2的卷积,在进行特征提取的同时实现下采样,将
的矩阵转化
的输出,其中c1为卷积核的数目。然后通过激活函数实现非线形的变换,最后通过一个步长为1的常规卷积,得到下采样模块输出的特征图。下采样过程表现如式(6)所示:
(6)
其中Fn表示第n个下采样模块输出的特征图,n的数目根据放大尺寸而定,hdown表示进行下采样模块操作,其中第一个模块的输入F0为通过双三次插值放大后的LR图像。
(a) Downsampling module结构 (b) Upsampling module结构
Figure 5. Structure diagram of downsampling/upsampling module
图5. 下采样/上采样模块结构图
每个通过下采样模块的特征图,通过一个对称连接复制到上采样的结果中,进行特征信息的传递。上采样模块如图5(b),通过B个RDCAB模块进行连接后,使用PixelShuffle实现上采样,上采样模块的输出通过一个卷积层可以输出为对应尺寸SR图像。上下样过程表现如式(7)所示:
(7)
其中,hup表示进行上采样模块操作,Fn为从下采样过程中传递过来的特征信息。F2×、F4×为对应放大尺寸的特征图,通过一个1 × 1卷积层后可得到对应尺寸的SR图像,如(8)所示:
(8)
fn为对应层的卷积操作,
为n×放大倍数的SR图像,即
即是4倍超分任务中最终需要生成的SR图像。在用以限制生成效果的对偶任务中,将生成的
、
进行2倍的下采样,获得原尺寸的
和2倍放大的
,用他们和数据集中对应尺寸的LR图像进行比对,计算损失函数值。
3.3. 损失函数
损失函数的作用是对网络模型的输出和真实值进行差异度的计算,从而判断两者间的偏离程度,从而引导网络优化的目标。如果损失函数计算得到的值较小,那么就代表在我们选择的判断尺度内,网络模型的生成性能较好。因此,损失函数的类型对于训练和生成效果都起到了重要的指导作用。
因为本模型的任务包含主任务和回归任务,所以损失函数由两个部分组成:
(9)
其中,Lp为主任务的损失,x为低分辨率的图像,P表示图像的SR过程,y表示对应的HR图像;Ld为对偶任务的损失,
用来权衡对偶任务损失占比的大小,D表示对SR图像进行下采样的过程。
对于loss的形式,我们在相同的条件下分别用L1 loss和L2 loss进行了训练,达到收敛后进行测试,效果图如下图6。
L1 loss效果图 L2 loss效果图
Figure 6. Effect picture of training with different loss functions
图6. 不同损失函数训练的效果图
可以看到使用L2 loss生成的图像虽然整体上和L1 loss相似,但对于纹理和边缘的处理,明显存在模糊和失真的现象。
因此,本文中使用L1 loss作为损失函数,以产生更少的平滑现象。并且在
的取值上,我们使用了从0.01逐渐增大到1来进行实验,在值为0.1的时候取得最好的效果。
4. 实验结果
本实验在一张NVIDA GeForce GTX-1080Ti GPU上进行,实验基于Pytorch深度学习框架实现。模型训练使用的数据集是DIV2K [7] 数据集,这是目前较为流行的单图超分辨率数据集,其中使用编号1-800的图片作为训练集,801-900的图像为测试集。选择的重构尺寸为×4,因此每张图片的输入都包含其HR图像和2倍、4倍下采样的LR图像。
4.1. 对比实验
在视觉效果上,以Set14 [8] 的baboon为例(如图7),SRCNN虽然整体上实现了超分重构,但在结构复杂处还是呈现得相对模糊,边缘平滑不清晰。而EDSR在此基础上有了较大的改进,纹理边缘得到凸显,但是部分区域仍呈现结构性不好的失真现象(如胡须呈现偏折、不连贯的现象),同时它的模型体量也显著较大。本章提出的方法,在细节处理上更胜于EDSR,胡须纹理边缘都较为清晰,且视觉上连贯和谐、整体性较好。
如表1所示,我们的方法在一系列经典超分辨率算法中取得了较好的效果,其中加粗部分为最优指标。同时,本文的模型参数(8.13 M)也少于其他表现优异的模型如RCAN (15.6 M)、EDSR (43.1 M)。因此,本模型可以在参数量相对较小的情况下,实现较好的超分性能和视觉效果。
4.2. 消融实验
为了验证本文所使用的方法在模型优化中是切实有效的,我们又进行了消融实验,通过RCAB/RD CAB的替换以及去除对偶任务来进行。

Figure 7. Visual comparison between our methods with other super-resolution methods
图7. 本文方法与其他超分方法的效果图对比

Table 1. Performance comparison of super-resolution models at 4×
表1. 4倍超分下模型性能对比

Table 2. PSNR value of super-resolution ablation experiment at 4×
表2. 4倍超分下消融实验PSNR值
在无对偶任务的RCAB集联网络上,我们分别增加对偶任务/将RCAB替换成RDCAB来进行了实验,每个模型都是在训练至300个Epoch已收敛的情况下进行测试。结果如表2所示,证明两项改进对于网络的性能都有着较为显著的提升,我们的方法是有效的。
5. 总结
本文对超分辨率的概念及其在深度学习基础上的实现进行了阐述,并基于对偶学习,在深度学习主任务的基础上,通过下采样的子任务约束超分辨率图片的训练过程,提高生成效果的整体性;同时使用了密集连接的通道注意力模块,使得网络的性能也得到提升。最后,通过模型对比实验和消融实验,验证了本方法的高效性。