來源:arxiv
編輯:大明、鵬飛
【新智元導(dǎo)讀】最新的神奇變臉工具StarGAN第二版來了!這次不僅可以人變?nèi)耍€能實現(xiàn)貓、狗、虎、豹各種動物無縫切換,輸入圖片給進去,想變什么自己挑!數(shù)據(jù)集和Github資源已開放。戳右邊鏈接上新智元小程序 了解更多!
貓變狗、狗變虎、虎變豹,男人變女人,無縫切換是個什么神奇體驗?
最近,一家名為Clova Research的機構(gòu)的研究團隊就像讓用戶體驗一把這種神奇,他們提出的StarGAN v2圖像轉(zhuǎn)換模型能夠?qū)崿F(xiàn)這一點。
StarGAN v2: 青出于藍,同時解決多樣性和擴展性
優(yōu)秀的圖像-圖像轉(zhuǎn)換模型需要學(xué)習(xí)不同視覺域之間的映射,要同時滿足以下屬性: 1)生成圖像的多樣性和 2)在多個域上的可擴展性。現(xiàn)有方法一般只能解決這兩個問題的其中一個,即要么對于所有域,其呈現(xiàn)的多樣性有限,要么需要使用多個模型。
StarGAN v2可以同時解決這兩個問題,在CelebAHQ面部和新的動物面部數(shù)據(jù)集(AFHQ)上進行的實驗表明,StarGAN v2在圖像質(zhì)量、多樣性和可擴展性方面較基線標(biāo)準(zhǔn)和過去的模型均實現(xiàn)了提升。為了更好地評估模型,還發(fā)布了AFHQ數(shù)據(jù)集,該數(shù)據(jù)集具有較大域間和域內(nèi)差異的高質(zhì)量動物面部圖像。
考慮到每個圖像域中的不同樣式,理想的圖像-圖像轉(zhuǎn)換應(yīng)該能夠合成圖像。但是,設(shè)計和學(xué)習(xí)此類模型是很復(fù)雜的,因為數(shù)據(jù)集中可能涵蓋大量圖像模式和領(lǐng)域。
Github資源地址:
https://github/clovaai/stargan-v2
為了解決圖片樣式的多樣性問題,過去的新方法向生成器加入了低維潛代碼,從標(biāo)準(zhǔn)的高斯分布中隨機采樣。但是,由于這些方法僅考慮了兩個域之間的映射,因此無法擴展到越來越多的域。例如,具有N個域,這些方法需要訓(xùn)練N(N-1)個生成器來處理每個域之間的轉(zhuǎn)換,從而限制了它們的實際使用。
為了解決可擴展性問題,有研究提出了統(tǒng)一的框架。StarGAN 是最早的模型之一,它使用一個生成器來學(xué)習(xí)所有可用域之間的映射。生成器將域標(biāo)簽作為附加輸入,并學(xué)習(xí)將圖像轉(zhuǎn)換為相應(yīng)的域。但是,StarGAN仍然需要學(xué)習(xí)每個域的確定性映射,這可能無法獲取數(shù)據(jù)分布的多模式性質(zhì)。在給定源圖像的情況下,它不可避免地在每個域中產(chǎn)生相同的輸出。
StarGAN v2可以同時解決這兩方面的問題,可以跨多個域生成不同的圖像。 該方法以StarGAN為基礎(chǔ),用特定域的樣式代碼替換原來的域標(biāo)簽,這些代碼可以表示特定域的各種形式。StarGAN v2引入兩個模塊,一個映射網(wǎng)絡(luò)和一個樣式編碼器。前者學(xué)習(xí)將隨機高斯噪聲轉(zhuǎn)換為樣式代碼,后者學(xué)習(xí)從給定的參考圖像中提取樣式代碼。
最后,利用這些樣式代碼,生成器會成功地在多個域上學(xué)習(xí)合成各種圖像(圖1)。StarGAN v2確實受益于新的樣式代碼的使用。與目前的SOTA方法相比,我們的方法可擴展到多個域,并且在視覺質(zhì)量和多樣性方面生成了性能更好的結(jié)果。
研究人員還提出了質(zhì)量更高、變化范圍更寬的動物面孔(AFHQ)新數(shù)據(jù)集,更好地評估域間和域內(nèi)差異較大的圖像-圖像翻譯模型的性能,并公布了數(shù)據(jù)集。
CelebA-HQ數(shù)據(jù)集和新收集的動物臉部(AFHQ)數(shù)據(jù)集上的各種圖像合成結(jié)果。第一列顯示輸入圖像,其余列是StarGAN v2合成的圖像。
StarGAN v2由四個模塊組成。(a)生成器將輸入圖像轉(zhuǎn)換為反映域特定樣式代碼的輸出圖像。(b)映射網(wǎng)絡(luò)將潛在代碼轉(zhuǎn)換為多個域的樣式代碼,其中一個是在訓(xùn)練期間隨機選擇的。(c)樣式編碼器提取圖像的樣式代碼,允許生成器執(zhí)行參考引導(dǎo)的圖像合成。(d)判別器從多個域中區(qū)分真實圖像和虛假圖像。
CelebA-HQ數(shù)據(jù)集上各種配置的性能。Frechet初始距離(FID)表示真實圖像和生成圖像的兩個分布之間的距離(越低越好),而學(xué)習(xí)到的感知圖像斑塊相似度(LPIPS)代表生成圖像的多樣性(越高越好)。
使用表1中的每種配置生成的圖像的視覺比較。請注意,給定源圖像,配置(A)-(C)提供單個輸出,而(D)-(F)生成多個輸出圖像
潛在指導(dǎo)合成圖片的定量比較。真實圖像的FID由訓(xùn)練集和測試集之間計算。注意,由于測試圖像的數(shù)量不足,它們可能不是最佳值。
CelebA-HQ和AFHQ數(shù)據(jù)集上潛指導(dǎo)圖像合成結(jié)果的定性比較。每種方法都使用隨機采樣的潛在代碼將源圖像(最左側(cè)列)轉(zhuǎn)換為目標(biāo)域。(a)前三行對應(yīng)于后三行中將男性轉(zhuǎn)換為女性,反之亦然。(b)從頂部開始的每兩行按以下順序顯示合成圖像:貓-狗,狗-野生動物、野生動物-貓。
目前作者只是在上面發(fā)布了論文的鏈接,還沒有給出StarGAN v2的實現(xiàn)代碼,手癢的小伙伴可以先來回顧一下用TensorFlow實現(xiàn)StarGAN代碼,只需要1天時間即可訓(xùn)練完。
TensorFlow模型的實現(xiàn)
要求:
- Tensorflow 1.8
- Python 3.6
> python download.py celebA
下載數(shù)據(jù)集
> python download.py celebA
訓(xùn)練
- python main.py --phase train
測試
- python main.py --phase test
- celebA 測試圖像和你想要的圖像同時運行
預(yù)訓(xùn)練模型
- 下載 celebA_checkpoint
結(jié)果 (128x128, wgan-gp)
女性
男性
預(yù)訓(xùn)練權(quán)重:
https://drive.google/open?id=1ezwtU1O_rxgNXgJaHcAynVX8KjMt0Ua-
訓(xùn)練時間:少于 1 天
硬件:GTX 1080Ti
Github資源:
https://github/clovaai/stargan-v2
論文地址:
https://arxiv.org/pdf/1912.01865.pdf


