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,其公式以下app

    

 

其中,内层均值和标准差分别表示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的变换。dom

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。3d

4.Discriminator

  这里discriminator一样支持多任务,有多个鉴别输出,对应不一样的domain。code

 

二.训练目标

1.Adversarial目标

  咱们随机选取一个噪声z和一个目标domain y~。利用F生成style code s~。orm

         

  generator G用s~和选定的图片x生成G(x,s~)。对抗损失表示为blog

            

2.Style reconstruction

  定义以下风格重建偏差图片

     

  即要求转换后,生成的图片也能提取出一样的style code。get

3.Style diversifification

  为了使generator生成更加多样化的target图片,引入以下的风格多样化损失:

  

 

 

   省去了MSGan中的分母防止训练不稳定,该项的目的是增长生成结果的多样性。

4.Preserving source characteristics

  为了保留原图像的属性,引入cycleGan中的循环一致性损失

           

  转换后的图像也能重建出原图像,保证了原图像其余属性不丢失。

5.总目标

   

 

 

三.网络结构

1.Generator

                                

2.Mapping Network

                             

3.Style encoder

                          

4.Discriminator

  和style encoder同样。

 

四.代码解析

相关文章
相关标签/搜索