点击上方“CVer”,选择加"星标"置顶
重磅干货,第一时间送达
本文作者:潘新钢
https://zhuanlan.zhihu.com/p/165050802
本文已由原作者授权,不得擅自二次转载
我们的Deep Generative Prior [1]很荣幸被接收为ECCV2020的oral presentation。本文提出一种挖掘预训练的对抗生成网络(GAN)中图像先验的方式。无需针对特定任务设计,我们实现了多种图像复原(上色,补全,超分辨率,对抗防御)和图像编辑(随机扰动,图像变形,类别转换)效果。而实现这一切,你需要的仅仅是一个预训练的GAN。
论文链接:arxiv.org/abs/2003.13659
代码链接:XingangPan/deep-generative-prior
视频链接:youtu.be/p7ToqtwfVko
设计和利用更好的图像先验是实现图像复原与编辑的重要途径。经典的图像先验有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模型上。
给定一张灰度图像,如何利用预训练好的GAN恢复它的颜色呢?一个自然的想法是在GAN的图像空间寻找一张灰度化后与目标图片一致的图片,由于GAN倾向于输出自然的图片,因此找到的这张图会有自然的颜色。动画示意如下:
这种在观察空间重建的策略在DIP等工作中就已经被应用。它有个前提条件是对应的退化变换 已知且可导,好在上色,补全,超分辨率这些任务所对应的退化变换(灰度化,裁剪,降采样)都满足该要求。
上述方案要求用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)。
在GAN重建中,传统的距离度量是MSE或Perceptual loss。但是我们发现,在上述允许优化生成器参数的设定下,将这些传统距离度量用在图像恢复如上色任务中时,常常无法准确恢复颜色,并且重建过程中图像变得模糊,即生成器会丧失原本的生成特性,如下图(a)(b)所示。对此,需要设计更好的优化方式来保留生成器的特性。
因此,我们在该工作中选择使用与该生成器对应的判别器来作为距离度量。与Perceptual loss所采用的VGGNet不同,判别器并非在一个第三方的任务上训练,而是在预训练时就与生成器高度耦合,它天然地适用于调整生成器的输出分布。我们用判别器特征空间的L1距离作为距离度量,即 ,其中 代表以x作为输入时判别器第i个block输出的特征。从上图(c)可以看出,使用这种基于判别器的距离度量时,重建的过程更加自然和真实,最终颜色恢复的效果也更好。
虽然改进的距离度量带来了更好的效果,但是图像复原的结果仍存在非自然痕迹,例如上图(c)五个苹果中最左边的一个没有继承到初始苹果的绿色。这是因为整个生成器在针对目标图片优化时,在浅层参数匹配好图片整体布局之前,深层参数就开始匹配细节纹理了。因此,对图像复原任务我们提出渐进式重建的策略,即在微调生成器时,先优化浅层,再逐渐过渡到深层,让重建过程“先整体后局部”:
从图3(d)可看出,采用渐进式重建后,生成器重建的苹果从一个分成两个,然后分成五个,最后匹配细节,这样最终的五个苹果都恢复了自然的颜色。
我们称上述方法为深度生成式先验deep generative prior (DGP),并运用到多种图像复原任务中,文章开头的动画展示了复原过程。这里展示更多结果:(注:这些是在ImageNet validation集上的结果,GAN在预训练时并没见过这些图片。)
我们也将DGP应用于非ImageNet的图片,同样可以取得不错的效果:
这里(d)中两个楼房的例子很有意思,图中需要恢复部分的信息(横梁,窗户)在周围仅出现了4或8次,而生成器就能在重建的过程中“学过来”,利用周围像素信息填补缺失部分。可见相比较DIP,DGP更好地模拟了像素间的空间关系。
此外,DGP可以有更加灵活的应用,例如下图中的条件上色和混合复原。条件上色即在灰度空间重建时对生成器输入不同的类别条件,最终恢复的颜色会呈现出不同的效果。混合复原即同时进行多种图像复原任务,例如下图(b)中同时进行上色,补全,和超分辨率(两倍放大)。
DGP还可以用于对抗防御,由于attacker加上的攻击噪声不符合自然的图像分布,用DGP可以将这种非自然噪声消除:
另一方面,由于改进的GAN inversion实现了精确的重建,我们可以利用GAN本身的特性,通过操纵隐向量来编辑目标图片。
例如,通过对隐向量z加随机高斯噪声,可以对目标图片实现随机扰动效果:
对重建两张图片得到的隐向量和生成器参数进行插值,可以实现图像渐变效果:
将生成器的输入类别改变,还可以实现对图中物体类别的转换:
图像重建与编辑的动画demo:
本文提出了一种挖掘GAN中图像先验的方式,在多个任务上揭示了GAN作为一种通用图像先验的潜力。我们首次将其应用于复杂图片的对抗防御;提出了同时插值隐变量和生成器的图像渐变方法;实验中DGP所展现出的强大的像素间空间关系模拟能力也十分有趣。
[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.
下载
在CVer公众号后回复:DGP,即可下载论文和代码
下载1
在CVer公众号后台回复:OpenCV书籍,即可下载《Learning OpenCV 3》书籍和源代码。注:这本书是由OpenCV发起者所写,是官方认可的书籍。其中涵盖大量图像处理的基础知识介绍,虽然API还是基于OpenCV 3.x,但结合此书和最新API,可以很好的学习OpenCV。
下载2
在CVer公众号后台回复:CVPR2020,即可下载CVPR2020 2020代码开源的论文合集
在CVer公众号后台回复:ECCV2020,即可下载ECCV 2020代码开源的论文合集
重磅!CVer-GAN 微信交流群已成立
扫码添加CVer助手,可申请加入CVer-GAN 微信交流群,目前已汇集900人!互相交流,一起进步!
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如GAN+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加群
▲长按关注我们
整理不易,请给CVer点赞和在看!