MZSR:用于 Zero-Shot 超分辨率的元转换学习
Posted ai-tuge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MZSR:用于 Zero-Shot 超分辨率的元转换学习相关的知识,希望对你有一定的参考价值。
这是今年CPVR2020 一篇关于超分辨率的论文。这篇文章的创新点在于它将零次学习 (Zero-Shot Learning)和元转换学习(Meta Transfer Learning)进行结合,提出了新的超分算法 MZSR 。
ZSSR最早被提出,将图像内部学习用于图像超分辨率。它能够很好地学习图像内部的先验信息,从而利用这些内部信息恢复图像高频信息。由于 ZSSR 从一张图像中学习,因此需要几千次的梯度更新迭代,也就是说测试时推理时间很长。
而 MZSR则是通过元转换学习解决测试推理时间长的问题,MZSR 在测试时只需要一次梯度更新就可以取得可观的结果。
论文:https://arxiv.org/pdf/2002.12213.pdf
github: https://github.com/JWSoh/MZSR
1. 介绍
1.1 Single Image Super-Resolution
单幅图像超分,它是基于图像的退化模型:
其中 $I_{LR}^{k}$ 为LR图像,$I_{HR}$ 为HR图像,$k$ 为模糊核(blur kernel),$s$为下采样的尺度因子,$n$为高斯白噪声。
在SISR(单幅图像超分)领域,大多数CNNs方法的缺点:
- 通过使用大量的外部样本数据进行监督学习,获得了显著的图像超分效果。然而对于一张特定的待超分图像而言,这些方法不能够很好地利用该图像的内部信息去进行超分。
- 它们的应用受限于监督学习中所使用的样本数据,例如在大多数CNNs方法的训练中,LR图像是通过对HR图像进行bicubic(双三次插值)得到的,则通过训练得到的网络只能对该类型的LR图像有很好的SR(超分)效果,在真实情况下未知的超分效果却不尽如人意,即没有很好的泛化能力。
1.2 Zero-Shot Super-Resolution
ZSSR是一种完全无监督或者说自监督的方法,用于学习图像特有的内部信息。对于任意测试图像 $I_{LR}$ 模型都会经过训练和测试,从而得到高分辨率图像。在训练时,首先将测试图像$I_{LR}$ 用期望的下采样核进行下采样,生成更小的低分辨率子图像 $I_{son}$ 。于是,$I_{LR}$ 也就成了$I_{son}$ 高分辨率的监督样本。然后,用单个图像生成的LR-HR对训练CNN网络。训练仅仅依赖测试图像,因此 CNN 网络能够学习到图像特有的内部信息。测试时,输入测试图像$I_{LR}$ ,CNN 模型就能够生成超分辨率图像 $I_{SR}$ 。虽然ZSSR能够SISR的两个问题,但它在超分过程中需要上千次的梯度更新(即需要很长的推断时间),而且ZSSR只使用了图像的内部信息(相似的结构、模式等),没有使用大量的外部数据信息。
1.3 Meta-Learning
Meta-Learning的目标是使网络能够在少量样本的情况下快速学习一个新的任务(如人可以在只观察几张图片的情况下认识一种新的动物)。meta-learning 分为 meta-training 和 meta-test 阶段,meta-training 使得模型能够适应大量不同的任务(各种不同的模糊核 ),meta-test使得模型在几次更新后就能适应一个新的任务(未知的特定核 )。
因此本文在meta-learning和ZSSR的基础上提出了MZSR(基于元-迁移学习的零样本超分),MZSR首先通过大量的外部数据找到适合进行内部学习(Internal Learning)的通用初始参数,然后再进行ZSSR,即同时使用了外部和内部的信息。这样能够使得ZSSR只用一次梯度更新就能取得很好的超分结果,即该网络能够快速适应任一给定的图像条件。
2. 本文的方法
本文主要受到MAML(与模型无关的元学习,meta-learning)和ZSSR的启发,提出MZSR,其流程如下,主要分为三步:
-
大规模数据训练 Large-scale Training
这一阶段使用 大规模图像数据集 DIV2K,并使用已知 Bicubic 降采样生成低分辨率图像组成成对的训练集$(I_{HR}, I^{bic}_{SR})$。网络采用 L1 Loss进行训练。
这样做的好处:- 不同的超分任务间存在一些相似之处,使用外部数据先进行预训练可以使网络更容易学习。
- 降低了meta-training阶段的训练难度,使其更稳定。
-
元转换学习 Meta Transfer Learning
用meta-learning(元学习)的思想,用不同的任务(模糊核$(k)$不同,基于大量外部数据生成不同的LR-HR数据对)来学习任务层面的知识(task-level knowledge),此时得到模型参数 (称这时网络权重为最优的初始状态,能够在meta-test阶段通过几次梯度更新,就可以快速地适应各种特定的任务)。
用大量不同模糊核k合成训练数据集$D_{meta}(I_{HR},I_{LR}^{k})$,模糊核分布$p(k)$:
基于$D_{meta}$训练元训练器,$D_{meta}$分为任务级别训练集task-level training $D_{tr}$和任务级别测试集task-level test $D_{te}$。
对于里面每一个新任务$T_i$,参数$ heta_i$ 适用于该任务需要一次或多次梯度下降更新:
优化好的$theta_i$要能达到以下的最小损失:
更新$θ$即图中$θ_M$:
-
Meta-Test
元测试阶段就是 ZSSR, 这个阶段使用模型能够直接学习单个图像内部信息。给定 LR 图像,通过降采样核生成子图像$I_{son}$,用于训练。但是只需要少量的梯度更新就能得到很好的效果,得到最终的模型参数 $hat{ heta}_{k}$ (ZSSR需要数千次的更新)。
3. 实验
3.1 训练细节
CNN 采用8层网络架构,参数量为225K。对于元转换训练,使用DIV2K数据集作为外部数据集。对于内部循环,使用5次梯度更新,去获得自适应参数。训练时输入图像尺寸为64x64,为了应对由于基础学习器展开过程而导致的梯度消失或爆炸问题,利用每个步骤的加权损失总和,即对每个展开步骤的其他损失进行监督。
最初始的点,除最后展开步骤外,论文平均权衡损失并降低权重。最后,加权损失收敛到最终的训练任务损失。论文采用ADAM 优化器作为元优化器。论文也针对了不同的二次采样方法训练了两种模型:直接和双三次。
3.2 模型分析
论文针对不同的降采样方式,对模型进行分析。
3.2.1 Bicubic 降采样
测试数据集为 Set5,BSD100和 Urban100。论文分析YCbCr 空间下的 Y 通道的图像PSNR 和 SSIM值。MZSR 虽然PSNR 数值与有监督学习方法有较大差距,但是MZSR在测试阶段经过一次梯度更新后就能够取得ZSSR 相当的性能表现。经过10次梯度更新后,性能能够进一步的提升。
3.2.2 多种模糊核
论文分析了四种场景:严重混叠,各向同性高斯,非各向同性高斯和各向同性高斯,随后进行Bicubic 下采样。
从下表中可以看到,MZSR 在不同Kernel 上都能够取得出色的性能。可以认为MZSR是一种快速,灵活且准确的超分辨率方法。
下图进一步说明了 MZSR 的优势,可以看到尽管在初始点上 MZSR 生成的图像具有明显的伪影和噪声,但是经过一次迭代后,MZSR 能够生成接近HR 图像的结果,并且在 PSNR 值上获得了明显的提升。相比之下预训练网络经过一次迭代之后,并不能有效改善图像质量。
最后是一些测试图像局部细节的对比,验证了MZSR 的有效性。
4. 最后
以上是关于MZSR:用于 Zero-Shot 超分辨率的元转换学习的主要内容,如果未能解决你的问题,请参考以下文章
多么痛的领悟---关于RMB数据类型导致的元转分分转元的bug
Google Pixel 超分辨率--Super Resolution Zoom