本 文解读的是ECCV 2020 Oral论文《Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation》,本文提出一种挖掘预训练的对抗生成网络(GAN)中图像先验的方法,无需针对特定任务设计,便可实现种图像复原(上色,补全,超分辨率,对抗防御)和图像编辑(随机扰动,图像变形,类别转换)效果。
作者 | 潘新钢
编辑 | 丛 末
论文链接:arxiv.org/pdf/2003.1365
代码链接:XingangPan/deep-generative-prior
视频链接:https://www.youtube.com/watch?v=p7ToqtwfVko&feature=youtu.be
Deep generative prior的图像复原效果
设计和利用更好的图像先验是实现图像复原与编辑的重要途径。经典的图像先验有total variation, dark channel prior, 以及各种基于markov random field的图像先验等,他们都模拟了图像在某一方面的统计特性。而近期由于深度学习的发展,大家开始用深度神经网络来建模图像先验,其中代表性的工作是深度图像先验deep image prior (DIP) [2]。DIP揭示了卷积神经网络在结构设计上就具备了图像的一些统计特性,但由于参数由随机初始化得到,因此无法模拟图像更高级的信息例如颜色,远距离像素间的关联等。另一方面,生成模型尤其是对抗生成网络(GAN)近年来得到了长足的发展,能够相当好地模拟自然图像分布。因此,一个直观的想法是,能否以及如何利用在大规模自然图像上训练的GAN作为一种通用的图像先验?
近期已经有一些工作对此进行了尝试[3][4][5],其中最相关的是几乎同期的multi-code GAN prior [4]和PULSE [5],前者为周博磊老师组的工作,也欢迎大家关注。在方法上,本文提出了与它们不同的策略,实现了更丰富的功能,并且应用在重建更加困难的BigGAN模型上。
1、在观察空间重建
给定一张灰度图像,如何利用预训练好的GAN恢复它的颜色呢?一个自然的想法是在GAN的图像空间寻找一张灰度化后 与目标图片一致的图片,由于GAN倾向于输出自然的图片,因此找到的这张图会有自然的颜色。动画示意如下:
这种在观察空间重建的策略在DIP等工作中就已经被应用。它有个前提条件是对应的退化变换
已知且可导,好在上色,补全,超分辨率这些任务所对应的退化变换(灰度化,裁剪,降采样)都满足该要求。
2、GAN重建的挑战
上述方案要求用GAN的生成器G准确重建一张目标图片。针对该任务,传统的做法是优化生成器输入的隐向量z ,又称作GAN inversion。其对应的优化目标为:
(1)
其中
为目标图片,
为生成器,
为上述退化变换,
为图片距离度量例如MSE loss。然而在实践中,仅仅通过优化隐向量z 难以准确重建ImageNet这样的复杂真实图片。例如,以下(a)(b)(c)(d)为以往GAN inversion方法的重建结果:
究其原因,一方面用来训练GAN的数据集(ImageNet)本身是自然图片中很少的一部分,另一方面GAN受限于有限的模型性能和mode collapse,其模拟的图片分布与训练集图片分布也存在鸿沟。这两方面鸿沟让GAN难以精确重建任意给定的图片。
即使存在以上限制,GAN仍然学习了丰富的图片信息。为了利用这些信息并且实现精确重建,我们让生成器online地适应于每张目标图片,即联合优化隐向量z 和生成器参数
:
(2)
这种解放生成器的做法其实沿袭了DIP的思路。生成器仅需要微调,就可以实现对目标图片的精确重建,如上图中的(e)。
1、重拾被遗忘的距离度量:判别器
在GAN重建中,传统的距离度量是MSE或Perceptual loss。但是我们发现,在上述允许优化生成器参数的设定下,将这些传统距离度量用在图像恢复如上色任务中时,常常无法准确恢复颜色,并且重建过程中图像变得模糊,即生成器会丧失原本的生成特性,如下图(a)(b)所示。对此,需要设计更好的优化方式来保留生成器的特性。
因此,我们在该工作中选择使用与该生成器对应的判别器 来作为距离度量。与Perceptual loss所采用的VGGNet不同,判别器并非在一个第三方的任务上训练,而是在预训练时就与生成器高度耦合,它天然地适用于调整生成器的输出分布。我们用判别器特征空间的L1距离作为距离度量,即
,其中
代表以x 作为输入时判别器第i个block输出的特征。从上图(c)可以看出,使用这种基于判别器的距离度量时,重建的过程更加自然和真实,最终颜色恢复的效果也更好。
2、先整体后局部:渐进式重建
虽然改进的距离度量带来了更好的效果,但是图像复原的结果仍存在非自然痕迹,例如上图(c)五个苹果中最左边的一个没有继承到初始苹果的绿色。这是因为整个生成器在针对目标图片优化时,在浅层参数匹配好图片整体布局之前,深层参数就开始匹配细节纹理了。因此,对图像复原任务我们提出渐进式重建的策略,即在微调生成器时,先优化浅层,再逐渐过渡到深层,让重建过程“先整体后局部”:
从图3(d)可看出,采用渐进式重建后,生成器重建的苹果从一个分成两个,然后分成五个,最后匹配细节,这样最终的五个苹果都恢复了自然的颜色。
1、图像复原
我们称上述方法为深度生成式先验deep generative prior (DGP),并运用到多种图像复原任务中,文章开头的动画展示了复原过程。这里展示更多结果:(注:这些是在ImageNet validation集上的结果,GAN在预训练时并没见过这些图片。)
我们也将DGP应用于非ImageNet的图片,同样可以取得不错的效果:
除了(b)来自Places数据集,其它图片抓取自互联网
这里(d)中两个楼房的例子很有意思,图中需要恢复部分的信息(横梁,窗户)在周围仅出现了4或8次,而生成器就能在重建的过程中“学过来”,利用周围像素信息填补缺失部分。可见相比较DIP,DGP更好地模拟了像素间的空间关系。
此外,DGP可以有更加灵活的应用,例如下图中的条件上色和混合复原。条件上色即在灰度空间重建时对生成器输入不同的类别条件,最终恢复的颜色会呈现出不同的效果。混合复原即同时进行多种图像复原任务,例如下图(b)中同时进行上色,补全,和超分辨率(两倍放大)。
DGP还可以用于对抗防御,由于attacker加上的攻击噪声不符合自然的图像分布,用DGP可以将这种非自然噪声消除:
2、图像编辑
另一方面,由于改进的GAN inversion实现了精确的重建,我们可以利用GAN本身的特性,通过操纵隐向量来编辑目标图片。
例如,通过对隐向量z 加随机高斯噪声,可以对目标图片实现随机扰动效果:
对重建两张图片得到的隐向量和生成器参数进行插值,可以实现图像渐变效果:
将生成器的输入类别改变,还可以实现对图中物体类别的转换:
本文提出了一种挖掘GAN中图像先验的方式,在多个任务上揭示了GAN作为一种通用图像先验的潜力。我们首次将其应用于复杂图片的对抗防御;提出了同时插值隐变量和生成器的图像渐变方法;实验中DGP所展现出的强大的像素间空间关系模拟能力也十分有趣。
Reference:
[1] Pan, Xingang, et al. "Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation." ECCV2020.
[2] Ulyanov, Dmitry, Andrea Vedaldi, and Victor Lempitsky. "Deep image prior." CVPR2018.
[3] Bau, David, et al. "Semantic photo manipulation with a generative image prior." ACM Transactions on Graphics (TOG) 38.4 (2019): 1-11.
[4] Gu, Jinjin, Yujun Shen, and Bolei Zhou. "Image processing using multi-code gan prior." CVPR2020.
[5] Menon, Sachit, et al. "PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models." CVPR2020.
扫码关注[ AI研习社顶会小助手] 微信号,发送关键字“ECCV 2020+直播”,即可进群观看直播和获取课程资料。
阅读原文,直达“ ECCV ”小组,了解更多会议信息!