cyclegan、ptgan、stargan、數據不夠gan來湊

目錄

1、普通gan

2、cyclegan

3、ptgan

4、stargan


1、普通gan

2cyclegan

個生成模型,兩個個判別

注意:

兩個生成模型,兩個個判別器

兩個判別器,其中一個判別器只能判別斑馬,另外一個只能判別普通馬

判別器模型很簡單,生成器損失函數如下:

self.g_loss = self.criterionGAN(self.DA_fake, tf.ones_like(self.DA_fake))                    
+ self.criterionGAN(self.DB_fake, tf.ones_like(self.DB_fake))                 
 + self.L1_lambda * abs_criterion(self.real_A, self.fake_A_)               
  + self.L1_lambda * abs_criterion(self.real_B, self.fake_B_) 

效果:

有這種趨勢吧,細心調一下模型會有更好的效果,挺好玩的。作者弄了個界面,上面有很多應用展示:

https://junyanz.github.io/CycleGAN/  

3ptgan

提出了一種針對於行人重識別的生成對抗網絡 PTGAN,使用 GAN 將一個數據集的行人遷移到另外一個數據集

可以實現不同 ReID 數據集的行人圖片遷移,在保證行人本體前景不變的情況下將背景轉換成期望的數據集 style

另外本文還提出一個大型的 ReID 數據集 MSMT17,這個數據集包括多個時間段多個場景,包括室內和室外場景,是一個非常有挑戰的數據集

MSMT17 數據集有以下幾個特性:

數據採集時長約爲 180 小時

總共有 15 個相機,其中 12 個室外相機,3 個室內相機

行人框由 Faster RCNN 機標完成

最後總共有 4101 個行人的 126441 bounding boxes

 首先 PTGAN 網絡的損失函數包括兩部分:

首先第一部分是 LStyle,這個就是標準的 CycleGAN 的判別 lossλ1 是平衡兩個損失的權重。

其中 M(a) M(b) 是兩個分割出來的前景 maskID loss 將會約束行人前景在遷移過程中儘可能的保持不變

self.g_loss = self.criterionGAN(self.DA_fake, tf.ones_like(self.DA_fake)) 
 + self.criterionGAN(self.DB_fake, tf.ones_like(self.DB_fake)) 
 + self.L1_lambda * abs_criterion(self.real_A, self.fake_A_)
 + self.L1_lambda * abs_criterion(self.real_B, self.fake_B_)
 + self.L2_lambda * mae_mask_criterion(self.real_A, self.fake_B, self.mask_A) 
 + self.L2_lambda * mae_mask_criterion(self.real_B, self.fake_A, self.mask_B)

ptgan生成網絡的損失函數,和cyclegan差別在後面兩項。

4stargan

提出問題:

       StarGAN的引入是爲了解決多領域間的轉換問題的,之前的CycleGAN等只能解決兩個領域之間的轉換,那麼對於含有C個領域轉換而言,需要學習C*(C-1)個模型,但StarGAN僅需要學習一個。

創 新 點:

     StarGAN生成器模型加入了一個域的控制信息

     鑑別器不僅僅需要學習鑑別樣本是否真實,還需要對真實圖片判斷來自哪個

1、將輸入圖片x和目標生成域c結合喂入到生成網絡G來合成fake圖片

2、將fake圖片和真實圖片分別喂入到鑑別器DD需要判斷圖片是否真實,還需要判斷它來自哪個域

3、與CycleGAN類似,還有一個一致性約束,將生成的fake圖片和原始圖片的域信息c'結合起來喂入到生成器G要求能輸出重建出原始輸入圖片x

效果:

 這篇論文也很好玩哦。。。end

 

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