1. 论文
PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models (cvpr2020)
- Link: https://arxiv.org/pdf/2003.03808.pdf
- Code: https://github.com/adamian98/pulse (4.8k star)
2. 背景梳理
超分辨任务是典型的ill-posed问题,根本原因在于图像在退化的过程中会产生信息的丢失,因此,对于一张特定的低分辨率图片(LR),将会有许多“合理”的高分辨率图片与之对应。传统的超分辨学习方法采用全监督的方式,利用一张高清图片和从该图像下采样产生的低分辨率图片配对对模型进行训练。然而这种方式训练的模型往往会产生比较模糊的图片,原因正是由于忽略了ill-posed问题的本质,强行将低分辨率图片映射到随机一张“合理”的高清图片,最终模型将会学到的只是所有与低分辨率图片对应的高清图片的均值,视觉效果上自然会变模糊。本文利用经过预先训练的人脸生成模型,通过自监督的方法,将模型产生的超分图片限制在与真实高清图片曲面接近的曲面上,通过梯度回传的方式优化生成模型输入的噪声,不断拉近生成图片与目标图片的距离,最终得到与目标图片最接近的一个点,而非传统超分模型所输出的“均值”。
3. ill-posed problem!
如上图所示,对于右下角的低分辨率图片来说,其余三张高分辨率图片都是潜在的合理的高清图片,因为这些高清图片经过下采样等退化之后与其距离都很接近,尽管这些高清图片在细节层面存在很多差别。在传统超分模型的训练过程中,直接将由该低清图片与随机一张高清图片计算损失,自然无法学到真实的细节生成。此外,文章对于该问题进行了具体的刻画,如下图所示
假设真实的高清图片分布为浅蓝色的曲面,由于在退化过程中产生的信息丢失问题,与目标低分辨率图片对应的潜在高清图片分布应该为该曲面上的一个子集,设为深蓝色区域,过去的超分辨模型中采用一对一配对的方法来生成训练数据,因此最后模型得到的结果在期望意义上应该是深蓝色区域的重心,而由于高维分布的复杂性,该重心大概率不在浅蓝色面上,因此从原理上来说得到的结果自然会不真实。
4. GAN inversion
目前人脸生成模型已经可以达到非常惊艳的效果,如本文中使用的styleGAN[1],可以在1024*1024的分辨率下生成非常真实的图片,我们在一定程度上认为这些先进的生成模型的输出结果构成的曲面与真实高清图片所构成的曲面是非常相似的,然而生成模型只能从随机采样得到的噪声生成图片,目前还没有非常成熟的技术控制这一过程。本文中采用反向传播的方法,成功将生成模型与超分辨任务结合起来。具体操作如下图所示
文章中采用的人脸生成模型为训练充分的styleGAN模型,该模型可以生成非常真实的高清人脸图片,在本文中将预训练过的生成模型固定,而待训练的参数为生成模型的输入噪声,每次迭代的损失为模型生成图片经过可以微分的下采样操作之后与目标低分辨率图片的欧氏距离,也就是说,模型的优化目标为,生成图片退化后与目标图片的距离最近,或PSNR最高,这样可以认为最后找到的输入噪声所生成的图片就是目标图片的超分结果。整个过程如下图所示
在优化的整个过程中,模型的输出始终保持在生成模型所产生的曲面上,即可以认为是真实高清图片曲面,最后找到的结果应该在深蓝色区域内,其对应的低分辨率图片就是目标图片。
5. 结果展示
本文利用所提出的方法可以生成极高分辨率的图片,甚至可以将16*16分辨率的图片放大64倍,同时保证所生成图片的清晰度与真实性。部分结果如下所示
同时该模型对于退化方式展现出了极强的鲁棒性,作者加入了多种噪声来进行测试,结果非常稳定
6. 思考与总结
本文采用了不同于传统超分模型的方法来生成非常真实的超分图片,对于不同的退化方式不需要特殊训练就具备很强的鲁棒性,这些都是目前模型不具备的,可以说是非常经验的结果。对于本文的一些可以改进之处,笔者在对该模型测试时发现了一些问题
- (a) 该模型对于超高分辨率的恢复任务比较有效,然而对于常规的超分倍数,如4倍、8倍,结果比较差,这是由于对于低倍率的放大,原始图片在高清曲面上所对应的空间较小,反向传播优化很难找到比较合适的输入噪声
- (b) 作者为了提高模型的拟合能力,对输入的噪声进行了改进,在原始的styleGAN中,每一层所输入的噪声均为同一数据拷贝而来,在本文中将其分开每一个单独进行优化,从而导致结果生成效果不如原始生成模型,也是对生成效果和拟合能力的权衡
- © 原始的生成模型中,输入噪声是由正态分布采样得到,而在优化过程中,并没有对输入噪声进行正态分布的约束,因此会使输入跑到极端值,也就是正态分布几乎不可能采样得到的区域,从而导致生成结果不真实
- (d) 以上问题大部分都可以归结为使用的生成模型训练数据与超分辨测试数据的分布不一致问题,如在原始的生成模型中,很少会出现比较奇怪角度的人脸,在超分模型的测试过程中如果输入为该类数据,就会得到比较差的结果
9 参考文献
[1] A Style-Based Generator Architecture for Generative Adversarial Networks
- Link: https://arxiv.org/pdf/1812.04948.pdf
- Code: https://github.com/NVlabs/stylegan (10.5k star)