《StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation》论文笔记

---恢复内容开始---

Motivation

使用单组的生成器G和判别训练图片在多个不同的图片域中进行转换

效果确实很逆天,难怪连Good Fellow都亲手给本文点赞

Introduction

论述了Image translating的概念,GAN极大地提升了该领域的生成质量。具体到头像生成任务,作者定义attribute为图片特征(feature),如haircolor,age,gender等;domain被定义为 一系列共享了某个属性的图片,如女性图片和男性图片分属不同的domain。该文的训练数据集基于celebA(40 labels related to facial attributes such as hair color, gender, and age)和RaFD(8 labels for facial expressions such as ‘happy’, ‘angry’ and ‘sad’)。图1左边正是展示了由starGAN生成的图片怎样在celebA的各个不同域之间进行转换的例子,右边展示了交叉训练两个数据集,以把RaFD的表情域也应用在celebA的图片上面。

现有的GAN模型为了实现在k个不同的风格域上进行迁移,需要构建$k*(k-1)$个生成器,并且还不能跨数据集训练(标注不能复用)。StarGAN正是为了解决跨多个域、多个数据集的训练而提出的。在StarGAN中,并不使用传统的fixed translation((e.g., black-to-blond hair),而是将域信息和图片一起输入进行训练,并在域标签中加入mask vector,便于不同的训练集进行联合训练。本文贡献:

  • 提出StarGAN模型,使用单组GAN模型进行跨domain和跨数据集的训练
  • 展示了mask vector技术来实现上述的训练过程
  • 训练了角色的面部属性和面部表情特征的各种图片

Ralated Work

  • GAN(略)
  • CGAN(略)
  • Image2Image translating

          pixel2pixel coGAN DiscoGAN CycleGAN

 

模型描述

1.损失函数

adv损失函数

和普通的GAN没太大区别,对G来说,输入为图片x和标签信息c。

Domain Classification 损失函数

对于真实图片:

对于生成图片:

Recstruntion 损失

使用了cycle损失的概念 ,看来循环训练的概念确实可以高质量的保留原有图片特征!!!!!!!!

 

综合上述各损失函数,得到StarGAN的总损失函数表达:

 

 2.在多数据集上训练模型

对于不同的数据集来说,每一个数据集只能知道全体标注的一部分。如celebA并不知道RaFD中关于表情的“愤怒” “开心”等标签。但是在计算损失函数时,我们需要知道全部的标签信息,作者使用mask vector来解决这一问题。在StarGAN中构建了一个n-dimensional的one-hot vector m,其中n是数据集的数量(在论文中使用了两个数据集,故n=2),对于未知的数据集标签,统统设置为0向量

训练时,生成器G将忽略掉传入的C向量中的0向量,犹如在训练单数据集一样,而判别器D的auxiliary classifier则生成所有数据集的全部标签概率,但只和已知的真实标签做loss计算。

训练模型采用了Wasserstein GAN

 

 

 

 

 

---恢复内容结束---

posted on 2017-12-04 16:49  体态的滑翔机  阅读(5550)  评论(0编辑  收藏  举报