StarGAN v2: Diverse Image Synthesis for Multiple Domains 閱讀筆記和pytorch代碼解析

一.網絡框架

 

 

1.Generator

  Generator起到的作用是將source圖像轉化爲target圖片,其中target圖片具有style code,用s表示,同時符合source圖片x的內容。其中style code可以由mapping network F或者style encoder E生成。這裏我們用AdaIN將s加到G裏面,這使得我們可以添加多個style code。

  這裏介紹一下AdalN,即Adaptive Instance Normalization,其公式如下

    

 

其中,內層均值和標準差分別表示content image的特徵的均值和標準差,外層均值和標準差分別表示style image的特徵的均值和標準差。這個公式可以理解爲,先去風格化(減去自身均值再除以自身標準差),再風格化到style image的風格(乘style image的標準差再加均值 )。

2.Mapping Network

  Mapping Network起到的作用是輸入一個latent code z,也就是噪聲,根據給定的domain y,mapping network F生成一個style code s。這裏mapping network主要由MLP組成,具有多個輸出,提供到多個domain的變換。

3.Style Encoder

  style encoder和前面的mapping network是對應的,不同的是mapping network根據隨機噪聲和選定的domain輸出style code,而style encoder則根據圖片x和其對應的domain生成style code。和mapping network E一樣,style encoder E也支持根據不同的圖像生成不同的style code。

4.Discriminator

  這裏discriminator同樣支持多任務,有多個鑑別輸出,對應不同的domain。

 

二.訓練目標

1.Adversarial目標

  我們隨機選取一個噪聲z和一個目標domain y~。利用F生成style code s~。

         

  generator G用s~和選定的圖片x生成G(x,s~)。對抗損失表示爲

            

2.Style reconstruction

  定義如下風格重建誤差

     

  即要求轉換後,生成的圖片也能提取出同樣的style code。

3.Style diversifification

  爲了使generator生成更加多樣化的target圖片,引入如下的風格多樣化損失:

  

 

 

   省去了MSGan中的分母防止訓練不穩定,該項的目的是增加生成結果的多樣性。

4.Preserving source characteristics

  爲了保留原圖像的屬性,引入cycleGan中的循環一致性損失

           

  轉換後的圖像也能重建出原圖像,保證了原圖像其他屬性不丟失。

5.總目標

   

 

 

三.網絡結構

1.Generator

                                

2.Mapping Network

                             

3.Style encoder

                          

4.Discriminator

  和style encoder一樣。

 

四.代碼解析

 

 

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