论文笔记 |【AAAI2022】Best-Buddy GANs for Highly Detailed Image Super-Resolution
目录
1 Motivation
- 深度学习方法用于图像超分领域:PSNR、SSIM指标结果很好,但视觉效果模糊。
- 为了提高图像的感知质量,使用对抗学习和感知损失(adversarial learing and perceptual loss),但是:① 无法解决由一对一的MSE / MAE损失(L1L2损失)引起的过度平滑问题 ② 容易产生伪影效果
- 超分问题是病态问题,对于一个LR图像,对应有多个HR解,难以决定最好的解。
(MAE:平均绝对误差损失,L1;MSE:均方差损失,L2)
贡献
- Best-Buddy GAN 损失函数(一种改进的一对多MAE损失),生成更丰富和逼真的纹理细节。
- 区域感知的对抗学习策略,增强图片视觉质量
- 高分辨率4K图像数据集,公开
2 Method
GAN: generator用于生成HR图像/discriminator用于分辨真假图像
generator: 经典的预训练RRDB模型(重要,因为这个模型的学习能力是已经被认可了的,所以后面的假设中才能认为generator生成的结果是具有合理性的)
2.1 Best-Buddy Loss
起因:
- 提出一个一对多的best buddy损失,寻找一个灵活但值得信任的监督patch,基于这个patch构建loss函数。
- key核心:一个预测出的HRpatch,在训练的不同迭代轮次中,可以对应多个目标监督patch。这个方法的本质就是,对于一个预测出的HRpatch Pi,我们寻找一个对应的,合理的监督patch gi*。
- 这个gi*需要满足两个限制,两个条件:一个是和GT对应的那个patch gi相近(也就是原来要作为监督的那个patch);另一个是要和生成的预测pi相近(因为generator已经是一个有比较强的学习能力的生成器了,有理由认为它的预测是合理的)。
过程如下:
对于GT高分图像I-HR,对它做两次下采样:
把这些下采样的图像按照3×3切分展开成patch,那么我们要找的合理监督就应该在这些patch里,是其中一个。
为了满足刚才所说的2个限制(离GT最近,离预测出的合理结果接近),使用下面这个公示对于每一个patch进行计算,然后选取结果最小的那个patch,就是本次迭代的最佳监督gi*。
α和β都是可以调整的参数。
针对这个监督结果gi*,我们再计算生成的pi和gi的损失。这个损失实质上类似于一个MAE损失(平均绝对误差损失),这里成为best-buddy loss。
可以看到如果β远小于α,那公式就只剩下前半部分,gi无限接近于GT图像中的gi,那整个best-buddy loss就直接退化成MAE损失了。
这只是best-buddy loss的一部分。另一部分是作者剔除的一个反投影约束。
这个约束的实质内容就是,对HR图片进行下采样之后得到的缩小后的HR图像,它必须与LR图像有相似的保真度。所以公式如下,
对I-HR,生成的超分图像(这里是针对patch来做loss运算),进行下采样,用LBP限制它和原始LR patch必须足够接近。
所以在这个图上很好理解。
左边是传统的方法,生成的patch和监督patch,也就是gi之间是一一对应的,是不变的。针对这个对应,再直接去计算MSE或者MAE损失,进行对抗生成训练。
右边是文章剔除的方法,首先动态的寻找一个合理的patch监督,这个监督同时受到生成结果pi和GT图像gi的约束,必须离这两个足够近;寻找到gi之后,再通过BBloss约束生成结果和最佳监督patch gi之间的距离,通过BPloss约束生成结果pi和LR图像pi-LR之间的保真度(其实也是相似性)。
这个反投影约束的效果,可以用这个热力图来看。
中间是GT图像,2侧是加了或者没加反投影约束(Back-Projection,BP)的效果。
可以看到,加了之后,错误热力图(下面这一行)颜色比较浅,说明恢复的更接近GT图像。
2.2 Region-Aware Adversarial Learning区域感知对抗学习策略
前面是对generator部分的处理,这一部分是对discriminator的处理。
实质就是区别对待多纹理区域和平滑区域,用一个mask把纹理区域提取出来,然后针对纹理区域进行对抗生成学习。
因为平滑区域经常会出现一些伪影,那么作者就想,既然平滑区域不需要经过很多对抗训练就可以很好地恢复出超分图像,那就设计一个mask,只对纹理复杂的部分进行对抗训练(我觉得这也是基于RRDB这个模型generator已经比较稳定,生成的效果已经比较好的基础上,觉得不需要再对平滑区域进行优化了)。
操作如下:
把HR图像,分成k^2个patch,每一个patch叫Bij,对每一个patch离的像素计算std标准差。标准差大的,说明这块patch里纹理很多,像素与像素之间不相似;反之如果标准差比较小,就可以认为像素之间比较接近,认为是平滑区域。
所以我们设置一个阈值delta(δ),大于delta的M置1,反之为0,标记纹理区域和平滑区域。
然后把预测结果I-head-HR(实际上这里是一个patch),和真正的超分图像GT里的I-HR,都拿去乘上这个0101的矩阵(点乘,不是矩阵相乘),只保留纹理区域。
得到两个只保留纹理区域的图像,作为判别器discriminator的输入,进行对抗生成学习,这样就可以避免在平滑区域产生伪影。
2.3 其他损失函数
Perceptual Loss感知损失
上周的那个,fais与训练VGG-19当中的第i层的激活网络,η伊塔一个比例系数。
文中总共考虑了3个卷积层。
Adversarial Loss对抗损失
直接采用了过去的工作Ra-GANs的损失,已经被证明有良好的效果。
一个假设:GT图像比生成的图像更具有真实性。
这里的D不是方差。首先有2个x,xr是代表真实数据(已经通过了mask),服从真实分布P,xf是表示生成器生成的假数据,也已经通过mask,服从Q分布。C(x)函数表示未转换的判别器输出。
所以D(x)是,把判别器输出与判别器输出的期望相减,通过sigmoid函数的结果。
回到上面的GDloss,对这些Dx输出log操作,然后按公式算期望,取负值确保Loss大于零。
3 Experiment
3.1 数据集
首先,提出了一个新的数据集,在本文中只用来评估结果,没有用来训练。
3.2 评价指标
PSNR峰值信噪比
SSIM结构相似性(以上,与人类对图像质量的感知存在弱相关性)
LPIPS感知相似度,LPIPS的值越低表示两张图像越相似。
PI(perceptual index)代表的是一幅图像的主观感知质量,往往pi值越低,图像看起来就更加舒服。pi值越低,则图像的感知质量越好。
3.3 结果
-PI是用了网络插值
PI的结果比较差,但是他认为LPIPS更符合人类的感知。
4 Ablation study
4.1 w/o best-buddy lost
4.2 w/o region-aware
4.3 BP反投影约束
5 Conclusion
- Best-Buddy GAN 损失函数(LBB,限制2个接近+LBP),生成更丰富和逼真的纹理细节。
- 区域感知的对抗学习策略,一个mask,区分纹理区域和平滑区域,作为判别器输入
- 高分辨率4K图像数据集,公开
6 Reference:
[人工智能-深度学习-9]:神经网络基础 - 常见loss损失函数之均分误差MSE、绝对值误差MAE、平滑平均绝对误差Huber_文火冰糖的硅基工坊的博客-优快云博客_mse 神经网络