《Deep Learning for Image Super-resolution:A Survey》论文学习笔记

《深度学习在图像超分辨率重建中的应用综述》

目录

一、定义

二、一些超分辨率数据集

三、图像质量评估方法(IQA)

四、常用的SR框架

1、Pre-upsampling Super-resolution

2、 Post-upsampling Super-resolution

3、Progressive Upsampling Super-resolution

4、Iterative Up-and-down Sampling Super-resolution

五、一些上采样方法

1、基于插值的上采样方法

2、基于学习的上采样方法

六、网络设计

1、Resnet

2、递归学习

3、多路径学习

4、密集连接

5、注意力机制

6、Advanced Convolution

7、区域递归学习

8、金字塔池化

9、小波变换

10、去亚像素

11、xUnit

七、损失函数设计

1、像素损失(Pixel Loss):

2、内容损失(Content Loss)

3、纹理损失(Texture Loss)

4、对抗损失(Adversarial Loss)

5、循环一致性损失

6、基于全变分的损失(Total Variation Loss)

7、基于先验的损失(Prior-Based Loss)

八、其他改进

九、无监督图像重建

十、特定领域的应用

十一、未来发展趋势


一、定义

       图像超分辨率重建是指从低分辨率(LR)图像中恢复高分辨率(HR)图像的过程,是计算机视觉和图像处理中的一类重要图像处理技术,其数学模型表示为:

\hat{I_{y}}=F(I_{x};\Theta)

其中I_{x}为退化后的低分辨率(LR)图像,\hat{I_{y}}为对应的高分辨率(HR)图像,\Theta表示重建网络的参数。

       图像超分辨率重建的任务主要为最小化以下损失函数:

\hat\theta =argmin\pounds (\hat{I_{y}},I_{y})+\lambda \Phi (\theta )

其中\pounds (\hat{I_{y}},I_{y})表示LR图像与groundtruthHR图像之间的损失函数,\Phi (\theta )为正则项,\lambda为参数。

       基于深度学习的图像超分辨率重建方法之间的差别主要存在于以下几个方面:

       ①不同类型的网络架构

       ②不同类型的损失函数

       ③不同类型的学习策略

二、一些超分辨率数据集

三、图像质量评估方法(IQA)

(1)峰值信噪比(PSNR):越大越好

(2)结构相似性(SSIM):范围-1~1,越接近1越好

(3)平均主观意见得分(MOS):人为主观评价,五分制,越高越好

(4)基于学习的感知质量(LPIPS):使用主观评分作为groundtruth

(5)基于任务的评估:根据应用于其他任务的表现评估重建性能

(6)其他IQA:多尺度结构相似性(MS-SSIM);特征相似性(FSIM);自然图像质量评估(NIQE)等

四、常用的SR框架

1、Pre-upsampling Super-resolution

首先使用预上采样SR框架,令网络学习从插值LR图像到HR图像的端到端映射。

优点:①大大降低了学习难度(复杂的上采样已完成,网络只需要重建图像细节)

           ②可以进行多尺度重建(可以将具有任意大小和缩放因子的插值图像作为输入,网络的输入输出尺寸相同)

缺点:①引入副作用(如噪声放大和模糊)

           ②时间空间成本增加(大多数操作是在高维空间中执行的,增加了计算复杂度)

2、 Post-upsampling Super-resolution

将预先的上采样操作替换为网络末尾的端到端可学习层。

优点:提高计算效率,降低时间空间复杂度(大部分计算都是在低维空间中执行的)

缺点:①增加神经网络学习的难度(仅在最后进行一次上采样)

           ②只可进行单一尺度超分重建(上采样系数)

3、Progressive Upsampling Super-resolution

       基于一系列CNN逐步重建更高分辨率的图像。在每个阶段,图像被上采样到更高的分辨率,并由CNN重建图像细节。

优点:①大大降低了学习难度(将困难任务分解为多个简单任务,如x8→x2+x2+x2)

           ②可以进行多尺度重建

           ③进一步降低学习难度(一些特定的学习策略可以被直接整合)

缺点:模型较为复杂,训练难度较高

4、Iterative Up-and-down Sampling Super-resolution

       多次进行反向映射(downsample)计算重建误差,在网络中形成多个上-下采样网络模块(up-and-down sampling layers)。

优点:可以更好地挖掘LR-HR图像对之间的深层关系,从而提供更高质量的重建结果

缺点:反向映射的设计准则还不够清晰,还需进一步探索

五、一些上采样方法

1、基于插值的上采样方法

       仅基于其自身的图像信号来提高图像分辨率,不会提供更多的信息,且通常会带来一些副作用,例如提高计算复杂度、放大噪声、模糊结果。

(1)最近邻插值:选取最邻近的点作为待插入点的像素

(2)双线性插值:使用相邻的4个点估计待插入点的像素值

(3)双三次插值:使用相邻的16个点估计待插入点的像素值,权重为位置点与周围16个一直像素点的距离。

2、基于学习的上采样方法

       可以将上采样操作集成到网络中,实现真正的端对端重建网络。

(1)转置卷积层(反卷积):通过插入零并执行卷积来扩展图像,从而提高图像分辨率。

       反卷积的方法在超分任务里面广泛应用,可以对特征图进行逐像素方法,其操作步骤与卷积层相反。然而,很容易在每个轴上引起“不均匀重叠”,并且两个轴上的相乘结果进一步创建了大小变化的棋盘状图案,从而损害了SR性能。

 (2)亚像素层:通过卷积生成多个通道,然后对其进行整形(拼起来),从而执行上采样。

       与转置卷积层相比,亚像素层具有更大的感受野,提供了更多的上下文信息以帮助生成更多逼真的细节。然而,由于感受野的分布是不均匀的,并且块状区域实际上共享相同的感受野,因此可能会导致在不同块的边界附近出现一些伪影,也可能会导致不平滑的输出结果。

(3)Meta-Upscale Module:基于元学习解决任意缩放因子的SR

       该模块可以通过单个模型实现连续放大。并且由于有大量的训练数据,该模块在固定放大倍数上可以表现出相当甚至更好的性能。首次通过动态预测权重 (dynamically predict weights),实现了单一模型对输入图片进行任意尺度的上采样。 

六、网络设计

1、Resnet

       全局Resnet学习输入图像与目标图像之间的残差,局部Resnet用于缓解由不断增加的网络深度引起的退化问题;

2、递归学习

       以递归方式多次应用参数共享的网络模块;

       递归学习不引入额外的参数,但并没有使减少算量,同时也带来了梯度消失和梯度爆炸的问题,因此通常将残差学习和递归学习结合来缓解这些问题。

3、多路径学习

全局多路径学习利用多个路径来提取图像的不同方面的特征,这些路径在传播过程中可以相互交叉,从而大大提高了特征提取的能力;

局部多路径学习使用不同大小的卷积层提取特征,并在之后进行拼接;

特定规模的多路径学习:共享网络的特征提取中间层,并分别在网络的开始和结尾处附加特定比例的预处理路径和上采样路径。SR模型可以更好地从多个尺度提取图像特征,进一步提高性能。

4、密集连接

        密集块中的每一层使用所有前面层的特征图用作输入,其自身的特征图作为所有后续层的输入。融合低级和高级特征,为重建高质量细节提供更丰富的信息。

5、注意力机制

Channel Attention:

       在注意力机制模块中,feature map的每个通道经过全局平均池化(GAP)后变成一个值,再经过2个全连接(FC)层后生成scaling factors,最后与输入的feature map相乘输出

Non-local Attention:针对SR模型感受野有限的情况,非局部注意机制用来捕获远距离空间上下文信息。

6、Advanced Convolution

空洞卷积:增大感受野,有助于生成逼真的细节

分组卷积:减少大量的参数和运算,损失函数

7、区域递归学习

       使用两个网络分别捕获全局上下文信息和串行生成依赖性来执行逐像素生成。在一定程度上表现出更好的性能,但大大增加了计算成本和训练难度。

8、金字塔池化

把不同size的feature concat在一起,更好地利用全局和局部上下文信息提升网络性能。

9、小波变换

       以插值LR小波的子带为输入,预测相应HR子带的残差。小波变换和小波逆变换分别用于分解LR输入和重构HR输出。在保持性能的基础上大大减少了模型大小和计算成本。

10、去亚像素

       为了在低维空间中执行耗时的特征提取过程,在模型开始时通过去亚像素对输入图像进行下采样,学习低维空间中的表示,并在结束时上采样至目标大小。

11、xUnit

       用于减小模型大小的激活函数。

七、损失函数设计

1、像素损失(Pixel Loss):

       衡量两个图像之间的像素差异,主要包括L1损失和L2损失:

其中h,w,c分别表示图像的长、宽、高和通道数。

L1损失变体:

 其中\epsilon是一个常数,表示数值稳定性因子。

       L2损失惩罚较大的误差,因此常常导致过于平滑的结果。在实践中,L1损失比L2损失表现出更好的性能和收敛性。但由于像素损失实际上没有考虑图像质量(如感知质量,纹理等),因此结果通常缺乏高频细节。

2、内容损失(Content Loss)

       用来评估图像的感知质量:

       \phi是特征提取网络,往往是分类网络,用来提取网络的高维特征。content loss表示2幅图像高维特征之间的欧氏距离。它把分类网络引入超分中,不再关注pixel之间的匹配,而是使生成的图片从视觉上看更像是真实的图片。

3、纹理损失(Texture Loss)

vec(·)表示矢量化操作,\varphi ^{_{i}^{(l)}}表示图像第l层上的特征图的第i个通道,纹理损失衡量不同通道之间的相关性。

优点:能产生更加真实的纹理结构和符合视觉的效果。

缺点:确定去匹配纹理结构的图像块的大小仍以经验为主。

4、对抗损失(Adversarial Loss)

       将SR模型视为生成器,并定义一个额外的判别器来判断是重建图像还是输入图像。

 第一个为生成器的对抗损失,第二个为判别器的损失。

基于最小二乘误差的对抗性损失被证明能够实现更稳定的训练过程和更高质量的结果。

       尽管使用对抗性损失和内容损失训练的SR模型与使用像素损失训练的模型相比实现了更低的PSNR,但它们在感知质量方面带来了显著的提高。

5、循环一致性损失

       将LR图像I经过SR网络生成HR图像,再将生成的HR图像经过一个CNN网络降采样为LR图像I',通过比较前后图像的一致性来定义损失:

6、基于全变分的损失(Total Variation Loss)

       定义为重建图像相邻像素之间的差异之和,衡量图像中的噪声量 。

7、基于先验的损失(Prior-Based Loss)

       引入了外部先验知识(如其他网络)来约束生成。

       在实践中,通常使用多个损失函数的加权平均来约束生成图像的多方面性能。

八、其他改进

(1)Context-wise Network Fusion(上下文融合网络)

       分别训练具有不同架构的SR模型,将每个模型的预测送入各个卷积层中,最后将输出求和为最终预测结果。

(2)Data Augmentation(数据增强)

       通过裁剪、翻转、缩放、旋转等扩大数据集。

(3)Multi-task Learning(多任务学习)

       通过利用相关任务的训练信号中包含的领域特定信息来提高泛化能力。将相关任务与SR模型相结合通常会通过提供额外的信息和知识来提高SR性能。

(4)Network Interpolation(网络插值)

        为了更好地平衡失真和感知,Wang等人提出了一种网络插值策略。具体而言,他们训练基于PSNR的模型,并通过微调训练基于GAN的模型,然后插值两个网络中所有对应参数以导出中间模型。

(5)Self-Ensemble(自集成策略)

        对LR图像使用不同角度的旋转(0◦, 90◦, 180◦, 270◦) 并且应用水平翻转以获得一组8个图像。然后将这些图像送入SR模型,再将相应的逆变换应用于重建的HR图像以获得输出。通过这些输出的平均值或中值来获得最终预测结果。

       目前先进的基于深度学习的SR方法往往是不同的模型框架、上采样方法、网络设计和学习策略的组合,如下表所示:

 九、无监督图像重建

       现有的SR方法往往根据输入的LR-HR图像对来训练网络,其中LR图像通常由预定义的退化过程获得,为了学习真实场景中的LR-HR映射,无监督SR仅提供LR图像,得到的模型泛化能力更强。

(1)Zero-shot Super-resolution(ZSSR网络)

(2)Weakly-supervised Super-resolution(弱监督超分辨率)

①学习退化:首先使用未配对的LR-HR图像训练HR-LR GAN学习退化过程,然后使用上述GAN配对后的LR-HR图像(生成器输出)训练LR-HR GAN用于SR。

②循环超分辨率:将LR空间和HR空间视为两个域,使用循环结构来学习彼此之间的映射。避免了预定义的退化过程。

(3)Deep Image Prior(深度图像先验)

       在执行SR之前首先使用随机初始化的CNN网络,输入随机向量,生成目标HR图像,用来令网络学习到下采样图像与LR图像相同。

十、特定领域的应用

1、Depth Map Super-resolution(深度图像超分辨率)

2、Face Image Super-resolution(人脸图像超分辨率)

3、Hyperspectral Image Super-resolution(光谱成像超分辨率)

4、Real-world Image Super-resolution(真实世界图像超分辨率)

5、Video Super-resolution(视频超分辨率)

十一、未来发展趋势

1、网络设计

①结合局部和全局信息来为图像SR提供不同尺度的上下文信息;

②结合特定内容的注意力机制来增强对关键特征的关注有助于生成真实的细节;

③更加轻量级的架构:保持性能的同时减小模型大小并加快预测速度;

④上采样方法:插值方法导致复杂的计算,无法端到端学习;转置卷积产生棋盘状伪影;亚像素层带来感受野的不均匀分布;超高阶模块可能导致不稳定性或效率低下。如何执行有效和高效的上采样仍然需要研究,尤其是在具有高缩放因子的情况下。

2、学习策略

①最佳的损失函数表示

②有效的归一化

3、评估指标

①更准确的评估指标:传统的PSNR/SSIM图像质量评价方法并不能客观反应图像的主观效果,MOS方法需要大量的人力成本并且不能再现。目前还没有统一和公认的SR质量评估指标。

②Blind IQA Methods

4、无监督超分辨率

5、走向真实世界场景

①处理各种退化:解决多种图像退化问题,针对不同方式获得的LR图像。

②特定领域的应用

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenGL纹理压缩是一种将纹理数据压缩以减少内存占用和提高渲染性能的技术。它通过使用压缩算法来减小纹理的尺寸,并在渲染时对其进行解压缩。 OpenGL支持多种纹理压缩格式,如S3TC、ETC、PVRTC等。这些格式使用不同的压缩算法和压缩比例,适用于不同类型的纹理。 在使用压缩纹理时,首先需要选择合适的压缩格式。每种格式有不同的特点和兼容性,需要根据具体的需求进行选择。一般来说,S3TC是目前最常用的纹理压缩格式,支持大部分硬件平台。 在将纹理数据加载到OpenGL中时,需要使用相应的纹理压缩格式,并在加载时告知OpenGL使用压缩纹理。这样,OpenGL会在渲染时自动进行纹理解压缩,以获得原始的纹理数据并进行渲染。 纹理压缩在游戏开发和移动设备上特别有用,因为它可以显著减少纹理存储和传输的开销。通过使用纹理压缩,可以减小应用的体积,加快加载时间,并提高渲染性能。 然而,使用纹理压缩也存在一些问题。首先,压缩纹理需要额外的计算资源来进行解压缩,可能会对CPU和GPU造成一定的负载。此外,压缩算法也会对纹理的质量产生影响,使得压缩纹理的细节和颜色渐变可能会有所损失。 总的来说,OpenGL纹理压缩是一种有效的优化技术,可以在游戏和移动应用中节省内存和提高性能。但在具体应用中,需要根据需求权衡压缩质量和性能开销。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值