草庐IT

基于深度学习的图像超分辨率——综述

Zency_SUN 2023-05-15 原文

2021-Deep Learning for Image Super-resolution:A Survey

基本信息

作者: Zhihao Wang, Jian Chen, Steven C.H. Hoi, Fellow, IEEE
期刊: IEEE Trans Pattern Anal Mach Intell(16.389)
引用: 156(热点论文)
摘要: 本文旨在对深度学习方法在图像超分辨率研究中的最新进展进行综述。本文将SR技术分为3类:监督SR、非监督SR和特定领域的SR。本文还总结了公开可用的基准数据集和性能评估指标,总结了几个未来的方向和有待社会各界进一步解决的问题。


主要内容

目前的SR的主要区别:

  1. 网络结构
  2. 损失函数
  3. 学习原则和策略

本文贡献:

  1. 对基于深度学习的图像超分辨率技术进行了全面的综述,包括问题设置、基准数据集、性能指标、一类支持深度学习的超分辨率方法、特定领域的超分辨率应用等。
  2. 系统地综述了基于深度学习的SR技术的最新进展,总结了每个组件对于有效的SR解决方案的优点和局限性。
  3. 我们讨论了挑战和有待解决的问题,确定了新的趋势和未来的方向,为社会提供了有洞察力的指导。

全文层次结构


SR定义、数据集与指标

1. SR问题的定义
该部分介绍了SR的退化模型,重建模型以及SR目标函数

2. 数据集
有的数据集提供HR个LR,有的只提供HR,而LR通常需要用matlab的bicubic获得,常见的数据集如下:
其他专用数据集用于SR:ImageNet,MS-COCO,VOC2012,CelebA……
组合数据集用于SR:T91和BSDS300;DIV2K和Flickr2K……

3. SR图像指标(IQA)
指标主要包括主观指标和客观指标,但目前多用后者,两者可能会有差异(有矛盾)
客观指标的类型:使用参考图像执行评估的全参考方法、基于提取特征的比较的减少参考方法、没有任何参考图像的无参考方法

  • PSNR峰值信噪比:客观指标,真实场景表现不佳,主要为了对比

  • SSIM结构相似性:客观指标,符合感官需求

  • MOS平均意见得分:主观指标,常见指标不好,但质量好的时候使用

  • 以学习为基础的质量评估:MA、NIMA、DeepQA、LPIPS等,有待探索

  • 基于任务的评估:主要用于人脸等任务

  • 其他指标: MS-SSIM、FSIM、NIQE

  • 总之,目前还是PSNR和SSIM更常用,其他都在探索阶段

4. 操作通道
前期多用YCbCr的Y通道评估,后期多用RGB通道,色彩空间不同,结果会有差异

5. 超分辨比赛

  • NTIRE:对SR建立在DIV2K数据集上,CVPR

  • PIRM:一个均衡精度和感知质量(RNSE,NIEQ,Ma),一个用于智能手机(PSNR,MS-SSIM,MOS)


监督SR

1. 上采样位置

  • 预上采样:会引入副作用(噪声方法、模糊),时间成本和空间成本高

  • 后上采样:计算量和空间复杂度低,但是缩放因子学习难度大,每个缩放因子都需要训练一个单独的模型

  • 逐步上采样:降低学习难度,适应多尺度SR,但是模型设计复杂,稳定训练,需要更多建模指导和更先进的训练策略

  • 迭代上下采样:可以更好的挖掘LR-HR图像之间深层关系,但是模块的设计标准尚不清楚,具有很大的潜力,值得进一步探索

以下为采样位置的图示

立方体大小代表输出大小。灰色的表示预定义的上采样,而绿色、黄色和蓝色的分别表示可学习的上采样、下采样和卷积层。虚线框包围的块代表可堆叠模块。

2. 上采样方法

  • 基于插值的上采样: 具有可解释性和易于实现的特点
    最近邻域插值:为要插值每个位置选择最近像素的值,速度快但会产生低质量块状
    双线性插值BLI:先在一轴,再在另一轴,比最近邻好,速度快
    双三次插值BIC:每个轴执行三次插值,结果平滑伪影少,速度慢,该方法是构建数据集(下采样)的主流方法,也广泛用于上采样

插值只是根据自己的信号提高分辨率,没有更多信息,还会引入噪声放大、计算复杂度、结果模糊等问题,现在多用可学习上采样代替

  • 基于学习的上采样
    转置/反卷积层:端到端的方式扩大图像,保持与普通卷积的连接模式,但容易导致每个轴上“不均匀重叠”,两个轴上的相乘结果进一步产生了不同大小的棋盘状图案,从而损害了 SR 性能。
    亚像素层:有更大的感受视野,有助于生成更逼真的细节,但是可能产生伪影,预测块可能会导致输出不平滑
    元上采样模型:实现了基于元学习的任意缩放因子,固定因子表现很好,放大倍数较大时结果不稳定效率低

3. 网络设计

  • 残差学习
    全局残差学习:避免了学习从完整图像到另一幅图像的复杂转换,只需要学习残差图来恢复丢失的高频细节,降低了模型复杂度和学习难度
    局部残差学习:用于缓解网络深度不断增加引起的退化问题,降低训练难度,提高学习能力
    前者直接连接输入和输出图像,而后者通常在层之间添加多个快捷方式在网络内部具有不同的深度。
  • 递归学习:递归学习可以在不引入过多参数的情况下学习更高级的表示,但计算成本高,同时也有梯度消失或爆炸问题,可以和残差学习、等结合来缓解
  • 多路径学习
    全局多路径学习:利用多条路径来提取图像不同方面的特征。这些路径在传播过程中可以相互交叉,从而大大提高学习能力。
    局部多路径学习:可以更好地从多个尺度中提取图像特征,进一步提高性能。
    规模特定的多路径学习:开头结尾的预处理不同,共享不同尺度的大部分参数,大大减小模型大小
  • 密集连接: 有助于缓解梯度消失、增强信号传播和鼓励特征重用,而且还通过采用小增长率(即密集块中的通道数)和在连接所有输入特征图后压缩通道来显着减小模型大小,融合低层和高层特征,为重构高质量细节提供更丰富的信息。
  • 注意力机制
    通道注意:通过显式建模通道相互依赖性来提高学习能力
    非本地注意:很好地捕捉了空间注意力,进一步增强了表示能力
  • 高级卷积
    扩张卷积:利用上下文,有助于为 SR 生成逼真的细节。
    分组卷积:大大减少了参数和操作的数量,但代价是一点性能损失
    深度可分离卷积:减少大量的参数和操作,准确度稍微降低,大大加速SR架构。
  • 区域递归学习: 根据每幅图像的自身特点,自适应地个性化最优搜索路径,从而充分利用图像的全局内部依赖性,但增加计算成本和训练难度
  • 金字塔池化: 整合了全局和局部上下文信息,提升性能
  • 小波变换: 会大大降低模型大小和计算成本,同时保持有竞争力的性能力
  • Desubpixel: 加块推理速度
  • xUnit: 用于学习空间激活函数,虽然对计算要求提高,但将性能与ReLU 匹配的同时,模型大大减小,性能不变

4. 学习策略

  • 损失函数
    像素损失: L1损失(均差)和L2损失(均方差MSE)、L1变体,由于PSNR,像素损失很广泛,但像素损失没有考虑图像质量,缺乏高频细节,在感知上过度平滑的纹理不满意
    内容损失: 鼓励输出图像在感知上与目标图像相似,而不强迫它们精确匹配像素。
    纹理损失: 创建更逼真的纹理并产生视觉上更令人满意的结果,但可能会产生伪影
    对抗损失: 包括交叉熵对抗损失,最小二乘误差对抗损失等,它们的 PSNR 更低,但它们在感知质量方面带来了显着的提升,训练困难不稳定。
    循环一致损失: 约束ILR和I’(LR)的像素级一致性
    总变异损失: 相邻像素之间的绝对差之和,衡量图像中有多少噪声
    基于先验的损失: 提供人脸先验,再训练,主要用于人脸SR
    在实践中,往往使用加权不同损失函数,但是权重组合有待探索

  • 批量标准化
    对每个小批量执行归一化,并为每个通道训练两个额外的转换参数以保持表示能力,减轻训练消失梯度,允许更大的学习率和不小心的初始化。但是丢失了每个图像的尺度信息,并摆脱了网络的范围灵活性,去除后可以节省内存开发更大的模型,从而提高性能。

  • 课程学习
    从较简单的任务开始,逐渐增加难度,可以降低学习难度,缩短训练时间,对大放大倍数更有效

  • 多监督
    在模型中添加多个监督信号,以增强梯度传播,避免梯度消失和爆炸。这种多监督技术通常是通过在损失函数中添加一些项来实现的。

5. 其他改进

  • 上下文网络融合:融合来自多个 SR 网络的预测

  • 数据增强:裁剪、翻转、缩放、旋转、颜色抖动。还有的随机打乱RGB通道,这不仅增强了数据,而且还减轻了由颜色不平衡的数据集引起的颜色偏差。

  • 多任务学习:通过利用相关任务的训练信号中包含的特定领域信息来提高泛化能力。由于不同的任务倾向于关注数据的不同方面,将相关任务与SR模型相结合,通常会通过提供额外的信息和知识来提高SR性能。

  • 网络插值:训练一个基于PSNR的模型和训练一个基于GAN的模型,然后对两个网络的所有相应参数进行插值,得出中间的模型。通过调整插值权重而不重新训练网络,可以取得较好的结果,假象少很多

  • 自集成/增强预测:对LR图像进行不同角度的旋转和水平翻转,得到一组图像。送入SR模型,相应的反变换被应用于重建的HR图像以获得输出。最终的预测结果是由这些输出的平均值或中位数进行。通过这种方式,这些模型进一步提高了性能。

6. 先进模型的总结


非监督SR

监督SR的缺点: 由于难以收集相同场景但具有不同分辨率的图像,SR数据集中的LR图像通常是通过对HR图像进行预定义的退化来获得的。因此,经过训练的SR模型实际上学习了预定义退化的逆过程。
监督SR优点: 不引入人工退化先验的情况下学习真实世界的LR-HR映射,只提供未配对的LR-HR图像进行训练,这样得到的模型更有可能以应对现实世界场景中的SR问题。

1. Zero-shot SR

  • 方法: 估计单幅图像的退化核,并使用该核通过对该图像进行不同比例系数的退化和增强来建立一个小型数据集。然后在这个数据集上训练SR的小型CNN,并用于最终预测。
  • 效果: 非理想条件下的图像(非二维退化获得的图像,并受到模糊、噪声、压缩伪影等影响),以较大的幅度胜过以前的方法,更接近于真实世界的场景,在理想条件下(即通过二维退化获得的图像),可以得到有竞争力的结果。
  • 缺点: 在测试过程中需要针对不同的图像训练不同的网络,因此推理时间比其他的要长得多。

2. 弱监督SR

  • 学习退化
    方法: 首先训练一个HR-to-LR GAN,使用未配对的LR-HR图像学习退化,然后使用配对的LR-HR图像在第一个GAN的基础上训练一个LR-to-HR GAN进行SR。
    效果: 效地提高了超解真实世界LR图像的质量,并获得了比以前最先进的作品更大的改进。

  • Cycle-in-cycle SR
    方法: 将LR空间和HR空间视为两个域,并使用循环中的结构来学习彼此之间的映射关系。在这种情况下,训练目标包括推动映射的结果与目标域的分布相匹配,并通过往返映射使图像可恢复。(noiseLR——cleanLR——cleanHR)
    效果: 不仅取得了与有监督方法相当的性能,且即使在非常苛刻的条件下也能适用于各种情况。然而,由于SR问题的不确定性和CinCGAN的复杂结构,需要一些先进的策略来降低训练难度和不稳定性。

3. 深度图像先验

  • 方法: 随机初始化的CNN作为手工制作的先验来执行SR。
  • 效果: 虽然这种方法的性能仍然比有监督的方法差,但它大大超过了传统的双三次元上采样。此外,它显示了CNN结构本身的合理性,并促使我们通过将深度学习方法与手工制作的先验(如CNN结构或自相似性)相结合来改进SR。

特定领域的应用

1. 深度图超分辨

  • 背景:深度图记录了视角和场景中物体之间的深度(即距离),并在许多任务中发挥重要作用,如姿势估计和语义分割,但是深度传感器产生的深度图往往是低分辨率的,并受到诸如噪声、量化和缺失值等退化的影响。
  • 方法:使用另一个经济的RGB相机来获得相同场景的HR图像,以指导超分辨率的LR深度图。

2. 人脸图像超分辨

  • 背景:可以帮助其他与人脸有关的任务,人脸图像有更多与脸部相关的结构化信息,因此将脸部先验知识(如地标、解析图、身份)纳入人脸超分辨是一种非常流行和有前途的方法。
  • 方法1:将生成的图像约束为具有与GT相同的面部相关属性(面部先验)
  • 方法2:隐含方法
  • 方法3:注意力机制、GAN网络等

3. 高光谱图像超分辨

  • 背景:与全色图像(PAN,即有3个波段的RGB图像)相比,包含数百个波段的高光谱图像(HSI)提供了丰富的光谱特征,有助于各种视觉任务。然而,由于硬件的限制,收集高质量的HSI比PANs要困难得多,而且分辨率也比较低。
  • 方法:结合HR PANs和LR HSIs来预测HR HSIs

4. 真实世界图像超分辨率

  • 背景:真实世界(GT)经相机采样后生成RAW图像,RAW被相机处理后才得到8位RGB图像(HR),通过下采样之后才得到要训练的LR图像,HR的RGB图像已经失去了很多原始信号,与相机拍摄的原始图像有很大不同,直接使用人工降频的RGB图像进行SR是次优的。
  • 方法:有些学者提出基于真实场景的数据集(City100,SR-RAW等),还有些学者模拟成像过程产生真实的训练数据等。

5. 视频超分辨

  • 背景:多帧提供了更多的场景信息,而且不仅存在帧内空间依赖性,还存在帧间时间依赖性(如运动、亮度和颜色变化)。现有的工作主要集中在更好地利用时空依赖性。
  • 方法1:光流法
  • 方法2:学习运动补偿
  • 方法3:使用递归方法来捕捉空间-时间的依赖性等

6. 其他应用
小物体超分辨解决小物体检测问题
在特征空间超分辨小尺寸图像得到高分辨特征,用于图像检测
……
总之,超分辨率技术可以在各种应用中发挥重要作用,特别是当我们可以很好地处理大对象,但不能处理小对象。


结论及未来的方向

1. 网络设计

  • 结合局部和全局信息: 大的感受野提供了更多的纹理信息,有助于产生更真实的结果。
  • 结合低层次和高层次的信息: CNN中的浅层倾向于提取低层次的特征,如颜色和边缘,而深层则学习高层次的表征,如物体的特性。因此,将低层次的细节与高层次的语义结合起来,对HR重建有很大帮助。
  • 特定背景下的注意: 在不同的背景下,人们往往会关心图像的不同方面,结合注意力机制,加强对关键特征的关注,有利于生成真实的细节。
  • 更轻量化的架构: 现有的SR模式倾向于追求终极性能,而忽略了模型的大小和推理速度,如何在保持性能的前提下减少模型大小并加快预测速度仍然是一个问题。
  • 上采样方法: 现有的升采样方法或多或少都有一些缺点,如何进行有效和高效的上采样仍需研究,特别是在高缩放系数下。

用于深度学习的神经架构搜索(NAS)与SR领域上述内容相结合可能会有很大的潜力。

2. 学习策略

  • 损失函数: 现有的损失函数可以看作是在LR/HR/SR图像之间建立约束,并根据是否满足这些约束来指导优化,最佳的损失函数还不清楚,所以寻求更精确的损失函数很重要。
  • 归一化: 虽然Batch Normalization在视觉任务中被广泛使用,大大加快了训练速度并提高了性能,但它被证明对超级分辨率来说是次优的,需要对SR的其他有效的归一化技术进行研究。

3. 评估指标

  • 更准确的指标: PSNR和SSIM已经是最广泛使用的SR指标。PSNR往往会导致过度平滑,而且结果在几乎没有区别的图像之间会有很大的差异;SSIM不能准确地衡量感知质量;MOS需要花费大量的精力,且不可复制。目前没有统一的、公认的SR质量评价指标。
  • 盲IQA方法: 大多数用于SR的指标都是全参考方法,即数据集多为人工降级,而评估实际上也是对预定义的退化的逆过程。

4. 无监督超分辨率
通常很难收集同一场景的不同分辨率的图像,所以双三次插值被广泛用于构建SR数据集。然而,在这些数据集上训练的SR模型可能只学习了预定义退化的逆过程。如何进行无监督的超级分辨率(即在没有成对的LR-HR图像的数据集上训练)是未来发展的一个有希望的方向。

5. 真实世界的场景

  • 解决各种退化问题: 现实世界的图像往往会遭受退化,如模糊、添加性噪声和压缩伪影。因此,在人工进行的数据集上训练的模型在真实世界的场景中往往表现不佳。
  • 特定领域的应用: 超级分辨率不仅可以直接用于特定领域的数据和场景,而且对其他视觉任务也有很大帮助。因此,将超分辨率应用于更多的特定领域,如视频监控、物体跟踪、医学成像和场景渲染,也是一个很有前景的方向。

参考文献:[1] WANG Z, CHEN J, HOI S C H. Deep Learning for Image Super-Resolution: A Survey [J]. IEEE Trans Pattern Anal Mach Intell, 2021, 43(10): 3365-87.

有关基于深度学习的图像超分辨率——综述的更多相关文章

  1. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  2. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  3. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  6. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. ruby-on-rails - 在 Ruby (on Rails) 中使用 imgur API 获取图像 - 2

    我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path

  9. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

  10. [工业相机] 分辨率、精度和公差之间的关系 - 2

    📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年

随机推荐