超分辨率
关注公众号,发现CV技术之美
本文为粉丝投稿,介绍ICLR2023超分辨率论文《Knowledge Distillation based Degradation Estimation for Blind Super-Resolution》。
paper: https://arxiv.org/pdf/2211.16928.pdf
project: https://github.com/Zj-BinXia/KDSR
01. 关于盲超分研究现状分析
盲超分方法可以分为两类:经典盲超分和真实世界盲超分。
对于经典盲超分,一些盲超分方法(如IKC)使用经典的图像超分辨率退化模型,如下式所示:
其中表示卷积操作。和分别为高分辨率和对应的低分辨率图像。是模糊核,是额外的白噪声。表示带有缩放因子的下采样操作。在式子中,模糊和噪声的退化程度是未知。这些经典盲超分方法通过随机采样相应的超参数来调整退化的严重程度,以形成几乎无限的退化空间。
给定输入的低分辨率图像 和应用的模糊核 ,经典盲超分方法预先训练了一个显式的退化估计器,用于估计应用在 上的模糊核,并以真实退化的作为监督。然后,超分网络可以使用估计的模糊核对低分辨率图像进行超分。超分网络通常使用损失函数进行训练:
其中和 分别是真值图像和超分辨率结果。
真实世界盲超分是经典盲超分的一种变体,其中采用更复杂的退化过程。真实世界盲超分方法(Real-ESRGAN, BSRGAN)引入了更加全面的退化形式,例如模糊、噪声、下采样和JPEG压缩,并通过随机采样各个退化的超参数来控制每个退化的严重程度。此外,它们应用了退化顺序的随机洗牌和二阶退化策略以增加退化的复杂度。由于退化模型复杂,因此无法用显式的退化真值用于退化估计器的训练,因此它们直接使用超分网络,而不使用退化估计器。真实世界超分网络使用进行训练:
其中, 和 分别是感知损失和对抗损失。
由于盲超分辨率面临几乎无限的退化形式,引入先验退化信息到超分辨率网络中可以帮助限制解空间并提高超分辨率性能。
如图1所示,获取退化信息的方式可以分为三类:
(1) 非盲超分辨率方法直接将已知退化信息作为先验 (图1(a))。
(2) 大多数盲超分辨率方法采用显式退化估计器,这些估计器需要退化真值监督训练(图1(b))。然而,这些显式的退化估计器是为特定的退化模型精心设计的,这种定制性使得它们难以用来处理其他退化模型。此外,很难显式地表示多种退化组合(BSRGAN,Real-ESRGAN) 作为真值以用来监督显式退化估计器的学习。因此,开发基于隐式退化表征(Implicit Degradation Representation, IDR)的方法是重要的。
(3) 近来,如图1(c)所示,DASR使用对比学习地区分退化。但是,对比学习方法通过推开或拉近特征粗略地区分退化,这是不稳定的,并且不能为盲超分辨率提取有很强区别性的退化表征。
如图1 (d) 所示,提出了一个KDSR,其由KD-IDE和高效超分辨率网络组成。与以前基于明确退化估计的盲超分方法不同,KD-IDE不需要退化真值用于训练,并且可以推广到任何退化模型。此外,该超分网络设计简洁高效,实用性强,可以充分利用退化信息进行超分。KDSR的训练过程有两个阶段,包括教师KDSR和学生KDSR的训练。首先训练KDSR:将配对的高分辨率(HR)和低分辨率(LR)图像输入到KD-IDE中,获取隐式退化表征(IDR)和 ,其中 用于引导超分辨率网络。之后,进行KDSR训练。使KDSR 学习直接从LR图像中提取与相同的。
02. 基于知识蒸馏的隐式退化估计器
大多数盲超分方法都会详细设计每种退化类型和过程的显式退化估计器。显式退化估计器存在几个限制:
(1) 这些针对特定退化过程的特殊设计使得显式估计器难以应用到其它退化设定。
(2) 提供显式退化估计器训练所需的各种退化标签比较复杂,特别是多种退化的随机组合。因此,提出了一种基于知识蒸馏的隐式退化估计器(KD-IDE),它可以在没有退化真值监督的情况下准确区分各种退化。
如图2(c)所示,可以将KD-IDE分为几个部分:
(1) 将单独的LR图像与LR和HR图像的按通道拼接分别作为KD-IDE和KD-IDE 的输入。值得注意的是,对于KD-IDE (图2(d)),它以成对的HR和LR图像作为输入并与超分辨率网络联合进行优化,这使其可以轻松地提取使HR图像退化为LR图像的退化方式。由于HR和LR图像之间存在空间尺寸差异,需要对HR图像执行Pixel-shuffle操作。具体来说,将HR图像 变成,然后将其与LR图像串联,得到输入 。
(2) 输入经过第一层卷积将变成特征图。需要注意的是,对于KD-IDE和KD-IDE,第一层卷积的输入通道分别为3和51。
(3) 然后,使用多个残差块进一步提取特征,并通过平均池化操作得到一个粗略的退化向量。
(4) 使用两个线性层来进一步优化退化向量,得到隐式退化表征(IDR) ,用于知识蒸馏。
(5) 尽管具有个通道来准确表示退化并为学生网络学习提供更多退化信息,但在基于隐式表征的深度可分离动态卷积 (IDR based Depthwise Dynamic Convolution, IDR-DDC)中使用它将消耗大量计算资源。因此,需要使用另一个线性层进一步压缩它,得到压缩后的IDR ,用于指导超分辨率。
03. 超分辨率网络
关于超分辨率网络的设计,应该考虑三个问题:
(1) 在获得IDR之后,设计一个超分辨率网络能够充分利用估计的退化先验进行超分辨率。
(2) 一个理想的盲超分网络应该易于使用,其结构应该简单。因此,本文试图使用一种简单而足够强大的模块来构建网络。
(3) 巨大的计算开销通常限制了模型的应用,尤其是在边缘设备上。因此,设计一个高效的模型是必要的。
如图2(a),(b),(d)所示,提出的超分辨率网络可以分为三个层次。
(1) 首先提出一种基于IDR的深度动态卷积(IDR-DDC)。采用动态卷积来使用IDR指导超分辨率。具体而言,如图2(a)所示,为了充分利用估计的IDR,根据IDR 生成特定的卷积权重。但是,如果生成普通的卷积权重,计算成本会非常高,并且会影响网络的效率。因此,进一步引入深度可分离卷积,它仅消耗普通卷积约的计算量和参数量。IDR-DDC可以表示为:
其中 和 分别是两个线性层和卷积操作;表示IDR, 是的输出,是动态卷积的权重;和 分别是输入和输出的特征映射。
(2) 如图2(b)所示,提出了基于IDR的动态卷积残差块(IDR-DCRB)来实现深层模型。对于IDR-DCRB的第一次卷积,使用IDR-DDC来利用退化信息。然而,IDR-DDC缺乏不同通道之间的交互。因此,采用普通卷积作为残差块中的第二个卷积。
(3) 为了简单起见,如图2(d)或(e)所示,主要通过堆叠IDR-DCRB以构建超分辨率网络。
04. 训练过程
KDSR采用了两阶段的训练过程。
(1) 如图2(d)所示,首先训练KDSR的教师网络(KDSR)。将成对的LR和HR图像输入KD-IDE ,获取IDR 和 。然后, 用于生成特定的退化权重,以进行动态卷积。随后,特定的退化超分网络将恢复LR图像。通过使用L1损失共同优化教师超分网络和KD-IDE,KD-IDE能够有效地提取准确的IDR以指导超分辨率网络。
(2) 完成KDSR训练后,继续训练KDSR。如图2(e)所示,与KD-IDE不同,仅将LR图像输入KD-IDE,获取IDR 和 。除了采用的损失函数不同,其它步骤与KDSR训练设置相同。具体而言,通过引入了知识蒸馏(KD)函数来强制KD-IDE从LR图像中直接提取与KD-IDE 相同且准确的IDR。此外,对于经典的退化模型 ,遵循之前的盲超分辨率工作,采用,并可以将总损失函数设置为 。对于更复杂的退化过程如真实世界退化 (Real-world SR),使用 。
其中,和分别通过和 的softmax操作进行归一化。
05. 实验结果
真实世界超分辨率进行评估
在各向异性高斯模糊核以及噪声下进行评估
在各向同性高斯模糊核下进行评估
06.消融实验
退化区分能力T-SNE可视化
END
欢迎加入「超分辨率」交流群👇备注:SR