这是2019 CVPR的一篇论文,做的是连续域图像恢复,和metaSR有点像。其主要实现方式是通过一个初始水平和最终水平训练实现,调整的参数在一个额外的模块里,被称为AdaFM层。论文解决了图像恢复里针对每一个降质水平需要单独train一个网络的方式。论文观察到了两个现象:
第一个现象是图像恢复任务里不同程度的恢复里卷积核在视觉效果上长得非常像,但是有不同的统计特征例如均值和方差。所以例如对一个水平15上训练的降质模型核f15和水平50上训练的降质模型核f50,f50可以用f15和另一个卷积操作g的结果去逼近,也就是:
上述式子等价于在水平15后添加一个depth-wise卷积,然后在水平50上进行finetune,error的值随着g的增加而减少。另一个观察到的现象是网络的输出可以进行连续的改变只要改变特征或卷积核的统计特性。可以获得中间卷积的结果核通过下面这个函数:
其中$\lambda$是插值系数,通过限制其范围,可以实现从f15到g*f15的连续变化。基于此,这里使用的策略是,使用一个基本的CNN训练一个初始水平的恢复CNN,然后插入AdaFM模块,在最终水平上训练,最后插值实现连续域图像恢复。整体结构图如下所示:
对于AdaFM模块,这里通过增加一个depthwise卷积来实现,其可以表示为:
其中g和b是卷积核和偏置,BN层和STF层都是一种特殊的AdaFM模块,前者是g变成了1x1的卷积,后者是g变成和特征一样大的层。在模型训练时,这里先训练初始水平的模型,然后固定模型参数,插入AdaFM,训练终止水平的模型,其中只改变AdaFM的参数。实验证明这样的效果和在终止水平上训练所有参数模型的效果是相近的。所以AdaFM是一个自适应模块,并且发现,卷积核越大,训练方式从简单到复杂,效果都会更好。
在测试的时候,这里调整AdaFM层,其表示为:
其中I是单位核,通过调整$\lambda$就可以获得在起始水平和终止水平之间不同程度的恢复模型,具体调整过程见论文,这里不表。