CMDSR_2021 - yubo105139/paper GitHub Wiki

Conditional Meta-Network for Blind Super-Resolution with Multiple Degradations 2021

字节跳动团队

https://arxiv.org/pdf/2104.03926.pdf

核心:

针对训练集上和测试集上的退化估计效果差异大的问题, 认为SR网络应该要自适应输入分布的变化.

输入的LR,其分布对应着 一种退化先验. 对于同一种退化核, 其生成的所有退化图片有着相同的隐含特征, 用一个网络去提取和区分这些隐含特征,作为一个退化先验信息来指导SR网络.

这种由LR的分布得到的退化先验 ,对退化核估计的搜索空间 进行了约束.

论文的思想过程:

期望有一个网络框架, 可以仅使用少量示例来训练, 但可以适应和概括各种退化。意味着, 需要一种退化先验表示来引导退化模式.

观察到, 使用相同的退化核得到的LR图 有着相同的退化模式, 想到去挖掘这种不同退化核得到的LR图的隐含语义信息. 得到这种隐含特征后,就可以得到退化先验, sr网络可以根据退化先验做不同的调整.

输入一个LR, 根据其隐含特征判断其退化先验, 再使用退化先验得到更好的sr结果.

图像来自于同样的任务,有着相同的退化参数, 不同任务之间的退化不同.(任务?什么任务??该先验如何得到??)

​ 所谓的task_level, 以及来自同样任务的图像, 是指同一个task下的HR-LR图像对是使用同一种退化核合成的. 不同的task下的图像对用不同的退化核.

如下图所示, 相同退化下的LRs,则有着相同的隐含特征.不同的退化核生成的LR, 其提取的特征分布在特征空间中的不同区域,

image-20210930154007302

通俗的解释:

task_i 下有一堆 HR , LR对, 这些HR-LR对怎么得到的呢? 就是假设有一堆退化核 K, 然后选第i个退化核 k_i, 用退化核k_i 对n个HR 进行退化, 得到了task_i下的n个HR-LR 图像对.

网络结构

CMDSR 分为两个net :

浅层ConditionNet (学习不同退化的特征表示)

深层BaseNet ( 根据ConditionNet 出来的特征更新网络模型参数,生成SR结果 )

image-20210924170037999

  1. 如何学习不同退化的特征表示? ConditionNet的训练?

    Fc 代表 ConditionNet网络.

image-20211008110518012

fc(i)描述输入的Support set X(i) 中的退化模式 i 对应的隐含特征.

这个Support set X(i)的大小为n, 使用退化i得到的HR-LR集合大小为n.

那么 如果训练使用的退化模式i有限, 则其能够表示的退化也有限.

  1. BaseNet得到退化的特征表示后如何使用?

先使用 20 个全连接层以 fc(i) 作为输入生成自适应系数.

调整fc(i)通道的数量以匹配 resnet block下的卷积,最后直接与卷积权重相乘.

image-20211008111630333

第p层卷积的第q个channel, 其原始权重为wpq, 调整后权重为wpq`.

这样调整后的网络 再将输入的LR图恢复生成SR.

3.BaseNet 的原始权重怎么得到的?

优化函数

重建loss L1

image-20211008112154467

Task Contrastive Loss

该loss减少了内部任务距离并增加跨任务距离。即相同退化模式下的图像,要求其隐含特征尽可能相近, 不同的退化模式隐含特征尽可能不相似.

image-20211008112455999

image-20211008112503520

image-20211008112514624

总的loss

image-20211008112758044

整个训练和测试流程

image-20211008112551489

image-20211008112630408

思考:

直接估计的退化核, 其搜索空间很大, 没有一个退化核空间的约束.

Flow-based Kernel Prior with Application to Blind Super-Resolution_cvpr2021 和这篇想法差不多, 对退化核的估计空间做一个约束.