當前位置:
首頁 > 知識 > 定製人臉圖像沒那麼難!使用TL-GAN模型輕鬆變臉

定製人臉圖像沒那麼難!使用TL-GAN模型輕鬆變臉

選自Medium

作者:Shaobo GUAN

機器之心編譯

參與:王淑婷、路、張倩

基於描述生成逼真圖像是一項比較困難的任務。本文介紹了一項新研究 Transparent Latent-space GAN (TL-GAN),它使用英偉達的 pg-GAN 模型,利用潛在空間中的特徵軸,輕鬆完成圖像合成和編輯任務。

使用 TL-GAN 模型進行受控人臉圖像合成的示例。

教電腦根據描述生成照片

判別任務 VS 生成任務

描述一張圖像對人類來說相當容易,我們在很小的時候就能做到。在機器學習中,這項任務是一個判別分類/回歸問題,即從輸入圖像預測特徵標籤。隨著最近 ML/AI 技術(尤其是深度學習模型)的進步,它們開始在這些任務中脫穎而出,有時會達到甚至超過人類的表現,如視覺目標識別(例如,從 AlexNet 到 ResNet 在 ImageNet 分類任務上的表現)和目標檢測/分割(如從 RCNN 到 YOLO 在 COCO 數據集上的表現)等場景中展示的一樣。

然而,另一方面,基於描述生成逼真圖像卻要困難得多,需要多年的平面設計訓練。在機器學習中,這是一項生成任務,比判別任務難多了,因為生成模型必須基於更小的種子輸入產出更豐富的信息(如具有某些細節和變化的完整圖像)。

雖然創建此類應用程序困難重重,但生成模型(加一些控制)在很多方面非常有用:

內容創建:想像一下,廣告公司可以自動生成具有吸引力的產品圖像,而且該圖像不僅與廣告內容相匹配,而且與鑲嵌這些圖片的網頁風格也相融合;時尚設計師可以通過讓演算法生成 20 種與「休閑、帆布、夏日、激情」字樣有關的樣鞋來汲取靈感;新遊戲允許玩家基於簡單描述生成逼真頭像。

內容感知智能編輯:攝影師可以通過幾次單擊改變證件照的面部表情、皺紋數量和髮型;好萊塢製片廠的藝術家可以將鏡頭裡多雲的夜晚轉換成陽光燦爛的早晨,而且陽光從屏幕的左側照射進來。

數據增強:自動駕駛汽車公司可以通過合成特定類型事故現場的逼真視頻來增強訓練數據集;信用卡公司可以合成數據集中代表性不足的特定類型欺詐數據,以改進欺詐檢測系統。

在本文中,我們將描述我們最近的研究,稱為 Transparent Latent-space GAN (TL-GAN),它擴展了當前的前沿模型,提供了一個新的界面。我們正在寫關於這項研究的論文,裡面將包含更多技術細節。

生成模型概覽

深度學習社區在生成模型方面進展迅猛。其中有三種比較有前景的模型:自回歸模型,變分自編碼器(VAE)和生成對抗網路(GAN),如下圖所示。如果你想了解詳情,可以查看這篇 OpenAI 博客:

https://blog.openai.com/generative-models/。

生成器網路對比。圖源:https://wiki.math.uwaterloo.ca/statwiki/index.php?title=STAT946F17/Conditional_Image_Generation_with_PixelCNN_Decoders

英偉達的 pg-GAN 生成的合成圖像。以上沒有一個是真實圖像!

控制 GAN 模型的輸出

隨機圖像生成 VS 受控圖像生成

GAN 的原始版本和很多流行的模型(如 DC-GAN 和 pg-GAN)都是無監督學習模型。訓練後,生成器網路將隨機雜訊作為輸入,並生成幾乎無法與訓練數據集區分開來的逼真圖像。然而,我們無法進一步控制生成圖像的特徵。但在大部分應用程序(如第一部分中描述的場景)中,用戶希望生成帶有自定義特徵(如年齡、發色、面部表情等)的樣本,而且理想情況是能夠不斷調整每個特徵。

為了實現可控合成,人們已經創建了很多 GAN 的變體。它們大致可分類兩類:風格遷移網路和條件生成器。

風格遷移網路

風格遷移,以 CycleGAN 和 pix2pix 為代表,是用來將圖像從一個領域遷移到另一領域(例如,從馬到斑馬,從素描到彩色圖像)的模型。因此,我們不能在兩個離散狀態之間連續調整一個特徵(例如,在臉上添加更多鬍鬚)。另外,一個網路專用於一種類型的遷移,因此調整 10 個特徵需要十個不同的神經網路。

條件生成器

條件生成器以 conditional GAN,AC-GAN 和 Stack-GAN 為代表,是在訓練期間聯合學習帶有特徵標籤的圖像的模型,使得圖像生成能夠以自定義特徵為條件。因此,如果你想在生成過程中添加新的可調特徵,你就得重新訓練整個 GAN 模型,而這將耗費大量的計算資源和時間(例如,在帶有完美超參數的單一 K80 GPU 上需要幾天甚至幾個星期)。此外,你要用包含所有自定義特徵標籤的單個數據集來執行訓練,而不是利用來自多個數據集的不同標籤。

我們的 Transparent Latent-space GAN 模型,通過從新的角度處理受控生成任務,解決了現有方法存在的這些問題。它允許用戶使用單個網路逐漸調整單個或多個特徵。除此之外,添加新的可調特徵可以在一個小時之內非常高效地完成。

TL-GAN:一種新型高效的可控合成和編輯方法

讓神秘的潛在空間變得透明

我們將利用英偉達的 pg-GAN,該模型可以生成高解析度的逼真人臉圖像,如前一節所示。一個解析度為 1024x1024 的生成圖像的所有特徵僅由潛在空間(作為圖像內容的低維表示)中 512 維雜訊向量確定。因此,如果我們能夠理解潛在空間代表什麼(即,使其透明化),我們就能完全控制生成過程。

TL-GAN 的動機:理解潛在空間以控制生成過程

通過用預訓練的 pg-GAN 進行實驗,我發現潛在空間具有兩個良好的特性:

它很稠密,這意味著空間匯總的大多數點能夠生成合理的圖像;

它相當連續,意味著潛在空間中兩點之間的插值通常會導致相應圖像的平滑過渡。

考慮到這兩點,我覺得可以在潛在空間中找到能夠預測我們關心的特徵(如,女性-男性)的方向。如果是這樣的話,我們可以把這些方向的單位向量用作控制生成過程(更男性化或更女性化)的特徵軸。

方法:揭示特徵軸

為了在潛在空間中找到這些特徵軸,我們將通過在成對數據 (z,y) 上訓練的監督學習方法構建潛在向量 z 與特徵標籤 y 之間的關係。現在問題變成了如何得到此類成對數據,因為現有數據集僅包含圖像 x 及其對應特徵標籤 y。

連接潛在向量 z 和特徵標籤 y 的方法。

可能的方法

一種可能方法是計算來自現有數據集的圖像 x_real 的潛在向量 z,x_real 的標籤是 y_real。但是,GAN 無法提供計算 z_encode=G^(?1)(x_real) 的簡單方式,因此這個方法很難實現。

第二種可能方法是使用來自隨機潛在向量 z 的 GAN 來生成合成圖像 x_gen,即 x_gen=G(z)。問題在於合成圖像沒有標籤,我們無法輕鬆地利用可用的標註數據集。

為了解決該問題,TL-GAN 模型做出了一項重要創新,即利用已有標註圖像數據集 (x_real, y_real) 訓練單獨的特徵提取器(用於離散標籤的分類器或用於連續標籤的回歸器)模型 y=F(x),然後將訓練好的 GAN 生成器 G 與特徵提取器網路 F 結合起來。這樣,我們就能利用訓練好的特徵提取器網路來預測合成圖像 x_gen 的特徵標籤 y_pred,從而通過合成圖像建立 z 和 y 之間的聯繫,即 x_gen=G(z) and y_pred=F(x_gen)。

現在我們有了成對的潛在向量和特徵,可以序列回歸器模型y=A(z) 來找出可用於控制圖像生成過程的所有特徵軸。

TL-GAN 模型架構

上圖展示了 TL-GAN 模型的架構,共包括五步:

學習分布:選擇一個訓練好的 GAN 模型作為生成器網路。我選擇的是訓練好的 pg-GAN,它提供的人臉生成質量最好。

分類:選擇一個預訓練的特徵提取器模型(可以是卷積神經網路,也可以是其它計算機視覺模型),或者利用標註數據集訓練自己的特徵提取器。我在 CelebA 數據集上訓練了一個簡單的 CNN,該數據集包含三萬餘張人臉圖像,每個圖像有 40 個標籤。

生成:生成大量隨機潛在向量,並傳輸到訓練好的 GAN 生成器中以生產合成圖像,然後使用訓練好的特徵提取器為每張圖像生成特徵。

關聯:使用廣義線性模型(Generalized Linear Model,GLM)執行潛在向量和特徵之間的回歸任務。回歸斜率(regression slope)即特徵軸。

探索:從一個潛在向量開始,沿著一或多個特徵軸移動,並檢測對生成圖像的影響。

這個過程非常高效。只要具備一個預訓練的 GAN 模型,在單 GPU 機器上識別特徵軸僅需一小時。這是通過多個工程 trick 達成的,如遷移學習、下採樣圖像大小、預緩存合成圖像等。

結果

沿著特徵軸移動潛在向量

首先,測試發現的特徵軸能否用於控制生成圖像的對應特徵。為此,我在 GAN 的潛在空間中生成了一個隨機向量 z_0,然後將它傳輸到生成器網路 x_0=G(z_0) 以生成合成圖像 x_0。接下來,我將潛在向量沿著特徵軸 u(潛在空間中的單位向量,對應人臉的性別)移動距離 λ,到達新的位置 x_1=x_0+λu,並生成新的圖像 x1=G(z1)。理想情況下,新圖像的對應特徵可以沿著期望方向進行修改。

下圖展示了沿著多個示例特徵軸(性別、年齡等)移動潛在空間向量的結果。效果非常棒!我們可以流暢地在男性 女性、年輕 年老之間變化圖像。

沿著示例相關特徵軸移動潛在向量的初始結果

解除相關特徵軸之間的關聯

上述示例也展示了該方法的缺點:相關特徵軸。舉例來說,當我打算減少鬍鬚量時,生成的人臉圖像更女性化,而這並非用戶期望的結果。問題在於性別特徵和鬍鬚特徵天然相關,修改一個必然會導致另一個也發生改變。類似的還有髮際線和捲髮。如下圖所示,潛在空間中原始的「鬍鬚」特徵軸不垂直於性別特徵軸。

為了解決這個問題,我使用直接的線性代數 trick。具體來說,我將鬍鬚特徵軸投影到新的方向,新方向垂直於性別特徵軸,這就有效去除了二者之間的關聯,從而解除生成人臉圖像中這兩個特徵的關聯。

使用線性代數技巧解除相關特徵軸之間的關聯

我將該方法應用於相同的人臉圖像示例中。這次我使用性別軸和年齡軸作為參考特徵,將其它特徵軸投影到與性別和年齡特徵軸垂直的方向,然後檢測潛在向量沿著新生成的特徵軸移動時的生成圖像(見下圖)。如我們所料,髮際線、捲髮和鬍鬚等特徵沒有改變人臉的性別。

靈活的互動式編輯

為了查看 TL-GAN 模型控制圖像生成過程的靈活程度,我構建了一個互動式 GUI 來探索沿著不同特徵軸調整特徵值的效果。

視頻:使用 TL-GAN 的人臉圖像互動式編輯

我使用特徵軸控制生成圖像時,效果驚人的好!

總結

該項目提供了一種新方法來控制無監督生成模型(如 GAN)的生成過程。利用已經訓練好的 GAN 生成器(英偉達的 pg-GAN),我通過發現其中有意義的特徵軸使其潛在空間變得透明。當向量沿著潛在空間中的特徵軸移動時,對應的圖像特徵發生變化,實現受控的合成和編輯。

該方法具備以下顯著優勢:

高效性:為生成器添加新的特徵調整器(feature tuner)時,無需重新訓練 GAN 模型。使用該方法添加 40 個特徵調整器僅需不到一小時。

靈活性:你可以使用在任意數據集上訓練的任意特徵提取器來給訓練好的 GAN 模型添加特徵調整器。

倫理問題

這項研究允許我們對圖像生成進行細粒度的控制,但它仍然嚴重依賴數據集的特徵。基於好萊塢名人的照片進行訓練意味著該模型擅長生成「好看」的人臉照片。這可能導致用戶僅能夠生成這種特定類型的人臉圖像。如果將該模型部署為一個應用的話,我們希望能夠增強原始數據集,以考慮用戶的多樣性。

此外,雖然該工具可能是一個巨大的創造性幫助,我們仍應該自問如果這個模型被用於邪惡目的呢。如果我們能夠生成任意類型的逼真人臉圖像,那麼我們看到的還是真實的嗎?這類問題很重要。我們看到了近期 deepfake 的出現與應用,AI 方法的能力正在快速增長,因此就如何最好地部署 AI 方法展開對話是非常重要的。

在線 demo 和代碼

該研究的所有代碼和 demo 均可在項目主頁看到:https://github.com/SummitKwan/transparent_latent_gan

如果你想在 web 瀏覽器中嘗試該模型

無需下載代碼、模型或數據。只需按照 GitHub README 頁面中的部分指令操作即可。(https://github.com/SummitKwan/transparent_latent_gan#1-instructions-on-the-online-demo)

如果你想嘗試我的代碼

按照 GitHub README 頁面操作即可。代碼是使用 Tensorflow、Keras 和 Anaconda Python 3.6 構建的。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

Facebook開源全新靜態語言Skip,性能如何你不了解下?
機器之心發布《全球500強AI戰略適應性報告》:縱覽上市公司落地AI得與失

TAG:機器之心 |