论文 | Image Processing Using Multi-Code GAN Prior
Motivation
GAN在图像生成领域取得巨大成功,但将训练好的GAN模型作为先验信息应用于真实图像处理任务仍然就有挑战性。具体的,GAN模型中生成器通常是以潜在空间为输入映射到图像空间,不能以真实图像作为输入,导致训练好的模型无法进行后续图像处理。因此,现有方法尝试通过反向传播或通过学习其他encoder将目标图像转换回潜在空间,但并不理想。
本文提出了mGANprior
的新方法,使用
N
N
N个潜在编码(latent code)
Z
n
Z_n
Zn在生成器的某个中间层生成
N
N
N个特征图(feature map),然后用自适应通道重要性(adaptive channel importance)将这些特征图组合在一起,得到输入图像。
Method
生成器
G
(
⋅
)
G(\cdot)
G(⋅)被分为两个子网络
G
1
(
ℓ
)
G_1^{(\ell)}
G1(ℓ)和
G
2
(
ℓ
)
G_2^{(\ell)}
G2(ℓ)。对于任意
z
N
z_N
zN,通过
G
1
(
ℓ
)
(
⋅
)
G_1^{(\ell)}(\cdot)
G1(ℓ)(⋅)生成一系列中间层特征图
F
N
(
ℓ
)
F_N^{(\ell)}
FN(ℓ),即
F
N
(
ℓ
)
=
G
1
(
ℓ
)
(
z
n
)
F_N^{(\ell)}=G_1^{(\ell)}(z_n)
FN(ℓ)=G1(ℓ)(zn),其中
ℓ
\ell
ℓ是执行特征composition的中间层的index。
接下来,将一系列中间层特征图
F
N
(
ℓ
)
F_N^{(\ell)}
FN(ℓ)composition。因为GAN中生成器的不同通道负责生成不同的visual cooncept(目标、纹理等),作者为每个
z
n
z_n
zn引入了自适应信道重要性(adaptive channel importance)
α
n
\alpha_n
αn(为
z
n
z_n
zn加权),以帮助它们适应不同的语义。作者希望每个
α
n
\alpha_n
αn的数值能代表特征图
F
n
(
ℓ
)
F_n^{(\ell)}
Fn(ℓ)中对应通道的重要性。
最终通过生成
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=1NFn(ℓ)⨀αn)。
最终整个框架是求解
z
z
z和
α
\alpha
α,
{
z
n
∗
}
n
=
1
N
,
{
α
n
∗
}
n
=
1
N
=
arg min
{
z
n
}
n
=
1
N
,
{
α
n
}
n
=
1
N
L
(
x
i
n
v
,
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)
{zn∗}n=1N,{αn∗}n=1N={zn}n=1N,{αn}n=1NargminL(xinv,x),使用MSE Loss和Perceptual Loss进行优化。
mGANprior可应用于多种图像处理任务: Image Colorization,
Image Super-Resolution,Image Inpainting,Image Denoising.
Tips
GAN Inversion
一个无监督、训练好的GAN可以通过从潜在空间
Z
Z
Z中采样,然后合成高质量的图像,即
Z
→
i
m
a
g
e
Z\rightarrow image
Z→image。而GAN Inversion,是找到一个合适的
Z
Z
Z去回复目标图像,即
i
m
a
g
e
→
Z
image\rightarrow Z
image→Z(
Z
Z
Z是一个待优化的参数)。
本文利用在图像上训练GAN作为一种通用的图像先验,应用于各种图像处理任务,在GAN方面算是一个新的尝试,并深入到对GAN的理解。
另外,Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation也值得一读[paper][code][analysis]。