天天看点

图像超分辨率重建

作者:闪念基因

1 背景

图像超分辨率重建(Image Super-Resolution, SR)是一种通过算法将低分辨率(LR)图像恢复成高分辨率(HR)图像的技术。在现实中,由于多种原因,如传感器分辨率、光学系统分辨率等,获取高分辨率图像的成本和困难度往往比较高,而低分辨率图像则容易获取。因此,如何从低分辨率图像中恢复出高分辨率图像一直是计算机视觉领域的一个研究热点。普通插值算法、双线性插值、最邻近插值等,将图像分辨率提高以后,无法获得较为清晰的图像,所以如何在提升分辨率的同时还保持图像的清晰度,是图像超分辨率重建的一个重点。本文将介绍基于深度学习的图像超分辨率重建。

在介绍正式的超分内容前,需要明确一个容易混淆的问题:图像清晰化和图像超分辨率重建有什么区别?

图像超分辨率重建

图1 图像清晰化—同分辨率下提高清晰度

图像超分辨率重建

图2 超分辨率重建任务—从低分辨率重建高分辨率后,清晰度不变或提高

  • 图像清晰化:图像增强能够将清晰度较低、视觉效果较差的图像转变成具有高清晰度的图像
  • 图像超分辨率重建:图像超分辨率重建在将分辨率较低的图像转化为高分辨率图像的同时,还能够保持或图像清晰度

2 算法发展路线

从2014年 SRCNN 算法被提出后,到目前为止,基于深度学习的图像超分辨率重建算法大致经历了五个阶段:

图像超分辨率重建

在 SRCNN 算法时代,超分领域的主要问题是探索任务基础组件,当 ESPCN 等算法相继提出后,图像超分辨率的基础组件得到了完善,开始构建超分任务框架。SRResNet 的提出后,超分任务的任务架构也逐渐确定下来,随着超分任务架构的稳定,研究重心逐渐转向两个主要方向。首先,一方面努力集中在对深层网络结构的不断改进,以进一步提取图像中的丰富特征信息。另一方面,研究者们开始集中精力解决超分辨率领域的新挑战,即盲超分任务与退化方式建模。在本文中,将按照超分的技术发展路线介绍超分辨率算法,让读者能对图像超分辨率算法有深入的了解。

3 论文算法详解

本部分将从五个阶段选取一些经典的论文进行介绍,以深入浅出的方式探讨图像超分辨率算法的发展历程。

3.1 超分任务核心组件探索阶段

图像超分辨率重建

图3 SRCNN 网络结构

SRCNN 被广泛认为是超分辨率领域的先驱之一,引入深度学习方法,以取代传统的插值和滤波技术。SRCNN 的设计旨在通过卷积神经网络(CNN)学习从低分辨率图像到高分辨率图像的映射,从而实现图像的超分辨率。其基本工作流程包括以下关键步骤:

(1)插值:首先,SRCNN 将输入的低分辨率图像通过插值的方式缩放到与目标尺寸相匹配的分辨率。这个插值步骤有助于提供更多的信息,为网络提供高分辨率图像的细节。

(2)特征提取:插值后的图像通过一系列卷积层进行特征提取。SRCNN 的网络结构包含三个主要卷积层,分别负责学习图像的局部和全局特征,以及进行非线性映射。

(3)图像重建:在特征提取之后,SRCNN 通过卷积层实现图像的重建。这一步骤旨在利用学到的特征将高分辨率低清晰度图像映射到高分辨率高清晰度图像空间。

SRCNN 的贡献在于引入了端到端的深度学习方法,消除了传统方法中需要手工设计特征和多阶段处理的复杂性。然而,随着后续算法的提出,SRCNN 的性能逐渐被更深、更复杂的网络结构所超越。不过,SRCNN 为图像超分辨率领域奠定了基础,为后续算法的发展提供了有益的经验。

图像超分辨率重建

图4 VDSR 网络结构

VDSR 的主要贡献在于采用了极深的网络结构,以更好地捕捉图像中的复杂特征和高频信息,从而实现更精确的超分辨率效果。以下是 VDSR 的主要特点:

  • 深度网络结构:VDSR 采用了一个非常深的卷积神经网络结构,具有19个卷积层。这种深度结构的设计旨在使网络能够学习到更丰富的图像特征,从而提高对低分辨率输入图像的超分辨率性能。
  • 残差学习: VDSR 使用了残差学习的思想,VDSR 将高分辨率图抽象了一个核心假设,即高分辨率图=高分辨率低清晰化图+纹理残差,并将这种方式应用到了任务架构中。

VDSR 在超分辨率领域的贡献在于抽象了一个核心假设:高分辨率图=高分辨率低清晰化图+纹理残差,使得网络能够更好地理解和还原图像中的细节。尽管后续出现了更复杂的网络结构,但 VDSR 的成功启示了通过增加网络深度来提升超分辨率性能的有效性。

图像超分辨率重建

图5 ESPCN 网络结构

ESPCN 的设计旨在提高超分辨率模型的效率,使其在处理大规模图像数据时更加轻量化。ESPCN 的核心思想是通过亚像素卷积(Sub-Pixel Convolution)实现高效的上采样。亚像素卷积是一种特殊的卷积操作,可以将低分辨率的特征图映射到高分辨率的输出图像。ESPCN 的工作流程包括以下关键步骤:

(1)低分辨率特征提取:输入的低分辨率图像经过一系列卷积层,用于提取图像的特征。这些卷积层帮助网络学习从低分辨率到高分辨率的特征映射。

(2)PixelShuffle 上采样:在 ESPCN 中,采用亚像素卷积层,通过这一层实现低分辨率特征图的上采样。这种上采样方法有别于传统的插值方法,更为高效地提高了图像分辨率。

(3)重建:上采样后的特征图通过进一步的卷积操作进行图像重建。这一步骤有助于恢复更丰富的图像细节,使得高分辨率图像更加清晰。

ESPCN 的创新之处在于通过亚像素卷积实现了轻量级的上采样,使得模型在参数量和计算复杂度上都相对较小。这对于在资源受限的环境中进行实时图像超分辨率处理非常有价值。虽然后续出现了更复杂的超分辨率算法,但 ESPCN 的设计理念为轻量级模型在图像超分辨率任务中的应用提供了有益的经验。

图像超分辨率重建

图6 EDSR

EDSR 采用了 SRResNet 的结构,区别于一些其他深度网络,EDSR 去除了 BN,作者提出 BN 层天然会拉伸图像本身的色彩、对比度,这样反倒会使得输出图像变坏,去除 BN 后,模型会更加轻量。BN 层所消耗的存储空间等同于上一层 CNN 层所消耗的,作者指出相比于 SRResNet,EDSR 去掉 BN 层之后节约了40 %的存储资源。在 BN 腾出来的空间下插入更多的类似于残差块等 CNN-based 子网络来增加模型的表现力。

3.2 超分任务架构构建阶段

图像超分辨率重建

图7 SRResNet

在 SRResNet 中,作者搭建了完整的超分辨率任务架构,并将超分辨率任务划分为四个核心组件:浅层、深层、上采样层和重建输出层。

(1)浅层:浅层组件扮演着任务起始阶段的角色,通过一个大卷积核进行初步特征提取。这一步骤的目的是将输入图像转换到一个特征空间内,为后续更深层次的网络提供基础特征表示,有助于更有效地捕捉图像的高层次结构和纹理信息。

(2)深层:深层组件是整个网络中参数最多、计算最耗时的部分。经过浅层的特征转换后,深层网络负责进一步提取图像中更加丰富和抽象的特征信息。这个深度结构的引入使得网络能够逐渐理解图像的复杂结构和纹理,从而更好地执行超分辨率任务。

(3)上采样层:上采样层组件使用 Pixshuffle 等技术将通道信息转换为分辨率信息。这一步骤对于将特征图从低分辨率映射到高分辨率至关重要,通过有效的上采样,网络能够保留并放大输入图像的细节。

(4)重建输出层:重建输出层组件通过使用大卷积核,将高分辨率特征映射转换为最终的高分辨率输出图。这一步骤在整个架构中扮演着关键的角色,决定了最终生成的超分辨率图像的质量和清晰度。

SRResNet 的主要贡献在于提出了完整的超分辨率任务架构,将其划分为四个关键组件。在后续的超分辨率研究中,大部分的改进工作集中在对深层网络结构的优化上,旨在增强深层的特征提取能力。这一任务架构的提出为超分辨率领域的进一步发展提供了坚实的基础,其思想和组件延续至今,并在后续算法中发挥了重要的指导作用。

图像超分辨率重建

图8 LapSRN

之前以 SRResNet 为主的超分算法主要集中在固定倍率的超分辨率重建任务上,而 LapSRN 的独特之处在于提出了一种非固定倍率放大的网络架构,可以得到多个放大倍数的高分辨率图,网络采用了拉普拉斯金字塔结构,通过多尺度信息的融合实现更全面的图像超分辨率。以下是 LapSRN 的主要特点和工作原理:

  • 拉普拉斯金字塔结构:LapSRN 使用了拉普拉斯金字塔,这是一种图像金字塔的变种,其中每个尺度的图像由原始图像减去其上一尺度的图像上采样得到。这种结构允许网络在多个尺度上学习图像细节,从而更全面地理解和还原高分辨率图像。
  • 多尺度处理:LapSRN 将输入图像分解成多个尺度,每个尺度分别经过对应的 SR 网络进行处理。这种多尺度的设计有助于网络在不同分辨率上学习图像的特征,更好地处理图像中的纹理和细节。
  • 训练:LapSRN 通过大量的高分辨率图像及其对应的低分辨率版本进行监督学习。网络的目标是最小化预测图像与真实高分辨率图像之间的差异,通过多尺度的结构和特征融合,学到从低分辨率到高分辨率的映射。
  • 金字塔重建:最后,通过将各个尺度的超分辨率结果与其上一尺度的细节图像进行加和,实现了最终高分辨率的图像重建。

LapSRN 的独特设计使得它能够更全面地处理图像超分辨率任务,可以得到非固定倍率的放大图像,从而在一定程度上提高了性能。拉普拉斯金字塔结构的引入为网络提供了多尺度信息的丰富表示,特征融合模块的设计则增强了网络对多尺度特征的整合能力。这些创新性的设计使得 LapSRN 成为图像超分辨率领域中值得关注的算法之一。

3.3 对抗训练阶段

图像超分辨率重建

图9 SRGAN 网络结构

SRGAN 将对抗引入了超分辨率任务,论文提出了超分辨率是一个病态问题(ill-posed),由于在实际场景中,高分辨率图像经过了多种未知的退化方式得到了各种各样的低分辨率图像。而高分辨率图像中,对清晰的定义也是不一的,也存在多种分布情况,所以图像超分辨率任务,实质是一种多对多任务。而之前的超分辩算法一直只采用的像素损失作为度量,是无法很好的解决病态问题的。使用像素损失度量多对多问题,最终会导致预测结构就像是多个高清图像的一个平均效果,会使得所得图像很模糊,不符合真实高清图像的分布,而 GAN 可以将其拉向真实高清图像的分布。以下是 SRGAN 的主要特点和工作原理:

  • 生成对抗网络(GAN):SRGAN 基于生成对抗网络,其中包含一个生成器(Generator)和一个判别器(Discriminator)。生成器旨在生成高分辨率的图像,而判别器则试图区分生成的高分辨率图像和真实高分辨率图像。这种对抗性训练促使生成器生成更真实、更逼真的图像。
  • 损失函数:SRGAN 使用对抗损失(Adversarial Loss)作为优化目标,使生成器生成的图像在外观上难以与真实图像区分。此外,为了确保生成的图像在结构上更加保真,SRGAN 引入了感知损失(Perceptual Loss),使用预训练的深度网络(如 VGG 网络)来比较生成图像和真实图像之间的特征表示。

SRGAN 的主要贡献在于将生成对抗网络引入图像超分辨率任务中,通过对抗训练方式生成更为真实和细致的高分辨率图像。这种思想的引入对于超分辨率领域的发展产生了深远的影响,启发了后续许多其他基于 GAN 的超分辨率算法。

3.4 深层网络结构优化阶段

图像超分辨率重建

图10 RDN 网络结构

图像超分辨率重建

图11 SAN 网络结构

图像超分辨率重建

图12 SwinIR 网络结构

RDN 等超分算法属于第四阶段的图像超分辨率算法,主要集中在对超分架构对深层做优化。在第四阶段超分的时期,是注意力机制,Transformer 等网络组件被提出的时期,于是超分研究者们自然而然等把一些新的网络组件引入了深层网络的设计中,除了 RDN,还有 RDN,WDSR,RCAN,SwinIR,IGNN 等等算法,均是对深层结构进行优化和改进,本文不再赘述,感兴趣的读者可自行查阅相关资料。

3.5 盲超分与退化建模阶段

图像超分任务作为基本的 low-level 视觉问题,图像超分辨率目标是从其低分辨率观测中重建高分辨率图像。目前已经提出了基于深度学习的方法的多种网络架构和超分网络的训练策略来改善性能。任务需要两张图片,一张高分辨率的 HR 图和一张低分辨率的 LR 图。超分模型的目的是根据后者生成前者,而退化模型的目的是根据前者生成后者。经典超分任务认为:低分辨率的 LR 图是由高分辨率的 HR 图经过某种退化作用得到的,这种退化核预设为一个双三次下采样的模糊核 (downsampling blur kernel)。

也就是说,这个下采样的模糊核是预先定义好的。但是,在实际应用中,这种退化作用十分复杂,不但表达式未知,而且难以简单建模。双三次下采样的训练样本和真实图像之间存在一个域差。以双三次下采样为模糊核训练得到的网络在实际应用时,这种域差距将导致比较糟糕的性能。这种退化核未知的超分任务我们称之为盲超分任务。

盲图像超分辨率主要分为显示建模(Explicit Modelling)和隐式建模(Implicit Modelling)两类方法。

  • 显式建模方案通常采用经典退化模型,即一种广义的退化方式,如公式所示,这种退化方式要比 bicubic 下采样更复杂:
图像超分辨率重建
  • 隐式建模方法和显示建模有较大的差别,它不依赖于任何显式参数,而是利用额外的数据通过数据分布隐式的学习潜在超分模型,现有方法往往采用 GAN 框架探索数据分布
图像超分辨率重建

图13 Real ESRGAN 中的退化过程

Real ESRGAN 提出了一个高阶退化过程来模拟实际退化,使用纯合成数据训练的Real-ESRGAN 能够还原大多数真实世界的图像,并实现比以往作品更好的视觉表现,使其在实际应用中更具实用性。采用上述经典退化模型合成训练对时,训练后的模型确实可以处理一些真实样本。论文中提出,采用插值、模糊等固定流程退化方式时候,它仍然无法解决现实世界中一些复杂的劣化问题,尤其是未知的噪声和复杂的伪影,这是因为合成的低分辨率图像与逼真的退化图像仍然有很大的差距。因此,论文中将经典的退化模型扩展到高阶退化过程,以模拟更实际的退化。

图像超分辨率重建

图14 PDM-SR 中的退化过程

本文作者将退化函数作为随机变量进行研究,并将其分布建模为模糊核和随机噪的联合分布。所提出的概率退化模型 (PDM) 可以更好地将退化作用与图像内容解耦。与之前的退化模型相比,PDM 可以生成具有更大退化多样性的 HR-LR 训练样本,这可以生成更多种类的退化作用,并有助于提高 SR 模型在测试图像上的性能。此外,PDM 提供了一个灵活的退化作用,可以根据不同的实际情况进行调整。

图像超分辨率重建

图14 PDM-SR 的训练方式

PDM 也提出了一个统一的训练框架,框架如图所示,它可以和 SR 模型一起训练, 这样,PDM 就可以与任何 SR 模型集成,形成 Blind SR 的统一框架。

4 超分辨率思想与抠图任务结合

在 Matting 任务中,算法需要具备两个关键能力,即语义理解和高分辨率精细度处理。以往的 Matting 任务中,为了解决高分辨率任务下的精细抠图问题,通常采用输入输出均为高分辨率图像的网络结构。然而,这样的做法对训练和推理资源造成了巨大的消耗。

图像超分辨率重建

基于这一认识,我们将任务拆分为两个关键部分:一个是低分辨率语义基础网络,用于解决主体明确的问题,另一个是超分辨率重建和细节修复的 Refine 网络,用 Refine 网络解决超分辨率重建和精细度问题。通过这种拆分,我们实现了对 Matting 任务的高效处理,并有效降低了对资源的需求。在 Refine 网络的设计中,我们借鉴了 LapSRN 的网络结构设计,采用了渐进式恢复的策略。这一策略允许网络逐步处理图像的细节信息,从而在保持高分辨率的同时有效地修复图像的细微问题。这种设计不仅提高了 Matting 任务的精确性,同时也进一步降低了对计算资源的压力。

5 总结

图像超分辨率重建任务的发展经历了从基础组件设计到任务架构搭建的推进,到如今使用盲超分与退化建模,以更真实地模拟低分辨率图在实际场景中的分布情况。图像超分辨率重建算法在海马体图像算法应用场景中都扮演着不可或缺的角色,虽然不直接作为海马体算法应用场景的基础任务架构,但使用超分辨率中的组件,有助于在计算资源有限的条件下实现高分辨率方案。

因此,深入了解和应用图像超分辨率重建是重要的,通过本文的介绍,希望帮助读者将能够建立起对这一技术的深刻理解,为其在实际工作中的灵活运用提供了坚实的基础。

本文作者

西西弗斯,来自缦图互联网中心算法团队。

来源-微信公众号:缦图coder

出处:https://mp.weixin.qq.com/s/mcPTBK0TavHr55QlcRAqTQ