论文地址:[https://arxiv.org/abs/1909.06581]
用于估计与真实图像接近的降采样核,从而构建超分训练的图像对(Blind-SR),提升对现实图像超分的性能。
Introduction
之前超分算法所使用的训练数据,大多是通过在HR图像上应用理想的降采样核(如 bicubic downscaling)获得LR图像。而将这些数据上训练出来的SR模型应用到现实数据时,模型性能会急剧下降!
所以 Blind-SR(SR with an unknown kernel) 很重要。本文基于跨尺度共现的性质(internal cross-scale recurrence property)(这个不太理解,论文说SR-kernel也是最大化不同尺度LR图像块的相似度的降采样核),提出一个建模模糊核的算法 image-specific Internal-GAN —— KernelGAN,学习图像块的内部分布。KernelGAN整体结构如下图。
G网络为多层线性网络,根据输入的LR图像,生成下采样2倍的图像。然后从原始LR图像和下采样图像截取patch,输入到D网络(patch discriminator),预测heat map。最终整体训练后,得到的G网络即是对应image-specific SR-kernel的下采样操作。
算法细节
生成网络主要模拟降采样核:
由于非线性网络和实际理论不符,故使用线性网络(不加激活函数)。同时,作者发现 deep linear network 在优化上,比单层网络好很多。所以最终,生成网络是stride 2的6层线性全卷机网络:前3层卷积核为 ,后3层卷积核为
,最后一层顺便做stride 2的下采样;整体相当于感受野为
的卷积核。
判别网络是为了学习区域像素的分布,以判别是否来自真实图像分布。作者使用了全卷积 Patch Discriminator,通过输出一个heat-map(D map)来判别每一块 图像块的分布。其中包含操作:Spectral normalization,Batch normalization,ReLU激活层,Sigmoid输出层,但不包含 stride、pooling等操作。
Patch Discriminator,感觉7的感受野会不会太小了?
整体KernelAN网络的损失函数为:
其中, 是G网络的正则项,主要约束为和一般的下采样卷积一样形式的操作,利于后续将G网络抽取出来作为一般的下采样核:
- 抽取为更加compat的小矩阵操作形式;
- 遵从下采样核的物理意义和数学形式。
故:
其中, 。
鼓励核的累积为1;
中
为常数加权mask,权重随着与中心的距离增加而指数增大,也就是越靠近边界的值惩罚越大,值越小;
鼓励卷积核的稀疏性,防止过于平滑(oversmoothing);
鼓励卷积核的质量中心为核的几何中心。
在训练的第一个epoch时,G网络的输出同时用 bicubic kernel得到的图像作为GT进行约束训练,从而G网络作为后续训练的初始化。
由于G网络的下采样倍数为2,所以如果想下采样4倍(例如后续要做4倍超分),可以将训练好的G网络转为compat的矩阵后,做个矩阵平方得到4倍下采样核。
实验设置和实验结果
KernelGAN中G网络和D网络交叉训练,使用Adam优化器( ),学习率 2e-4,每750个epoch衰减 乘上0.1,总共训练3000个epoch。
实验结果:
核估计结果对比
用本论文KernelGAN估计出来的核做 Blind-SR的结果比较
生成网络,单层网络和多层网络的消融对比实验
和用bicubic kernel训练出来的SotA超分模型的对比
和SotA Blind-SR模型对比
转自:【https://zhuanlan.zhihu.com/p/154062965?from_voters_page=true】