歡迎光臨
每天分享高質量文章

GAN做影象翻譯的一點總結

作者丨洪佳鵬

學校丨北京大學

研究方向丨生成式對抗網路

本文經授權轉載自公眾號「學術興趣小組」。

如今,隨著 GAN 在生成清晰影象(sharp images)上的成功,GAN 在影象翻譯任務上的方法越來越多,pix2pix,CycleGAN,UNIT,DTN,FaderNets,DistanceGAN,GeneGAN,pix2pixHD,StarGAN 等等。現在的方法太多了,影象質量也從 64×64 解析度一路做到了 1024×2048。


我關註這個方向已經超過半年了,在這裡總結一點小經驗:


關於生成高質量影象


這裡不談怎麼調參能夠得到更好的結果,這裡談兩個不用經過調參就能獲得不錯效果的方法。


有三個可以借鑒的經驗,其一來自於 pix2pixHD,採用 multi-scale 的 Discriminator 和 coarse2fine 的 Generator 能夠有效幫助提升生成的質量


所謂 multi-scale 的 Discriminator 是指多個 D,分別判別不同解析度的真假影象。比如採用 3 個 scale 的判別器,分別判別 256×256,128×128,64×64 解析度的影象。至於獲得不同解析度的影象,直接經過 pooling 下取樣即可。


Coarse2fine 的 Generator 是指先訓一個低解析度的網路,訓好了再接一個高解析度的網路,高解析度網路融合低解析度網路的特徵得到更精細的生成結果。具體介紹可以參考 pix2pixHD [1]


下圖以及題圖是 CelebA 資料上交換屬性的實驗,影象解析度 256×256,如果單個 Discriminator,生成質量很差,加上 multi-scale 之後生成質量有了很大提升,並且沒有經過調參哦。


△ 圖1:交換劉海

△ 圖2:交換眼鏡

其二是採用 progressive growing 的訓練方式,先訓小解析度,再逐漸增加網路層數以增大解析度,這個跟 coarse2fine 有點像。具體可以參看 PGGAN [2],或者這裡


其三則是借鑒 LAPGAN 的做法,從低解析度起步,透過不斷生成高解析度下的殘差,累加得到高解析度。圖中 z1,z2,z3 是不同解析度的輸入。這個做法還沒有嘗試過,不知道生成質量怎樣,圖中的虛線是我認為可能不必要的連線。

關於生成樣本多樣性


這裡其實有兩個問題,一個是多模態多樣性,一個是屬性強弱的多樣性。


對於多模態多樣性,現有的技術不多,總結起來有三種。


其一,引入 noise,透過變分的方式讓 noise 得到表達,獲得多樣性。這個方法來自於 BicycleGAN [3] 的 cVAE-GAN。


△ 圖3:圖片來自於 BicycleGAN [3]

其二,引入 noise,透過回歸的方法在生成影象上預測所引入的 noise。這個方法失敗率比較高。當然,它也可以跟第一種方法結合。具體介紹參考 BicycleGAN [3] 的 cLR-GAN。


△ 圖4:圖片來自於 BicycleGAN [3]

前兩種方法都比較容易想到。在文章出來以前,我也曾經嘗試過第二種方法,但是沒有 work。這也印證了它失敗率高。


第三種方法是透過交換來實現多模態。交換的影象可以是多種多樣,一個不帶屬性的圖,可以透過跟具有不同型別的劉海(眼鏡、帽子等)的圖片進行交換,以給標的人物加上不同型別的劉海(眼鏡、帽子等)。這個方法可以參考 GeneGAN [4] 或者 DNA-GAN [5]。題圖就是一個交換屬性的例子。


另一種多樣性是屬性強弱。對於需要輸入 label 的生成方法(如 FaderNets,StarGAN),可以透過控制喂給生成器的 label 強弱來得到生成影象的屬性強弱。


關於屬性強弱,有一類方法比較特殊,它沒有辦法實現,那就是 CycleGAN,因為它只需要輸入影象,並不需要輸入 label,沒有控制 label 強弱的操作。


下麵介紹一種原創的方法,能夠對 CycleGAN 引入屬性強弱的控制(不打算寫成論文,因為沒有什麼特別的貢獻,不想灌水。如使用該方法請註明出處)。


我們透過精簡 CycleGAN 來實現,以兩個域為例,原始 CycleGAN 需要 2 個 Generator 和 2 個 Discriminator,我們不難發現,可以把域轉換稱 condition,這樣只需要一個 Generator 和 Discriminator 了。


不妨給兩個域 X = {x_i} Y = {y_j} 分別編碼為 -1 和 1:


這樣就實現了 x -> y -> x 和 y -> x -> y 的 cycle。剩下的跟 CycleGAN 一樣即可。在測試的時候,就可以透過調節編碼的強度來控制屬性的強弱了。


關於 inference


模型訓練好了,測試的時候還有一道關要過。雖然現在很多影象翻譯方法訓練的時候都不需要配對資料,但是它們都需要弱監督,也就是需要提供 label。


而測試集上我們不一定有 label,這其實是很常見的一個問題,使用者上傳的影象不會給你打好標簽,況且還存在使用者「故意」製造錯誤標簽誤導演演算法(測試演演算法效能)的可能。有什麼解決方案呢?


我們很容易想到,加一個分類器,先分類具有什麼屬性,然後再轉換屬性。這個想法簡單,但是需要額外的網路,會增加計算量。


有沒有不引入分類器的方法呢?仍然以兩個域互轉的 CycleGAN 為例。訓練的時候,我們強迫生成器具有分類器的功能。具體來說,生成器需要需要額外做兩個任務(原創方法,沒有發表,使用請註明出處):


這兩項的 loss 為重構誤差:


這可以說是一種自監督。這麼做也就確保了生成器能夠處理「故意誤導」性的轉換,也實現了 label-free 的 inference。


下圖是季節轉換的一個例子。圖片從左到右依次為秋季原圖、轉成夏季圖、夏季圖轉回秋季圖、秋季原圖轉到秋季圖。

△ 圖5:label=0.5

△ 圖6:label=1.0

註意到上圖 checkerboard 效應很嚴重。怎麼解決 checkerboard 呢?

關於 inference

生成模型很容易產生 checkerboard 效應,影象翻譯任務尤為嚴重。據研究 [6],checkerboard 主要來自於反摺積(convolution transpose,通常也稱 deconvolution)操作,而跟對抗訓練關係不大。


[6] 指出,使用 nearest upsample + conv 替代 deconv 可以移除 checkerboard。在實驗中我發現這個替換確實發現能夠很好地解決問題。

△ 圖7:反摺積帶來了 overlap,從而引入了 checkerboard,圖來自於[6]

替代 deconv 需要引入其他的上取樣方法。上取樣的方法除了 nearest upsample 和 bilinear upsample 等型別之外,還有一種不叫上取樣,但是可以得到類似效果的操作:pixel shuffle [7]。它只改變了資料的擺放位置,(N, C*k^2, H, W) -> (N, C, kH, kW))


這也是實現影象從小到大的方法,但是實驗中我發現沒有效果,可能是因為 channel 數太少。註意到 channel 數是增長是很快的,為了減少視訊記憶體,減少摺積層數或者減少第一個摺積層的 channel 數都會影響網路的表達能力。

也就是說,目前比較好的解決方案還是使用 nearest upsample + conv 替代 deconv

參考文獻

1. Wang T C, Liu M Y, Zhu J Y, et al. High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs[J]. arXiv preprint arXiv:1711.11585, 2017.

2. Karras T, Aila T, Laine S, et al. Progressive growing of gans for improved quality, stability, and variation[J]. arXiv preprint arXiv:1710.10196, 2017.

3. Zhu J Y, Zhang R, Pathak D, et al. Multimodal Image-to-Image Translation by Enforcing Bi-Cycle Consistency[C]//Advances in Neural Information Processing Systems. 2017: 465-476.

備註:文章發表時是這個名字,但是後來改名了,找原文請搜 Toward Multimodal Image-to-Image Translation

4. Zhou S, Xiao T, Yang Y, et al. GeneGAN: Learning Object Transfiguration and Attribute Subspace from Unpaired Data[J]. arXiv preprint arXiv:1705.04932, 2017.

5. Xiao T, Hong J, Ma J. DNA-GAN: Learning Disentangled Representations from Multi-Attribute Images[J]. arXiv preprint arXiv:1711.05415, 2017.

6. https://distill.pub/2016/deconv-checkerboard

7. Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1874-1883.



  我是彩蛋 


解鎖新功能:熱門職位推薦!

PaperWeekly小程式升級啦

今日arXiv√猜你喜歡√熱門職位

找全職找實習都不是問題

 

 解鎖方式 

1. 識別下方二維碼開啟小程式

2. 用PaperWeekly社群賬號進行登陸

3. 登陸後即可解鎖所有功能

 職位釋出 

請新增小助手微信(pwbot01)進行諮詢

 

長按識別二維碼,使用小程式

*點選閱讀原文即可註冊

           

關於PaperWeekly


PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。


贊(0)

分享創造快樂