ECCV 2020 Oral | DGP:实现通用的图像复原与编辑

2020 年 7 月 31 日 CVer

点击上方“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

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模型上。

在观察空间重建

给定一张灰度图像,如何利用预训练好的GAN恢复它的颜色呢?一个自然的想法是在GAN的图像空间寻找一张灰度化后与目标图片一致的图片,由于GAN倾向于输出自然的图片,因此找到的这张图会有自然的颜色。动画示意如下:

图1. 在灰度空间重建目标图片

这种在观察空间重建的策略在DIP等工作中就已经被应用。它有个前提条件是对应的退化变换  已知且可导,好在上色,补全,超分辨率这些任务所对应的退化变换(灰度化,裁剪,降采样)都满足该要求。

GAN重建的挑战

上述方案要求用GAN的生成器G准确重建一张目标图片。针对该任务,传统的做法是优化生成器输入的隐向量z,又称作GAN inversion。其对应的优化目标为:

 (1)

其中  为目标图片,  为生成器,  为上述退化变换,  为图片距离度量例如MSE loss。然而在实践中,仅仅通过优化隐向量z难以准确重建ImageNet这样的复杂真实图片。例如,以下(a)(b)(c)(d)为以往GAN inversion方法的重建结果:

图2. 不同GAN inversion方法对比

究其原因,一方面用来训练GAN的数据集(ImageNet)本身是自然图片中很少的一部分,另一方面GAN受限于有限的模型性能和mode collapse,其模拟的图片分布与训练集图片分布也存在鸿沟。这两方面鸿沟让GAN难以精确重建任意给定的图片。

解放你的Generator吧

即使存在以上限制,GAN仍然学习了丰富的图片信息。为了利用这些信息并且实现精确重建,我们让生成器online地适应于每张目标图片,即联合优化隐向量z和生成器参数  :

 (2)

这种解放生成器的做法其实沿袭了DIP的思路。生成器仅需要微调,就可以实现对目标图片的精确重建,如上图中的(e)。

重拾被遗忘的距离度量:判别器

在GAN重建中,传统的距离度量是MSE或Perceptual loss。但是我们发现,在上述允许优化生成器参数的设定下,将这些传统距离度量用在图像恢复如上色任务中时,常常无法准确恢复颜色,并且重建过程中图像变得模糊,即生成器会丧失原本的生成特性,如下图(a)(b)所示。对此,需要设计更好的优化方式来保留生成器的特性。

图3. 不同优化方式的图像重建过程对比

因此,我们在该工作中选择使用与该生成器对应的判别器来作为距离度量。与Perceptual loss所采用的VGGNet不同,判别器并非在一个第三方的任务上训练,而是在预训练时就与生成器高度耦合,它天然地适用于调整生成器的输出分布。我们用判别器特征空间的L1距离作为距离度量,即  ,其中  代表以x作为输入时判别器第i个block输出的特征。从上图(c)可以看出,使用这种基于判别器的距离度量时,重建的过程更加自然和真实,最终颜色恢复的效果也更好。

先整体后局部:渐进式重建

虽然改进的距离度量带来了更好的效果,但是图像复原的结果仍存在非自然痕迹,例如上图(c)五个苹果中最左边的一个没有继承到初始苹果的绿色。这是因为整个生成器在针对目标图片优化时,在浅层参数匹配好图片整体布局之前,深层参数就开始匹配细节纹理了。因此,对图像复原任务我们提出渐进式重建的策略,即在微调生成器时,先优化浅层,再逐渐过渡到深层,让重建过程“先整体后局部”:

图4. 渐进式重建

从图3(d)可看出,采用渐进式重建后,生成器重建的苹果从一个分成两个,然后分成五个,最后匹配细节,这样最终的五个苹果都恢复了自然的颜色。

应用:图像复原

我们称上述方法为深度生成式先验deep generative prior (DGP),并运用到多种图像复原任务中,文章开头的动画展示了复原过程。这里展示更多结果:(注:这些是在ImageNet validation集上的结果,GAN在预训练时并没见过这些图片。)

图像上色结果
图像补全结果
图像超分辨率结果 (四倍放大)

我们也将DGP应用于非ImageNet的图片,同样可以取得不错的效果:

除了(b)来自Places数据集,其它图片抓取自互联网

这里(d)中两个楼房的例子很有意思,图中需要恢复部分的信息(横梁,窗户)在周围仅出现了4或8次,而生成器就能在重建的过程中“学过来”,利用周围像素信息填补缺失部分。可见相比较DIP,DGP更好地模拟了像素间的空间关系。

此外,DGP可以有更加灵活的应用,例如下图中的条件上色和混合复原。条件上色即在灰度空间重建时对生成器输入不同的类别条件,最终恢复的颜色会呈现出不同的效果。混合复原即同时进行多种图像复原任务,例如下图(b)中同时进行上色,补全,和超分辨率(两倍放大)。

DGP还可以用于对抗防御,由于attacker加上的攻击噪声不符合自然的图像分布,用DGP可以将这种非自然噪声消除:

应用:图像编辑

另一方面,由于改进的GAN inversion实现了精确的重建,我们可以利用GAN本身的特性,通过操纵隐向量来编辑目标图片。

例如,通过对隐向量z加随机高斯噪声,可以对目标图片实现随机扰动效果:

对重建两张图片得到的隐向量和生成器参数进行插值,可以实现图像渐变效果:

将生成器的输入类别改变,还可以实现对图中物体类别的转换:

图像重建与编辑的动画demo:

小结

本文提出了一种挖掘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.


下载

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点赞和在看

登录查看更多
2

相关内容

图像复原(image restoration)即利用退化过程的先验知识,去恢复已被退化图像的本来面目。图像复原技术主要是针对成像过程中的“退化”而提出来的,而成像过程中的“退化”现象主要指成像系统受到各种因素的影响,诸如成像系统的散焦、设备与物体间存在相对运动或者是器材的固有缺陷等,导致图像的质量不能够达到理想要求。
姿势服装随心换-CVPR2019
专知会员服务
34+阅读 · 2020年1月26日
近期必读的7篇 CVPR 2019【视觉问答】相关论文和代码
专知会员服务
35+阅读 · 2020年1月10日
近期必读的9篇 CVPR 2019【视觉目标跟踪】相关论文和代码
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
近期必读的5篇 CVPR 2019【图卷积网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
必读的7篇 IJCAI 2019【图神经网络(GNN)】相关论文
专知会员服务
91+阅读 · 2020年1月10日
八篇 ICCV 2019 【图神经网络(GNN)+CV】相关论文
专知会员服务
29+阅读 · 2020年1月10日
CVPR 2018 最酷的十篇论文
AI研习社
6+阅读 · 2019年2月13日
CVPR 2018 论文解读 | 基于GAN和CNN的图像盲去噪
PaperWeekly
13+阅读 · 2019年1月22日
CVPR 2018 |“寻找”极小人脸
极市平台
14+阅读 · 2018年7月11日
使用CNN生成图像先验实现场景的盲图像去模糊
统计学习与视觉计算组
10+阅读 · 2018年6月14日
CVPR 2018 论文解读(部分)
计算机视觉战队
5+阅读 · 2018年5月8日
Arxiv
4+阅读 · 2020年3月27日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
15+阅读 · 2018年4月5日
VIP会员
相关VIP内容
姿势服装随心换-CVPR2019
专知会员服务
34+阅读 · 2020年1月26日
近期必读的7篇 CVPR 2019【视觉问答】相关论文和代码
专知会员服务
35+阅读 · 2020年1月10日
近期必读的9篇 CVPR 2019【视觉目标跟踪】相关论文和代码
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
近期必读的5篇 CVPR 2019【图卷积网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
必读的7篇 IJCAI 2019【图神经网络(GNN)】相关论文
专知会员服务
91+阅读 · 2020年1月10日
八篇 ICCV 2019 【图神经网络(GNN)+CV】相关论文
专知会员服务
29+阅读 · 2020年1月10日
相关资讯
CVPR 2018 最酷的十篇论文
AI研习社
6+阅读 · 2019年2月13日
CVPR 2018 论文解读 | 基于GAN和CNN的图像盲去噪
PaperWeekly
13+阅读 · 2019年1月22日
CVPR 2018 |“寻找”极小人脸
极市平台
14+阅读 · 2018年7月11日
使用CNN生成图像先验实现场景的盲图像去模糊
统计学习与视觉计算组
10+阅读 · 2018年6月14日
CVPR 2018 论文解读(部分)
计算机视觉战队
5+阅读 · 2018年5月8日
Top
微信扫码咨询专知VIP会员