【閱讀筆記】Interpreting the Latent Space of GANs for Semantic Face Editing

論文名稱:Interpreting the Latent Space of GANs for Semantic Face Editing

論文作者:Yujun Shen, Jinjin Gu, Xiaoou Tang, Bolei Zhou

發行時間:Submitted on 15 Dec 2019, last revised 31 Mar 2020

論文地址:https://arxiv.org/abs/1907.10786

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



一. 概要

本文提出了一個新穎的框架 InterFaceGAN ,即通過對 GAN 學習到的潛在語義信息進行解釋來實現對人臉的語義信息編輯。本文研究了不同的語義如何編碼到用於人臉合成的 GANs 潛在空間中,探究了各種語義之間的解耦及利用子空間投影來對已經耦合的一些語義進行解耦,實現了對面部屬性更加精準的操控來實現人臉編輯。本文的人臉編輯不但可以操控性別、年齡、表情、眼鏡外,還可以對原圖的面部姿勢進行修改,甚至能修復 GAN 模型中意外產生的僞影。將文中提出的方法同 GAN 反編碼算法引入編碼器模型相結合,可對真實圖像進行可控且解耦的屬性表徵。

InterFaceGAN 全稱是:Interpreting Face GANs , 用來識別訓練良好的臉部合成模型在潛在空間的語義,並利用其來進行語義人臉編輯。本文的主要貢獻如下:

  • 使用 InterFaceGAN 來探究如何在 GAN 的潛在空間中對單個或多個語義進行編碼。
  • 證明了 InterFaceGAN 可使用任何**預訓練好的固定 GAN ** 進行臉部語義編輯。(效果圖如下圖所示)
  • 利用 對真實圖像也進行了語義編輯。

image-20200603214539747

二. 模型框架

  1. 分析了 latent code 的語義屬性。
  2. 構造使用 latent code 語義編輯面部的操作過程。

2.1. 潛在空間的語義信息

對於任一訓練完畢的 GAN 模型,其生成器的函數表示爲 g: ZXg:~\mathcal{Z} \to \mathcal{X} ,其中 ZRd\mathcal{Z} \subseteq \mathbb{R}^d 代表 dd 維的潛在空間,該空間遵循多元正態分佈 N(0,Id)\mathcal{N}(0,{\rm I}_d);而 X\mathcal{X} 表示圖像空間,其中的每個樣本 xx 都具有一定的語義信息。定義一語義得分函數 fs XSf_s:~\mathcal{X}\to \mathcal{S} ,其中 SRm\mathcal{S} \subseteq \mathbb{R}^m 代表 mm 維的語義空間。於是便從潛在空間 Z\mathcal{Z} 變換到了語義空間 S\mathcal{S}
s=fS(g(z)) s=f_{\mathcal{S}}(g(z))
其中,ss 表示語義分數, zz 表示採樣得到的潛在代碼。

屬性 1: 給定 nRdn \in \mathbb{R}^dn0n \neq 0,使用集合 {zRd: nTz=0}\left \{ z \in \mathbb{R}^d:~n^Tz=0 \right \} 定義了在 Rd\mathbb{R}^d 的一個超平面,其中 nn 稱爲法向量。這裏所有的向量 zRdz \in \mathbb{R}^d 都滿足在超平面的同一側內 nTz>0n^Tz > 0 必成立。

屬性 2: 給定 nRdn \in \mathbb{R}^dnTn=1n^Tn=1,其定義了一個超平面。一個遵循多元正態分佈的隨機變量 zN(0,Id)z \sim \mathcal{N}(0,{\rm I}_d)。對於任何滿足 α1\alpha \geq 1d4d\geq 4,有 P(nTz2αdd2)(13ecd)(12αeα2/2)P(|n^Tz| \leq 2\alpha\sqrt{\frac{d}{d-2}}) \geq(1-3e^{-cd})(1-\frac{2}{\alpha}e^{-\alpha^2/2}) 。其中,P()P(\cdot) 表示概念,cc 是一個固定的正常數。

具體證明可見原論文,在此不做過多闡述。

2.1.1. 單個語義

諸多實驗證明對兩個潛碼 z1z_1z2z_2 進行線性變換(如:z=λz1+(1λ)z2z=\lambda z_1 + (1-\lambda)z_2)時,相應產生的合成結果是連續變化的。它隱含地意味着圖像中包含的語義也在逐漸變化。根據 屬性 1, 對兩個潛碼 z1z_1z2z_2 進行線性變換會在 Z\mathcal{Z} 上形成一個方向,這進一步定義了超平面。

文中作出了一個設想,**對於任何的二元語義,其在潛在空間彙總都存在一個邊界。但潛碼在邊界的一側內移動(不穿過邊界)時,其語義保持不變;而一旦潛碼的變換越過邊界進行移動時,語義就會變得相反。**移動情況如下圖所示:

image-20200603231038028

給定一帶有單位法向量 nRdn \in \mathbb{R}^d 的超平面,定義樣本 zz 到超平面的距離爲
d(n,z)=nTz d(n,z)=n^Tz
此處的 d(,)d(\cdot,\cdot) 並非嚴格定義的距離,它可以是負數表示語義被反轉。當 zz 位於邊界附近且在超平面上移動時,距離和語義得分都會對應發生改變。一旦距離變成了負數,就表示語義屬性發生了逆轉。我們期望距離和語義信息是呈現線性相關的:
f(g(z))=λd(n,z) f(g(z))=\lambda d(n,z)
其中 f()f(\cdot) 是參與的語義的得分,λ>0\lambda > 0 是用來用來測量語義隨距離變化的快慢的標量。根據 屬性 2,從 N(0,Id)\mathcal{N}(0,{\rm I}_d) 中隨機採樣的樣本很大概率會定位到離給定超平面足夠近的位置。因此,對應的語義可以用 nn 所定義的線性子空間來建模。

2.1.2. 多個語義

假設有 mm 個不同語義,則有
sfS(g(z))=ΛNTz s\equiv f_{\mathcal{S}}(g(z))= \Lambda N^Tz
其中,s=[s1,,sm]Ts=[s_1,\cdots,s_m]^T 表示語義得分,Λ=diag(λ1,,λm)\Lambda = {\rm diag}(\lambda_1,\cdots,\lambda_m) 是一個包含線性係數的對角矩陣,N=[n1,,nm]N=[n_1,\cdots,n_m] 表示分離邊界。zz 是從 N(0,Id)\mathcal{N}(0,{\rm I}_d) 中隨機採樣的樣本,那麼 ss 的均值和協方差矩陣的計算爲:
μs=E(ΛNTz)=ΛNTE(z)=0s=E(ΛNTzzTNΛT)=ΛNTE(zzT)NΛT=ΛNTNΛ \mu_s=\mathbb{E}(\Lambda N^T z)=\Lambda N^T \mathbb{E}(z)=0 \\ \sum_s=\mathbb{E}(\Lambda N^T z z^T N \Lambda^T)= \Lambda N^T \mathbb{E}(zz^T)N \Lambda^T=\Lambda N^TN\Lambda
因此,得到遵循多元正態分佈的 sN(0,s)s\sim \mathcal{N}(0,\sum_s)。要想在 ss 中各個不同的項之間都是項目解耦的,必須滿足 s\sum_s 爲對角矩陣,即N=[n1,,nm]N=[n_1,\cdots,n_m] 中的兩兩之間彼此正交。一旦不能滿足這一條件,則在 ss 中一定會存在一些會產生糾纏的語義。因此,我們可niTnjn_i^Tn_j 來衡量第 ii 個語義和第 jj 個語義之間的糾纏度

2.2. 操作潛在空間

2.2.1. 僅操作單個語義

根據單個語義中語義得分和距離存在的線性關係,可編輯原始的潛在編碼 zzzedit=z+αnz_{edit}=z+\alpha n。 即當 α>0\alpha>0 時,其編輯的語義會使得合成的圖像看起來更加積極,因爲語義得分變成了 f(g(zedit))=f(g(z))+λαf(g(z_{edit}))=f(g(z))+\lambda\alpha。同理,當 α<0\alpha<0 時,其合成的會看起來更加消極。

2.2.2. 條件性操作

image-20200604135405669

存在多個屬性時,可能會有一些耦合的語義,一旦修改其中一個會產生連鎖反應影響其他語義,會影響精準編輯面部。爲了避免之,文中提出手動將 NTNN^TN 強制爲對角矩陣。實現該條件的方法是利用投影來使得不同的向量正交化。如上圖所示,我們給定兩個超平面和對應的法向量 n1n_1n2n_2,我們找到了一個新的投影方向 n1(n1Tn2)n2n_1-(n_1^Tn_2)n_2,只要沿着這個方向移動的樣本就可以僅對 “屬性 1” 進行編輯而不影響 “屬性 2”。因爲從圖中可看出新方向正交於 n2n_2 ,移動往該方向不會影響到 n2n_2。我們把這個操作就叫做條件性操作若有一個以上的屬性需要被限制,我們只需讓原始方向減去所有限定方向所構成的平面上的投影。

2.2.3. 操作真實圖像

首先使用對潛在編碼進行梯度回傳或額外引入一個編碼器來將真實圖像映射成潛在編碼,然後再對其潛在編碼 zz 進行操控以實現編輯真實圖像的目的。

三. 實驗

在本章中,作者分別對以下三個方面進行了實驗:

  • 3.1,3.2,3.3 從 PGGAN 出發,對傳統生成器中的潛在空間進行了解釋
  • 3.4 從 StyleGAN 出發,對基於style的生成器中的潛在空間進行了解釋
  • 3.5 從真實圖像入手,說明了 GAN 如何將學到的語義用於人臉編輯

3.1.潛在空間的可分性

文中使用了 SVM 對在 2.1 中二元語義的可分性 進行了驗證,證明了假設的正確性。

image-20200604151507534

我們對一些樣本到邊界的距離進行了排序,得到上圖可視化結果。如上圖所示,第一行和最後一行的兩類極端情況是無法通過直接採樣獲取到的,只能通過儘可能"無限"地將潛在代碼移向法線方向得到。圖中顯示了正負樣本的可區分性。

3.2. 潛在空間的可操控性

3.2.1. 操控單一屬性

image-20200604154418939

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

3.2.2. 語義子空間的距離效應

image-20200604161224207

距離效應指當樣本離邊界過遠時( inf-\infinf\inf ),其產生的圖像外表會驗證地變形,這從 Figure 3 中上下兩端的圖像可看出。如上圖所示,當我們僅對性別屬性操控於邊界處附近對人臉部信息,人臉的結構保存的很好,而一旦超過一定的區域時,人臉結構就會發生變形。但這種效應並不影響我們對潛空間中解糾纏語義的理解,這是因爲這種極端樣本不太可能直接從標準正態分佈中提取,相反,它們是通過沿着一定的方向不斷移動採樣得到的潛在代碼來手工構造的。這樣可以更好地解釋GANs的潛在語義。

3.2.3. 僞影修正

image-20200604161743574

文中通過實驗發現 GAN 同樣將僞影信息編碼到了潛在空間中。基於此,文中將僞影視爲一個可操控的屬性,將其潛碼往該屬性的積極方向移動,成功消除了僞影。消除結果如上圖所示,效果還不錯。

3.3. 條件操作

本小結進行了如下兩點:

  • 不同屬性之間的解耦
  • 評估了條件操作方法

3.3.1. 各屬性之間相關性

本文的關注點是不同隱藏語義之間的關係,並研究它們是如何相互耦合的。因此,本文使用了兩種不同的指標來衡量兩種屬性的相關度:

  1. 餘弦相似度cos(n1,n2)=n1Tn2\cos(n_1,n_2)=n_1^Tn_2,其中 n1n_1n2n_2 都表示兩種屬性對應的單位法向量。
  2. 相關係數:將每個屬性的得分作爲一個隨機變量,將所有50萬個綜合數據所觀測到的屬性分佈來計算相關係數 ρ\rho。那麼有 ρA1A2=Cov(A1,A2)σA1σA2\rho_{A_1A_2}=\frac{Cov(A_1,A_2)}{\sigma_{A_1}\sigma{A_2}},其中 A1A_1A2A_2 表示對應於兩個屬性得分,Cov(,)Cov(\cdot,\cdot) 表示協方差,σ\sigma 表示標準差。

image-20200604170736215

上面這個表格便是使用這兩種指標的結果,可見屬性在這兩個度量下的行爲是相似的,這表明提出的 InterFaceGAN 能夠準確地識別隱藏在潛在空間中的語義。此外,從表中可看出性別、年齡和眼鏡這三個屬性是高度相關的,這個觀察結果反映了訓練數據集中的屬性相關性。例如,該數據集中的男性老年人更有可能戴眼鏡。GAN在學習產生真實觀察時也捕捉到了這一特點。

3.3.2. 條件操作

image-20200604171526960

上圖顯示了將一個屬性固定作爲條件而對另一個屬性進行操作的結果,以左側結果爲例,文中將性別方向固定爲條件,然後對年齡進行編輯,其通過讓年齡方向減去性別方向的投影來得到一個新方向,這樣可確保當樣本沿着投影的新方向移動時,性別成分不會發生改變,而年齡卻會改變

image-20200604171952727

上圖則是在將多個屬性固定作爲條件而對另一個屬性操作的結果,這裏則是將年齡和性別固定,往人臉上增加眼鏡。最開始時,增加眼鏡與改變年齡和性別是糾纏在一起的。但通過投影操作後,在不影響年齡和性別的情況下,成功地增加了眼鏡。這兩個實驗表明,我們提出的條件操縱有助於實現獨立和精確的屬性控制

3.4. StyleGAN結果

StyleGAN 中的生成器是基於樣式的生成器,其首先將 潛在編碼從 Z\mathcal{Z} 映射到了更高維的空間 W\mathcal{W} 中,然後將 W\mathcal{W} 輸入到生成器中,StyleGAN 證明了 W\mathcal{W} 能更好地模擬真實數據的底層特徵。

image-20200604173420351

如上圖所示, W\mathcal{W} 空間確實比 Z\mathcal{Z} 空間要晚出現眼鏡;條件操控於 Z\mathcal{Z} 空間的解耦能力要優於單獨的使用 W\mathcal{W} 空間。雖然 StyleGANW\mathcal{W} 的解耦能力確實比 Z\mathcal{Z} 要好,但卻不能用我們提出的投影方法用於 W\mathcal{W} 空間。因爲文中發現 W\mathcal{W} 空間有時捕獲了訓練集中數據之間存在的屬性相關性,並將其編碼成了耦合的樣式。以上圖爲例, W\mathcal{W} 空間學到了一種包含了眼鏡語義的年齡語義投影,但這個方向在某種程度上又和眼鏡語義方向是垂直的,我們所描述的減去眼鏡投影相當於減去了一個零向量,幾乎不會對結果又任何影響。

3.5. 真實圖像操控

首先需要將真實圖像轉換成潛在編碼,這裏有兩種轉換機制:

  1. 基於優化的方法,利用固定生成器直接優化潛在代碼,使像素級重構誤差最小化
  2. 基於編碼器的方法,其中額外的編碼器網絡被訓練來學習逆映射(圖像轉潛在編碼)

本小結對這兩種方法在 PGGANStyleGAN 上進行了實驗。實驗結果如下圖。

image-20200604174454424

如上圖所示,在 PGGAN 中的兩種轉換機制生成的效果圖都較差,可見傳統生成器架構的 GAN 對訓練數據和測試數據之間的差異性過於敏感。雖然生成的效果圖很差,但仍可以用我們的 InterFaceGAN 方法對面部屬性進行編輯

如上圖所示,在 StyleGAN 中的基於優化方法的效果要好得多。值得注意的是,這裏的優化目標是每層的樣式(所有層裏的 ww)。在編輯實例的過程中,將所有的樣式編碼都推向同一個方向。無需再訓練StyleGAN,僅僅利用了潛在空間的解釋語義,便成功地更改了真實人臉圖像的屬性。

image-20200604175701207

此外還測試了 InterFaceGAN 在編碼器-解碼器生成模型(讓編碼器與生成器和判別器同時參與訓練)裏的效果。即一旦模型收斂,便直接使用編碼器進行推理將給定圖像映射到潛在空間。文中將 InterFaceGAN 方法來解釋最近的編解碼器模型 LIA 的潛在空間。實驗結果如上圖所示,可見其也支持語義編輯。此外,同上述由 PGGAN 中模型準備好後再單獨學習編碼器相比,編碼器和生成器一起訓練的模型明顯有更好的重構和操作結果。

四. 實現細節

本文選擇了五個關鍵的面部特徵進行分析,包括姿勢、微笑、年齡、性別和眼鏡。相應的“正方向”被定義爲向右轉、大笑、變老、男性化和戴眼鏡。注意,只要屬性檢測器可用,我們總是可以輕鬆插入更多屬性。

使用自CelebA數據集的註釋和ResNet50網絡訓練了一個輔助屬性預測模型。這個模型接受了多任務損失訓練,以同時預測微笑、年齡、性別、眼鏡以及5點面部標誌(確定面部框架)。這裏,人臉標示將被用來計算姿勢的偏移,在進一步的分析中也被當作二元屬性(左或右)來處理。**除面部標誌外,所有的屬性都用 softmax 交叉損失的雙分類問題,面部標誌用 l2l_2 迴歸損失進行優化。**由於 PGGANStyleGAN 的圖像分辨率爲 1024×10241024\times 1024,我們在將其輸入屬性模型之前將其大小調整爲 224×224224\times224

在預先訓練好的 GAN 模型的基礎上,對潛在空間進行隨機採樣,生成了 500500 K 幅圖像。之所以要準備這樣大規模的數據,主要有兩個原因:

  1. 消除抽樣帶來的隨機性,通過大規模數據來確保潛在編碼的分佈符合預期分佈。
  2. 通過大規模數據來確保訓練集中有足夠多的戴眼鏡樣本,因爲 PGGAN 模型中很少生成這一類樣本。

爲了找到潛在空間中的語義邊界,我們使用預先訓練好的屬性預測模型對 500500 K 個合成的圖像進行屬性評分對於每個屬性,我們對相應的得分進行排序,選擇得分最高的10K個樣本和得分最低的10K個樣本作爲候選。這樣做的原因是,預測模型不是絕對準確的,可能會對模糊的樣本產生錯誤的預測,例如對年齡屬性的預測是中年人。然後從候選樣本中隨機抽取 70%70 \% 的樣本作爲訓練集學習線性支持向量機,得到一個決策邊界。其中,所有邊界的法向量都歸一化爲單位向量剩下的30%用於驗證線性分類器的分類效果。在SVM訓練中,輸入爲 512512 維的潛碼,二值標籤由輔助屬性預測模型分配。

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