925 字
5 分钟
GAN反演:PULSE、pSp与GPEN
2026-07-01
无标签

GAN Inversion 是将一张真实(或退化)图像映射回 GAN 隐空间的过程。数学上,给定图像 xx,寻找最优隐码 zz^* 使得 G(z)G(z^*)xx 在某种度量下最接近:

z=argminz L(G(z),x)z^* = \arg\min_z \ \mathcal{L}(G(z), x)

L\mathcal{L} 通常是像素级损失(L2)+ 感知损失(LPIPS)。求解路径分为四类。这一篇聚焦于三个在图像复原任务上的代表性工作。

PULSE(Z 空间优化)#

PULSE(CVPR 2020)针对人脸超分辨率任务:给定低分辨率(LR)输入 xLRx_{\text{LR}},在高分辨率 GAN 的 ZZ 空间中搜索与 xLRx_{\text{LR}} 下采样后一致的隐码。

目标#

z=argminzZ downsample(G(z))xLR2z^* = \arg\min_{z \in \mathcal{Z}} \ \| \text{downsample}(G(z)) - x_{\text{LR}} \|^2

ZZ 空间梯度下降,每步更新 zz,计算 G(z)G(z) 后下采样与 LR 输入比较。PULSE 不在像素空间直接做超分,而是要求 GAN 生成的高分辨率图必须与低分辨率输入”一致”。

关键设计#

  • Z 空间而非 W 空间:因为需要足够的随机性来覆盖不同的高分辨率纹理细节。在 WW 空间做优化容易收敛到过平滑的结果。
  • 距离度量:L2 损失外还加入了 face ID 损失(保持人脸身份),避免生成的人脸与输入不是同一个人。
  • 局限:逐张图梯度下降,优化一次需要数分钟。只工作在 Z 空间,编辑能力有限。

pSp(W+ 学习式编码器)#

pSp(pixel2style2pixel, CVPR 2021)用前馈编码器替代逐张优化,在 W+W^+ 空间一步推理出隐码。

架构#

使用 ResNet-50 作为 backbone,从输入图像提取多尺度特征。特征经过多个映射头(map2style)分别预测 W+W^+ 中对应层级的 wiw_i

pSp 的输出直接是一个 StyleGAN 生成器可用的 W+W^+ 隐码,生成器冻结不更新。整个网络用大规模人脸数据(如 FFHQ)进行端到端训练。

应用方式#

pSp 提出”先反演后编辑”范式:先用编码器将图像反演到 W+W^+,然后在 W+W^+ 空间做预定义的语义编辑(如改变姿态、发型、表情),再通过生成器重建出编辑后的图像。这个范式将反演和编辑明确分离,编码器只需确保反演足够好,编辑在 W+W^+ 空间独立进行。

局限#

编码器一次性推理的速度远快于优化(毫秒级 vs 分钟级),但反演精度受限于编码器的泛化能力——训练集外的图像(极端姿态、遮挡、非人脸)可能映射到不准确的 W+W^+

GPEN(W+ + N 空间 + 生成器微调)#

GPEN(Global and Progressive Enhancement Network, CVPR 2021)针对盲人脸复原问题:输入严重退化的人脸图像,输出高清人脸。

两项关键设计#

W+ 空间 + N 空间联合使用:GPEN 使用编码器映射到 W+W^+ 空间重建整体人脸结构;同时保留(或隐式恢复)生成器中每层的噪声图 NN 来重建皮肤纹理。这种组合使 GPEN 在保持身份的同时恢复精细的皮肤细节。

联合微调生成器:pSp 冻结生成器;GPEN 在训练阶段同时对编码器和生成器做微调(fine-tune),使生成器适应退化图像的分布。这使得 GPEN 在面对极端退化(大面积模糊、大程度降采样)时仍然能生成合理的人脸。

方法演化关系#

方法隐空间推理方式生成器任务速度
PULSEZ逐张优化冻结人脸超分慢(分钟级)
pSpW+编码器一步冻结反演 + 编辑快(毫秒级)
GPENW+ + N编码器一步微调人脸复原快(毫秒级)
GAN反演:PULSE、pSp与GPEN
https://biscuit0613.github.io/posts/cv/cv-gan-inversion/
作者
Biscuit
发布于
2026-07-01
许可协议
CC BY-NC-SA 4.0
GAN图像编辑:从反演到操控
GAN隐空间:Z、W、W+、F与N