cgan,stackgan,lapgan,cyclegan,pix2pixgan
- 1.Conditional GAN
- 1.1簡介
- 1.2網絡結構與訓練
- 1.3特點與用途
- 2.Stack GAN
- 2.1簡介
- 2.2網絡結構與訓練
- 2.3特點與用途
- 3.Lap GAN
- 3.1簡介
- 3.2網絡結構與訓練
- 3.3特點與用途
- 4.Pix2pix GAN
- 4.1 簡介
- 4.2 網絡結構和訓練
- 4.3 特點和用途
- 5.Patch GAN
- 6.Cycle GAN
- 6.1簡介
- 6.2網絡結構與訓練
- 6.3特點與用途
- 7.思考與待定
題記–如何生成高質量圖像,gan相關模型調研
1.基于散度距離的改進方案:f GAN, LSGAN, WGAN, WGAN-GP, SNGAN
2.基于網絡結構的改進方案:DCGAN, ImprovedDCGAN, SAGAN, BigGAN
3.由應用引發的改進方案:Conditional GAN, TripleGAN, StackGAN, LapGAN,PGGAN, SRGAN, CycleGAN,StarGAN
4.GAN在特征提取上的應用:InfoGAN,VAEGAN,BigGAN
1.Conditional GAN
Generative Adversarial Text to Image Synthesis [ICML 2016,http://arxiv.org/abs/1605.05396]
1.1簡介
論文:
條件GAN–生成的數據不僅要求逼真,還要求滿足一定的條件約束
文字約束–一只在奔跑的小狗;
圖像約束–生成圖像的框架輪廓約束,生成器就好像在輪廓的基礎上填充了顏色,繪制細節;
1.2網絡結構與訓練
生成網絡增加了條件輸入;
判別網絡用于判別生成的圖像與條件是否匹配,因此其需要三種類型的匹配對(生成圖像,匹配條件)(真實圖像,匹配條件)(真實圖像,不匹配條件);
訓練流程
1.3特點與用途
1.能生成符合條件的圖像,但是現有數據集合成pair出現的很少;TripleGAN是基于 CGAN 的改進,主要用于解決配對數據少的問題,會訓練一個圖像標注模型。
2.不能生成大分辨率的高清圖,圖像細節缺失;StackGAN 也是基于 CGAN 的改進,它主要想C-GAN無法生成高清圖的問題。
3.有一個觀點:CGAN可以避免所有的隨機噪聲很產生相同的樣本(模式坍塌問題),不同的條件,可以產生不同的圖。
**思考:**條件要是文字形式的,會涉及到NLP,文字的表示方式;條件如果是圖像,就是img2img的問題,類似于上色,填充簡單細節。
參考博文:https://blog.csdn.net/taoyafan/article/details/81229466
2.Stack GAN
2.1簡介
StackGAN 希望輸入一個描述語 c,能夠產生一張 256256 的清晰大圖。通過兩個階段堆疊來實現這個過程。
第一個階段輸入(c,z)產生一個 6464 的小圖x,
第二個節點輸入(c,x)產生一個256*256的大圖X
2.2網絡結構與訓練
由結構圖可見,對于獲得的 text_embedding,stackGAN 沒有直接將 embedding 作為
condition,而是用 embedding 接了一個 FC 層得到了一個正態分布的均值和方差,然后從
這個正態分布中 采樣 出來要用的 condition。這樣做實際是做了一個降維處理,避免原始embeding高維稀疏,導致模型過擬合。(為了避免過擬合在生成器的loss上增加了一個正太分布的正則項)
兩個階段的損失函數為:
2.3特點與用途
1.Conditioning Augmentation(CA) 條件增強技術
2.StackGAN 不能處理比較復雜的文本,李飛飛小組提出方法能處理更長更復雜的文本,并且有不錯的生成效果,論文地址:https://arxiv.org/abs/1804.01622。
思考:
1.要有同一張圖像的6464,256256大小的真圖。
2.感覺就像是兩個Conditional GAN 簡單的堆疊在一起,多增加了一個CA技術;
3.不要condition,直接級連的效果是不是等價于生成網絡層數加深?設計合適的級連結構,應該能夠生成合適大小的圖像才對呀?嘗試級連生成大分辨率的工作,在相關工作中應愛會介紹
參考博文:https://blog.csdn.net/a312863063/article/details/83574422
3.Lap GAN
3.1簡介
生成高分辨率圖像GAN模型的典型代表,利用拉普拉斯金字塔,由低分辨率生成高分辨圖像。金字塔的每一層都是一個C-GAN,其中下一級圖像的上采樣圖作為G的條件,生成本級真實圖像與上采樣圖像的殘差。
3.2網絡結構與訓練
采樣流程圖,自右向左分析
訓練流程,自右向左分析
3.3特點與用途
1.能生成較高分辨率的圖像,但是更高分辨率的圖像可能使用PGGAN,或者超分辨率GAN效果會更好一些。
2.實際都是C-GAN 的堆疊,只是G的條件是上采樣的圖,生成真圖和上采樣的殘差。
參考博文:https://zhuanlan.zhihu.com/p/94153155
4.Pix2pix GAN
4.1 簡介
從風格遷移說起:在深度學習興起后,16年有篇cvpr文章使用深度卷積網絡做風格遷移。隨著GAN網絡研究熱潮,人們開始研究使用gan 網絡做風格遷移。以下五個是比較典型風格遷移的工作。
pix2pix GAN (1611),CycleGAN (1703),DiscoGAN (1703),PAN( Perceptual Adversarial Networks)感知GAN (1706),StarGAN (1711)
pix2pix GAN 和 cycle GAN是同以作者,兩篇遞進式的工作。
pix2pix GAN工作出自Image-to-Image Translation with Conditional Adversarial Networks,實質還是用CGAN來做圖像轉換工作。
4.2 網絡結構和訓練
pix2pix gan 生成器和判別器的工作結構
pix2pix gan 損失函數,L1是True黑與生成黑的像素間l1范數距離。
4.3 特點和用途
1.pix2pix 主要做了G網絡結構的探索:Encoder-decoder 結構和U-net結構,圖像patch的操作
2.實質還是用CGAN來做圖像轉換工作。
參考博文:https://blog.csdn.net/on2way/article/details/78768221
5.Patch GAN
主要對判別網絡做了改進,D輸出N*N的矩陣,每個元素為True/False,表示輸入圖像中的感受野的真假。
思考:標簽該怎么打?真實圖像給一個NN的True塊,生成圖像給一個NN的False塊?
主要是patch 操作?和pix2pix gan 中的patch有什么異同。
參考博文:https://blog.csdn.net/xiaoxifei/article/details/86506955
https://blog.csdn.net/weixin_35576881/article/details/88058040
6.Cycle GAN
6.1簡介
用原始GAN結構在生成網絡層數較深時,可能生成與輸入差別較大的圖像,就不是風格遷移,而是改頭換面, 忽略了輸入圖像長什么樣子。
為了防止生成器學習到具有欺騙性的造假數據,需要保證生成器的輸出和原圖具有很高的相似性,就可以不丟失原圖的特征。
于是 CycleGAN 中加入了一個新的生成器,以第一個生成器的輸出作為輸入,希望輸出一個和原始輸入盡可能相似的圖。如果能夠還原回原始圖片,可以表明第一個生成器的輸出保留了大量原始圖片的特征,輸出結果是較為可靠的;而如果不能較好的還原回原始圖片,意味著第一個生成器輸出與輸入差別較大。
6.2網絡結構與訓練
單向cycle gan
雙向cycle gan(很多博文中都是這個結構)
6.3特點與用途
1.用來做風格遷移,在pix2pi的基礎上不需要pair的訓練樣本。
2.CycleGAN 存在一種問題,是它能學會把輸入的某些部分藏起來,然后在輸出的時候再還原回來。比較好理解,隱藏掉一些破壞風格相似性的“壞點”會更容易獲得判別器的高分。
思考:如何用實現圖像分辨率擴大的功能?
參考博文:https://blog.csdn.net/on2way/article/details/78768221
7.思考與待定
做高分辨率的實驗
1.cycle gan 似乎不是天生用來做分辨率變高的實驗的。
2.直接使用stack GAN,梯度信息傳不到前面–兩個生成器具分開訓練
3.CGAN的公式推導,如何與stein 變分合在一起–基本沒啥好推導的。
4.直接級連不需要條件的GAN–基本上沒有看到相關的文章
5.srgan 官網上提供了訓練好的超分辨率模型,可以嘗試一些圖像的超分辨率生成。但如果原圖是一團看不清的東西,基本也不了什么。
6.兩個網絡堆疊:兩個網絡同時訓練的比兩個網絡分開訓練難訓。改造了stack gan stage2 的GAN模型(去除條件輸入)堆疊模型在object101-airplane上表現好不錯,但是在cifar上的效果還是基本看不出來畫的是什么。
pg-gan,info gan 還沒有看多