Cycle GAN 與 Star GAN

1. Cycle GAN與圖像風格轉換

  WGAN後,GAN生成圖像不穩定的問題已基本解決,剩餘的缺點以難以蓋過它的優點。在這種情況下,Jun-Yan Zhu等人將GAN的應用推廣到圖像風格轉換領域,並基於此給出了許多有趣的應用。圖像風格轉換一般需要一對圖像作爲訓練樣本,但是成對的訓練樣本在現實生活中往往是難以得到的,鑑於此,作者在Cycle GAN中取消了成對樣本的限制,直接使用具有不同風格的樣本對進行訓練,完成圖像風格轉換,這使得訓練模型的前期準備工作變得輕鬆許多。本文首先介紹圖像風格轉換所遇到的問題及Cycle GAN,在此基礎上介紹Cycle GAN中存在的計算代價高等問題,最後介紹一種能夠彌補該缺點的方法:Star GAN

1.1 一致穩定損失(Cycle Consistent Loss)

  圖像風格轉換在是指將一幅圖像轉換成具有另一種風格的圖像,如灰度轉彩色,塗鴉畫轉化爲梵高風格的圖像等。經過圖像處理、信號處理界多年的研究,提出過一種有監督學習方法,該方法需要成對圖像作爲訓練數據,如下圖左所示。但是工程實踐中,由於各種各樣的原因,很難得到成對的訓練數據,現有的數據集規模十分小,並且數量不多,這啓發作者尋找一種無需成對圖像做訓練的算法。
  作者認爲,對要進行圖像風格轉換的兩個域之間存在某種隱式關係,去除成對圖像作爲輸入後,雖然難以通過有監督學習獲得兩張圖像之間風格的映射函數,但是可以通過兩種不同風格的一系列圖像獲得兩種風格之間的映射關係。基於此,訓練樣本的收集可以不限定在同一物品的圖像,而將其擴大到具有不同風格的圖像,如下圖所示。設來自兩個不同域(風格)XX分別是 和 的映射。Cycle GAN同時訓練這兩個映射,並保證使用這兩個映射覆原圖像時能夠較好地復原原圖像。一致穩定損失較好地解決了風格轉換時解空間太大導致轉換的圖像面目全非的現象。

1.2 Cycle GAN

  在加入一致穩定損失後,作者提出一種基於GAN的圖像風格轉換模型,即Cycle GAN。該模型接受一對風格不同且畫面描述內容也不同的圖像,同時初始化兩個判別器D1D1,並按生成器-判別器的順序依次循環訓練這四個網絡。Cycle GAN總共有3個損失函數,它們分別是:

  • 對抗損失
      該損失函數與一般GAN的損失函數相同,判別器盡力區分真假圖片而生成器盡力迷惑之。下式給出了訓練GG並生成兩個判別器和兩個生成器。
      Step2:首先訓練兩個判別器。將真實圖像和經過風格轉換的圖像送入兩個判別器中,藉助對抗損失優化判別器權重。
      Step3:根據對抗損失、一致穩定損失和Identity Mapping Loss優化生成器權重。
      Step4:重複步驟2~3直到達到最大迭代次數。
      結果如下圖所示,Cycle GAN能夠成功的轉變圖像風格,並且加入Identity Mapping Loss後,得到的圖像顯得更加穩定,不會出現整個圖像色調都改變的情況。
      Cycle
      除數據收集方式和訓練算法不同外,Cycle GAN中的生成器與普通的GAN也有一些不同。普通GAN模型以一個隨機噪聲作爲輸入,但Cycle GAN是以要轉換的圖像作爲輸入,這種情況下網絡結構會發生一定變化,原始接受隨機噪聲作爲輸入的層被改爲一系列卷積層進行降採樣,當圖像大小降到一定程度後,就加入類似殘差神經網絡的網絡塊,這些網絡塊不降低輸入數據的尺寸,僅僅是一些卷積和殘差合併操作,最後加入升採樣的轉置卷積層將圖像恢復到輸入圖像大小。如此改動後的網絡結構就可以替換原始生成器的網絡結構用於圖像風格轉換了。

2. 多屬性轉換—Star GAN

  Cycle GAN僅僅是對圖像進行風格一對一的轉換,當想要一對多地轉換圖像風格時,往往面臨巨大的時間花費。Star GAN很好地解決了這個問題,其基本思想來自cGAN,將特定的風格標籤作爲額外的信息一起傳入網絡,並與圖像特徵進行融合,最終取得了很好的效果。

2.1 Star GAN

  如果我們有四種風格的圖像,希望藉助Cycle GAN能將一種圖像轉換成另一種圖像,那麼完成此任務需要訓練4*(4-1)=12個模型。四種風格之間兩兩組成一個風格轉換對,形成有向完全圖。可見,隨着要轉換風格數目的增多,使用Cycle GAN將被要訓練的模型數目這隻攔路虎擋下。
  另一方面,Cycle GAN處理多風格圖像轉換任務時,由只能每兩種風格之間訓練兩個模型,所以與這兩種風格無關的數據對模型訓練並沒有做出貢獻,大量的數據被浪費而得不到充分利用。
  爲了減少模型的數目,一種比較自然的想法是把Cycle GAN轉換成一對多的模型,即訓練一次就能將一種風格的圖片隨意轉換成其他風格。基於此,Yunjey Choi等人[2]從cGAN中得到啓發,提出Star GAN。該模型由判別器和生成器共同組成,判別器用於區分輸入圖片的真假,同時,還要判斷圖像所屬的風格類別;生成器接收要轉換風格的圖像和希望轉換的屬性。將它們經過特徵映射和融合後,傳入深層卷積網絡中進行訓練,生成假圖像。這種模型就如下圖右方顯示的那樣,一個生成器可以生成多種模型,大大降低了模型訓練的數目。
  Star
  Star GAN總共包含三個損失:
  1. 對抗損失
  與傳統GAN模型沒有區別,這裏不再贅述。
  2. 域分類損失
  對於給定圖像xx
  整個網絡的訓練過程如下圖所示:
  train
Step1:根據輸入的真實圖像訓練判別器,用於判斷輸入圖片真假並給出圖片類別,更新判別器權重。
Step2:根據目標風格標籤和輸入圖像,生成假圖像,並用假圖像重新復原原始風格圖像,計算復原損失。
Step3:用假圖像迷惑判別器,獲得對抗損失與對應的分類損失,更新生成器和分類器權重(注意 對兩個模型均有影響)。
Step4:重複步驟2~3直到達到最大迭代次數。
作者在CelebA數據集上,與當前較爲流行的幾種GAN模型實現效果進行了對比,結果如下:
reS
  Star GAN無論是在生成圖像的色彩方面,還是效果方面,都較前幾種模型有優勢。除了能夠實現一轉多,Star GAN還能借助Mask Vector實現將不同數據集的不同風格進行轉換。

2.2 Mask Vector與跨數據集屬性轉換

  實現跨數據集風格轉換主要問題在於不同數據集有不同的標籤,這些標籤可能根本沒有關係。
  作者拿CelebA數據集與RaFD舉例,CelebA主要標註了人的外貌、五官方面的特徵,而RaFD主要標註了人的表情。二者沒有關係,很難對圖像標籤進行One-hot編碼,生成圖像和求解復原損失也就無從談起。
  爲了解決這個問題,作者提出了一種Mask Vector,該向量基本形式如下:

c~=[c1,...cn,m](11)(11)c~=[c1,...cn,m]
設置爲不正確的[1,0],即標註爲CelebA數據集時,模型就專注於轉換輸入圖像的年齡特徵而非表情特徵。
  StarMul
  總的來說,Star GAN通過加入One-hot條件特徵和Mask Vector以較低的訓練代價實現了跨數據集的圖像風格轉換,是圖像風格轉換中較爲成功的案例之一。
  如果各位在閱讀過程中對文章排版和公式顯示效果不滿意,我這裏上傳了一份綜合前4篇博文的PDF可供下載,收8個資源分。^-^
  http://download.csdn.net/download/opensuse1995/10236456

參考文獻:
[1] Jun-Yan Z., Park T., Isola P., et.al. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks[J]. arXiv preprint arXiv:1703.10593, 2017.
[2] Choi Y., Choi M., Kim M., et.al. StarGAN_Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation[J]. arXiv: 1711.09020, 2017.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章