---恢復內容開始---
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
---恢復內容結束---