Jinjin Gu, Yujun Shen, Bolei Zhou
论文发表在2020年的CVPR上,作者是香港中文大学周博磊团队的三位成员。该论文做的工作,一句话说来就是:提出了一种mGANprior的方法,这种方法利用预训练的GAN模型通过多潜码(multiple latent codes)的方式来重建真实图像。 先上一张效果图:
GAN 自从2014年由Goodfellow大神提出以后,已经火到了2020年,在很多领域都取得了成功。但是在真实图像处理这一方面还是存在很多挑战。之前的工作要么是通过反向传播要么是通过训练一个encoder来将图像空间映射(invert)回潜空间。而利用这两种方法重建图像的效果总是差强人意。 由此,文中作者提出一种叫做多码GAN先验(multi-code GAN prior,简称mGANprior)的方法,将已经训练完好的GAN模型作为一种有效先验,用于多种图像处理任务中。具体而言,作者在生成器(generator)的中间层用多种潜码(multiple latent code)来生成多种特征图(feature map),并通过自适应通道重要性机制(adaptive channel importance)将他们组合起来,重建输入图像。 文中这种将潜空间过度参数化的方法大大地提高了图像重建的质量,性能比现有的很多方法都要好。该方法还可以应用在真实世界的多种任务中,像图像重建,图像上色,图像超分,图像去噪,图像修补,语义操纵等。作者还进一步分析GAN模型中学到的层级表示性质,并尝试弄明白每一层所表示的知识。
上图为Multi-Code GAN Prior的流程图: 简单介绍一下这个流程就是: 将N个潜码(latent codes) { z n } n = 1 N \lbrace z_n\rbrace_{n=1}^N {zn}n=1N输入到生成器 G 1 ( ℓ ) G_1^{(\ell)} G1(ℓ)中,生成N个feature map,即 F 1 ( ℓ ) F_1^{(\ell)} F1(ℓ)到 F N ( ℓ ) F_N^{(\ell)} FN(ℓ),其中 ℓ \ell ℓ表示第 ℓ \ell ℓ层中间层。每个feature map对应一个 α \alpha α,从 α 1 \alpha_1 α1到 α n \alpha_n αn,其中的 α \alpha α即为一个被称为自适应通道重要性(adaptive channel importance)分数的权重,用来表示feature map对应通道的重要性。 并通过公式 ∑ n = 1 N F n ( ℓ ) ⨀ α n \sum_{n=1}^N F_n^{(\ell)}\bigodot \alpha_n n=1∑NFn(ℓ)⨀αn 将各个中间的feature map融合,其中的 ⨀ \bigodot ⨀表示通道级相乘。 然后将融合后的feature map输入生成器 G 2 ( ℓ ) G_2^{(\ell)} G2(ℓ)中,输出重建图像,该步骤即 x i n v = G 2 ( ℓ ) ( ∑ n = 1 N F n ( ℓ ) ⨀ α n ) x_{inv}=G_2^{(\ell)}(\sum_{n=1}^N F_n^{(\ell)}\bigodot \alpha_n) xinv=G2(ℓ)(n=1∑NFn(ℓ)⨀αn) 最后通过由MSE损失和基于VGG的感知损失组成的损失函数: L ( x 1 , x 2 ) = ∥ x 1 − x 2 ∥ 2 2 + ∥ ϕ ( x 1 ) , ϕ ( x 2 ) ∥ 1 L(x_1,x_2)=\lVert x_1-x_2\rVert_2^2+\lVert \phi (x_1),\phi (x_2)\rVert_1 L(x1,x2)=∥x1−x2∥22+∥ϕ(x1),ϕ(x2)∥1 优化 { z n } n = 1 N \lbrace z_n\rbrace_{n=1}^N {zn}n=1N, { α n } n = 1 N \lbrace \alpha_n\rbrace_{n=1}^N {αn}n=1N这2N个参数,由此达到最佳重建效果。
作者通过PGGAN和StyleGAN这两个SOTA GAN模型来验证mGANprior的效果。这些模型由不同的数据集训练而来,包括人脸图像数据集CelabA-HQ,FFHQ和风景图像数据集LSUN。
作者将本文方法和以下三种方法做对比:1)优化单一潜码(single latent code)的方法;2)训练编码器(encoder)来反置(reverse)生成器的方法;3)联合1)2)将编码器输出用作进一步优化的初始化设置的方法。 从上图及上表可知,定性定量比较下文中方法均比其他方法好。相比单一潜码有限的表示能力,文中的多潜码方法可以更有效重建细节丰富的图像。
Image Colorization
Image Super-Resolution
Image Inpainting and Denoising
Semantic Maniputation
文中提到,单一潜码限于其有限的表示能力,无法跨越训练数据和测试图像之间的domain gap。由下图可知,使用单一潜码重建的图像仍然非常依赖于原始的training domain(比如图上第一行第一列,由CelebA-HQ训练PGGAN模型得来的潜码生成效果更像人脸,而不是卧室)。相对的,文中的多潜码方法无论是用什么数据集训练的先验,重建的图像都接近卧室。
文中通过不同层的特征组合表现来进一步分析训练充分的GAN模型的层级知识。上图告诉我们,用的层数越高,重建的效果越好。这是因为重建往往专注于恢复低维的像素值。而GAN往往在底层表示的是抽象语义,顶层表示的是内容细节。上图同样可以观察到,用bedroom训练的模型用来反映射重建图像,用4层就够了,而其他数据集训练的模型则需要8层。这是因为不同的数据集代表着不同的语义,所以来自其他数据集训练模型的底层的高维知识没法用在高层的重建上。 文中通过上图的图像上色和图像修补任务,作进一步的层级分析。从图上可以看到,在第8层图像上色任务得到了最佳的结果,而图像修补任务在第4层达到最佳。这是因为图像上色更像是一个低维的渲染任务,而图像修补则需要GAN的先验用有意义的物体来填充缺失的内容。这跟前图的结论一致:来自GAN先验的低维知识能被用在较高的层级,而高维的知识能被用在较低的层级。
以上是本人的理解,可能不准确,如有误或者需要讨论的地方,还望指出 码字不易,如果您觉得有帮助,欢迎点赞和收藏~~