【翻译】StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 摘要
 最近的研究表明了兩個領域內圖像到圖像轉換取得了顯著的成功。然而,現有的方法處理兩個以上的領域時在可伸縮性和魯棒性上有局限,因為每對圖像域都要構建不同的模型。為了解決這個局限,我們推出starGAN,一種新穎的、可擴展的方法,它可以僅使用一個模型對多個域執行圖像到圖像的轉換。StarGAN的這種統一模型架構可以僅在一個網絡中國訓練多個數據集的多個領域。這使starGAN與現有模型相比,轉換圖片的質量更高,擁有靈活地將輸入圖像轉換到任何目標域的新能力。我們的實驗證明了我們的方法在面部特征轉移和面部表情合成上的有效性。
1.介紹 Introduction
圖像到圖像轉換的任務是改變圖像上特定的部分,使給定的圖像變成另一張圖像,比如改變一個人的面部表情使他從微笑到皺眉(Fig.1),在引入生成性對抗網絡(GANs)之后,這項任務經歷了顯著的改進,其結果包括改變頭發顏色、從邊緣地圖重建照片和改變風景圖片的季節。
給定來自兩個不同域的訓練數據,這些模型學習將圖像從一個域轉換到另一個域。我們定義attribute表示圖片特征,例如頭發顏色、性別或年齡,定義attribute value表示為屬性的特定值,例如,黑色/金色/棕色表示頭發顏色,或男性/女性表示性別。定義domain為一系列共享了某個屬性的圖片,如女性圖片和男性圖片分屬不同的domain。
一些圖像數據集包含許多標記屬性。例如,CelebA數據集包含40個與面部屬性相關的標簽,如頭發顏色、性別和年齡,RaFD數據集有8個面部表情標簽,如“高興”、“生氣”和“悲傷”。這些設置使我們能夠執行更有趣的任務,即多域圖像到圖像的轉換,根據來自多個域的屬性更改圖像。圖1的前五列展示了CelebA圖像如何通過‘棕發’、‘性別’、‘年齡’‘白色皮膚’任意四個域之一進行轉化的。我們可以更進一步地從多個數據集訓練多個領域,例如,聯合訓練CelebA和RaFD圖像,使用在RaFD上訓練獲得的特征來改變CelebA圖像的面部表情,如圖1的最右邊的幾欄。?
然而,現有的各種模型在多領域圖像轉化問題上效率很低,現有的GAN模型效率低是因為為了實現在k個不同的風格域上進行遷移,需要構建k*(k-1)個生成器,圖2說明了如何訓練12個不同的生成器網絡在4個不同的域之間轉換圖像。同時,盡管存在如人臉形狀這樣可以可以從所有領域的圖像中學習到的全局特征,每個生成器也不能充分利用訓練數據,只能從k中選2個學習,這是生成網絡的效率很低。未能充分利用訓練數據可能會限制生成圖像的質量。此外,他們不能訓練來自數據集的域,因為每個數據集都有部分標記,將在3.2節進一步討論。
為了解決這一問題,我們提出starGAN,一種可以在多個域之間映射的生成對抗網絡。如圖2(b)所示,我們的模型僅用一個生成器訓練多個領域,學習所有獲得領域間的映射。這個思想很簡單,我們的模型沒有學習固定的轉換(例如,從黑色到金色的頭發),而是同時輸入圖像和域信息,并學習將輸入的圖像靈活地轉換到相應的域中。我們使用一個標簽(例如二進制或one-hot向量)來表示域信息, 在訓練期間,隨機生成一個目標域標簽,并訓練模型將輸入圖像靈活地轉換到目標域。這樣,我們可以控制域標簽,并在測試階段將圖像轉換到任何所需的域。
我們還介紹一種簡單有效的方法,通過在域標簽中添加mask vector來實現不同數據集的域之間的聯合訓練。我們提出的方法確保模型可以忽略位置標簽關注特殊數據集提供的標簽。用這種方法,我們的模型可以很好地執行任務,例如使用從RaFD學習的特征合成CelebA圖像的面部表情,如圖1最右邊的列所示。直到目前我們所知的中,我們的工作是第一個成功實現跨不同數據集執行多域圖像轉換的。
總的來說,我們的貢獻如下:
?
2.相關工作Related Work
Generative Adversarial Networks.生成對抗網絡(GANs)在各種計算機視覺領域都顯示出顯著的效果,如圖像生成、圖像轉換、超分辨率成像、面部圖像合成。一個傳統的GAN模型包含兩個模塊:一個判別器和一個生成器。判別器學習判別真假樣本,生成器學習產生與真樣本難以分辨的假樣本。我們的方法還利用adversarial 損失,使生成的圖像盡可能真實。
Conditional GANs.基于GAN的條件圖像生成也展開了積極的研究。先前的研究已經為判別器和生成器提供了類信息,以便生成基于類的樣本。其他最近的方法集中于生成與給定文本描述高度相關的特定圖像。條件圖像生成也成功應用到了域轉換,超分辨率成像和圖片編輯。本文提出了一種可擴展的GAN框架,通過提供條件域信息,可以靈活地將圖像轉換到不同的目標域。
Image-to-Image Translation.最近在圖像到圖像轉換的工作得到了令人印象深刻的結果。如pix2pix用cGANs以有監督的方式進行圖像轉換。它結合了adversarial 損失和L1損失,因此需要成對的數據樣本。為了解決獲取數據對的問題,提出一種不成對的圖像到圖像轉換的框架。UNIT將VAEs與CoGAN結合起來,CoGAN是由兩個生成器共享權重以學習圖像在跨域中的聯合分布的一個GAN框架。CycleGAN和DiscoGAN利用cycle consistency損失來保存輸入圖像和轉換圖像間的關鍵屬性。然而,所有這些框架一次只能學習兩個域之間的聯系。他們的方法在處理多個域的時候有限制,需要對每對域訓練不同的模型。與之前提到的方法不同,我們的框架可以僅用一個生成器學習多個域之間的關系。
| ? | |
| ? | ? | 
?
3. Star Generative Adversarial Networks
首先定義提出的StarGAN,StarGAN是一個在單個數據集中處理多域圖像到圖像轉換的框架。然后,我們討論了StarGAN如何將包含不同標簽集的多個數據集合并在一起,以便使用這些標簽靈活地執行圖像轉換。
3.1 多域圖像轉換 Multi-Domain Image-to-Image Translation
我們的目標是訓練一個單獨的生成器G使他可以學習多域間的映射。為了達到目標我們訓練了一個生成器G,它能將帶有域標簽c的輸入圖像x轉換為輸出圖像y,G(x, c)—>y。隨機生成目標域標簽c,使G能靈活地轉換輸入圖像。我們還引入了一個輔助判別器,允許單個的判別器控制多域。也就是說,判別器產生圖像和標簽的可能性分布為,D:x->{Dsrc(x),Dcls(x)}, 圖3說明了我們提出方法的訓練過程。
Adversarial Loss.為了讓產生的圖像與真實圖像難以區分,我們采用對抗性損失
G生成圖像G(x,c),由輸入圖像x和目標領域標簽c得到,同時判別器D試圖區分開真實圖像和生成圖像。在本文中,我們將Dsrc(x)作為輸入圖像x經過判別器D之后得到的可能性分布,生成器G使這個式子盡可能的小,而判別器D則盡可能使其最大化。
Domain Classification Loss.給定輸入圖像x和域標簽c,我們的目標是將x轉換成輸出圖像y,該圖像被正確地分類到目標域c。為了是實現這個目標,我們在D的頂部增加一個輔助分類器,并加入分類損失函數,使其對生成器和判別器都起到優化的作用。也就是說,我們將目標分解為兩項:用于優化D的真實圖像的域分類損失和用于優化G的偽圖像的域分類損失。前者具體公式為:
 其中Dcls(c’|x)表示由D計算的域標簽上的概率分布。最小化這個式子,判別器D學習將真實圖像x正確分類到其相關分布c’。我們假設輸入圖像和域標簽對(x,c’)由訓練數據得來。另一方面,偽圖像的域分類的損失函數定義為:
換句話說,G最小化這個式子,使得生成的圖像能夠被判別器判別為目標領域c。
Reconstruction Loss.通過最小化對抗損失和分類損失,生成器G能夠生成盡可能真實的圖像,并且能夠被分類為正確的目標領域。然而,最小化損失(式子(1)、(3))并不能保證轉換后的圖像在只改變輸入中與域相關的部分的同時保留輸入圖像的內容。為了緩解這一問題,我們對生成器使用了循環一致性損失函數,定義如下:
其中,生成器G以生成圖像G(x,c)以及原始輸入圖像領域標簽c’為輸入,努力重構出原始圖像x。我們選擇L1范數作為重構損失函數。注意我們兩次使用了同一個生成器,第一次是將原始圖像轉化為目標域圖像,然后由轉換后的圖像重構成原始圖像。
Full Objective.最終,優化G和D的目標函數分別為:
其中λcls, λrec是和對抗損失相對權重類似分別控制分類誤差和重構誤差的超參數。在所有實驗中,我們設置λcls=1,λrec=10。
3.2 多數據集訓練 Training with Multiple Datasets
StarGAN的一個重要優勢是同時合并包含不同類型標簽的多個數據集,使得其在測試階段能夠控制所有的標簽。然而有一個問題是當從多個數據集學習時標簽信息對每個數據集而言只是部分已知。在CelebA和RaFD的例子中,前一個數據集包含諸如發色,性別等信息,但它不包含任何后一個數據集中包含的諸如開心生氣等表情標簽。這是有問題的,因為當從翻譯的圖像G(x,c)重建輸入圖像x時,需要關于標簽向量c′的完整信息(參見式(4)
Mask Vector.為了緩解這一問題,引入mask vecrot m,允許StarGAN忽略不明確的標簽,專注于特定數據集提供的明確的已知標簽。在StarGAN中,用n維one-hot向量來表示m,n表示數據集的數量。此外,為標簽定義統一的版本:
[·]表示串聯,其中ci表示第i個數據集的標簽。已知的標簽ci的向量可以表示為二進制屬性的二進制向量,也可以表示為分類屬性的一個one-hot向量。對于剩下的n-1個未知標簽我們簡單設為0。在我們的實驗中,我們使用CelebA和RaFD數據集,n為2。
Training Strategy. 利用多數據集訓練StarGAN時,我們使用式子(7)定義的c~作為生成器的輸入.這樣做使生成器學習忽略不明確的標簽,設為0向量,來關注明確的給定標簽。生成器的結構與訓練單個數據集時是一致的,除了輸入c~。另一方面,我們擴展了判別器的輔助分類器來生成所有數據集在標簽上的概率分布。然后,將模型按照多任務學習的方式進行訓練,其中,判別器只將已知標簽相關的分類誤差最小化即可。比如,訓練CelebA的圖像,判別器只是把CelebA中涉及到的屬性標簽的分類誤差最小化,而不是RaFD數據集相關的面部表情的標簽。通過這樣的設置,判別器學習到了所有數據集的分類特征,生成器也學會控制所有數據集的所有標簽。
4.實施Implementation
Improved GAN Training.為了穩定訓練過程獲得高質量的圖片,我們使用帶梯度懲罰的WGAN策略作為對抗損失函數,如下:
其中x^沿真實圖像對和生成圖像對之間的直線均勻采樣,整個實驗過程使用λgp = 10。
Network Architecture. StarGAN具有由兩個卷積層組成的生成器網絡,其中兩個卷積層的步長為2(用于下采樣)、六個剩余塊和兩個轉置卷積層的步長為2(用于上采樣)。我們對生成器使用實例規范化,但對鑒別器不使用規范化。我們利用PatchGANs作為鑒別網絡,它對局部圖像補丁的真假進行分類。
5實驗 Experiments
在這一部分,首先通過進行用戶研究來比較StarGAN和最近的面部屬性轉移方法。接下來,對人臉表情生成進行分類實驗。最后,證明了StarGAN可以學習多個數據集之前圖像到圖像的翻譯。我們所有的實驗都是在訓練階段用看不見的圖像輸出的模型進行的。
5.1 Baseline Models
我們采用DIAT和CycleGAN作為對照組模型,這兩種方法都在兩個不同的域之間執行圖像到圖像的轉換。為了進行比較,我們為每對不同的域多次訓練這些模型。我們還采用IcGAN作為對照組,它可以使用cGAN執行屬性轉移。
DITA 使用對抗損失來學習從x到y的映射,其中x和y分別是X和Y兩個不同域中的人臉圖像。該方法在映射上的正則化項為||x-F(G(x))||1,以保持源圖像的身份特征,其中F是在人臉識別任務中預先訓練的特征提取器。
CycleGAN 同樣是用對抗損失學習X,Y兩個不同域間的映射。該方法通過循環一致性損失對映射進行正則化||x-GYX(GXY(x))||1和||y-GXY(GYX(y))||1。這種方法需要兩個生成器和鑒別器為每對不同的域。
IcGAN將編碼器和cGAN結合起來。cGAN學習映射G:{z,c}->x,圖像x同時受到潛向量z和條件向量c的作用。此外IcGAN引入一個編碼器學習cGAN的逆映射,Ez:x->z 和Ec:x->c。這使得IcGAN可以僅通過改變條件向量和保留潛向量來合成圖像。
?
5.2 Datasets
CelebA.CelbA數據集包含202,599 個名人的面部圖像,每個圖像都帶有40個二進制屬性。我們將初始大小為178×218的圖像裁剪為178×178,然后將其大小調整為128×128。我們隨機選取2000幅圖像作為測試集,利用所有剩余圖像作為訓練數據。我們使用以下屬性構建七個域:頭發顏色(黑色、金色、棕色)、性別(男性/女性)和年齡(年輕/年老)。
RaFD.RaFD包含從67名參與者收集的4,824張圖像。每個參與者在三個不同的注視方向做八個面部表情,從三個不同的角度捕捉。我們將圖像裁剪為256×256,其中面居中,然后將其大小調整為128×128。
?
5.3 Training?
用Adam算法訓練所有模型,參數β1=0.5,β2=0.999。以0.5的概率水平翻轉圖像來增強數據。五次鑒別器更新后執行一次生成器更新,一次訓練的樣本量設為16。在CelebA上的實驗中,我們在前10個階段訓練所有學習率為0.0001的模型,并在后10個階段將學習率線性衰減為0。為了彌補數據的不足,在使用RaFD進行訓練時,我們對所有模型進行100個階段的訓練,學習率為0.0001,并在接下來的100個階段應用相同的衰減策略。在一臺NVIDIA Tesla M40 GPU上訓練大約需要一天。
?
5.4. Experimental Results on CelebA
我們首先將所提出的方法與單屬性和多屬性傳輸任務的對照模型進行比較。考慮到所有可能的屬性-值對,我們對DIAT和CycleGAN等跨域模型進行了多次訓練。在DIAT和CycleGAN的情況下,我們執行多步驟轉換以合成多個屬性(例如,在更改頭發顏色后傳輸性別屬性)。
Qualitative evaluation.圖4示出了CelebA上的面部屬性轉移結果。我們觀察到,與跨域模型相比,我們的方法在測試數據上提供了更高質量的轉換結果。一個可能的原因是StarGAN通過多任務學習框架的正則化效應。換句話說,相對于訓練一個模型來執行固定的轉換(例如,棕色-金色頭發),這很容易過擬合,更好的是訓練我們的模型來根據目標域的標簽靈活地轉換圖像。這使得我們的模型能夠學習適用于具有不同面部屬性值的圖像的多個域的可靠特征。
此外,相對于IcGAN,我們的模型在保留輸入的面部特征方面具有優勢。我們推測這是因為我們的方法通過使用卷積層的激活圖作為潛在的表示來保存空間信息,而不是像IcGAN那樣僅僅使用低維的潛向量。
Quantitative evaluation protocol.為了進行定量評估,我們使用AMT對單屬性和多屬性轉換任務進行了兩次用戶研究。在給定輸入圖像的情況下,土耳其人被要求根據感知現實、屬性轉換質量和保持人物的原始特征來選擇最佳生成圖像。這些選項是從四種不同方法生成的四個隨機圖像。在一項研究中生成的圖像在頭發顏色(黑色、金色、棕色)、性別或年齡上都有一個屬性轉移。在另一項研究中,生成的圖像包含屬性轉換的組合。每個土耳其人被問30到40個問題,包括幾個簡單合邏輯的問題來驗證人類的努力。單次和多次轉移任務中,驗證的土耳其人的數量分別為146和100。
Quantitative results. 表1和表2分別顯示了我們在單屬性和多屬性轉換上的AMT實驗結果。在所有實驗中,StarGAN在屬性轉換效果獲得了多數選票。在表1中性別變化的情況下,我們的模型和其他模型之間的投票差異很小,例如,StarGAN的39.1%和DIAT的31.4%。然而,在多屬性變化中,例如表2中的“G+A”情況,性能差異明顯,例如StarGAN的49.8%與IcGAN的20.3%,清楚地顯示了StarGAN在更復雜的多屬性轉移任務中的優勢。這是因為與其他方法不同,StarGAN可以通過在訓練階段隨機生成目標域標簽來處理關于多個屬性變化的圖像轉換。
5.5 Experimental Results on RaFD
接下來訓練我們的模型在RaFD數據集上生成面部表情。為了比較StarGAN和對照組的模型,我們將輸入域固定為“中性”表達式,但目標域在其余七個表達式中有所不同。
Qualitative evaluation.如圖5所示,StarGAN在正確保持輸入的人物特征和面部特征的同時,清晰地生成最自然的表情。盡管DIAT和CycleGAN大多保留了輸入的身份,但它們的許多結果顯示模糊,無法保持輸入中看到的銳度。IcGAN甚至無法在生成男性圖像時保留圖像中的個人身份。?????????????
我們認為,StarGAN在圖像質量方面的優勢是由于其來自多任務學習環境的隱式數據增強效應。RaFD圖像包含較小的樣本,如每個域500個圖像。當在兩個域上訓練時,DIAT和CycleGAN一次只能使用1000個訓練圖像,但是StarGAN總共可以使用所有可用域中的4000個圖像進行訓練。這使得StarGAN能夠正確地學習如何保持生成輸出的質量和清晰度。
Quantitative evaluation.為了進行定量評估,我們計算了人臉表情生成圖像的分類誤差。我們使用ResNet-18體系結構在RaFD數據集上訓練了一個面部表情分類器(訓練集和測試集的分割率為90%/10%),得到了接近完美的99.55%的準確率。然后,我們使用相同的訓練集訓練每個圖像轉換模型,并在相同的、不可見的測試集上執行圖像轉換。最后,我們使用上面提到分類器對轉化后的圖像表情進行分類。如表3所示,我們的模型達到了最低的分類誤差,這表明我們的模型在所有比較方法中產生了最真實的面部表情。
模型的另一個重要優點是可以根據所需參數的數量進行伸縮。表3的最后一列顯示,StarGAN學習所有轉換所需的參數數量比DIAT小7倍,比CycleGAN小14倍。這是因為StarGAN只需要一個生成器和判別器對,而不考慮域的數量,但是在跨域模型的情況下,如CycleGAN,需要為每個源-目標域對訓練完全不同的模型。
5.6 Experimental Results on CelebA+RaFD
最后,證明我們的模型不僅可以從單個數據集中的多個域學習,而且可以從多個數據集中學習。使用mask vector在CelebA和RaFD數據集上聯合訓練模型。為了區分只在RaFD上訓練的模型和同時在CelebA和RaFD上訓練的模型,我們將前者表示為StarGAN-SNG(single),后者表示為StarGAN-JNT(joint)。
Effects of joint training.圖6在合成CelebA圖像的面部表情對StarGAN-SNG和StarGAN-JNT之間進行定性比較。StarGAN-JNT展現了高質量的情感圖像,而StarGAN-SNG產生合理但模糊的灰色背景圖像。這種差異是因為StarGAN-JNT在訓練中學習轉換CelebA圖像,而StarGAN-SNG沒有。換句話說,StarGAN-JNT可以利用這兩個數據集來改進共享的低級任務,比如面部關鍵點檢測和分割。通過同時使用CelebA和RaFD,StarGAN-JNT可以改善這些低級任務,這有利于學習面部表情合成。
Learned role of mask vector.在這個實驗,給出一個one-hot向量c,對給定維度的人臉表情設置為1。這樣,由于顯式地給出了與第二個數據集相關聯的標簽,因此正確的mask vector是[0,1]。圖7顯示了給出正確mask vector的情況和相反mask vector即[1,0]的情況。使用的錯誤的mask vector時StarGAN-JNT 生成人臉表情失敗,它會操縱輸入圖像的年齡。這是因為模型忽略了未知的面部表情標簽,并通過mask vector將面部屬性標簽視為有效。注意,由于其中一個面部屬性是“young”,因此當模型接受零向量作為輸入時,它會將圖像從young轉換為old。通過這種行為,我們可以確認,當涉及到來自多個數據集的所有標簽時,StarGAN正確地學習了mask vector在圖像到圖像轉換中的預期作用。
?
?
6. 結論 Conclusion
本文提出StarGAN,一種可擴展的只用一個生成器和判別器進行多領域圖像到圖像轉換的模型。除了在可擴展性方面的優勢,由于多任務學習策略在生成能力上的提升,StarGAN相對于其他現有方法也能生成質量更高的圖像。除此之外,本文提出的mask vector也使得StarGAN能夠利用包含不同分布標簽的不同數據集,進而可以處理從這些數據集中學習到的所有的屬性標簽。希望我們的工作能夠讓用戶開發跨多個領域的圖像轉換應用。
?
總結
以上是生活随笔為你收集整理的【翻译】StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Solving environment:
 - 下一篇: 方正飞鸿:工作流在OA系统中的重要性