【论文学习】Deep Learning for Image Super-resolution: A Survey(DL超分辨率最新综述)

Deep Learning for Image Super-resolution: A Survey(DL超分辨率最新综述)

博主最近看了一篇2019年最新的非常详细的超分辨率领域DL方法的综述,大大地赞!写得非常好,文章工作整理地非常完善!所以想整理成文章发表,留作以后看,哈哈哈哈哈~~

Abstract

摘要部分:作者先讲述了超分辨率(SR)问题的定义和状况,图像超分辨率(SR)是图像处理的一个典型问题,用于增强图像或者视频的分辨率,属于CV领域。目前深度学习在CV领域有很高的建树,该文章就从头梳理DL的超分辨率算法,研究者将图像超分辨分成三种类型:监督SR,无监督SR,特定应用领域的SR。下面就问题定义,方法简述,模型组件,分类,数据集等方面展开介绍。

Introduction

问题定义: 图像超分辨率指的是从低分辨率图像(LR)恢复成高分辨率图像(HR )的过程。这个技术的应用领域非常广泛,如医学图像,遥感图像,加密等。纵览所有的文献,典型的SR方法有包括几种:基于边缘,基于预测,统计模型,基于块还有稀疏表示等等。而基于深度学习的方法也有以下几种区别:不同类型的网络结构,不同类型的损失函数,不同类型的学习策略。
文章贡献:

  • ‌给出一个基于深度学习的图像超分辨技术概要性的回顾,包括问题设定,基准数据集,评价指标,SR方法,特定领域的应用等。
  • 提供一个系统性的纵览,总结SR方法中每个组件的优点和局限性; ‌讨论了未来机遇和挑战。

文章安排:

—图1:展示图像超分辨率的分类
—第二部分:给出问题的定义和回顾主流的数据集和评价指标
—第三部分:分析有监督的超分辨率主要部件
—第四部分:给出无监督超分辨率方法的简要介绍
—第五部分:介绍主流的SR特定应用领域
—第六部分:讨论未来的方向和开源问题

section 1:

结构框架概述
不得不说,这图真的太赞了!清晰明了,这对于我这种刚接触一个新领域的小白来说,一篇好的综述能帮助好多,理清思路。在第一部分,我就根据表格的内容,简单地做个中文版。(有些专业术语不会翻译,就不翻了,免得写错,哈哈哈英语水平有待提高)

1. 监督学习的超分辨率

  • 模型框架

     	1.提前上采样
     	2.最后上采样
     	3.渐近式上采样
     	4.迭代交替式上下采样
    
  • ‌上采样方法

      1.基于传统的插值方法
      	最近邻
      	双线性
      	双三次方
      	其他
      2.基于学习的方法
      	反卷积
      	亚像素层
      	其他
    
  • 网络设计

     	残差学习
     	递归学习
     	多路径学习
     	紧密连接
     	通道注意力机制
     	高级卷积
     	像素递归学习
     	金字塔池化
     	小波变换
    
  • 学习策略

    扫描二维码关注公众号,回复: 8568904 查看本文章
     	1.损失函数
     		正则化
     		‌其他
     	2.curriculum learning ( 不好用中文表述)
     	3.多监督学习
    
  • 其他

     	上下文融合网络
     	数据增强
     	多任务学习
     	网络插值
     	self Ensemble
    
  • ‌评价指标

     	1.数据集
     	2.指标
     		客观方法: PSNR,SSIM
     		主观方法: MOS
     		基于任务评估
    

2. 无监督SR ‌ (该领域不是我所涉及的,在这不详细介绍)

3. 特定领域应用 (粗略介绍)

Problem Definition

问题定义:其实上面也有大概描述了一下。准确来说,超分辨率的过程是将LR恢复成HR,通常,LR图像 I x I_x 是经过我们本来拥有的高清图 I y I_y (叫ground truth)降质得到的,公式如下:
I x = D ( I y ; θ I_x=D(I_y; {\theta})
这里D是降质的过程,代表着一个下采样函数,参数 θ {\theta} 代表采样因子等。而一般情况下只采用一个函数就可用对高清图进行降质了,有些情况也可以使用一个卷积层或模型来完成降质过程。
而超分辨率这个过程是,将降质后的低分辨率图像 I x I_x 还原成高分辨图像 I y I_y' ,这里用公式表述:
I y = F ( I x ; α ) I_y'=F(I_x; {\alpha})

F代表着超分辨率模型, α {\alpha} 代表F的参数。这里重建后的图像和原来的高清图会有一些差别,因此在深度学习上,就用损失函数来衡量,以优化两者的差别达到重建效果相近。
θ = a r g m i n θ L ( I y , I y ) + λ Φ ( θ ) {\theta'} = arg min_{\theta}L(I_y, I_y') + {\lambda}{\Phi({\theta})}
后面的 λ Φ ( θ ) {\lambda}{\Phi({\theta})} 代表的是正则化项。

Datasets for SR

这里列举了超分辨率领域的一些常用公开的数据集,下面把链接贴上来。
(表格来源是Github上一位大佬的, 他的github地址贴上来:https://github.com/LoSealL/VideoSuperResolution

Model Published Code* VSR (TF)** VSR (Torch) Keywords Pretrained
SRCNN ECCV14 -, Keras Y Y Kaiming
RAISR arXiv - - - Google, Pixel 3
ESPCN CVPR16 -, Keras Y Y Real time
VDSR CVPR16 - Y Y Deep, Residual
DRCN CVPR16 - Y Y Recurrent
DRRN CVPR17 Caffe, PyTorch Y Y Recurrent
LapSRN CVPR17 Matlab Y - Huber loss
EDSR CVPR17 - Y Y NTIRE17 Champion
SRGAN CVPR17 - Y - 1st proposed GAN
VESPCN CVPR17 - Y Y VideoSR
MemNet ICCV17 Caffe Y -
SRDenseNet ICCV17 -, PyTorch Y - Dense
SPMC ICCV17 Tensorflow T Y VideoSR
DnCNN TIP17 Matlab Y Y Denoise
DCSCN arXiv Tensorflow Y -
IDN CVPR18 Caffe Y - Fast
RDN CVPR18 Torch Y - Deep, BI-BD-DN
SRMD CVPR18 Matlab T - Denoise/Deblur/SR
DBPN CVPR18 PyTorch Y Y NTIRE18 Champion
ZSSR CVPR18 Tensorflow - - Zero-shot
FRVSR CVPR18 PDF T Y VideoSR
DUF CVPR18 Tensorflow T - VideoSR
CARN ECCV18 PyTorch Y Y Fast
RCAN ECCV18 PyTorch Y Y Deep, BI-BD-DN
MSRN ECCV18 PyTorch Y Y
SRFeat ECCV18 Tensorflow Y Y GAN
NLRN NIPS18 Tensorflow T - Non-local, Recurrent
SRCliqueNet NIPS18 - - - Wavelet
FFDNet TIP18 Matlab Y Y Conditional denoise
CBDNet arXiv Matlab T - Blind-denoise
SOFVSR ACCV18 PyTorch - Y VideoSR
ESRGAN ECCVW18 PyTorch - Y 1st place PIRM 2018
TecoGAN arXiv Tensorflow - T VideoSR GAN
RBPN CVPR19 PyTorch - Y VideoSR

*The 1st repo is by paper author.

**Y: included(包括); -: not included(不包括); T: under-testing(测试不足).

Image Quality Assessment

图像评估指标:有主观方法和客观方法,但是这两种方法的侧重点不一致,并不能很好地统一说明图像质量优劣。主观方法是人为的,带有主观性!而常用的客观方法有PSNR,MSE,SSIM。其中PSNR叫峰值信噪比,是计算ground truth(简称GT)和重建的HR之间像素级的差异;SSIM叫结构相似度,是计算GT和HR之间亮度通道的相似度。
PSNR的公式依赖于MSE(均方差)计算,给定GT为 I I ,重建的图像为 I I' ,公式如下:
M S E = 1 N i = 1 N ( I ( i ) I ( i ) ) 2 MSE=\dfrac{1}{N} \sum_{i=1}^N (I(i)-I'(i))^2
P S N R = 10 l g ( L 2 M S E ) PSNR=10*lg (\dfrac{L^2}{MSE})
一般我们的使用的图像都是8位,L代表着0-255的最大值,即255。
SSIM公式就分开了三种,公式有点多,这里贴出我之前写的一篇文章作参考,https://blog.csdn.net/Resume_f/article/details/103339722,先把公式放上来,具体解释就不展开了。
l ( x , y ) = 2 u x u y + c 1 u x 2 + u y 2 + c 1 l(x, y)= \dfrac{2u_xu_y+c_1}{u^2_x+u^2_y+c_1}
c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 c(x, y)= \dfrac{2\sigma_x\sigma_y+c_2}{\sigma^2_x+\sigma^2_y+c_2}
s ( x , y ) = 2 σ x y + c 3 σ x σ y + c 3 s(x, y)= \dfrac{2\sigma_{xy}+c_3}{\sigma_x\sigma_y+c_3}
其中 c 3 c_3 一般取 c 2 2 \dfrac{c_2}{2} u x u_x 是x的均值, u y u_y 是y的均值, σ x 2 \sigma^2_x 是x的方差, σ y 2 \sigma^2_y 是y的方差。 σ x y \sigma_{xy} 为x和y的协方差。 c 1 = ( k 1 L ) 2 , c 2 = ( k 2 L ) 2 c_1=(k_1L)^2, c_2=(k_2L)^2 为两个常数,避免除零。L为像素值范围,一般为255。k1=0.01, k2=0.03为默认值。还有其他指标,文章没有具体描述…

Operating Channels

此外,我们一般使用的颜色通道有两种:RGB和YCbCr。RGB代表红绿蓝,而Y, Cb, Cr 分别代表明亮度,蓝色和红色的浓度偏移量成份。目前的大多数超分辨率方法都是基于这两种通道做的,但是并没有实践证明在哪种通道进行SR较好。最后文章有句非常重要的话:在不同的通道做评估,性能表现是非常不同(大概有4db的差别)

Supervised Super-Resolution

虽然基于深度学习的网络有很多种,它们之间有很大的差别,但是它们本质上是一些组件的结合:模型框架(下采样)处理,上采样方式,网络设计和学习策略。这种整合型的SR网络模型是通过结合不同的部件,来达到某种特定的目的。下面就逐一对不同组件进行介绍!!!!

Super-resolutio Frameworks

采样工作部分:上图!!!

在这里插入图片描述

—(a)提前上采样
直接将低维空间转到高维空间,深度学习网络只需要提取粗高分辨图像,减少学习难度,也可以进行任意大小和采样因子的图像作为输入。缺点:放大噪声,引入模糊,引入过多的空间和时间消耗。

—(b)最后上采样
通过非线性卷积的特征提取的过程,仅发生在低维空间(计算量非常大),分辨率增强的过程仅在网络最后一层,这样计算复杂度和空间复杂度能大大地降低,带来更快地训练速度和推理速度。

—©渐进式上采样
通过将复杂任务解压成简单任务,模型不仅减少了学习的难度,而且还能处理多种采样因子,没有引入过多的时间和空间损失。

—(d)迭代交替上下采样
能可以更好地挖掘LR和HR之间的深层关系,但是目前没有back-projection使用标准的规范,这种模型结构是非常复杂,未能简化。

Upsampling Methods

基于传统的插值方法

最近邻插值:
简单直接的方法,选择每个位置的相邻像素位的值进行插值。方法快速,但容易产生低质量的块状结果。

双线性插值:
线性插值分开两个轴xy,先在图像的一个轴进行线性插值,再重复操作在另一个轴上。尽管每一步都是线性的采样,但是结果是二次的插值,表现比最近邻插值好。

双立方插值:
是执行三次二维插值,是目前主流的抗锯齿方法,被广泛运用在预采样中。但是这种插值仅基于自身内容提升图像分辨率,不会引入更多额外信息,也有一定的影响(计算量复杂,噪声放大,结果模糊)

基于学习的方法

学习的插值方法
—Fig4-反卷积层:
通过插入零值来扩充图像大小,进行卷积。这个层容易在每个轴上出现不均匀的重叠,多个轴之间相乘的结果出现棋盘效应,有损重建效果!

—Fig5-亚像素层:
通过生成复数倍的通道数再重新铺成高分辨率图像。输入尺寸是 h w c h*w*c , 采样因子是s,输出尺寸是 h w c 2 h*w*c^2 ,再重塑形状(reshape即shuffle)成 s h s w c sh*sw*c

对比反卷积层,亚像素层有更大的感知域,能提供更多上下文信息帮助生成更精确的细节,但是!!亚像素层的感知域的分布是不均匀的,块状区域共享相同的感知域,会导致不同的块边界会出现伪影。

Network Design

残差学习

  1. 残差学习

—全局残差学习:
避免了学习从完整图像到另一个图像的复杂转换,而只需要学习残差图以恢复丢失的高频细节。

—局部残差学习:
减轻由于增加网络深度和提高学习能力而产生的退化问题。
前者直接连接输入和输出图像,后者增加多个shortcut在层与层之间。

  1. 递归学习:指的是多次应用相同的模块。

----DPCN 使用单一卷积层作为递归单元,感受野到达4141,一共16层递归。
----DRNN 使用残差块作为递归单元,25层递归,比没有递归的17个残差块效果好。
—MemNet 由六个递归残差块组成的记忆块,每一个块的输出都连接一个1
1的卷积进行记忆和遗忘。
—CARN 采用同样几个相似的递归单元。
–DSRN 双信号循环网络,在HR状态和LR状态之间交换信号。
—Lai[69] (简写:姓名[引文号]) 不仅使用卷积层作为递归层,而且应用特征嵌入模块,特征上采样模块和图像上采样模块作为递归模块,这些模块的参数在子问题中都是权值共享的。

  1. 多路径学习:分为全局,局部和特定规格的多路径学习

全局多路径学习: 是指使用多个路径去提取图像不同方面的特征,这些路径可以相互交叉
,因此能提高特征提取的能力。
—LspSRN: 它包括一个以粗略到精细的方式预测子代残差的特征提取路径,以及一个基于所有路径的信息流重建可见的HR图像的图像重建路径。
—DSRN: 分别利用LR路径和HR路径去提取低维和高维空间的信息。
—像素递归超分辨率: 采用一个捕获图像的全局结构的可调节路径和一个捕获生成像素的序列依赖性的先验路径。
—Ren等人[99] 提出的有不平衡结构进行上采样和在模型最后融合一起的多路径。

局部多路径学习:
—MSRN
采用一个针对多采样因子的特征提取,分成两条路径卷积,分别使用33和55大小的核同时进行特征提取。最后将输出concate,送入1*1的卷积操作中得到最后的结果。这样的多路径学习,能更好地从不同采样因子中提取图像的特征,进一步提升效果。

特定规格的多路径学习:
—Lim等人[33]: 提出特定规格的多路径学习策略,应对了多采样因子的SR问题,这种模型是共享模型关键部分和在网络的开头和结尾处连接特定规模的预处理路径和上采样路径。
—MDSR: 展示了单一采样因子模型的不同表现效果。
–CARN和ProSR: 同样采用了相同特定规格的多路径学习。

  1. 紧密连续

—DenseNet:
对于每一个紧密块,先前所有图层的特征图均作为输入,而其自身的特征图用作后续所有图层的输入。这种紧密连接不仅帮助缓解梯度消失,增强信号传递,鼓励特征重用,而且大大减少了参数数量和concate之后消除了1维channel。

—Tong等人[79]:
提出了69层SRDenseNet,不仅采用了紧密块连接不同的块,对于每一个紧密块,先前所有图层的特征图均作为输入,而其自身的特征图用作后续所有图层的输入。

  1. 通道注意力机制

—squeeze-and-excitation:
使用全局平均池化将每个输入的通道都压缩成一个descriptor’(常量),然后将它们馈送到两个全连接层中产生按通道缩放的因子。通过使用按通道乘法的比例因子对输入通道进行重新缩放来获得最终输出。

  1. 高级卷积

—膨胀卷积: 是指在图像超分辨率中根据上下文语境信息促进生成真实细节。
—组卷积: 能减少大量参数。

  1. 像素递归学习:大多数SR模型把SR当作一个独立于像素的任务,无法获取生成像素之间的相互依赖性

—Dahl等人[68] 首次提出像素递归学习,通过使用两个网络来捕获全局上下文信息和序列生成依赖关系来执行逐像素生成。
----attention-FH: 通过求助于周期性策略网络来有序地发现参与的补丁并执行本地增强。
虽然这些方法都有很好的表现效果,但是递归过程需要很长的传播路径,这极大地增加了计算开销,训练难度。

  1. 金字塔池化

----Zhao等人[112]: 提出金字塔池化模块,更好地利用全局和局部上下文信息。hwc尺寸的特征图被分离成MM的块,通过全局平均池化,产生MMc的输出,最后经11卷积压缩成1维通道,并将低维特征图通过双线性插值上采样成原始图像大小。使用不同的M,模块可以整合全局和局部的上下文信息。

  1. 小波变换:将图像信号分解为表示纹理细节的高频小波和包含全局拓扑信息的低频小波

—Bae等人[116] 首次结合小波变换到深度学习网络中,以经插值的LR小波作为输出,预测对应的HR残差。WT和逆WT分别作为分解LR输入和重建HR输出。
—DWSR[117]和Wavelet-SRNet[118] 应用小波域在更复杂的结构中。
—MWCNN[119] 采用多水平WT和将子代concate一起作为输入送入一个单CNN网络捕获他们之间的依赖性。

Learning Strategies

Loss Function

在超分辨率领域,损失函数被用于衡量生成的HR和GT之间的差异,以引导模型进一步优化生成的HR。在早期,研究者应用像素级的L2损失,但后来被发现这个损失不能准确地测量重建图像的质量。后来就衍生了很多类型的损失函数,如content loss(内容损失),adversarial loss(对抗损失)等等。

Pixel loss

像素级损失是测量两张图像之间逐个像素差异。主要包括L1和L2。
对比L1正则化,L2正则化惩罚了较大的错误,宽容了小错误。但实际上,L1显示出比L2更高的性能和收敛性。
L p i x e l 1 ( I , I ) = 1 h w c i , j , k I i , j , k I i , j , k L_{pixel_1}(I', I)=\dfrac{1}{hwc}\sum_{i,j,k} |I_{i,j,k}-I'_{i,j,k}|
L p i x e l 2 ( I , I ) = 1 h w c i , j , k I i , j , k I i , j , k 2 L_{pixel_2}(I', I)=\dfrac{1}{hwc}\sum_{i,j,k} |I_{i,j,k}-I'_{i,j,k}|^2
h , w , c h,w,c 是图像的高,宽,通道数。
由于PSNR是比较逐像素之间的差别,所以这种逐像素损失被应用起来。但是像素级损失不能考虑图像质量(感知质量、纹理),因此这经常缺乏高频信息和由于过度平滑的纹理产生感官上的不满意。

Content loss

内容损失:基于感知质量来评估图像质量。可以测量使用了预训练图像分类模型的图像之间语义差别,内容损失表示两幅图像之间的欧几里得距离。
L c o n t e n t ( I , I ; ϕ , l ) = 1 h l w l c l i , j , k ( ϕ i , j , k ( l ) ( I ) ϕ i , j , k ( l ) ( I ) ) 2 L_{content}(I', I; \phi, l)=\dfrac{1}{h_lw_lc_l}\sqrt{ \sum_{i,j,k} (\phi^{(l)}_{i,j,k}(I')-\phi^{(l)}_{i,j,k}(I))^2}
h l , w l , c l h_l,w_l,c_l 是第 l l 层提取出来的特征图的高,宽,通道数。
对比逐像素损失,内容损失促进输出在感知上和目标图像相似,而不是强制性要求像素匹配精准。VGG,ResNet都是使用这个预训练CNN。

Texture loss

因为重建的图像应该和目标图像有相同的风格(颜色,纹理,对比度)。所以,图像的纹理被视为不同特征通道之间的相关性,并定义为Gram矩阵 G i j G_{ij} ,其中 G i j G_{ij} 是第L层上矢量化特征图 i i j j 之间的内积。
G i j ( l ) ( I ) = v e c ( ϕ i ( l ) ( I ) ) v e c ( ϕ j ( l ) ( I ) ) G^{(l)}_{ij}(I)=vec(\phi^{(l)}_{i}(I))*vec(\phi^{(l)}_{j}(I))
v e c ( ) vec() 代表一个向量操作。因此纹理损失的公式如下:
L t e x t u r e ( I , I ; ϕ , l ) = 1 c l 2 i , j ( G i , j ( l ) ( I ) G i , j ( l ) ( I ) ) 2 L_{texture}(I', I; \phi, l)=\dfrac{1}{c^2_l}\sqrt{ \sum_{i,j} (G^{(l)}_{i,j}(I')-G^{(l)}_{i,j}(I))^2}
影响纹理效果的与patch大小有很大关系,而确定其大小以匹配纹理目前仍靠经验。太小的patch导致纹理区域有伪影,太大的patch会导致整个图像都有伪影,因为纹理统计量是在不同纹理的区域上取平均。

Adversarial Loss

在超分辨率中,对抗训练一个前向过程,只需要把SR模型作为一个生成器,再额外定义一个判别器去判断输入图像是否是生成的。

—Ledig等人[27]
首次提出SRGAN使用基于交叉熵的对抗损失。公式如下:
L g a n _ c e _ g ( I ; D ) = l o g D ( I ) , L_{gan\_ce\_g}(I'; D) = -logD(I') ,
L g a n _ c e _ d ( I , I s ; D ) = l o g D ( I s ) l o g ( 1 D ( I ) ) , L_{gan\_ce\_d}(I', I_s; D) = -logD(I_s)-log(1-D(I')) ,
其中 L g a n _ c e _ g L_{gan\_ce\_g} L g a n _ c e _ d L_{gan\_ce\_d} 分别代表了对抗训练中的生成器和判别器。 I s I_s 代表从GT图像中随机采样的数据。
—Wang等人[34]和Yuan等人[126]
使用基于最小平方差的对抗损失,公式如下:
L g a n _ l s _ g ( I ; D ) = ( D ( I ) 1 ) 2 L_{gan\_ls\_g}(I'; D) = (D(I')-1)^2
L g a n _ l s _ d ( I , I s ; D ) = ( D ( I ) 2 ) + ( D ( I s ) 1 ) 2 L_{gan\_ls\_d}(I', I_s; D) = (D(I')^2)+(D(I_s)-1)^2

—Bulat等人[128]
采用铰链格式的对抗损失,公式如下:
L g a n _ h i _ g ( I ; D ) = D ( I ) L_{gan\_hi\_g}(I'; D) = -D(I')
L g a n _ h i _ d ( I , I s ; D ) = m i n ( 0 , D ( I ) 1 ) + m i n ( 0 , D ( I s ) 1 ) L_{gan\_hi\_d}(I', I_s; D) = min(0,D(I')-1)+min(0, -D(I_s)-1)

与上述的研究对比,他们都集中在特定形式的对抗损失。
—Park等人[130]
讨论了像素水平的判别器会导致生成器生成无意义的高频噪声(不能被像素损失所学习),而连接附加的特征级别的判别器,以对由预训练的CNN提取的高级表现进行操作,以捕获实际HR图像的更有意义的潜在属性。
—Xu等人[67]
多类GAN包括一个单一生成器和特定类别的判别器。
—ESRGCN[101]
应用相对论的GAN去预测真实图像比伪图像相对真实的概率,而不是预测输入图像是真实的还是生成的。

MOS测试表明,用对抗损失和内容损失训练的SR模型相对于那些像素损失的训练有较低的PSNR值。因为对抗损失带来更多的感知质量。
事实上,判别器提取实际HR图像的一些难以学习的潜在模式,并推动生成的HR图像以使其符合。然而,目前GAN的训练过程仍然很复杂和不稳定。如何确保将GAN集成到SR模型中,以便正确地训练模型并发挥积极作用仍然是一个问题。

Cycle Consistentcy loss

周期一致性损失:周期指的是不仅是LR图像到HR图像,也是通过CNN将HR下采样回LR‘图像。损失是指约束LR’ 和LR之间的像素水平一致性。其公式如下:
L c y c l e ( I , I ) = 1 h w c i , j , k ( I i , j , k I i , j , k ) 2 L_{cycle}(I', I)=\dfrac{1}{hwc} \sqrt{ \sum_{i,j,k} (I'_{i,j,k}-I_{i,j,k})^2}

Total Variation loss

总变化损失:最早是被Aly等人[136]引入到SR领域。它定义为相邻像素之间的绝对差之和,并衡量图像中有多少噪声。Lai等人[27]和Yuan等人[126]也应用这种损失来提升空间平滑度。其公式如下:
L T V ( I ) = 1 h w c i , j , k ( I i , j + 1 , k I i , j , k ) 2 + ( I i + 1 , j , k I i , j , k ) 2 L_{TV}(I')=\dfrac{1}{hwc} \sum_{i,j,k}\sqrt{(I'_{i,j+1,k}-I'_{i,j,k})^2+(I'_{i+1,j,k}-I'_{i,j,k})^2}

Prior-Based loss

基于先验知识的损失:
—Bulat等人[32] 关注人脸SR,引入FAN约束从原始图像和生成图像中检测到的脸部标志的一致性。FAN是被预训练和集成,可提供人脸对齐的知识。
作者提出,实际上很多研究者通常通过权重平均来结合多个损失函数。然而,确定不同损失函数的权重需要大量的经验,目前怎样有效和合理地结合这些损失函数仍然是一个问题。

Batch Normalization

正则化:
—Sergey等人[140] 为了加快训练速度,减少网络内部协变量移位。他们对每个小batch使用正则化,对每个channel训练额外的转换参数保留表现能力。因为BN能校准中间的特征分布和减轻梯度消失问题,这允许我们使用较大的学习率和随意的初始化。
----Lim等人[33] 争论了BN会丢失图像的尺寸信息,除掉了网络大小的灵活性。他们去掉了BN层,内存减少了40%,提高了表现。

Curriculum learning

curriculum学习:指的是从简单的子任务开始,逐渐增加任务难度。

----Wang等人[34]和Bei等人[144] 提出了ProSR和ADRSR,训练从2倍的上采样部分开始,在完成当前部分的训练之后,逐渐开始具有4倍或更大比例因子的部分,并与之前的部分融合。

—Park等人[113] 将8倍SR问题分解成3个子问题(1x-2x, 2x-4x, 4x-8x) ,分别训练每个问题单独的网络,然后两两concate和微调结合。而在困难情况下4倍SR也可以被分解成3个子问题(去噪声/去模糊,1x-2x, 2x-4x)最后采用同样的训练策略。

对比整个训练过程,curriculum学习策略能大大地减少训练难度,提高任意采样因子的表现(特别大的scale),也有效缩短总的训练时间。

Multi-supervision

多监督:指的是增加多个额外的监督信号在模型内部,用于增强梯度传播和避免梯度消失。

—DRCN[80] 它结合了对递归单元的多重监督,对每个递归单元的输出馈送进一个重建模块以生成一个HR图像,使用权值平均所有中间HR图像来建立最终的预测。
—MemNet[59]和DSRN[83] 也使用了。
—[69] 在渐进式上采样框架中,在前向传播过程里生成不同尺寸的中间上采样结果,这是一种直接前向应用多监督的方式。

在实际应用中,多监督技术经常通过在损失函数中增加一些项来实现,因此多监督信号能有效地反向传播,增强模型的训练。

Other Improvements

Context-wise Network Fusion

文本内容网络融合:指的是融合来自多个SR网络的预测的堆叠技术。特指多路径学习。具体地说,他们分别训练不同网络结构的单独的SR模型,将每个模型的预测输入到单独的卷积层中,最后相加所有的输出作为最后的预测结果。

Data Augmentation

数据增强的操作有裁剪crop,翻转flip,缩放sacle,旋转rotate,颜色抖动jitter等。
—Bei等人[144] 随意打乱RGB通道,不仅增强数据,而且减轻由数据色彩不平衡带来的颜色偏差问题。

Multi-task learning

多任务学习:
指的是通过使用包含相关任务的训练信号的特定领域信息来提高泛化能力。

----Wang等人[48] 包含了预训练的语义分割网络来提供语义的知识,这能产生特定语义的细节。具体来说,他们引入了一个空间特征转换层,将语义图作为输入和输出一个逐空间参数的仿射变换。
—SFT-GAN能生成具有语义区域的图像上逼真的逼真纹理。
----DNSR[144] 提出训练一个降噪网络和一个SR网络,然后concate和微调。
----CinC-GAN[126] 结合周期降噪框架和周期SR模型,共同完成降噪和超分辨率工作

Network Interpolation

网络插值:

—基于PSNR的模型 生成的图像倾向于和ground truth接近,但是引入了噪声和模糊。
—基于GAN模型 带来更好的感知质量,但是有不满意的伪影(无意义的噪声)。为了平衡视觉质量和图像保真度,—Wang等人[101] 提出网络插值策略,他们分别训练一个基于PSNR网络和一个基于GAN网络,通过微调,然后插值所有的相对应的参数派生出一个中间模型。通过微调插值权重,没有重新训练网络,网络表现有更好的结果,没有太多伪影。

Self-Ensemble

self ensemble:是一种inference技术。旋转(0°,90°,180°,270°)和翻转(上下左右)应用于LR图像以获得一组8个LR图像。 这些图像被输入到SR模型中,并将相应的逆变换应用于重建的HR图像以获得输出。 最终的预测结果是通过这些输出的平均值或中位数来进行的。

Domain-Specific Application

在特定领域部分,有深度图的SR,高光谱的SR,人脸识别还有视频,由于个人只研究视频领域,所以这里主要介绍视频领域的SR。

Video Super Resolution(VSR)

在视频超分辨率中,多帧提供更多场景信息,不仅在帧间空间依赖而且帧间时间依赖(运动,明亮度和颜色变换)。目前的工作主要关注在更好地利用时空依赖,包括显式运动补偿(光流算法,基于学习的方法)和循环方法。

大部分方法基于光流算法:
—Liao等人[182] 应用多种光流算法去生成候选的HR,并通过CNN合并他们
----VSRnet[183]和CVSRnet[184] 通过Druleas 算法实现了运动补偿,和使用CNN来连接帧作为输入,预测HR帧。
----Liu等人[186][187] 使用整流光流对齐,提出一个时间适应网络在各种时间规格去生成HR帧并合并他们。

还有直接尝试学习运动补偿:
----VESPCN[188] 利用一个可训练的空间变换器去学习基于邻帧的运动补偿,将多帧送入时空ESPCN进行端对端的预测

—Tao等人[189] 他从精确的LR成像模型出发,提出了一个像子像素一样的模块,以同时实现运动补偿和超分辨率,从而更有效地融合对齐的帧。

另外一种就是使用循环方法捕获时空相关性,没有显式运动补偿:
—BRCN[190]191] 应用一个双向框架,使用CNN,RNN和有条件的CNN去分别建模时间,空间和时空相关性。

—STCN[192] 使用一个深度CNN和双向LSTM去提取时空信息

—FRVSR[194] 它使用先前推断的HR估计值,以递归方式通过两个深层CNN重建后续的HR帧。

—FAST[195] 利用压缩算法提取的结构和像素相关性的紧凑描述,将SR结果从一帧传输到相邻帧,并以15倍的速度将最新的SR算法加速,而性能损失很小。

—Jo等人[196] 产生静态的上采样核和基于每个像素的局部时空领域的HR残差图,也避免了显式运动补偿。

Conclusion

近几年,基于深度学习的图像超分辨率已经有大的突破成就。在文章最后,作者对目前存在的问题以及改进点做了一个概述。

Network Design

好的网络设计不仅可以确定具有较高性能上限的假设空间,而且还可以有效地学习数据表示而不会产生过多的时间和计算冗余。下面就介绍一些有关网络设计的可改进的地方。

  • 结合局部和全局信息:
    大的感知域能提供更多的上下文信息,帮助产生更真实的HR图像。这对于超分辨率是很有希望的方法,通过结合局部和全局信息来提供不同scale的上下文信息。
  • 结合浅层和深层信息:
    浅层只能提取低水平的特征,如颜色和边缘;深层提取高水平表现,如对象标识。因此结合低水平细节和高水平抽象语义对HR重建非常有帮助。
  • 特定语境注意力:
    不同的语境关注的信息不同。对于草区域更多关注颜色和纹理,而动物身体区域则关注头发细节。因此结合注意力机制去开发语境信息,能增强关键特征的注意力,提升真实细节的生成。
  • 轻量化结构:
    目前的SR模型都追求最终的表现,而忽略了模型大小和推理速度。如此长时间的预测是不被接受的,因此轻量化结构势在必行。如何减少模型大小和加快预测速度的同时保持表现,仍是个问题。
  • 上采样层:
    在SR中,上采样操作扮演一个非常重要的角色。目前存在的方法或多或少有缺点:基于插值的方法–导致高成本的计算和不能端到端学习;反卷积—产生棋盘效应的伪影;亚像素层–带来感受野不均匀的分布。如何提高效率和有效上采样仍然需要研究,特别是大采样因子。

Learning strategies

  • 损失函数:
    现有的损失函数可被视为在LR / HR / SR图像之间建立约束,并基于是否满足这些约束来指导优化。实际上,这些损失函数通常是结合权重的,最好的损失函数仍然不清晰,因此最有前途的方向之一是探索这些图像之间的潜在相关性,并寻求更准确的损失函数。
  • 正则化:
    虽然BN被广泛应用在视觉任务,这能大大加快训练和提升表现,被证明是超分辨率的次优化项。因此,其他有效的正则化技术需要被研究。
Evaluation Metrics
  • 更准确的指标:
    被广泛应用在SR领域的指标是PSNR和SSIM。PSNR—趋向于结果过度平滑,如果在难以区分的图像中结果会变化很大。SSIM----在一定程度上是明亮度,对比度和结构的评估,但是仍不能准确地测量图像的感知质量。MOS—最接近人类的视觉响应,但是需要大量的人力和精力,并且是不可复制的。
  • 盲IQA方法:
    目前,大多数指标是全参考方法,假设我们已将LR-HR图像与完美质量配对,但因为不能获取这样的数据集,常用作评估的数据集通常是通过人工降质得到的。
    在这样的情况下,我们执行评估的任务实际上是预定义降质的逆过程。因此发展盲IQA方法是很有必要的。

以上内容总结了整篇综述重要描述的部分,终于完结了!!!好开心,今天可以放假啦啦啦啦!看在写了那么多字的份上,球球各位路过的小姐姐小哥哥点个赞,激励我以后出有质量的文章。最后不忘附上原文地址和作者的GitHub!
https://arxiv.org/abs/1902.06068
https://github.com/LoSealL/VideoSuperResolution
本博文是原创,转载需要注明出处噢,谢谢

发布了16 篇原创文章 · 获赞 36 · 访问量 4183

猜你喜欢

转载自blog.csdn.net/Resume_f/article/details/103949992