论文 | Image Processing Using Multi-Code GAN Prior

论文 | Image Processing Using Multi-Code GAN Prior

[paper][code]

Motivation

GAN在图像生成领域取得巨大成功,但将训练好的GAN模型作为先验信息应用于真实图像处理任务仍然就有挑战性。具体的,GAN模型中生成器通常是以潜在空间为输入映射到图像空间,不能以真实图像作为输入,导致训练好的模型无法进行后续图像处理。因此,现有方法尝试通过反向传播或通过学习其他encoder将目标图像转换回潜在空间,但并不理想。
本文提出了mGANprior的新方法,使用NN个潜在编码(latent code)ZnZ_n在生成器的某个中间层生成NN个特征图(feature map),然后用自适应通道重要性(adaptive channel importance)将这些特征图组合在一起,得到输入图像。

Method

论文 | Image Processing Using Multi-Code GAN Prior
生成器G()G(\cdot)被分为两个子网络G1()G_1^{(\ell)}G2()G_2^{(\ell)}。对于任意zNz_N,通过G1()()G_1^{(\ell)}(\cdot)生成一系列中间层特征图FN()F_N^{(\ell)},即FN()=G1()(zn)F_N^{(\ell)}=G_1^{(\ell)}(z_n),其中\ell是执行特征composition的中间层的index。
接下来,将一系列中间层特征图FN()F_N^{(\ell)}composition。因为GAN中生成器的不同通道负责生成不同的visual cooncept(目标、纹理等),作者为每个znz_n引入了自适应信道重要性(adaptive channel importance)αn\alpha_n(为znz_n加权),以帮助它们适应不同的语义。作者希望每个
αn\alpha_n的数值能代表特征图Fn()F_n^{(\ell)}中对应通道的重要性。
最终通过生成G2()G_2^{(\ell)}生成反转结果,即xinv=G2()(n=1NFn()αn)x^{inv}=G_2^{(\ell)}(\sum_{n=1}^{N}F_n^{(\ell)}\bigodot\alpha_n)

最终整个框架是求解zzα\alpha
{zn}n=1N,{αn}n=1N=arg min{zn}n=1N,{αn}n=1NL(xinv,x)\{z_n^*\}_{n=1}^N,\{\alpha_n^*\}_{n=1}^N=\argmin_{\{z_n\}_{n=1}^N,\{\alpha_n\}_{n=1}^N}\mathcal{L}(x^{inv},x),使用MSE Loss和Perceptual Loss进行优化。

mGANprior可应用于多种图像处理任务: Image Colorization,
Image Super-Resolution,Image Inpainting,Image Denoising.

Tips

GAN Inversion
一个无监督、训练好的GAN可以通过从潜在空间ZZ中采样,然后合成高质量的图像,即 ZimageZ\rightarrow image。而GAN Inversion,是找到一个合适的ZZ去回复目标图像,即 imageZimage\rightarrow Z(ZZ是一个待优化的参数)。

本文利用在图像上训练GAN作为一种通用的图像先验,应用于各种图像处理任务,在GAN方面算是一个新的尝试,并深入到对GAN的理解。

另外,Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation也值得一读[paper][code][analysis]