研究展示:http://www.albertpumarola.com/#projects
專案地址:https://github.com/albertpumarola/GANimation
以下是部分動畫示例:
1 引言
如果一張圖片中的面部表情可以自動變成動畫形式,就會開啟許多不同領域新應用的大門,包括電影產業、攝影技術、時尚界和電子商務等。隨著生成對抗網路的流行,這項任務取得了重大的進展,例如 StarGAN 這樣的架構不僅能夠合成新表情,還能更改面部的其它屬性,如年齡、髮色、性別等。儘管 StarGAN 很通用,但它只能在由資料集的註釋粒度定義的離散屬性中改變面部一個特定的部分。例如,在面部表情合成任務中,StarGAN 在資料集 RaFD 上進行訓練,該資料集上只有八種二元標籤,分別是悲傷、中立、憤怒、輕蔑、厭惡、驚訝、恐懼和快樂。
圖 1:從單張影像生成的人臉動畫。研究者提出了一種解剖結構上連貫的方法,該方法不侷限於離散數量的表情,可以對給定的影像進行動畫化處理, 並在一些連續的影像域中生成新的表情。在這些例子中,只給出最左邊的影像輸入 I_yr(由綠色方框圈出), 引數α控制微笑表情中包含的目標動作單元的啟用程度。此外, 該系統可以處理非自然光照條件下的影像, 如最下面一行的例子。
然而,面部表情是面部肌肉組合和協調運動的結果,不能被歸為離散的、數量較少的類別。Ekman 和 Friesen[6] 開發了面部動作編碼系統(FACS),以動作單元(AU)來描述面部表情,它們在解剖學上與特定面部肌肉的收縮有關。儘管動作單元的數量相對較少(已發現 30 個 AU 在解剖學上與特定面部肌肉的收縮有關),但人們已經觀察到了 7000 多個不同的 AU 組合 [30]。例如,恐懼的面部表情通常是透過以下 AU 啟用產生的:眉心提升(AU1)、眉尾提升(AU2)、眉毛降低(AU4)、上眼瞼提升(AU5)、眼瞼收緊(AU7)、嘴唇伸展(AU20)和下頜下降(AU26)[5]。根據每個 AU 的大小,表情將或多或少地傳遞恐懼情緒。
本文旨在建立一個具有 FACS 表達水平的合成面部動畫模型,能夠在連續的域中產生解剖學結構的表情,而不需要獲得任何面部關鍵點標註 [36]。為此,研究者利用最近的 EmotioNet 資料集 [3],該資料集由 100 萬幅(我們使用其中的 20 萬幅)自然狀態下的情緒面部表情影像組成,用離散的 AU 啟用標註。研究者構建了一個 GAN 架構,它不像 [4] 中那樣被特定域的影像所條件化,而是被一個一維向量所條件化,該向量表示每個動作單元的存在/缺失以及大小。研究者以一種無監督的方式訓練這個架構,只需要輸入啟用 AU 和影像。為了避免對同一個人在不同表情下的成對訓練影像的需求,研究者將問題分為兩個主要階段。首先,研究者考慮一個 AU 條件化的雙向對抗性架構,在給定一張訓練照片的情況下,它最初會在期望表情下呈現一個新的影像。然後,該合成影像被渲染回原始狀態,因此可以與輸入影像直接比較。研究者結合最近提出的損失函式來評估生成影像的真實感。此外,該系統還超越了當前最佳水平,因為它可以在不斷變化的背景和光照條件下處理影像。研究者透過一個注意力層來實現這一點,該注意力層只將網路的動作集中在與傳達新表情相關的影像區域。
最終,研究者構建了一個自動化的連貫人臉表情合成方法,可以在連續域中渲染影像,並且可以處理包含複雜背景和光照條件的自然影像。如結果部分所示,研究者將它與其它的條件化 GAN 模型在最終的視覺效果以及生成影像的範圍上做了對比。圖 1 展示了部分結果示例,其中給定一張輸入影像,模型可以逐漸改變 AU 啟用值的大小來生成笑臉。
論文:GANimation: Anatomically-aware Facial Animation from a Single Image
論文地址:https://arxiv.org/abs/1807.09251
摘要:近期生成對抗網路(GAN)在人臉表情合成任務中取得了驚人的表現。其中最成功的架構是 StarGAN,它使用特定域的影像來調整 GAN 生成過程,即一系列相同表情的人臉影像。儘管該方法很有效,但它只能生成不連續的表情,而這是由資料集決定的。為了解決這個侷限,本文提出了一種基於動作單元(AU)標註的新型 GAN 條件化方法,該方法在連續流形中描述了定義人臉表情解剖結構的運動。我們的方法允許控制每個 AU 的啟用值大小,並將其組合。此外,我們還提出了一個完全無監督的策略來訓練該模型,僅需要用啟用 AU 標註的影像,並利用注意力機制使我們的網路對背景和光照條件變化具備魯棒性。擴充套件評估結果表明,我們的方法在合成更多樣表情(按解剖結構的肌肉運動),以及處理自然影像的能力上都超越了對比的條件生成模型。
4 我們的方法
這一節將描述我們用於生成逼真影像的新方法。如圖 2 所示,該模型由兩個模組組成。一方面,生成器 G(I_yr | yg) 被訓練來將影像 I_yr 中的表情逼真地轉換為目標表情 yg。注意 G 被應用了兩次,第一次對映輸入影像為 I_yg,即 I_yr→I_yg,然後將其渲染回去,即 I_yg→I_yr hat。另一方面,我們使用了一個基於 WGAN-GP[9] 的判別器 D(I_yg) 來評估生成影像及其表情的質量。
4.1 網路架構生成器
令 G 為生成器模組。由於它需要被雙向應用(即對映輸入影像為期望表情,反之亦然),在接下來的討論中我們使用下標 o 和 f 來表示初始和最終。
給定影像 I_yo ∈ R^H×W×3 以及編碼期望表情的 N 維向量 yf,我們將生成器的輸入設定為拼接(I_yo,yo)∈ R^H×W×(N+3),其中 yo 被表徵為 N 個大小為 H x W 的陣列。
我們系統的一個關鍵是使 G 聚焦於那些對合成新表情有意義的影像區域,並保持影像的餘下部分不變,例如頭髮、眼鏡、帽子或飾物等。為此,我們嵌入了一個注意力機制到生成器中。
具體來說,我們的生成器不是迴歸整個影像,而是輸出了兩個掩碼,一個著色掩碼 C 和一個注意力掩碼 A。最終的影像由以下式子獲得:
其中 A=G_A(I_yo | yf)∈ {0, . . . , 1} ^H×W 以及 C=G_C(I_yo | yf)∈ R^H×W×3。掩碼 A 表示 C 的每個畫素在多大程度上對輸出影像 I_yf 有貢獻。這樣生成器就無需渲染與表情無關的元素,僅聚焦於定義了人臉表情的畫素上,從而能得到銳度更高和更加真實的合成影像。該過程如圖 3 所示。
條件化判別器。這是一個用來訓練評估生成影像的逼真度和期望表情的完成度的網路。D(I) 的結構整合了 PatchGan[10] 網路的元件,將輸入影像對映到一個矩陣 Y_I∈ R^H/2^6×W/2^6,其中 Y_I[i,j] 表示重疊補丁 ij 為真實的機率,此外,為了評估它的約束,我們在頂部新增了一個輔助迴歸頭來估計影像中 AU 的啟用值 y hat = (y1 hat, . . . , yN hat)^T。
圖 2:用我們的方法來生成逼真影像的過程概覽。該架構由兩個主要模組構成:一個生成器 G 來回歸注意力和著色掩碼;一個判別器來評估生成影像的照片真實度 D_I 和表情條件化完成度 yg。注意我們的系統是無監督的,即不需要同一個人的不同表情的影像對比,也不需要假設目標影像 I_yg 已知。
圖 3:注意力生成器。給定一個輸入影像和目標表情,生成器將對整個影像進行迴歸並將注意力掩碼 A 和 RGB 色彩轉換 C 覆蓋在原圖上。注意力掩碼定義了每個畫素的強度,指定擴充套件源影像的每個畫素對最終渲染影像的影響。
6 實驗評估
圖 4:只調整 AU。特定的 AU 在強度增強時被啟用(從 0.33 到 1)。第一行對應於 AU 零強度應用,在所有情況下都會準確生成原始影像。
圖 5. 注意力模型。注意力掩碼 A(第一行)和著色掩碼 C(第二行)中間級的具體表現。最底行影像是合成表情。注意力掩碼 A 的較暗區域顯示了影像中與每個特定 AU 相關的區域。較亮的區域從原始影像中保留下來。
圖 6:與當前最優方法進行定性比較。不同方法的面部表情合成結果:DIAT、CycleGAN、IcGAN、StarGAN 和我們的方法。上圖分別是輸入影像和七種不同的面部表情。可以看出,我們的方法在視覺精度和空間解析度之間取得了最好的平衡。目前最好的方法——StarGAN 的一些結果出現了一定程度的模糊。之前模型的影像來自 [4]。
圖 7:取樣面部表情分佈空間。透過向量 y_g 應用 AU 引數化,我們可以用相同的源影像 I_y_r 合成大量逼真影像。
圖 8:對自然影像的定性評估。上行:我們從《加勒比海盜》中選取了一張圖片(左),然後用我們的方法合成了一張新圖(右)。下行:我們用類似的方式在《權力的遊戲》中選擇了一張圖片(左),併合成了五個不同表情的新圖。
圖 9:成功案例和失敗案例。源影像 I_y_r,目標影像 I_y_g、著色掩碼 C、注意力掩碼 A。上方:極端情況下的成功案例;下方:失敗案例。