變老 - 4 - Interpreting the Latent Space of GANs for Semantic Face Editing- 1 - 論文學習(人臉編輯)


代碼:https://github.com/genforce/interfacegan

 

Abstract

盡管最近生成對抗網絡(GANs)在高保真圖像合成方面取得了進展,但對於GANs如何能夠將隨機分布的潛在編碼映射成逼真的圖像仍缺乏足夠的理解。以往的研究假設GANs學習的潛在空間遵循分布表示,但觀察到矢量運算現象。在這項工作中,我們提出了一個新的框架,稱為InterFaceGAN,通過解釋GANs學習到的潛在語義來進行語義人臉編輯。在此框架中,我們詳細研究了如何將不同的語義編碼到GANs的潛在空間中用於人臉合成。我們發現,經過良好訓練的生成模型的潛在代碼實際上在線性變換后學習了一個解糾纏(disentangled)表征。我們研究了各種語義之間的解糾纏(disentanglement),並設法用子空間投影解耦一些糾纏(entangled)語義,從而實現更精確的面部屬性控制。除了操縱性別、年齡、表情和眼鏡的存在,我們甚至可以改變面部姿勢,以及修復GAN模型意外產生的偽影。該方法與GAN inversion方法或一些涉及編碼器的模型相結合,進一步實現了真實圖像的處理。大量的研究結果表明,學會自發地合成人臉可以生成解糾纏且可控的人臉屬性表征
 
 
1. Introduction
生成對抗網絡(GANs)[15]是近年來圖像合成技術的一個重要進展。GANs背后的基本原理是通過對抗訓練來學習從潛在分布到真實數據的映射。在學習了這種非線性映射之后,GAN能夠從隨機采樣的潛在編碼中生成逼真的圖像。然而,語義是如何在潛在空間中產生和組織的,尚不清楚。以人臉合成為例,在對一個潛在編碼進行采樣生成一幅圖像時,編碼如何能夠確定輸出的人臉的各種語義屬性(如性別、年齡),以及這些屬性之間是如何相互糾纏的?

現有的工作通常側重於提高GANs[40,28,21,8,22]的合成質量,然而,很少有人研究GANs在潛在空間方面的實際學習情況。Radford等人[31]首先觀察了潛在空間中的向量算術特性。最近的一項工作[4]進一步表明,GAN發生器中間層的一些單元專門用於合成特定的視覺概念,如客廳生成結果中的沙發和電視。盡管如此,對於GAN如何連接潛在空間和圖像語義空間,以及如何使用潛在編碼進行圖像編輯,仍然缺乏足夠的理解。

本文提出了一個框架InterFaceGAN, Interpreting Face GANs的簡稱,用於識別在經過良好訓練的人臉合成模型的潛在空間中編碼的語義,並利用這些語義對人臉進行語義編輯。該框架除了具有矢量運算的特性外,還提供了理論分析和實驗結果去驗證線性子空間與潛在空間中出現的不同真假語義的匹配。我們進一步研究了不同語義之間的解糾纏,並證明了我們可以通過線性子空間投影解糾纏 糾纏屬性(例如老年人比年輕人更容易戴眼鏡)。這些解糾纏語義使任何給定的GAN模型都可以精確地控制面部屬性,而無需重新訓練。

我們的貢獻總結如下:

  • 我們提出InterFaceGAN來探究一個或多個語義是如何在GANs的潛在空間中編碼的,例如PGGAN[21]和StyleGAN[22],並觀察GANs自發地學習與特定屬性相對應的各種潛在子空間。這些屬性表示在經過一些線性變換后就會變成解糾纏的。
  • 我們證明,InterFaceGAN可以使用任何固定的預先訓練過的GAN模型進行語義人臉編輯。部分結果如圖1所示。除了性別,年齡,表情和眼鏡的存在,我們也可以明顯地改變人臉姿勢或糾正一些GANs生成的偽影。
  • 我們使用GAN inversion方法和encoder-involved的模型將InterFaceGAN擴展到真實圖像編輯。通過簡單地改變潛在編碼,我們成功地操作了真實面孔的屬性,即使GANs不是專門為編輯任務設計的

 

 

1.1. Related Work

Generative Adversarial Networks. 近年來,GAN[15]因其在生成逼真圖像方面的巨大潛力而受到廣泛關注[1,17,6,40,28,21,8,22]。它通常以采樣的潛在編碼作為輸入和輸出合成的圖像。為了使GANs適用於真實圖像處理,現有的方法提出將映射從潛在空間反向到圖像空間[30,42,27,5,16]或學習與GAN訓練相關的額外編碼器encoder[13,12,41]。盡管取得了巨大的成功,但在理解GANs如何在真實的視覺世界中將輸入的潛在空間與語義聯系起來方面,人們做的工作還很少。

Study on Latent Space of GANs. GANs的潛在空間一般被視為黎曼流形(Riemannian manifold)[9,2,23]。之前的工作側重於探索如何通過在潛在空間內插值,使輸出圖像在不同的合成中平滑變化,而不管圖像在語義上是否可控[24,32]。GLO[7]同時對生成器和潛在編碼進行了優化,以學習更好的潛在空間。然而,關於訓練有素的GAN如何能夠在潛在空間中編碼不同語義的研究仍然缺失。一些工作已經觀察到向量算術性質[31,36]。除此之外,本文從單一語義的性質和多重語義的解糾纏兩方面,對潛在空間中編碼的語義進行了詳細的分析。一些並發工作還探究了GANs學習的潛在語義。Jahanian等人[20]研究了GANs關於攝像機運動和圖像色調的可操縱性。Goetschalckx等人的[14]提高了輸出圖像的可記憶性。Yang等人[38]探討了用於場景合成的深層生成表示中的層次語義。與它們不同的是,我們專注於GANs中出現的用於人臉合成的人臉屬性,並將我們的方法擴展到真實的圖像處理。

 

Semantic Face Editing with GANs. 語義人臉編輯旨在處理給定圖像的面部屬性。與可以任意生成圖像的無條件GANs相比,語義編輯希望模型只改變目標屬性而保留輸入人臉的其他信息。為了實現這一目標,目前的方法需要精心設計損失函數[29,10,35],引入額外的屬性標簽或特征[25,39,3,37,34],或特殊的架構[11,33]來訓練新的模型。然而,這些模型的合成分辨率和質量都遠遠落后於原生GANs,如PGGAN[21]和StyleGAN[22]。與以往基於學習的方法不同,本研究探索了固定GAN模型潛在空間內的可解釋語義,通過改變潛在編碼將無約束的GAN轉化為可控制的GAN

 

2. Framework of InterFaceGAN

在本節中,我們將介紹InterFaceGAN的框架,該框架首先對在經過良好訓練的GAN模型的潛在空間中出現的語義屬性進行嚴格分析,然后構建一個操作管道來利用隱藏編碼中的語義進行面部屬性編輯。

2.1. Semantics in the Latent Space

給定一個良好訓練的GAN模型[28, 21, 8, 22],生成器可以被定義為一個決策函數其中表示一個d維的潛在空間,一般使用高斯分布表示圖像空間,其中的每個樣本x擁有某語義信息,如用於人臉模型的性別和年齡。假設我們有一個語義打分函數表示帶有m維語義分數(每一維對應一個語義屬性)的語義空間。我們可以使用來連接潛在空間和語義空間,其中sz分別表示語義分數和采樣的潛在編碼

 

 

 Single Semantic. 當線性插值兩個潛在編碼z1和z2時,一般能能夠觀察到對應合成結果外觀的連續變化[31, 8, 22]。該結果暗示了圖像中包含的語義也能逐漸變化。根據 Property 1,z1和z2的線性插值形成了一個在中的方向,其進一步定義了一個超平面(hyperplane)。因此,我們做出一個假設,對任意二元語義(如男性 vs 女性),在潛在空間中存在一個超平面作為分離邊界。當潛在編碼在超平面的同一邊運動時,語義保持一致(即原來男性,現在仍男性);如果跨過了邊界,則會轉換到相反的方向(即從男性變成女性)。

給定一個帶有單位法向量(表面上某一點的法向量(Normal Vector)指的是在該點處與表面垂直的方向)的超平面,我們定義從樣本z到該超平面的“distance”為:

 其中,d(.,.)不是一個嚴格定義的距離,因為其值能為負。當z臨近邊界,並朝着邊界移動並越過邊界,“距離”和語義分數都會相應變化。只有在“distance”改變其數值符號時(即如由正數變負數),語義屬性會反轉(如男性變女性)。因此我們希望語義分數和“距離”之間的關系可以線性表示為:

 其中f(.,.)是用於特定語義的評分函數,其中λ>0是一個用來測量語義隨着距離的變化而相應變化的速度的標量。

 根據Property 2,由繪制的隨機樣本非常可能坐落在給定超平面的足夠近的地方。因此,相應的語義可以通過由n定義的線性子空間建模

 

 

 

 

 

 

 

Multiple Semantics.當例子有m個不同的語義時,有:

其中表示語義分數,是一個包含線性系數的對角矩陣,其中表示分離邊界。意識到隨機樣本z的分布是,我們能夠簡單地計算語義分數s的均值和協方差為:

 

因此有,其是一個多元正態分布。s中的不同實體當且僅當是一個對角矩陣時才是解糾纏的,其需要相互之間是正交的。如果條件不滿足,一個語義將互相關聯,且能夠使用去測量第i個和第j個語義的糾纏程度(如性別和年齡之間的相關程度

 

 

2.2. Manipulation in the Latent Space

在這個部分,將介紹如何使用在潛在空間中找到的語義來圖像編輯

Single Attribute Manipulation. 根據等式(2),為了操縱合成圖像的屬性,我們能夠使用簡單地編輯原始的潛在編碼z。時,它將會使得合成結果在該語義上更正值化(如老人更老),同時分數在編輯后變為。同樣地,將使合成結果更負值化(老人變年輕)

 

 Conditional Manipulation. 當這里有超過一個的屬性時,編輯其中的一個屬性可能會影響其他的屬性,因為一些屬性可能互相耦合在一起。為了獲得更加精准的控制,我們提出了通過手動強制等式(5)中的為對角矩陣的conditional manipulation方法。尤其是,我們使用投影去正交化不同的向量。如圖2所示:

 

給定兩個帶有法向量n1和n2的超平面,我們找到投影方向 這樣沿着這個新方向去移動樣本就只會改變“屬性1”, 而不會改變“屬性2”了。(因為屬性1減去了屬性2在屬性1的方向上的投影)我們稱該操作為conditional manipulation。如果有一個以上的屬性需要被限定,我們只需減去從原始方向到由所有限定方向構成的平面上的投影

 

Real Image Manipulation. 當我們的方法能夠實現從固定GAN模型的潛在空間進行的語義編輯時,我們首先需要在實現操作前將真實圖片映射成一個潛在編碼。為了該目的,現有的方法提出直接優化潛在編碼去減少重構損失的方法[27],或者學習一個額外的encoder將目標圖像轉換回潛在空間[42,5]。這里有很多模型已經將encoder包含在了GANs的訓練過程中[13,12,41],可以直接使用他們來推論

 

3. Experiments

在本節中,我們使用最先進的GAN模型(PGGAN[21]和StyleGAN[22])來評估InterFaceGAN。具體來說,在PGGAN上進行了3.1、3.2、3.3節的實驗來解釋傳統生成器的潛在空間。在第3.4章的實驗中,我們研究了基於style的生成器,並比較了兩組潛在表征在styleGAN中的不同之處。在第3.5節中,我們還將我們的方法應用於真實圖像,以了解如何將GANs隱式學到的語義應用於真實的人臉編輯。實現細節可以在附錄中找到

3.1. Latent Space Separation

如第2.1節所述,我們的框架是基於這樣一個假設:對於任何二元屬性,在潛在空間中都存在一個超平面,使得來自同一側的所有樣本都具有相同的屬性。因此,我們想首先評估這一假設的正確性,以使剩余的分析變得可信。

我們對姿勢、微笑、年齡、性別、眼鏡等屬性訓練5個獨立的線性支持向量機進行訓練,然后在驗證集(在屬性得分上有着高置信度的6K個樣本)和整個集合(480K個隨機樣本)上對它們進行評估。結果如表1所示:

我們發現所有的線性邊界在驗證集上的准確率都在95%以上,在整個數據集上的准確率都在75%以上,這說明對於一個二元屬性,潛在空間中存在一個線性超平面,可以很好地將數據分成兩組。

我們還將圖3中的一些樣本按照到決策邊界的距離進行排序,從而實現可視化:

注意,那些極端情況(圖3中的第一行和最后一行)不太可能直接采樣,而是通過將潛在代碼移向法線的“無限”方向來構造。從圖3可以看出,正樣本和負樣本在對應的屬性上是可以區分的。

 

3.2. Latent Space Manipulation

在這一部分中,我們驗證了InterFaceGAN發現的語義是否可操作。

Manipulating Single Attribute. 圖4繪制了5個不同屬性上的操作結果:

這表明,我們的操作方法在所有屬性上都表現良好,無論是正方向還是負方向。特別是姿勢屬性,我們觀察到即使通過解決雙分類問題來搜索邊界,移動潛在編碼也會產生連續的變化。此外,盡管在訓練集中缺乏足夠的極端姿勢的數據,GAN也能夠想象側面臉應該是什么樣子。同樣的情況也發生在眼鏡屬性上。雖然訓練集的數據不充分,但是我們可以手動創建很多戴着眼鏡的人臉。這兩個觀察結果有力地證明了GAN並不是隨機生成圖像的,而是從潛在空間中學習了一些可解釋的語義。

Distance Effect of Semantic Subspace. 在對潛在編碼進行操作時,我們觀察到一個有趣的距離效應,即如果離邊界太遠,樣本的外觀會發生劇烈的變化,最終會變成如圖3所示的極端情況。圖5以性別編輯為例說明了這一現象:

可見靠近邊界的操作效果很好。然而,當樣本超過一定的區域(選擇5為閾值)時,編輯結果就不再像原來的面孔了。但這種效應並不影響我們對潛空間中解糾纏語義的理解。這是因為這種極端樣本不太可能直接從標准正態分布中提取,這一點在2.1節的Property 2中指出。相反,它們是通過沿着一定的方向不斷移動正常采樣的潛在編碼來手工構造的。這樣可以更好地解釋GANs的潛在語義。

Artifacts Correction. 我們進一步應用我們的方法來修復有時在合成輸出中出現的偽影。我們手動標記4K個糟糕的合成結果,然后和其他屬性一樣訓練一個線性SVM來尋找分離超平面。我們驚奇地發現,GANs也在潛在空間中編碼這些信息。基於這個發現,我們可以修正GAN在生成過程中所犯的一些錯誤,如圖6所示:

 

 

3.3. Conditional Manipulation

在本節中,我們將研究不同屬性之間的分離,並評估條件操作(conditional manipulation)方法。

Correlation between Attributes. 與[22]引入感知路徑長度和線性可分性來度量潛在空間的解糾纏性不同,我們更多地關注不同隱語義之間的關系,研究它們之間是如何耦合的。這里,使用兩個不同的度量標准來度量兩個屬性之間的相關性。(I)計算兩個方向的cosine相似度,其中n1和n2表示單位向量。(ii)將每個屬性分數看作一個隨機變量,並使用從500K個合成數據中觀察得到的屬性分布去計算相關系數ρ。,其中A1和A2表示關於兩個屬性的兩個隨機變量。Conv(.,.)表示協方差,σ表示標准差。

 

表2和表3報告了結果:

我們可以看出屬性在這兩個度量下的表現相似,這表明我們的InterFaceGAN能夠准確地識別隱藏在潛在空間中的語義。我們還發現Smile和Pose幾乎與其他屬性正交。然而,性別、年齡和眼鏡是高度相關的。這個觀察結果反映了訓練數據集中的屬性相關性。在某種程度上,這里的男性老年人更有可能戴眼鏡。GAN在學習產生真實觀察結果時也捕捉到了這一特點。

Conditional Manipulation. 為了在獨立的面部屬性編輯中 去關聯 不同的語義,我們在第2.2節中提出了條件操作方法。圖7顯示了將一個屬性作為條件操作另一個屬性的一些結果:

以圖7中左側樣本為例,在編輯變老(第一行)時,結果趨於男性化。我們通過從年齡方向減去性別方向(第二行)的投影來解決這個問題,從而得到一個新的方向。這樣,我們可以確保當樣本沿着投影方向(第三行)移動時,性別成分幾乎沒有受到影響。圖8顯示了多個約束條件下的條件操作,其中我們通過有條件地保留年齡和性別來添加眼鏡:

在一開始,增加眼鏡與改變年齡和性別是糾纏在一起的。但通過投影操作,我們在不影響年齡和性別的情況下,成功地增加了眼鏡。這兩個實驗表明,我們提出的條件控制方法有助於實現獨立和精確的屬性控制。

 

3.4. Results on StyleGAN

與傳統的GANs不同,StyleGAN[22]提出了基於風格的生成器。基本上,StyleGAN把潛在編碼輸入到生成器之前,將其從空間Z映射到另一個高維空間W。正如[22]中指出的,W比Z表現出更強的解糾纏性,因為W不受任何特定分布的限制,可以更好地模擬真實數據的底層特征。

我們對StyleGAN的Z和W空間進行了類似的分析,就像對PGGAN所做的那樣,我們發現W空間確實學習了一種更不糾纏的表示,正如[22]所指出的那樣。這種分離使得W空間在屬性編輯方面比Z空間有更強的優勢。如圖9所示:

在StyleGAN模型中,年齡和眼鏡也是糾纏的。與Z空間(第二行)相比,W空間(第一行)性能更好,特別是在long-distance操作中。不過,我們可以使用第2.2節中描述的條件操作技巧 去關聯 Z空間(第三行)中的這兩個屬性,從而得到更吸引人的結果。然而,這個技巧不能應用於W空間。我們發現W空間有時捕獲了訓練數據中發生的屬性相關性,並將它們編碼為耦合的“style”。以圖9為例,“age”和“eyeglasses”被支持為兩個獨立的語義,但StyleGAN實際上學習了包含眼鏡的年齡方向,使得這個新的方向與眼鏡方向本身正交。這樣,減去幾乎為零的投影,幾乎不會影響最終結果

 

3.5. Real Image Manipulation

在這一部分中,我們利用提出的InterFaceGAN對真實人臉進行操作,以驗證GAN學到的語義屬性是否可以應用於真實人臉。回想一下,InterFaceGAN通過沿着某個方向移動潛在代碼來實現語義人臉編輯。因此,我們首先需要將給定的真實圖像轉換回潛在編碼。這是一個重要的任務,因為GANs不能完全捕捉所有的模式以及真實分布的多樣性。對於一個預先訓練好的GAN模型,有兩種典型的方法。一種是基於優化的方法,使用固定生成器直接優化潛在代碼,以最小化pixel-wise的重建誤差[27]。另一種是基於編碼器的,其中額外的編碼器網絡被訓練來學習逆映射[42]。我們在PGGAN和StyleGAN上測試了兩種基線方法。

結果如圖10所示:

我們可以看出,在反轉PGGAN時,基於優化(第一行)和基於編碼器(第二行)的方法的性能都很差。這可以歸因於訓練數據和測試數據分布之間的強烈差異。例如,即使輸入是東方人,模型也傾向於生成西方人(如圖10所示)。然而,與輸入不同的是,反向圖像仍然可以通過InterFaceGAN進行語義編輯。與PGGAN相比,StyleGAN(第三行)的結果要好得多。在這里,我們處理layer-wise styles(即每一層的w)作為優化目標。在編輯實例時,我們將所有樣式編碼推向相同的方向。如圖10所示,我們成功地改變了真實人臉圖像的屬性,無需再訓練StyleGAN,而是利用了潛在空間的解釋語義。

我們也測試了InterFaceGAN的編碼器-解碼器生成模型,它訓練一個帶着生成器和鑒別器的編碼器。當模型收斂后,可以直接使用編碼器進行推理,將給定圖像映射到潛在空間。我們用我們的方法來解釋最近的 encoder-decoder模型LIA[41]的潛在空間。操作結果如圖11所示:

其中我們成功編輯了輸入的帶有不同屬性的人臉,比如年齡和人臉姿勢。這說明基於encoder-decoder的生成模型中的潛在編碼也支持語義操作。另外,與圖10 (b)中在GAN模型准備好后再單獨學習encoder相比,與生成器一起訓練的編碼器得到了更好的重構和操作結果。

 

 4. Conclusion

我們提出InterFaceGAN來解釋在GANs的潛在空間中編碼的語義。通過利用解釋語義和提出的條件操作技術,我們可以用任何固定的GAN模型精確地控制面部屬性,甚至將無條件的GAN轉換為可控制的GAN。大量的實驗表明,InterFaceGAN也可以應用於真實的圖像編輯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM