Deep Learning for Image Super-resolution: A Survey 笔记

文章结构

Deep Learning for Image Super-resolution: A Survey 笔记_第1张图片

问题设置和术语

定义
LR图像为以下处理过程的输出:

其中,D代表一个退化映射函数,Iy代表相应的HR图像,δ代表这个映射过程中的一些其他参数(例如:比例因子或者噪声项)
多数情况下,只提供LR图像,需要恢复相应的Iy:
在这里插入图片描述
其中,F为模型,θ 为模型的参数表示,
大多数工作将退化映射建模为单个降采样操作:
在这里插入图片描述
其中,↓s为比例因子为S的降采样操作,最常用的降采样操作是双三次插值,也有其他方法将退化映射建模为几个操作的组合:
在这里插入图片描述
其中,Iy⊗κ代表模糊核k与HR图像之间的卷积操作。nς 为可加的带标准差ς的高斯白噪声,上式与上上式相比,更接近实际情况,对SR更加有利。
因此,SR的目标为:
在这里插入图片描述
其中,Φ(θ)是正则化项,SR最常见的损失函数为逐像素差的均方误差,更强大的模型往往采用将多种损失函数相结合的方式。

数据集
一些数据集提供HR-LR图像对,有的只提供HR图像,LR图像通常是通过MATLAB中默认设置的imresize函数(双三次插值with anti-aliasing)获得。下表是一些SR常用数据集:
Deep Learning for Image Super-resolution: A Survey 笔记_第2张图片
图像质量评估
PSNR
峰值信噪比,通常用来衡量有损变换的图像质量。对于SR,通过图片间的最大可能像素值L和均方误差MSE定义,假设HR图像I和重建图像 ˆ I,两者的像素都是N,MSE和PNSR(db)如下所示:
Deep Learning for Image Super-resolution: A Survey 笔记_第3张图片
8bit表示一个像素点的取值,取值范围为0~255,L等于255,PSNR的典型值从20到40不等,越高越好。从式子可以看出,L一定,PNSR只与像素间的MSE有关,不关注感知效果,PSNR在真实场景的SR衡量效果较差,但由于缺乏感知衡量标准,运用最为广泛。

结构相似性
结构相似度指数(SSIM)是在亮度、对比度和结构三个相对独立的比较的基础上,提出的用于测量图像之间结构相似度的指标。
设图像I由N像素组成,亮度和对比度分别估计图像强度的均值和标准差:
Deep Learning for Image Super-resolution: A Survey 笔记_第4张图片
假设I(i)表示图像I的第i个像素的强度,两张图片之间的亮度、对比度比较函数表示为:
Deep Learning for Image Super-resolution: A Survey 笔记_第5张图片
其中,C1、C2是为了避免不稳定的常数,C1=(K1L)^2 ,C1=(K1L)^2,K1、K2远小于1。
图像结构由归一化像素值表示,不同图片之间的归一化像素值之间的关系用来表示结构相似性。因此,结构比较函数可以表示为:
Deep Learning for Image Super-resolution: A Survey 笔记_第6张图片
上式,σ表示协方差,SSIM可以表示为:
在这里插入图片描述
α,β,γ是相对重要性,一般都取1,C3=C2/2,故SSIM的特定形式为:
在这里插入图片描述
SSIM从HVS的角度来评价重建质量,更符合视觉感知,被广泛应用。

Operating Channels
除了RGB,YCbCr颜色空间也被广泛使用。
Y, Cb, Cr 分别表示亮度、蓝差、红差色度分量。早期的模型更倾向于在Y通道上进行操作,最近的模型更多的处理RGB颜色通道。在不同的颜色空间或者通道上操作会使评估的性能造成很大的不同。

监督式SR模型

       同时使用LR和相应的HR图像进行训练

SR框架
通过上采样模块在模型中的位置,可以将这些模型分为四个框架
Pre-upsampling SR
直接从LR图像学习HR图像存在一定难度,利用传统方法(双三次插值)上采样,在通过神经网络优化重建高质量的细节,是一种直接的解决方案。SRCNN学习经过插值处理的LR图像到HR图像之间的映射。
优点:通过传统算法进行上采样,神经网络只需要对粗HR图像进行精细化处理,大大降低了学习难度。
可以将任意大小的插值处理后的图像作为输入,效果与单尺度模型相当。
预先上采样方法的副作用:噪声放大、模糊、在高维空间计算造成的时间和空间成本大
Deep Learning for Image Super-resolution: A Survey 笔记_第7张图片
Post-upsampling SR
将上采样操作移至网络末端,在低维空间中学习映射:
Deep Learning for Image Super-resolution: A Survey 笔记_第8张图片
分辨率提升只在网络后端发生,计算复杂度大大提升。
上采样只在一个步骤中进行,学习大的上采样因子的难度很大。每个尺度都需要单独的SR模型,无法满足多尺度SR的需要
Progressive Upsampling Super-resolution
Deep Learning for Image Super-resolution: A Survey 笔记_第9张图片
lapSRN 采用渐进式SR框架解决了Post-upsampling SR框架无法满足的多尺度问题。采用连续的神经网络结构,逐步重建高分辨率图片。MS-LapSRN和progressive SR也采用了这个框架。但存在模型复杂、训练难度大的问题。

Iterative Up-and-down Sampling Super-resolution

Deep Learning for Image Super-resolution: A Survey 笔记_第10张图片
为了探究LR-HR图像对之间的关系,将一种有效的迭代过程——反向投影引入到SR中,迭代的上采样-下采样操作,迭代的应用反向投影精细化图像。计算重建误差,再将其融合回来调整HR图像的强度。DBPN采用这种结构,将一系列中间HR结果联系起来重构成最后的HR结果。

Upsampling Methods

Interpolation-based Upsampling
最近邻插值 每个待插值的位置选择最相邻的像素值,而不考虑其他像素
。处理速度快,生成图片质量低、块状化。
双线性插值
Deep Learning for Image Super-resolution: A Survey 笔记_第11张图片
每次在一个轴上进行,然后在另一个轴上再次进行。保持速度较快的同时,性能比最近邻插值好得多。感受野为2*2
双三次插值同样,双三次插值对图像的两个维度进行三次插值,需要4x4的像素进行计算,计算速度慢,效果更平滑。anti-aliasing的双三次插值是目前构造SR数据集的主流方法。

基于插值的上采样方法只能通过图像的本身内容提高图像的分辨率,并没有带来更多信息,相反还有噪声放大、计算复杂度增加、结果模糊等副作用。

Learning-based Upsampling
转置卷积层
通过插入零值,进行卷积来提高图像的分辨率。
Deep Learning for Image Super-resolution: A Survey 笔记_第12张图片
亚像素层
Deep Learning for Image Super-resolution: A Survey 笔记_第13张图片
通过对卷积产生的多个通道进行reshape,实现上采样。h×w×s^2c —>sh×sw×c,感受野的大小为3×3。
与反卷积层相比,亚像素卷积层的优点是感受野更大,能提供更多的上下文信息,帮助生成更准确的细节。
缺点是感受野分布不均,块状区域实际上共享相同的感受野,这导致在不同的块边界附近出现伪影。

Network Design

Residual Learning
Deep Learning for Image Super-resolution: A Survey 笔记_第14张图片
全局残差学习:由于输入与输出图像高度相关,研究者尝试只学习两幅图像的残差,只需要学习一个残差映射恢复丢失的高频细节,大大降低了模型的复杂度和难度。
局部残差学习:用于缓解网络不断加深造成的梯度消失、爆炸的问题,增强网络的学习能力。
由跳跃连接和逐像素加法进行计算,前者连接输入与输出,后者在不同网络层之间进行连接。

Recursive Learning
为了实现更大的感受野和进行更高层次的特征学习并且避免更多的参数,将递归引入模型。
Deep Learning for Image Super-resolution: A Survey 笔记_第15张图片
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不仅将卷积层作为递归层,还将特征嵌入模块、特征上采样模块和图像上采样模块作为递归模块,对每个子问题共享参数。

递归学习使得参数的数量大大减少,但带来了梯度消失和梯度爆炸的问题。因此通常将残差学习和递归学习结合来缓解这些问题。

Multi-path Learning
多路径学习是指通过模型的多个路径传递特性,这些路径执行不同的操作,以提供更好的建模能力。具体来说,它可以分为三种类型,如下所述:

Global Multi-path Learning:全局多路径学习是指利用多个路径提取图像不同方面的特征。这些路径在传播过程中可以相互交叉,从而大大提高了特征提取的能力。
LapSRN 包含一种从粗到细预测子带残差的特征提取路径,以及一种基于两种路径信息重构可见HR图像的图像重建路径。同样,DSRN利用LR路径和HR路径分别在低维空间和高维空间中提取信息。这两条路径不断交换信息,进一步提高学习能力。

Local Multi-path Learning.:
Deep Learning for Image Super-resolution: A Survey 笔记_第16张图片
MSRN采用了一种新的多尺度特征提取块,如上图所示,在该块中,采用核大小为3×3和5×5的两个卷积运算同时提取特征,然后将输出串接起来,再次进行相同的运算,最后再进行一个额外的1×1卷积。,最后再进行一个额外的1×1卷积。跳跃连接通过elementwise加法连接此块的输出和输入。通过这种局部多路径学习,SR模型可以更好地从多个尺度提取图像特征,进一步提高性能。

Scale-specific Multi-path Learning:
不同尺度要经历相同的特征提取过程,提出这种结构,来处理单一网络下的多尺度SR问题。
Deep Learning for Image Super-resolution: A Survey 笔记_第17张图片
具体来说,它们共享模型的主要部分,并在网络的开始端和结束端分别附加特定尺度的预处理路径和上采样路径。在训练期间,只启用与所选比例相对应的路径。通过这种方式,大多数参数可以在不同的尺度上共享。

Dense Connections
Deep Learning for Image Super-resolution: A Survey 笔记_第18张图片
Channel Attention
考虑到不同通道间特征表示的相互依赖和相互作用,,提出了一种“挤压-激发”块,通过显式建模通道间的相互依赖来提高表示能力。
Deep Learning for Image Super-resolution: A Survey 笔记_第19张图片
在这个块中,使用全局平均池化将每个输入通道压缩到一个通道描述符中,然后将这些描述符输入到两个全连接层中,以生成channel-wise尺度因子。

Advanced Convolution
Dilated Convolution. 膨胀卷积,增大感受野,有助于生成逼真的细节
Group Convolution:群卷积
一些工作已经证明,群卷积可以在性能不高的情况下减少大量的参数和运算,而CARN-M在性能损失很小的情况下将参数数量减少了5倍,运算减少了4倍。
Deep Learning for Image Super-resolution: A Survey 笔记_第20张图片
Pixel Recursive Learning

大多数SR模型将SR看作是一个像素独立的任务,因此不能合理地获取生成像素之间的相互依赖关系。
受PixelCNN的启发,Dahl等首先提出像素递归学习,利用两个网络分别捕获全局上下文信息和序列生成依赖关系,逐像素生成。
虽然这些方法在一定程度上表现出了较好的性能,但是需要较长的传播路径的递归过程大大增加了计算成本和训练难度,特别是对于超分辨率HR图像。

Pyramid Pooling
受空间金字塔池层的激励,提出了金字塔池模块,以更好地利用全局和局部上下文信息。具体的,对于h×w×c大小的特征图,每个被分成M×M个bin,并通过全局平均池,得到M ×M ×c 的输出。然后进行1×1卷积,将输出压缩到一个通道。然后通过双线性插值将低维特征图上采样到与原始特征图相同的大小。

Learning Strategies

Loss Functions
早期:逐像素差的L2损失,不能准确的衡量重建质量–>采用多种损失函数衡量

Pixel Loss
像素损失衡量的是两幅图像的像素差异,主要包括L1、L2损失。
Deep Learning for Image Super-resolution: A Survey 笔记_第21张图片
还有一种L1损失的变体,即Charbonnier loss:
在这里插入图片描述
L2更倾向于处罚较大偏差的像素差,在实际应用中,相对于L2损失,L1损失表现出了更好的性能和收敛性。PNSR定义与像素损失高度相关,因此像素损失已成为该领域应用最广泛的损失函数,但像素损失忽略了图片感知上的结果。

Content Loss
为了基于感知质量评价图像质量,将内容丢失引入超分辨率,使用一个预训练好的懂得感知语义信息的网络进行计算:
在这里插入图片描述
预训练网络通常使用VGG和Resnet。

Texture Loss
风格损失,Gram矩阵:
在这里插入图片描述
在这里插入图片描述
可以构建真实的纹理细节。过大的patch导致整个图像出现伪影,过小的patch造成纹理区域中出现伪影

Adversarial Loss 对抗损失
基于GAN,在SR领域,将SR模型作为生成器,另外定义一个识别器进行判断处理。
SRGAN里面基于交叉熵首先引入了对抗损失:
在这里插入图片描述
此外,Wang和Yuan等]利用基于最小二乘误差的对抗性损失,使训练过程更加稳定,得到更高质量的结果:
在这里插入图片描述
hinge-format 对抗损失如下:
在这里插入图片描述
大量MOS测试表明,经过对抗性损失和内容损失训练的SR模型比经过像素损失训练的SR模型获得更低的PSNR,但它们在感知质量上带来了显著的提高。

Cycle Consistency Loss
LR --生成->HR --生成–>LR1
要求LR和LR1一致
在这里插入图片描述
Total Variation Loss.
抑制图像中的噪声,全变差损失,相邻像素之间的绝对差值之和,用来度量图像中噪声的大小:
在这里插入图片描述
在实践中,研究人员经常加权组合各种损失函数

Batch Normalization
为了加快深度CNNs的训练,Sergey等提出了批量归一化(batch normalization, BN)来减少网络的内部协变量移位。由于BN校准了中间特征分布,减轻了消失梯度问题,它允许我们使用更高的学习率,并且在初始化时不那么小心。
Lim等人认为BN丢失了每个图像的尺度信息。因此,他们删除了BN层,使用节省的内存来使用更大的模型,从而大大提高了性能。

Curriculum Learning
ProSR 、ADRSR,
指从较容易的子任务开始,逐步增加任务难度。

**Multi-supervision **
增加多个额外的监督信号,增强梯度传播。
DRCN:每个递归的输出作为生成HR图像的组成部分。

Other Improvements

Context-wise Network Fusion
将不同模型训练的结果相加

** Data Augmentation 数据增强**
随机裁剪、翻转、缩放、旋转、颜色抖动、随机打乱RGB通道等

**Multi-task Learning **
多任务学习是指利用相关任务训练信号中包含的领域特定信息,如目标检测和语义分割、头部姿态估计和面部属性推断等,提高泛化能力。
DNSR、CinCGAN:串接去噪网络和SR网络

**Network Interpolation **
基于PNSR–>接近GroundTruth 模糊和噪声放大
基于GAN–>更好的感知质量,但产生伪影
网络插值模型:训练一个基于psnr的模型和一个基于gan的模型,然后插值这两个网络的所有相应参数,得到中间模型。

Self Ensemble
就是不同角度的旋转( 0◦,90◦,180◦,270◦)和翻转LR图像。然后将这些图像输入SR模型,并对重构后的HR图像进行相应的反向变换得到输出。最终的预测结果由这些输出的平均或中值。

UNSUPERVISED SUPER-RESOLUTION

**Zero-shot Super-resolution **
ZSSR:在测试时间训练小的 image-specific模型
具体来说,他们使用核估计方法[直接从单个测试图像中估计退化核,并利用该核对测试图像进行不同尺度因子的退化,构建一个小数据集。然后在该数据集上训练一个小的超分辨率CNN,用于最终的预测。

Weakly-supervised Super-resolution

Learned Degradation

Cycle-in-cycle Super-resolution
分成LR-HR两个域,使用循环来互相学习

你可能感兴趣的:(SR)