飞桨Paddle论文复现—StarGAN v2: Diverse Image Synthesis for Multiple Domains

飞桨Paddle论文复现—StarGAN v2: Diverse Image Synthesis for Multiple Domains

免费课程
免费Tesla V100

解决问题

图像到图像转换:
1⃣️生成图像的多样性——将一个域的图像转化为目标域的不同图像
2⃣️在多个域的可伸缩性——支持多个目标域

StarGan v2 通用模块

飞桨Paddle论文复现—StarGAN v2: Diverse Image Synthesis for Multiple Domains
除a之外的所有模块都包含多个输出分支,其中一个分支是在训练相应域时选择的

  • a:生成器——将输入图像转换为反映特定于域的样式代码的输出图像
  • b:映射器(core module)——将一个潜在的代码转换成多个域的样式代码,在训练过程中随机选择其中一个域。
  • c:样式编码器 (core module)——提取图像的样式代码,允许生成器执行参考引导的图像合成
  • d:鉴别器——从多个域区分真假图像

AFHQ数据集

  • 数量:15000
  • 分辨率:512*512
  • 领域:猫(5000),狗(5000),野生动物(5000)
  • 领域:多个(>3)个域 & 多个(>=8)品种
  • 域:test—500,training—remaining
  • 图源:github

训练详情

  • batch size:8
  • iterations:100k
  • GPU:a single Tesla V100
  • implementation:PyTorch
  • CelebA-HQ:
    λcyc=1,
    λsty=1,
    λds=2(100K次迭代中线性衰减为零),
  • AFHQ:λcyc=1
  • R1的非饱和对抗性损失正则化:γ=1
  • Adam优化器:β1=0,β2=0.99
  • learning rate
    G/D/E : 0.0001
    F:0.000001
  • 对除D以外的所有模块的参数:使用指数移动平均值
  • 使用 He初始化—初始化所有模块的权重,并将所有偏差设置为零,除了与AdaIN的缩放向量相关联的偏差设置为0.000006

评估

对于参考引导合成,每个源图像都使用从目标域的测试集中随机采样的10个参考图像进行转换

  • 使用来自ImageNet预训练的Inception-V3 [44]的最后平均池化层的特征向量

  • 对于来自源域的每个测试图像,我们使用10个潜在向量将其转换为目标域,这潜在向量是从标准高斯分布中随机采样的

  • 计算每对图像域的FID值&报告平均值

  • LPIPS:使用从ImageNet预训练的AlexNet 中提取的特征之间的L1距离来衡量生成图像的多样性

  • 对于来自源域的每个测试图像,我们使用10个随机采样的潜在向量生成目标域的10个输出

  • 计算从同一输入(即45对)产生的所有输出之间的成对距离的平均值

  • 报告所有测试图像上LPIPS值的平均值。对于参考引导的合成,每个源图像都使用10个参考图像进行转换以产生10个输出

  • 其他结果:
    CelebA-HQ中:StarGAN v2以多种外观合成了源身份,反映了发型和化妆等参考样式
    飞桨Paddle论文复现—StarGAN v2: Diverse Image Synthesis for Multiple Domains
    AFHQ:结果遵循参考图像的品种和头发,并保留源图像的姿势飞桨Paddle论文复现—StarGAN v2: Diverse Image Synthesis for Multiple Domains

    样式之间的插值结果:youtube

网络结构

  • 生成器
    AFHQ:
    1⃣️四个下采样块,四个中间块和四个上采样块,都继承了**前的残差单元
    2⃣️我们分别使用实例标准化(IN)和自适应实例标准化(AdaIN)进行下采样和上采样
    3⃣️将样式代码注入所有AdaIN层,通过学习的仿射变换提供缩放和平移向量

    CelebA-HQ:
    1⃣️将下采样层和上采样层的数量增加了一个
    2⃣️删除了上采样残差块中的所有快捷方式,并使用基于自适应机翼的热图添加跳过连接

  • 映射器:由一个MLP组成
    MLP
    1⃣️K个输出分支(K:域数)
    2⃣️所有域之间共享四个完全连接的层,每个域四个特定的完全连接层。
    3⃣️潜在代码:16 ,隐藏层:512 ,样式代码:64
    4⃣️标准高斯分布中采样潜在代码
    5⃣️不对潜在代码应用像素归一化,这不会增加我们任务中的模型性能。若尝试特征归一化,会降低性能

  • 样式编码器:由有K个输出分支的CNN组成(K:域数)
    1⃣️在所有域之间共享六个预**剩余块,然后每个域一个特定的完全连接层。

    2⃣️不使用全局平均池来提取给定参考图像的精细样式特征上

    3⃣️表中输出尺寸“ D”设置为64,表示样式代码的尺寸
    飞桨Paddle论文复现—StarGAN v2: Diverse Image Synthesis for Multiple Domains

  • 鉴别器:多任务鉴别器,包含多个线性输出分支,包含六个带有泄漏的ReLU的预**残基,使用K个全连接层对每个域进行真实/伪分类(K:域数)

    1⃣️对于实/假分类,输出尺寸“ D”设置为1。
    2⃣️未使用任何特征归一化技术或PatchGAN,不能提高输出质量
    3⃣️多任务鉴别器比其他类型的条件鉴别器提供更好的结果