論文名稱: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
** 進行臉部語義編輯。(效果圖如下圖所示) - 利用 對真實圖像也進行了語義編輯。
二. 模型框架
- 分析了
latent code
的語義屬性。 - 構造使用
latent code
語義編輯面部的操作過程。
2.1. 潛在空間的語義信息
對於任一訓練完畢的 GAN
模型,其生成器的函數表示爲 ,其中 代表 維的潛在空間,該空間遵循多元正態分佈 ;而 表示圖像空間,其中的每個樣本 都具有一定的語義信息。定義一語義得分函數 ,其中 代表 維的語義空間。於是便從潛在空間 變換到了語義空間 :
其中, 表示語義分數, 表示採樣得到的潛在代碼。
屬性 1: 給定 且 ,使用集合 定義了在 的一個超平面,其中 稱爲法向量。這裏所有的向量 都滿足在超平面的同一側內 必成立。
屬性 2: 給定 且 ,其定義了一個超平面。一個遵循多元正態分佈的隨機變量 。對於任何滿足 和 ,有 。其中, 表示概念, 是一個固定的正常數。
具體證明可見原論文,在此不做過多闡述。
2.1.1. 單個語義
諸多實驗證明對兩個潛碼 和 進行線性變換(如:)時,相應產生的合成結果是連續變化的。它隱含地意味着圖像中包含的語義也在逐漸變化。根據 屬性 1, 對兩個潛碼 和 進行線性變換會在 上形成一個方向,這進一步定義了超平面。
文中作出了一個設想,**對於任何的二元語義,其在潛在空間彙總都存在一個邊界。但潛碼在邊界的一側內移動(不穿過邊界)時,其語義保持不變;而一旦潛碼的變換越過邊界進行移動時,語義就會變得相反。**移動情況如下圖所示:
給定一帶有單位法向量 的超平面,定義樣本 到超平面的距離爲
此處的 並非嚴格定義的距離,它可以是負數表示語義被反轉。當 位於邊界附近且在超平面上移動時,距離和語義得分都會對應發生改變。一旦距離變成了負數,就表示語義屬性發生了逆轉。我們期望距離和語義信息是呈現線性相關的:
其中 是參與的語義的得分, 是用來用來測量語義隨距離變化的快慢的標量。根據 屬性 2,從 中隨機採樣的樣本很大概率會定位到離給定超平面足夠近的位置。因此,對應的語義可以用 所定義的線性子空間來建模。
2.1.2. 多個語義
假設有 個不同語義,則有
其中, 表示語義得分, 是一個包含線性係數的對角矩陣, 表示分離邊界。 是從 中隨機採樣的樣本,那麼 的均值和協方差矩陣的計算爲:
因此,得到遵循多元正態分佈的 。要想在 中各個不同的項之間都是項目解耦的,必須滿足 爲對角矩陣,即在 中的兩兩之間彼此正交。一旦不能滿足這一條件,則在 中一定會存在一些會產生糾纏的語義。因此,我們可用 來衡量第 個語義和第 個語義之間的糾纏度。
2.2. 操作潛在空間
2.2.1. 僅操作單個語義
根據單個語義中語義得分和距離存在的線性關係,可編輯原始的潛在編碼 :。 即當 時,其編輯的語義會使得合成的圖像看起來更加積極,因爲語義得分變成了 。同理,當 時,其合成的會看起來更加消極。
2.2.2. 條件性操作
存在多個屬性時,可能會有一些耦合的語義,一旦修改其中一個會產生連鎖反應影響其他語義,會影響精準編輯面部。爲了避免之,文中提出手動將 強制爲對角矩陣。實現該條件的方法是利用投影來使得不同的向量正交化。如上圖所示,我們給定兩個超平面和對應的法向量 和 ,我們找到了一個新的投影方向 ,只要沿着這個方向移動的樣本就可以僅對 “屬性 1” 進行編輯而不影響 “屬性 2”。因爲從圖中可看出新方向正交於 ,移動往該方向不會影響到 。我們把這個操作就叫做條件性操作。若有一個以上的屬性需要被限制,我們只需讓原始方向減去所有限定方向所構成的平面上的投影。
2.2.3. 操作真實圖像
首先使用對潛在編碼進行梯度回傳或額外引入一個編碼器來將真實圖像映射成潛在編碼,然後再對其潛在編碼 進行操控以實現編輯真實圖像的目的。
三. 實驗
在本章中,作者分別對以下三個方面進行了實驗:
- 3.1,3.2,3.3 從
PGGAN
出發,對傳統生成器中的潛在空間進行了解釋 - 3.4 從
StyleGAN
出發,對基於style的生成器中的潛在空間進行了解釋 - 3.5 從真實圖像入手,說明了
GAN
如何將學到的語義用於人臉編輯
3.1.潛在空間的可分性
文中使用了 SVM
對在 2.1 中二元語義的可分性 進行了驗證,證明了假設的正確性。
我們對一些樣本到邊界的距離進行了排序,得到上圖可視化結果。如上圖所示,第一行和最後一行的兩類極端情況是無法通過直接採樣獲取到的,只能通過儘可能"無限"地將潛在代碼移向法線方向得到。圖中顯示了正負樣本的可區分性。
3.2. 潛在空間的可操控性
3.2.1. 操控單一屬性
上圖是對5個屬性的語義操控,可見在所有屬性上都表現良好。特別是姿態屬性,觀察到即使通過解決雙分類問題來搜索邊界,移動潛在代碼也會產生連續的變化。此外,儘管在訓練集中缺乏足夠的極端姿勢的數據,GAN能夠想象側面臉應該是什麼樣子。同樣的情況也發生在眼鏡屬性上。雖然訓練集的數據不充分,但是可以手動創建很多戴着眼鏡的面孔。這兩個觀察結果有力地證明了GAN並不是隨機生成圖像的,而是從潛在空間中學習了一些可解釋的語義。
3.2.2. 語義子空間的距離效應
距離效應指當樣本離邊界過遠時( 或 ),其產生的圖像外表會驗證地變形,這從 Figure 3
中上下兩端的圖像可看出。如上圖所示,當我們僅對性別屬性操控於邊界處附近對人臉部信息,人臉的結構保存的很好,而一旦超過一定的區域時,人臉結構就會發生變形。但這種效應並不影響我們對潛空間中解糾纏語義的理解,這是因爲這種極端樣本不太可能直接從標準正態分佈中提取,相反,它們是通過沿着一定的方向不斷移動採樣得到的潛在代碼來手工構造的。這樣可以更好地解釋GANs的潛在語義。
3.2.3. 僞影修正
文中通過實驗發現 GAN
同樣將僞影信息編碼到了潛在空間中。基於此,文中將僞影視爲一個可操控的屬性,將其潛碼往該屬性的積極方向移動,成功消除了僞影。消除結果如上圖所示,效果還不錯。
3.3. 條件操作
本小結進行了如下兩點:
- 不同屬性之間的解耦
- 評估了條件操作方法
3.3.1. 各屬性之間相關性
本文的關注點是不同隱藏語義之間的關係,並研究它們是如何相互耦合的。因此,本文使用了兩種不同的指標來衡量兩種屬性的相關度:
- 餘弦相似度:,其中 和 都表示兩種屬性對應的單位法向量。
- 相關係數:將每個屬性的得分作爲一個隨機變量,將所有50萬個綜合數據所觀測到的屬性分佈來計算相關係數 。那麼有 ,其中 和 表示對應於兩個屬性得分, 表示協方差, 表示標準差。
上面這個表格便是使用這兩種指標的結果,可見屬性在這兩個度量下的行爲是相似的,這表明提出的 InterFaceGAN
能夠準確地識別隱藏在潛在空間中的語義。此外,從表中可看出性別、年齡和眼鏡這三個屬性是高度相關的,這個觀察結果反映了訓練數據集中的屬性相關性。例如,該數據集中的男性老年人更有可能戴眼鏡。GAN在學習產生真實觀察時也捕捉到了這一特點。
3.3.2. 條件操作
上圖顯示了將一個屬性固定作爲條件而對另一個屬性進行操作的結果,以左側結果爲例,文中將性別方向固定爲條件,然後對年齡進行編輯,其通過讓年齡方向減去性別方向的投影來得到一個新方向,這樣可確保當樣本沿着投影的新方向移動時,性別成分不會發生改變,而年齡卻會改變。
上圖則是在將多個屬性固定作爲條件而對另一個屬性操作的結果,這裏則是將年齡和性別固定,往人臉上增加眼鏡。最開始時,增加眼鏡與改變年齡和性別是糾纏在一起的。但通過投影操作後,在不影響年齡和性別的情況下,成功地增加了眼鏡。這兩個實驗表明,我們提出的條件操縱有助於實現獨立和精確的屬性控制。
3.4. StyleGAN結果
StyleGAN
中的生成器是基於樣式的生成器,其首先將 潛在編碼從 映射到了更高維的空間 中,然後將 輸入到生成器中,StyleGAN
證明了 能更好地模擬真實數據的底層特徵。
如上圖所示, 空間確實比 空間要晚出現眼鏡;條件操控於 空間的解耦能力要優於單獨的使用 空間。雖然 StyleGAN
中 的解耦能力確實比 要好,但卻不能用我們提出的投影方法用於 空間。因爲文中發現 空間有時捕獲了訓練集中數據之間存在的屬性相關性,並將其編碼成了耦合的樣式。以上圖爲例, 空間學到了一種包含了眼鏡語義的年齡語義投影,但這個方向在某種程度上又和眼鏡語義方向是垂直的,我們所描述的減去眼鏡投影相當於減去了一個零向量,幾乎不會對結果又任何影響。
3.5. 真實圖像操控
首先需要將真實圖像轉換成潛在編碼,這裏有兩種轉換機制:
- 基於優化的方法,利用固定生成器直接優化潛在代碼,使像素級重構誤差最小化
- 基於編碼器的方法,其中額外的編碼器網絡被訓練來學習逆映射(圖像轉潛在編碼)
本小結對這兩種方法在 PGGAN
和 StyleGAN
上進行了實驗。實驗結果如下圖。
如上圖所示,在 PGGAN
中的兩種轉換機制生成的效果圖都較差,可見傳統生成器架構的 GAN
對訓練數據和測試數據之間的差異性過於敏感。雖然生成的效果圖很差,但仍可以用我們的 InterFaceGAN
方法對面部屬性進行編輯。
如上圖所示,在 StyleGAN
中的基於優化方法的效果要好得多。值得注意的是,這裏的優化目標是每層的樣式(所有層裏的 )。在編輯實例的過程中,將所有的樣式編碼都推向同一個方向。無需再訓練StyleGAN,僅僅利用了潛在空間的解釋語義,便成功地更改了真實人臉圖像的屬性。
此外還測試了 InterFaceGAN
在編碼器-解碼器生成模型(讓編碼器與生成器和判別器同時參與訓練)裏的效果。即一旦模型收斂,便直接使用編碼器進行推理將給定圖像映射到潛在空間。文中將 InterFaceGAN
方法來解釋最近的編解碼器模型 LIA
的潛在空間。實驗結果如上圖所示,可見其也支持語義編輯。此外,同上述由 PGGAN
中模型準備好後再單獨學習編碼器相比,編碼器和生成器一起訓練的模型明顯有更好的重構和操作結果。
四. 實現細節
本文選擇了五個關鍵的面部特徵進行分析,包括姿勢、微笑、年齡、性別和眼鏡。相應的“正方向”被定義爲向右轉、大笑、變老、男性化和戴眼鏡。注意,只要屬性檢測器可用,我們總是可以輕鬆插入更多屬性。
使用自CelebA數據集的註釋和ResNet50網絡訓練了一個輔助屬性預測模型。這個模型接受了多任務損失訓練,以同時預測微笑、年齡、性別、眼鏡以及5點面部標誌(確定面部框架)。這裏,人臉標示將被用來計算姿勢的偏移,在進一步的分析中也被當作二元屬性(左或右)來處理。**除面部標誌外,所有的屬性都用 softmax
交叉損失的雙分類問題,面部標誌用 迴歸損失進行優化。**由於 PGGAN
和 StyleGAN
的圖像分辨率爲 ,我們在將其輸入屬性模型之前將其大小調整爲 。
在預先訓練好的 GAN
模型的基礎上,對潛在空間進行隨機採樣,生成了 K 幅圖像。之所以要準備這樣大規模的數據,主要有兩個原因:
- 消除抽樣帶來的隨機性,通過大規模數據來確保潛在編碼的分佈符合預期分佈。
- 通過大規模數據來確保訓練集中有足夠多的戴眼鏡樣本,因爲
PGGAN
模型中很少生成這一類樣本。
爲了找到潛在空間中的語義邊界,我們使用預先訓練好的屬性預測模型對 K 個合成的圖像進行屬性評分。對於每個屬性,我們對相應的得分進行排序,選擇得分最高的10K個樣本和得分最低的10K個樣本作爲候選。這樣做的原因是,預測模型不是絕對準確的,可能會對模糊的樣本產生錯誤的預測,例如對年齡屬性的預測是中年人。然後從候選樣本中隨機抽取 的樣本作爲訓練集學習線性支持向量機,得到一個決策邊界。其中,所有邊界的法向量都歸一化爲單位向量。剩下的30%用於驗證線性分類器的分類效果。在SVM訓練中,輸入爲 維的潛碼,二值標籤由輔助屬性預測模型分配。