KernelGAN: Blind Super Resolution Kernel Estimation using an Internal-GAN

1. 介绍

论文的出发点是要发掘patch上的自相关分布,通过生成器G生成LR downsample后的版本和LR自己相应的patch在分布上更相似(通过D网络判别学到),从而学习出LR的降质过程,和ZSSR一样,这个工作也是在单图上进行训练和测试,不同的是,这里像ZSSR一样使用bicubic作为默认降质,而是利用GAN利用自身分布去学习自己降质的过程。其中G网络用来学习降采样,当G网络被训练好之后,可以获得降质的kernel参数,该参数可以被用来引导进行超分辨(类似于ZSSR)。论文提出的方法是image specific的,即可以根据测试图片自身的特性生成相应的核,并利用该核作用在自己使用如ZSSR的方法进行超分辨,这应该是论文最大的insight(之前的方法image specific的sr都是使用默认bicubic核进行降质,而通用SR方法都是事先训练好然后再用在测试图片上,这样它们的分布可能不一样)。整体的框架如下所示:
在这里插入图片描述

2. 算法细节

2.1 生成网络

生成网络主要模拟降采样核:
[公式]
由于非线性网络和实际理论不符,故使用线性网络(不加激活函数)。同时,作者发现 deep linear network 在优化上,比单层网络好很多。所以最终,生成网络是stride 2的6层线性全卷机网络:前3层卷积核为 7x7, 5x5, 3x3,后3层卷积核为 1x1,最后一层顺便做stride 2的下采样;整体相当于感受野为 13x13 的卷积核。
在这里插入图片描述
对于G网络,这里是一个深度线性网络,虽然理论上一层的stride网络也会work,但是实际其表现不行,可能是因为一层网络更难优化。其次也去除了relu层,因为加入其中不符合G网络downsample缩放的目的,会引入额外的artifacts(作者也不放实验说明这点)。

2.2 判别网络

判别网络是为了学习区域像素的分布,以判别是否来自真实图像分布。作者使用了全卷积 Patch Discriminator,通过输出一个heat-map(D map)来判别每一块 7x7 图像块的分布。其中包含操作:Spectral normalization,Batch normalization,ReLU激活层,Sigmoid输出层,但不包含 stride、pooling等操作。
在这里插入图片描述
D网络输入的是label(从LR中直接crop出来)或者是generator里输出的结果,输出是一个0-1矩阵,反映的是否该像素周边的patch(判别器感受野计算出来是7x7大小的patch)是真正LR里crop出来的。

2.3 损失函数

整体训练的loss如下所示:
在这里插入图片描述
其中R是对kernel进行约束,使其更符合kernel分布的先验规律,该部分如下所示:
在这里插入图片描述
最后,对G网络里的卷积层参数进行矩阵连乘,从而生成一个kernel,使用这个kernel可以对图像进行downsample,从而进行SR。一些实验结果如下所示:
在这里插入图片描述

3. 最后

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值