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, 其提取的特征分布在特征空间中的不同区域,
通俗的解释:
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结果 )
-
如何学习不同退化的特征表示? ConditionNet的训练?
Fc 代表 ConditionNet网络.
fc(i)描述输入的Support set X(i) 中的退化模式 i 对应的隐含特征.
这个Support set X(i)的大小为n, 使用退化i得到的HR-LR集合大小为n.
那么 如果训练使用的退化模式i有限, 则其能够表示的退化也有限.
- BaseNet得到退化的特征表示后如何使用?
先使用 20 个全连接层以 fc(i) 作为输入生成自适应系数.
调整fc(i)通道的数量以匹配 resnet block下的卷积,最后直接与卷积权重相乘.
第p层卷积的第q个channel, 其原始权重为wpq, 调整后权重为wpq`.
这样调整后的网络 再将输入的LR图恢复生成SR.
3.BaseNet 的原始权重怎么得到的?
优化函数
重建loss L1
Task Contrastive Loss
该loss减少了内部任务距离并增加跨任务距离。即相同退化模式下的图像,要求其隐含特征尽可能相近, 不同的退化模式隐含特征尽可能不相似.
总的loss
整个训练和测试流程
思考:
直接估计的退化核, 其搜索空间很大, 没有一个退化核空间的约束.
Flow-based Kernel Prior with Application to Blind Super-Resolution_cvpr2021 和这篇想法差不多, 对退化核的估计空间做一个约束.