1. 程式人生 > 資訊 >論 AI 能幹什麼:一鍵讓二次元老婆微笑,還能把貓臉瞬間變成狗臉

論 AI 能幹什麼:一鍵讓二次元老婆微笑,還能把貓臉瞬間變成狗臉

給一行二次元老婆的臉蛋;下一行就能讓她們全部微笑起來:

或者對於鏟屎官們來說,把老虎貓變成?,把狗變成狼?,還可以把老虎變成貓:

阿這,等一等,讓我來捋一下:老虎 —>> 貓 ——>> 狗 ——>> 狼,這豈不是說,老虎 == 狼了?

對於這一點,或許廣大網友們早就見怪不怪了,畢竟蘇大強也可以變身吳彥祖:

沒錯,正如大家所猜到的一樣,今天為大家介紹的就是一款可以學習通過操縱隱空間語義進行臉部屬性編輯的 GAN 模型 —— L2M-GAN。

這是人民大學高瓴人工智慧學校盧志武老師實驗室團隊提出的模型,論文已經被 CVPR 2021 接收為 Oral,論文題目:《L2M-GAN: Learning to Manipulate Latent SpaceSemantics for Facial Attribute Editing》。

論文介紹

臉部屬性編輯任務的目標是操縱真實臉部圖片的語義屬性,其在現實中有著廣泛的應用,例如娛樂、輔助心理治療以及資料增強等等。隨著深度生成模型的發展,最近的工作大多以 GAN(Generative Adversarial Network)為基礎。現有的臉部屬性編輯模型面臨的一個主要挑戰是要同時滿足兩個要求:

(1)正確地修改想要的屬性;(2)保留其它無關的資訊。但是因為不同屬性之間存在著各種關係,且屬性與身份資訊之間也存在著關係,所以在修改一個屬性時很可能不經意地導致其他特徵的改變,這導致了同時滿足這兩個屬性是很困難的。

為了滿足這兩個條件,一些最新的辦法採用了空間注意力的方法。這類方法假設每個屬性有著一個對應的區域性區域,圖片的屬性操作可以被限制在這一區域中。它們通過網路中的注意力模組去學習建模這一區域,一但這一區域被確定,它們便可以使用掩碼和殘差和的方法實現僅在部分割槽域內進行編輯。

但是這一假設並非對所有的屬性都滿足,比如說性別、笑容等屬性,這些屬性對應的區域基本覆蓋了整個臉部且與其他屬性區域重疊。因此這類模型在操縱這些屬性時效果並不好。另一部分方法則把注意力放在對 GAN 學到的隱空間中進行隱變數的分解,從而通過分解得到屬性相關的向量。給定一個預訓練好的 GAN 模型,它們通過學習子對映的方式將原向量對映到表達對應屬性的向量。

但是這類方法仍然存在兩個問題:

(1)它們依賴於預訓練好的 GAN 模型提供的隱空間,並不對模型重新訓練。這種沒有重新進行端到端訓練的模型的隱空間可能是一個次優化的隱空間。

(2)這類方法往往只在資料集提供的幾個標籤之間進行解耦,但是還有許多並沒有被包含在這些預定義的標籤中的資訊需要被解耦,例如光照資訊和身份資訊等。

為了克服這些限制,本文提出了一個新的隱空間分解模型 L2M-GAN。

該模型進行端到端的訓練,並學習將隱向量明確地分解為屬性相關向量和屬性無關向量,以實現相關屬性資訊和其他資訊的解耦。與之前的這類方法類似,我們也根據屬性標籤對隱空間中的變數進行解耦,但是不同的是,我們明確地將其分解為屬性相關的向量和屬性無關的向量,而非僅僅對兩個預定義的屬性進行解耦。

方法

在介紹我們的方法之前,我們先定義“域”這一概念。“域”指的是某些屬性的值構成的組合。比如想要編輯屬性 < 性別,年齡 > 時,一共存在 4 個“域”,< 男性,年老 >,< 女性,年老 >,< 男性,年輕 >,< 女性,年輕 >。給定一張輸入圖片和它所對應的域,以及目標域,我們的目的是合成一張屬於目標域的圖片,同時保留輸入圖片的與域無關的資訊。

如下圖所示,我們提出的模型由三個部分組成:風格編碼器、風格轉換器和生成器。

在多工學習的設定下,我們的風格編碼器由多個域的輸出分支組成。為了解釋方便,上圖中僅表示了一個域的輸出。

風格編碼器是 L2M-GAN 的關鍵組成部分,它由分解器和域轉換器兩個元件構成。其中,分解器從原始的隱向量中分解出與域無關的(屬性無關的)向量 Sun,再通過相減能得到域相關的(屬性相關的)向量。因為我們的目標是修改目標屬性到目標域中,而其他無關的資訊不會被修改。這種情況會出現,當且僅當和 Sun 是相互垂直的,且修改後的向量也與 Sun 是相互垂直的。

為此,我們引入了垂直損失來對這兩個向量進行限制。值得注意的是,之前的方法使用垂直損失來對兩個屬性進行解耦,而 L2M-GAN 則用該損失來把屬性相關的資訊和其他所有無關的資訊分離開。這對屬性編輯中保留其他資訊這一要求是至關重要的,因為其他的屬性標籤並不能涵蓋所有的無關資訊。在得到域相關向量以後,L2M-GAN 通過域轉換器把它轉換到目標域中,得到表示目標域資訊的域相關向量。其與域無關向量 Sun 相加後便可得到編輯過後的隱向量。

生成器以一張輸入圖片和一個編輯後的隱編碼作為輸入,生成一張目標域的圖片,其包含目標域資訊和輸入圖片的與域無關的其他資訊。與 StarGAN V2 類似,我們的生成器也採用 Adaptive Instance Normalization(AdaIN)結構來將隱編碼中包含的風格資訊融合到輸入圖片中。

實驗

我們在廣泛使用的 CelebA-HQ 資料集上進行實驗。我們根據 CelebA 的劃分以及 CelebA 和 CelebA-HQ 圖片間的對應關係,把 CelebA-HQ 劃分為 27176 張訓練圖片和 2824 張測試圖片。

我們將我們的方法與其他幾種最新的方法進行了對比。正文中的實驗幾種在“笑容”這一特定屬性上,其他更多屬性的結果我們放在了附件中。值得注意的是,“笑容”這一屬性是資料集所給的 40 個標籤中最具挑戰性的一個屬性,因為其同時涉及臉部中的多個部分,新增和消除笑容都需要模型對輸入圖片有高階的語義理解,這樣才能同時修改多個臉部圖片的組成部分而不改變其他資訊。

從視覺化結果中可以看到,StarGAN 和 CycleGAN 傾向於在嘴周圍生成模糊和失真的結果,因此在大多數生成圖片中,它們沒法很好地正確編輯對應屬性。ELEGANT 則總是把參考圖片中與屬性無關的資訊也遷移到生成圖片中,這是因為它進行屬性交換的隱空間並沒有很好地解耦。

PA-GAN 是基於空間注意力的方法,因此它較好地保留了一些無關的資訊,例如背景等,但是可以看到,面對難以定義確定修改區域的“笑容”屬性,其通常會出現修改不充分的情況,因而無法正確地編輯屬性。InterfaceGAN * 能夠生成高質量的圖片,但是在一些細節上仍然做的不夠好,比如眼睛和嘴的生成。同時其有時會修改輸入圖片的身份資訊,這是因為其僅僅考慮了屬性間的解耦,而沒有考慮身份等其他資訊。

在量化結果上,我們主要採用了 FID 和屬性操作準確率來分別評價合成圖片的質量以及屬性編輯的結果正確率。可以看到除了在消除笑容這一結果上的 FID 比 PA-GAN 低,其他的結果都是超過了所有最新的結果的,而 PA-GAN 是以修改不充分為代價來達到較高的圖片質量的。

除了上述結果,我們的模型還展現出了其他的能力,包括:控制編輯屬性的強度、同時修改多個屬性以及對未見過的圖片的遷移等。

因為經過訓練之後的隱空間是一個學習到了語義資訊的連續空間,當我們線性地把變換到時,合成的圖片所表示的關於目標域的語義資訊也會逐漸增加,關於原域的語義資訊會逐漸減少,同時因為我們對、與 Sun 的垂直限制,這個過程不會改變其他無關的資訊。這一過程可以表達為:

我們可以通過控制超引數來控制合成圖片的相關屬性的強度。

此外,我們的 L2M-GAN 模型以 StarGAN V2 作為骨架網路,所以可以很自然地進行多屬性編輯的任務。

本文還使用了資料集外的圖片測試了我們模型的泛化能力。可以看到,我們的模型在 CelebA-HQ 這一真實人臉資料集上訓練過後,直接在分佈差異比較大的動漫資料集上測試也可以很好地實現屬性編輯的功能且合成質量很高的圖片。

同時,為了進一步驗證我們模型結構的有效性,我們還在非人臉的動物資料集 AFHQ 上進行訓練。從視覺化結果中可以看到,我們的模型在非人臉資料集上也能達到很好的屬性編輯效果以及生成圖片質量。這進一步驗證了我們的方法的有效性及泛化性。

總結

我們提出了一種新的基於隱空間分解的臉部屬性編輯模型。

我們提出的模型 L2M-GAN 是首個基於隱空間分解的端到端臉部屬性編輯模型,其可以有效地編輯區域性和全域性屬性。這得益於提出的新的風格轉換器將隱向量分解為屬性相關的部分和屬性無關的部分,並對轉換前後的向量施加了垂直約束。大量的實驗證明了我們提出的 L2M-GAN 比其他現有的方法有明顯的改進。

另外本論文已經開源,歡迎大家多多試用、來個 star~

開源連結:https://github.com/rucmlcv/L2M-GAN

論文地址:

https://openaccess.thecvf.com/content/CVPR2021/papers/Yang_L2M-GAN_Learning_To_Manipulate_Latent_Space_Semantics_for_Facial_Attribute_CVPR_2021_paper.pdf