StarGAN论文
目錄一覽
- 摘要
- 1.介紹
- 術語解釋
- 數據集
- 一對一圖像轉換的不足
- 針對以上不足的StarGAN優勢
- 論文的貢獻
- 2.相關基礎知識
- 生成式對抗網絡GAN
- 條件生成式對抗網絡CGAN
- 圖像翻譯
- 3.StarGAN
- 3.1多域單數據集的圖像翻譯
- 對抗損失(adv)
- 域分類損失(cls)
- 重建損失(rec)
- 完整的損失
- 3.2多域多數據集的圖像翻譯
- 掩碼向量mask vector
- 訓練策略
- 4.操作
- GAN改進(梯度懲罰的對抗損失)
- 網絡結構
- 5.實驗
- 5.1Baseline Models
- 5.2數據集
- CelebA
- RaFD
- 5.3訓練
- 5.4在CelebA的訓練結果
- 5.5在RaFD的訓練結果
- 定性評估
- 定量評估
- 5.6在CelebA+RaFD的訓練結果
- 6.結論
論文: StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
論文原始Pytorch版代碼: link
Tensorflow版代碼: link
摘要
最近很多研究在圖像翻譯方面取得了巨大成功,然而現有的模型都是針對兩個一對一領域的圖像轉換。它們在多領域轉換需要多次重新對兩兩領域構建訓練網絡,缺少可擴展性和魯棒性。為了解決這樣的問題,提出星形StarGAN,做到只用單一網絡就實現多領域的圖像翻譯。StarGAN允許同時對具有不同域的多個數據集在一個網絡上訓練。對比現存的模型,StarGAN展現了高質量和靈活性。
1.介紹
屬于圖像翻譯(image-to-image translation)應用
在StarGAN上同時訓練CelebA和RaFD,第1列和第6列是輸入,注意7,8,9是使用RaFD的標簽來合成CelebA圖像。如上圖,左邊展現了輸入圖像轉換成金發、性轉、變老、白皮膚的結果;右邊展現了輸入圖像轉換成生氣、高興、害怕的結果。
術語解釋
Arrtibute屬性(圖像的意義特征):發色、性別、年齡
Attribute value屬性值(屬性的特定值):黑色/金色/棕色、男性/女性
Domain域(相同的屬性值):男性、女性
數據集
CelebA數據集有40個標簽,如發色、性別、年齡等。
RaFD數據集有8個標簽,如開心、生氣、悲傷等。
一對一圖像轉換的不足
1.k個域進行圖像翻譯時,一對一的轉換需要構建k*(k-1)個網絡;StarGAN只需要一個網絡。
2.一對一的轉換無法充分利用k個域的所有圖片,只能針對兩個域的圖片進行學習,這可能會對生成的圖像質量有影響。
3.一對一的轉換無法對不同數據集的域進行訓練,因為數據集都是部分標記的。
針對以上不足的StarGAN優勢
1.單個網絡
生成器G接受圖像和域信息作為輸入。其中,使用二進制或一位有效編碼(one-hot vector)的標簽來代表域信息。
訓練時,我們隨機地生成目標域標簽并訓練模型能夠將輸入圖像轉換成具有目標域特征的圖像。
2.跨數據集的多域訓練
通過在域標簽里增加掩碼向量來支持不同數據集的域之間的聯合訓練。忽略未知標簽并專注于特定的標簽。如官方圖的右邊,使用RaFD的標簽來合成CelebA的圖像。
論文的貢獻
1.使用一個生成器G和一個鑒別器D實現多域轉換。
2.使用添加了掩碼向量mask vector的域標簽方法能實現跨數據集的多域訓練。
3.在面部遷移方面的定性和定量結果顯示StarGAN模型優于其他模型。
2.相關基礎知識
生成式對抗網絡GAN
//
條件生成式對抗網絡CGAN
//
圖像翻譯
//
3.StarGAN
對D訓練
(a)D對真假圖片進行判別,真圖片判真,假圖片判假,真圖片被分類到相應域
對G訓練
(b)真圖片+目標標簽c進入G生成假圖片
(c)假圖片+原始標簽c又進入G生成重構圖片
(d)D對假圖片進行判別,判假圖片為真
3.1多域單數據集的圖像翻譯
生成器G在隨機目標域標簽c的控制下將輸入圖像下轉化為輸出圖像y,G(x, c) → y。
隨機產生的c讓G靈活地對輸入圖像進行轉換。
輔助分類器允許鑒別器D控制多個域,即在源和域標簽上鑒別器D都產生概率分布,D : x → {Dsrc(x), Dcls(x)}。
對抗損失(adv)
生成器G以輸入圖像x和目標域標簽c為條件生成圖像G(x, c),而鑒別器D嘗試區分真實圖像x和偽造圖像y。
Dsrc(x)為D在給到D的源概率分布。
生成器G嘗試最小化此目標,而鑒別器D嘗試最大化它。
域分類損失(cls)
目標是令輸出圖像y符合目標域標簽c的分類。
為了達到這個條件,我們在鑒別器D上添加了一個輔助分類器并通過優化D和G的損失來加強域分類。
即域分類損失分為兩部分:
用于優化D的針對真實圖像的域分類損失
Dcls(c’|x)為通過D計算的在域標簽概率分布。
通過最小化這個目標,D學習將真實圖像x分類為對應的原始領域c’。
我們假設輸入圖像和標簽對(x,c’)是由訓練數據給出。
用于優化G的針對偽造圖像的域分類損失
G嘗試最小化此目標以生成可歸類為目標域c的圖像。
重建損失(rec)
通過最小化上面的對抗損失和分類損失并不能保證僅更改輸入圖像中與域相關的部分而保留輸入圖像的內容。
為了解決這個問題,我們在生成器引入一個周期一致性損失
其中G接受偽造圖像G(x,c)和原始域標簽c’作為輸入,嘗試重建原始圖像x。
我們采用L1規范作為重建損失。
注意我們將兩次使用生成器G,第一次是首先將原始圖像轉換為目標域中的圖像,第二次是從翻譯后的圖像中重建原始圖像。
完整的損失
將目標函數寫為優化D和G的形式
與對抗性損失相比,需要參數 λcls and λrec分別控制域分類損失和重建損失的相對比例。
在所有實驗中,我們使用λcls= 1和λrec= 0。
3.2多域多數據集的圖像翻譯
對數據集可能出現的問題是數據集僅了解部分標簽信息。如CelebA有發色和性別之類的標簽信息,但沒有RaFD的表情標簽信息,反之亦然。
掩碼向量mask vector
為了解決此問題,我們引入了一個掩碼向量 m,該向量允許StarGAN忽略未指定的標簽,并專注于特定數據集提供的明確已知的標簽。
在StarGAN中,我們使用n維一位向量表示 m,其中n是數據集的數量。
我們將標簽的統一版本定義為矢量
ci表示第i個數據集的標簽。
已知的ci標簽可用于二進制屬性或分類屬性。
剩下的n-1個未知標簽,賦值0。
在我們的實驗中,我們利用CelebA和RaFD數據集,其中n為2。
訓練策略
使用上述的c作為生成器的輸入,G將會忽略未知的標簽專注于給定的標簽。
G除了c的大小不同,其余均與單個數據集訓練時相同。
擴展了鑒別器D輔助分類器在所有數據集標簽的生成概率分布,鑒別器D僅嘗試最小化與已知標簽的分類錯誤。例如,當訓練CelebA中的圖像時,鑒別器D僅最小化與CelebA屬性標簽相關的分類錯誤,而不管與RaFD相關的表情屬性。
通過在CelebA和RaFD之間進行交替,鑒別器將學習兩個數據集的所有區分特征,而生成器將學習控制這兩個數據集中的所有標簽。
4.操作
GAN改進(梯度懲罰的對抗損失)
將原始的GAN替換成有梯度懲罰的Wasserstein GAN,其對抗損失為
其中x?是沿一對真實圖像和生成圖像之間的直線均勻采樣的。
對于所有實驗,我們均使用λgp= 10。
網絡結構
沿襲自CycleGAN,StarGAN的生成器網絡由兩個卷積層組成,其步長為2,用于下采樣;六個殘差塊;兩個轉置卷積層,步長為2,用于上采樣。
我們對生成器使用實例規范化,但對鑒別器不使用規范化。
我們將PatchGAN用于區分網絡,該網絡對本地圖像補丁是真實的還是偽造的進行了分類。
5.實驗
5.1Baseline Models
//DIAT
//CycleGAN
//IcGAN
5.2數據集
CelebA
//
RaFD
Radboud人臉數據庫(RaFD)[13]包含從67位參與者那里收集的4,824張圖像。
每個參與者在三個不同的注視方向上做出八個表情,這些表情是從三個不同的角度捕獲的。
我們將圖像裁剪為人臉居中的256×256,然后將其調整為128×128。
5.3訓練
所有模型均使用Adam進行訓練,其中β1= 0.5和β2= 0.999。
對于數據增強,我們以0.5的概率水平翻轉圖像。
在五次鑒別器更新之后,我們執行了一次生成器更新。
所有實驗的批大小均設置為16。
當在CelebA中訓練時,前10代的學習率為0.0001,它會在之后的10代線性衰減至0。而在RaFD中,為了彌補數據缺失,我們將前100代的學習率設為0.0001,并讓其在后100代中線性衰減至0。
整個訓練在一個NVIDIA Tesla M40 GPU上進行,耗時約一天。
5.4在CelebA的訓練結果
//
5.5在RaFD的訓練結果
為了比較StarGAN模型和基準模型,我們將輸入域固定為“中性”表情,目標域在其余七個表情中。
定性評估
StarGAN清楚地生成了最自然的表情,同時適當地保持了輸入的個人身份和面部特征。 雖然DIAT和CycleGAN主要保留輸入的身份,但它們的許多結果顯示為模糊的,不能保持輸入中所見的清晰度。 IcGAN甚至無法通過生成男性圖像來保留圖像中的個人身份。
我們認為,StarGAN在圖像質量上的優勢是由于其來自多任務學習設置的隱式數據增強效果。
RaFD圖像包含相對較小的樣本大小,例如每個域500張圖像。在兩個域上進行訓練時,DIAT和CycleGAN一次只能使用1,000張訓練圖像,而StarGAN可以在所有可用域中總共使用4,000張圖像進行訓練。
這使得StarGAN可以保持生成的輸出的質量和清晰度。
定量評估
為了進行定量評估,我們計算了合成圖像上面部表情的分類誤差。
我們使用ResNet-18架構在RaFD數據集上訓練了一個面部表情分類器(用于訓練和測試集的分割率為90%/ 10%),結果達到了近99.55%的精確度。
然后,我們使用相同的訓練集訓練了每個圖像翻譯模型,并在相同的,看不見的測試集上執行了圖像翻譯。
最后,我們使用上述分類器對這些翻譯圖像的表達進行分類。
從表中可以看出,我們的模型實現了最低的分類誤差,這表明我們的模型在所有比較的方法中產生了最真實的面部表情。
我們模型的另一個重要優點是,根據所需參數的數量具有可擴展。
表的最后一列顯示,StarGAN學習所有翻譯所需的參數數量比DIAT小7倍,比CycleGAN小14倍。
這是因為StarGAN僅需要一個生成器和鑒別器對,而不管域的數量如何,而對于跨域模型(如CycleGAN),則應該為每個源-目標域對訓練一個完全不同的模型。
5.6在CelebA+RaFD的訓練結果
//
6.結論
1.一個生成器和一個鑒別器實現多域轉換(可擴展性)
2.圖像質量更高(多任務的泛化能力)
3.掩碼向量實現跨數據集的多域控制
參考:
https://blog.csdn.net/weixin_42445501/article/details/82748225
https://blog.csdn.net/jialibang/article/details/81303847
總結
- 上一篇: sis最新ip地址2020入口一_202
- 下一篇: 小学计算机技术感想,小学信息技术教学经验