作者:SFXiang
首发:AI算法修炼营
今天给大家介绍一篇图像超分辨率邻域的综述,这篇综述总结了图像超分辨率领域的几方面:problem settings、数据集、performance metrics、SR方法、特定领域应用以结构组件形式,同时,总结超分方法的优点与限制。讨论了存在的问题和挑战,以及未来的趋势和发展方向。
1.前言
超分辨率(Super Resolution,SR)是从给定的低分辨率(LR)图像中恢复高分辨率(HR)图像的过程,是计算机视觉的一个经典应用。SR是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像(说白了就是提高分辨率),在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用价值。
近年来,目睹了使用深度学习技术的图像超分辨率的显着进步。文中将现有的使用深度学习方法解决图像超分辨率问题的研究工作主要分成三个部分:
1.supervised SR(有监督学习的图像超分辨率)
2.unsupervised SR(无监督学习的图像超分辨率)
3.domain-specific SR (特定应用领域的图像超分辨率)
2.超分辨率SR问题定义
其中,Φ(θ)是正则化项,SR最常见的损失函数为逐像素差的均方误差,更强大的模型往往采用将多种损失函数相结合的方式。
3.数据集
一些数据集提供HR-LR图像对,有的只提供HR图像,LR图像通常是通过MATLAB中默认设置的imresize函数(双三次插值with anti-aliasing)获得。下表是一些SR常用数据集:
4.图像质量评估
如何定量地评估模型的性能?许多图像质量评估(IQA)技术(或度量)用于相同的目的。这些指标可以大致分为两类——主观指标和客观指标。
峰值信噪比 PSNR
峰值信噪比(PSNR)是一种常用的客观指标,通常用来衡量有损变换的图像质量。对于SR,通过图片间的最大可能像素值L和均方误差MSE定义,PSNR与ground truth图像与生成图像的均方误差(MSE)的对数成反比。假设HR图像I和重建图像 ˆ I,两者的像素都是N,MSE和PNSR(db)如下所示:
在上面的公式中,8bit表示一个像素点的取值,取值范围为0~255,L是可能的最大像素值(对于8位RGB图像,它是255),PSNR的典型值从20到40不等,越高越好。从式子可以看出,L一定,PNSR只与像素间的MSE有关,所以,PSNR只关心像素值之间的差异,它并不能很好地代表感知质量。PSNR在真实场景的SR衡量效果较差,但由于缺乏感知衡量标准,运用最为广泛。
结构相似度 SSIM
Operating Channels
除了RGB,YCbCr颜色空间也被广泛使用。Y, Cb, Cr 分别表示亮度、蓝差、红差色度分量。早期的模型更倾向于在Y通道上进行操作,最近的模型更多的处理RGB颜色通道。在不同的颜色空间或者通道上操作会使评估的性能造成很大的不同。
其他的IQA分数
平均意见评分(MOS)
基于任务的评价
信息保真度准则(IFC)
视觉信息保真度(VIF)
5.监督式SR方法
深度学习可以用给定的低分辨率图像来估计高分辨率图像。通过使用高分辨率图像作为目标(或 ground-truth)和LR图像作为输入,我们可以将其视为监督学习问题。监督式SR方法是同时使用LR和相应的HR图像进行训练。
监督式SR方法框架
通过上采样模块在模型中的位置,可以将这些模型分为四个框架。
1、前置上采样SR
该方法首先对低分辨率图像进行插值,得到“粗”的高分辨率图像。
直接从LR图像学习HR图像存在一定难度,利用传统方法(双三次插值)上采样,在通过神经网络优化重建高质量的细节,是一种直接的解决方案。SRCNN学习经过插值处理的LR图像到HR图像之间的映射。
优点:通过传统算法进行上采样,神经网络只需要对粗HR图像进行精细化处理,大大降低了学习难度。可以将任意大小的插值处理后的图像作为输入,效果与单尺度模型相当。
预先上采样方法的副作用:噪声放大、模糊、在高维空间计算造成的时间和空间成本大。由于这里没有使用转置卷积,checkerboard artifacts可能会被绕过。
2、后置上采样SR
在这种情况下,低分辨率图像被传递到CNNs。上采样在最后一层使用可学习层来执行。将上采样操作移至网络末端,在低维空间中学习映射。
该方法的优点是在较低维空间(上采样前)进行特征提取,从而降低了计算复杂度。此外,通过使用一个可学习的上采样层,可以对模型进行端到端的训练。分辨率提升只在网络后端发生,计算复杂度大大提升。上采样只在一个步骤中进行,学习大的上采样因子的难度很大。每个尺度都需要单独的SR模型,无法满足多尺度SR的需要。
3、逐步上采样SR
在上面的组中,虽然计算复杂度降低了,但是只使用了一个上采样卷积。这使得大尺度缩放的学习过程更加困难。为了解决这个缺陷,Laplacian Pyramid SR Network和progressive SR采用了渐进上采样的框架。在这种情况下,模型使用级联神经网络在较小的尺度上每一步逐步重建高分辨率的图像。
通过将一个困难的任务分解成更简单的任务,可以大大降低学习难度,获得更好的性能。此外,像curriculum learning这样的学习策略可以进一步降低学习难度,提高最终的performance。lapSRN 采用渐进式SR框架解决了Post-upsampling SR框架无法满足的多尺度问题。采用连续的神经网络结构,逐步重建高分辨率图片。MS-LapSRN和progressive SR也采用了这个框架。但存在模型复杂、训练难度大的问题。
4、迭代上下采样SR
另一种流行的模型架构是hourglass(或U-Net)结构。有些变体,如Stacked Hourglass网络使用几个连续的hourglass结构,有效地在上采样和下采样过程之间交替。
该框架下的模型能够更好地挖掘出低分辨率图像和高分辨率图像对之间的深层关系,从而提供更高质量的重建结果。为了探究LR-HR图像对之间的关系,将一种有效的迭代过程——反向投影引入到SR中,迭代的上采样-下采样操作,迭代的应用反向投影精细化图像。计算重建误差,再将其融合回来调整HR图像的强度。DBPN采用这种结构,将一系列中间HR结果联系起来重构成最后的HR结果。
6.上采样方法
除了模型中的上采样位置外,如何执行上采样也非常重要。尽管存在多种传统的上采样方法,但利用CNN来学习端到端的上采样已逐渐成为一种趋势。在本节中,我们将介绍一些传统的基于插值的算法和基于深度学习的上采样方法。
上采样方法有:
1、最近邻插值和双线性插值
最近邻插值:每个待插值的位置选择最相邻的像素值,而不考虑其他像素,处理速度快,生成图片质量低、块状化。
双线性插值:每次在一个轴上进行,然后在另一个轴上再次进行。保持速度较快的同时,性能比最近邻插值好得多。感受野为2*2双三次插值同样,双三次插值对图像的两个维度进行三次插值,需要4x4的像素进行计算,计算速度慢,效果更平滑。anti-aliasing的双三次插值是目前构造SR数据集的主流方法。
基于插值的上采样方法只能通过图像的本身内容提高图像的分辨率,并没有带来更多信息,相反还有噪声放大、计算复杂度增加、结果模糊等副作用。
2、转置卷积
通过插入零值,进行卷积来提高图像的分辨率。由于转置卷积在保持与卷积兼容的连接模式的同时以端到端的方式放大了图像大小,因此它被广泛用作SR模型的上采样层。
然而,该层很容易在每个轴上引起“不均匀重叠”,并且两个轴上的相乘结果进一步创建了大小变化的棋盘状图案,从而损害了SR性能。
3、亚像素层
与转置卷积层相比,亚像素层具有更大的感受野,它提供了更多的上下文信息以帮助生成更多逼真的细节。然而,由于感受野的分布是不均匀的,并且块状区域实际上共享相同的感受野,因此可能会导致在不同块的边界附近出现一些伪影。另一方面,独立预测块状区域中的相邻像素可能会导致输出不平滑。
4、Meta upscale module
以前的方法需要预先定义缩放因子,即针对不同的因子训练不同的上采样模块,效率低下,而且不符合实际需求。Meta upscale 模块基于元学习解决任意比例因子的SR。具体来说,对于HR图像上的每个目标位置,此模块将其投影到LR特征图上的一个小块(即k ×k×cin),根据密集层的投影偏移和缩放因子预测卷积权重(即,k×k×cin×cout)并执行卷积。
这样,Meta upscale module可以通过单个模型以任意因子连续放大它。并且由于大量的训练数据(同时训练多个因素),该模块在固定因素上可以表现出相当甚至更好的性能。但是,该方法基于与图像内容无关的多个值来预测每个目标像素的大量卷积权重,因此当面对较大放大倍数时,预测结果可能不稳定且效率较低。
7.常用网络结构设计
除了经典的2D卷积,网络中还可以使用一些有趣的变体来改进结果。Dilated卷积可以提供更有效的感受野,因此可以使用长距离依赖的信息。Skip connections、Spatial Pyramid Pooling和Dense Blocks推动了低级特征和高级特征的结合,以提高性能。
1、Residual Learning
全局残差学习:由于输入与输出图像高度相关,研究者尝试只学习两幅图像的残差,只需要学习一个残差映射恢复丢失的高频细节,大大降低了模型的复杂度和难度。
局部残差学习:用于缓解网络不断加深造成的梯度消失、爆炸的问题,增强网络的学习能力。
由跳跃连接和逐像素加法进行计算,前者连接输入与输出,后者在不同网络层之间进行连接。
2、Recursive Learning
为了实现更大的感受野和进行更高层次的特征学习并且避免更多的参数,将递归引入模型。16个循环的DRCN采用单卷积层递归,感受野达到41×41,远大于SRCNN的13×13,并且没有过多参数。
DRRN将残差块作为递归单元进行25次递归,性能优于17个残差块的非递归基线。
后来Tai等人提出了基于记忆块的MemNet,记忆块由6个递归残块组成,每个递归的输出连接起来,再经过一个额外的1×1卷积进行记忆和遗忘。CARN也采用了包含多个残差块的递归单元。
Han等提出了双状态递归网络(dual-state network, DSRN)来交换HR状态和LR状态之间的信号。在每个时间步,它们根据当前LR状态和HR状态更新LR状态,然后将其传输到HR状态进行更新。通过双态递归学习(最多7次递归),更好地探索了LR-HR图像对之间的深层关系。而Lai不仅将卷积层作为递归层,还将特征嵌入模块、特征上采样模块和图像上采样模块作为递归模块,对每个子问题共享参数。
递归学习使得参数的数量大大减少,但带来了梯度消失和梯度爆炸的问题。因此通常将残差学习和递归学习结合来缓解这些问题。
3、Multi-path Learning
多路径学习是指通过模型的多个路径传递特性,这些路径执行不同的操作,以提供更好的建模能力。具体来说,它可以分为三种类型:
Global Multi-path Learning:全局多路径学习是指利用多个路径提取图像不同方面的特征。这些路径在传播过程中可以相互交叉,从而大大提高了特征提取的能力。
LapSRN包含一种从粗到细预测子带残差的特征提取路径,以及一种基于两种路径信息重构可见HR图像的图像重建路径。
同样,DSRN利用LR路径和HR路径分别在低维空间和高维空间中提取信息。这两条路径不断交换信息,进一步提高学习能力。
Local Multi-path Learning:MSRN采用了一种新的多尺度特征提取块,如上图所示,在该块中,采用核大小为3×3和5×5的两个卷积运算同时提取特征,然后将输出串接起来,再次进行相同的运算,最后再进行一个额外的1×1卷积。,最后再进行一个额外的1×1卷积。跳跃连接通过elementwise加法连接此块的输出和输入。通过这种局部多路径学习,SR模型可以更好地从多个尺度提取图像特征,进一步提高性能。
Scale-specific Multi-path Learning:不同尺度要经历相同的特征提取过程,提出这种结构,来处理单一网络下的多尺度SR问题。
具体来说,它们共享模型的主要部分,并在网络的开始端和结束端分别附加特定尺度的预处理路径和上采样路径。在训练期间,只启用与所选比例相对应的路径。通过这种方式,大多数参数可以在不同的尺度上共享。
4、Dense Connections
5、Channel Attention
6、Advanced Convolution
Dilated Convolution. 空洞卷积,增大感受野,有助于生成逼真的细节
Group Convolution:群卷积。一些工作已经证明,群卷积可以在性能不高的情况下减少大量的参数和运算,而CARN-M在性能损失很小的情况下将参数数量减少了5倍,运算减少了4倍。
7、Pixel Recursive Learning
大多数SR模型将SR看作是一个像素独立的任务,因此不能合理地获取生成像素之间的相互依赖关系。
受PixelCNN的启发,Dahl等首先提出像素递归学习,利用两个网络分别捕获全局上下文信息和序列生成依赖关系,逐像素生成。虽然这些方法在一定程度上表现出了较好的性能,但是需要较长的传播路径的递归过程大大增加了计算成本和训练难度,特别是对于超分辨率HR图像。
8、Pyramid Pooling
受空间金字塔池层的激励,提出了金字塔池模块,以更好地利用全局和局部上下文信息。
9、Wavelet Transformation
10、Desubpixel
11、xUnit
8.常用损失函数
利用损失函数来测量生成的高分辨率图像与ground truth高分辨率图像之间的差异。然后用这个差(误差)来优化监督学习模型。存在几种类型的损失函数,每一种函数都对生成的图像的不同方面进行惩罚。
通常,通过对每个损失函数的误差分别加权和求和,可以使用多个损失函数。这使得模型能够同时关注多个损失函数所贡献的方面。
total/_loss = weight/_1 * loss/_1 + weight/_ 2 * loss/_2 + weight/_3 * loss/_3
像素损失
像素损失是最简单的一类损失函数,其中生成的图像中的每个像素都直接与ground-truth图像中的每个像素进行比较。使用流行的损失函数,如L1或L2损失,或高级变体,如smooth L1损失。
PSNR度量(下面讨论)与像素损失高度相关,因此最小化像素损失可以直接最大化PSNR度量值(表明性能良好)。然而,像素损失并没有考虑到图像质量,而且模型常常输出感知上不令人满意的结果(通常缺乏高频细节)。
内容损失
这种损失是基于图像的感知质量来评估图像质量的。一种有趣的方法是比较生成的图像和ground truth图像的高层特征。我们可以让图像通过一个预先训练好的图像分类网络(如VGG-Net或ResNet)来获得这些高级特征。
上面的函数计算ground-truth图像和生成的图像之间的内容损失,给定pre-trained网络(Φ),和第I层的输出,网络计算这两者的损失。这种损失鼓励生成的图像在感知上类似于ground-truth图像。由于这个原因,它也被称为感知损失。
纹理损失
为了使生成的图像具有与ground-truth图像相同的样式(纹理、颜色、对比度等),使用纹理损失(或样式重建损失)。根据Gatys et. al的描述,图像的纹理被定义为不同特征通道之间的相关性。特征通道通常用预训练的图像分类网络(Φ)来提取。
对抗损失
生成对抗网络(GANs)已越来越多地用于包括超分辨率在内的几种基于图像的应用。GANs通常由两个神经网络组成——生成器和鉴别器——相互竞争。
给定一组目标样本,生成器尝试生成样本,以欺骗鉴别器,使其相信它们是真实的。鉴别器试图从假(生成的)样本中分辨出真实(目标)样本。使用这种迭代训练方法,我们最终得到一个生成器,它非常擅长生成与目标示例类似的示例。下图显示了一个典型GAN的结构。
为了提高性能,对基本GAN体系结构进行了改进。例如,Park et. al使用特征级鉴别器来捕捉真实高分辨率图像的更有意义的潜在属性。你可以查看这个blog:https://medium.com/beyondmind...
通常情况下,进行对抗损失训练的模型具有更好的感知质量,即使它们在PSNR上可能比那些进行像素损失训练的模型要差。一个小缺点是,GAN的训练过程有点困难和不稳定。但是,目前正在积极研究稳定的GAN的训练的方法。
9.特定领域的应用
1、深度图超分辨率
深度图记录了场景中视点和目标之间的距离,深度信息在姿态估计 、语义分割 等许多任务中发挥着重要作用。然而,由于生产力和成本方面的限制,由深度传感器生成的深度图通常分辨率较低,并饱受噪声、量化、缺失值等方面的降级影响。为了提高深度图的空间分辨率,研究人员引入了超分辨率。
2、人脸图像超分辨率
人脸图像超分辨率(又名 face hallucination,FH)通常有助于完成其它与人脸相关的任务。与一般图像相比,人脸图像拥有更多与人脸相关的结构化信息,因此将人脸先验知识整合到 FH 中是一种非常流行且颇有前景的方法。
3、超光谱图像超分辨率
与全色图像(panchromatic image,PAN)相比,超光谱图像(HSI)包含数百个波段的高光谱图像,能够提供丰富的光谱特征,帮助完成许多视觉任务。然而,由于硬件限制,不仅是搜集高质量 HSI 比搜集 PAN 难度更大,搜集到的 HSI 分辨率也要更低。因此,该领域引入了超分辨率,研究人员往往将 HR PAN 与 LR HSI 相结合来预测 HR HSI。
4、视频超分辨率
在视频超分辨率中,多个帧可以提供更多的场景信息,该领域不仅有帧内空间依赖,还有帧间时间依赖(如运动、亮度和颜色变化)。因此,现有研究主要关注更好地利用时空依赖,包括明确的运动补偿(如光流算法、基于学习的方法)和循环方法等。
5、其它应用
基于深度学习的超分辨率也被应用到其它特定领域的应用中,而且表现出色。尤其是,RACNN 利用 SR 模型增强了用于细粒度分类的 LR 图像细节的可辨性。类似地,感知 GAN 通过超分辨小目标的表征解决了小目标检测问题,实现了与大目标相似的特征,检测更具可辨性。FSR-GAN超分辨化了特征空间而非像素空间中的小图像,将质量较差的原始特征转换成了可辨性更高的特征,这对图像检索非常有利。此外,Dai 等人验证了 SR 技术在若干视觉应用中的有效性和有用性,包括边缘检测、语义分割、数字和场景识别。Huang 等人 开发了专门用于超分辨率遥感图像的 RS-DRL。Jeon 等人 利用立体图像中的视差先验来重建配准中具有亚像素准确率的 HR 图像。
10.未来发展方向
1、Network Design(网络结构设计)
可考虑从如下方面改进网络结构:
Combining Local and Global Information,结合局部和全局信息,大的感受野可以提供更多的纹理信息,这样可生成更加真实的的HR图像。
Combining Low- and High-level Information,结合低层和高层信息,deep CNNs中的较浅层易于抽取如颜色和边缘等低层特征,而较高层更易获得如目标识别等高层次的特征表示,结合低层网络抽取的低层细节信息和高层网络抽取到的高层纹理信息可获得效果更好的HR图像。
Context-specific Attention,结合特定内容的注意力机制,增强主要特征可促进生成的HR图像具体更加真实的细节。
Lightweight Architectures,目前网络结构日趋复杂,如何减少模型大小,加快预测时间并保持性能仍然是一个研究课题。
Upsampling Layers,如何设计出有效并有效率的上采样层是值得研究的,特别是在放大倍数较大的图像超分辨率问题上。
2.Learning Strategies(学习策略)
Loss Functions,目前的损失函数是建立于 LR/HR/SR 图像之间的限制并优化层面上的。在实际应用上,通常把这些损失函数进行加权得到,对SR问题来说,最有效的损失函数还不明确。因此,一项有意义的研究工作是,如何找到 LR/HR/SR 图像间的潜在联系并找到更加准确的损失函数。
Normalization,虽然BN在视觉问题上大量使用,但是在SR问题上,BN并不是最佳的规范化效果,有时使用BN反而会得到不好的效果。因此,在SR领域,其他有效的规范化技术是需要被提出的。
3.Evaluation Metrics(评价方法)
More Accurate Metrics,传统的PSNR/SSIM图像质量评价方法并不能客观反应图像的主观效果,MOS方法需要大量的人力成本并且不能再现。因此,更加精确的图像质量评价方法亟待提出。
Blind IQA Methods,目前所提到的SR问题,都是LR-HR图像对做出的,但是,在这类数据集是很难获得的,大部分都是通过人工手段获得的LR-HR图像对。这样,在评价这类问题时,就变成了反向预测退化问题的过程,因此,无依赖的图像质量评价方法是有很大需要的。
4.Unsupervised Super-resolution(无监督图像超分辨率)
文中提到了一些已有的无监督超分辨率工作:
A. Shocher, N. Cohen, and M. Irani, “zero-shot super-resolution using deep internal learning,” in CVPR, 2018.
A. Bulat, J. Yang, and G. Tzimiropoulos, “To learn image super- resolution, use a gan to learn how to do image degradation first,” in ECCV, 2018.
Y. Yuan, S. Liu, J. Zhang, Y. Zhang, C. Dong, and L. Lin, “Unsu- pervised image super-resolution using cycle-in-cycle generative adversarial networks,” in CVPRW, 2018.
D. Ulyanov, A. Vedaldi, and V. Lempitsky, “Deep image prior,” in CVPR, 2018.
目前大量的SR方法都是使用Matlab Bicubic方法获得LR图像,用LR-HR作为SR网络的训练数据,这样SR问题会变成预先定义图像退化过程的逆过程,在自然低分辨率图像上应用这类SR方法,效果会很不好。因此,在未来的研究领域,没有LR-HR图像对的无监督图像超分辨率问题是有意义的研究方向。
5.Towards Real-world Scenarios(面向真实场景)
Image super-resolution在真实场景上,往往会受到“不明确的图像退化过程”,“缺少LR-HR图像对”等的条件限制,使得现有的SR算法难以实际应用。
Dealing with Various Degradation,解决多种图像退化问题,针对不同方式获得的LR图像。目前已有一部分这方面的工作,但是存在一些固有缺点,如模型难以训练,过于理想的假设条件。
Domain-specific Applications,特定领域的应用,SR算法不一定非要用于特定领域数据或场景中,SR算法同样可协助处理其他视觉问题,如视频监控、人脸识别、目标跟踪、医学图像、场景渲染等。SR算法可用于这类视觉问题的预处理或后处理。
Multi-scale Super-resolution,目前大部分SR网络是针对固定放大尺寸训练的,实际应用中,有一定局限性。使用单一网络的进行多尺度图像超分辨率,有一定的研究价值。最近在CVPR 2019上,旷视提出了“Meta-SR: A Magnification-Arbitrary Network for Super-Resolution”:单一模型实现任意缩放因子。是这一研究方向的最新进展。
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !