通常的圖像轉換模型(如 StarGAN、CycleGAN、IcGAN)無法實現同時訓練,不同的轉換配對也不能組合。在本文中,英屬哥倫比亞大學(UBC)與騰訊 AI Lab 共同提出了一種新型的模塊化多域生成對抗網絡架構——ModularGAN,生成的結果優于以上三種基線結果。該架構由幾個可重復利用和可組合的模塊組成。不同的模塊可以在測試時輕松組合,以便在不同的域中高效地生成/轉換圖像。研究者稱,這是首個模塊化的 GAN 架構。
據了解,騰訊 AI Lab 共有 19 篇論文入選 ECCV 2018。
圖1:ModularGAN在多領域圖像到圖像轉換任務的生成結果(CelebA數據集)。
近年來,隨著變分自編碼器、生成式對抗網絡的引入,圖像生成變得越來越流行。許多研究致力于基于圖像生成的任務,包括屬性到圖像的生成、文本到圖像的生成或圖像到圖像的轉換。這些任務在廣義上都可以歸為條件圖像生成,分別采用屬性向量、文本描述或一幅圖像作為條件輸入,并輸出一幅圖像。現有的多數條件圖像生成模型都是從輸入中學習一個直接的映射,其中,輸入可能包含一幅圖像或一個隨機噪聲向量及目的條件,以使用神經網絡輸出一幅包含目標屬性的圖像。
每個條件或條件類型有效地定義了一種生成或圖像到圖像的輸出域(如人臉圖像的表情域(笑)或性別域(男/女))。對于實際任務,我們希望控制數量巨大、可變的條件(如:生成微笑的人或棕色頭發微笑的人的圖像)。創建一個函數求解條件數目達到指數級的域非常困難。當下很多驚艷的圖像轉換方法只能將圖像從一個域轉換到另一個域。多域設定存在很多缺陷:(1)需要學習指數級的成對轉換函數,計算成本很高并且在很多實際情況下并不可行;(2)在學習一個特定的成對映射時不可能利用其它域的數據;(3)成對的轉換函數可能非常復雜,以建模差異巨大的域之間的轉換。為了解決(1)和(2)中的問題,最近人們引入了多域圖像(及語言)轉換模型。代表源/目標域信息的固定向量可以用來作為單一模型的條件,以指導轉換過程。然而,域間的信息分享在很大程度上是隱含的,函數映射變得極度復雜。
本文研究者假設將圖像生成的過程分為幾個較為簡單的生成步驟可以讓模型學習的過程變得更加容易、魯棒。他們訓練的既不是成對的映射,也不是復雜的模型,而是少數幾個簡單的生成模塊,這些模塊可以組合成復雜的生成過程。試想將一幅圖像從 A 域(男性皺眉)轉換到 C 域(女性微笑):DA → DC。這一過程是可能的,首先變換原始圖像的性別為女性,相較于直接從 A 域變換到 C 域,這種做法會使微笑(DA 女性 ?????→ DB 微笑 ?????→ DC)更加魯棒,原因分為兩個方面:(1)單個變換更簡單,空間上更局域化;(2)根據定義,與女性微笑最終域相比,中間女性的數據量及微笑域更大。換句話說,在本例中,研究者利用更多數據來學習更簡單的轉換函數。這種直覺與最近介紹的模塊化網絡相一致,本文在概念上采用并擴展了這種網絡,用于生成圖像任務。
為了實現這一增量圖像生成過程并使其定型,研究者提出了模塊化的生成對抗網絡 ModularGAN。該網絡包含幾種不同的模塊,包括生成器、編碼器、重構器、轉換器和判別器,這幾種模塊聯合訓練。每個模塊擁有特定的功能。用在圖像生成任務中的生成器模塊從隨機噪聲中生成潛在的圖像表征及一個(最優的)條件向量。用于圖像到圖像轉換的編碼器模塊將輸入圖像編碼為潛在表征。由生成器或編碼器生成的潛在表征由轉換器模塊根據給定的條件進行控制。之后重構器模塊重新構建轉換的圖像(看起來或真或假),并分類圖像的屬性。重要的是,不同的轉換器模塊在測試時可以以任意順序動態組合,形成應用特征轉換序列的生成網絡,以得到更復雜的映射和生成過程。
本文的貢獻是多方面的:
提出了 ModularGAN——一種新型的模塊化多域生成對抗網絡架構。ModularGAN 由幾個可重復利用和可組合的模塊組成。不同的模塊可以在測試時輕松組合,以便在不同的域中高效地生成/轉換圖像。據研究者稱,這是首個模塊化的 GAN 架構。
提供了一種端到端聯合訓練所有模塊的有效方法。新模塊可以很容易地添加到本文提出的 ModularGAN 中,現有模塊的子集也可以升級而不影響其它模塊。
演示了如何成功地組合不同的(轉換器)模塊,以便將圖像轉換到不同的領域。研究者在轉換器模塊中利用掩碼預測來確保僅變換特征圖的局部區域;保持其它區域不變。
實驗證明本文的方法在圖像生成(ColorMNIST 數據集)和圖像到圖像轉換(面部屬性轉移)任務上的有效性。與當前最佳的 GAN 模型的定性和定量比較展示了 ModularGAN 獲得的顯著改進。
論文:Modular Generative Adversarial Networks
論文地址:https://arxiv.org/pdf/1804.03343.pdf
摘要:已有的用于多領域圖像到圖像轉換(或生成)的方法通常嘗試直接將一張輸入圖像映射(隨機向量)到輸出領域的一張圖像。然而,大多數已有方法的可擴展性和魯棒性有限,因為它們需要為問題中的每對領域構建獨立的模型。這導致兩個明顯的缺陷:(1)訓練指數級配對模型的需求,以及(2)訓練特定配對映射時,無法利用來自其它領域的數據。受近期模塊化網絡的研究啟發,本文提出了用于多領域圖像生成和圖像到圖像變換的模塊化生成對抗網絡 ModularGAN。ModularGAN 由幾個可重復利用和可組合的分別實現不同功能(例如編碼、解碼、轉換)的模塊構成。這些模塊可以被同時訓練,利用來自所有領域的數據,然后在測試階段根據特定的圖像轉換任務,將模塊組合起來構建特定的 GAN。這給 ModularGAN 帶來了優越的靈活性,可以生成任何所需領域的圖像。實驗結果表明我們的模型不僅有引人入勝的感知結果,還超越了當前最佳的多領域臉部屬性遷移方法。
實驗
我們首先在合成的多屬性 MNIST 數據集上構建了圖像生成實驗。接下來,我們將自己的方法與近期的圖像到圖像的臉部屬性遷移方法進行了對比。根據用戶研究和屬性分類的結果,我們的方法同時實現了定性的和定量的提高。最后,我們構建了控制變量實驗來測試模塊 T 的掩碼預測、cyclic loss 以及多模塊 T 的順序對多領域圖像遷移的影響。
在 ColorMNIST 上的實驗結果
圖 4:圖像生成:在 ColorMNIST 數據集上的數字合成結果。注意,(n) 暗含對數字的約束,(c) 暗含顏色,(s) 暗含筆畫類型,以及 (b) 暗含背景。由多個字母標記的列說明生成結果依賴于多個屬性。例如:(ncs) 包含數字、顏色、筆畫的約束。灰度圖展示了由 T_i 模塊(i∈{c,s,b})內在地生成的掩碼。
在 CelebA 上的結果
圖 5:在 CelebA 數據集上的臉部屬性遷移結果。
定性評估。圖 1 和圖 5 展示了在 CelebA 數據集上的臉部屬性遷移結果,分別使用本文提出的方法和基線方法得到。在圖 5 中,遷移過程是在一張擁有中性表情和黑色頭發的女性臉部圖像到多個屬性組合之間進行的。結果證明 IcGAN 的表現最差。雖然生成的模型擁有所需的屬性,但臉部的身份特征沒有被很好地保留。此外,生成的圖像也不具備高銳度的細節,這是由于把圖像編碼到低維隱向量然后又解碼為原圖像的過程中信息丟失所導致的。
由 CycleGAN 生成的圖像比 IcGAN 更好,但存在一些可見的瑕疵。通過使用循環一致性損失,CycleGAN 保留了輸入圖像的身份一致性,并且僅改變了臉部的特定區域。StarGAN 生成了比 CycleGAN 更好的圖像,因為它是在完整的數據集上訓練的,并潛在地利用了來自所有屬性領域的圖像。我們的方法相比基線方法生成了更好的結果(例如,看看最后一列的微笑或多屬性遷移的結果)。它使用了多個轉換模塊來改變不同的屬性,并且每個轉換器模塊學習一個特定的從一個領域到另一個領域的映射。這和 StarGAN 不同,StarGAN 在一個模型中學習所有的變換。
表 1:AMT 用戶研究:更高的值表示結果更佳,并表明了偏好。
表 2:分類誤差。更低的值表示結果更佳,表明了更少的屬性誤差。
圖 6:掩碼可視化:執行屬性遷移時的掩碼可視化。當使用多個模塊 T 時,我們將不同的掩碼相加。
定量評估。我們訓練了一個使用 ResNet-18 架構的模型來對 CelebA 數據集的發色、臉部表情和性別 [30] 分類。訓練/測試集在其它實驗中也是相同的。已訓練的模型以 96.5%、97.9% 和 98.3% 的準確率對發色、性別和微笑分類。然后我們把這個已訓練的模型應用到轉換的圖像上,該圖像是在測試集上通過不同方法得到的。
如表 2 所示,我們的模型可以在發色分類任務上達到和 StarGAN 相當的分類誤差,并在所有其它任務上達到最低的分類誤差。表 1 展示了 AMT 實驗的結果。該模型在所有任務(除了性別分類)的最佳遷移屬性上獲得了多數投票。而且我們的性別遷移模型更好地保留了原始的發型,這從模型的角度來說是理想的,但有時候會讓挑剔的人感覺不適。
模塊化生成對抗網絡
網絡結構
圖像轉換。我們首先介紹可執行多領域圖像轉換的 ModularGAN。在這項任務中使用了四種類型的模塊:編碼器模塊(E),它把一張輸入圖像編碼為一個中間特征圖;轉換器模塊(T),可以修改特征圖的一個特定屬性;重構模塊(R),從一個中間特征圖重構圖像;以及判別器模塊(D),用來確定一張圖像的真假,并預測輸入圖像的屬性。
圖 2 展示了圖像轉換模塊在訓練和測試階段的完整架構。在訓練階段(圖 2,左),編碼器 E 和多轉換器模塊 T_i 連接,每個 T_i 進一步和重構模塊 R 連接,以生成轉換后的圖像。有多個判別器模塊 D_i 連接到重構器上,以將生成圖像從真實圖像中分辨出來,并對相應的屬性做出預測。所有的模塊擁有相同的接口,即 E 的輸出、R 的輸入、T_i 的輸入和輸出有相同的形狀和維度。這允許模塊進行集成,以在測試時構建更復雜的架構,如圖 2 所示。
圖 2:ModularGAN 架構:測試和訓練階段的多領域圖像轉換架構。ModularGAN 有四種不同的模塊構成:編碼器模塊 E、轉換器模塊 T、重構器模塊 R 以及判別器 D。這些模塊可以同時進行訓練,并根據測試階段的生成任務用于構建不同的生成網絡。
在訓練階段,一張輸入圖像首先由 E 編碼,得到中間表征 E(x)。然后不同的轉換器模塊 T_i 根據預指定的屬性 a_i 被用于修改 E(x),得到 T_i(E(x),a_i)。T_i 被設計用來將特定屬性 a_i 轉換成不同的屬性值。例如,將發色從金色變為褐色,或將性別從女性變為男性。重構器模塊 R 重構轉換后的特征圖為輸出圖像 y=R(T_i(E(x),a_i))。判別器模塊 D 被設計用來分辨生成圖像 y 和真實圖像 x。它還預測了圖像 x 或 y 的屬性。
在測試階段(圖 2 右),不同的轉換器模塊可以被動態地組合來構建網絡,以按任意的順序控制任意數量的屬性。
圖像生成。圖像生成任務的模型架構和圖像轉換任務的架構基本相同。僅有的不同之處在于,編碼器模塊 E 由一個生成器模塊 G 替換,后者從一個隨機噪聲向量 z 和一個條件向量 a_0(表示輔助信息)生成中間特征圖 G(z,a_0)。條件向量 a_0 可以決定圖像的整體內容。例如,如果目標是生成數字的圖像,a_0 可以被用于控制生成哪個數字,例如數字 7。模塊 R 可以類似地重構初始圖像 x=R(G(z,a_0)),這是擁有任意屬性的數字 7 的圖像。剩下的架構部分和圖像轉換任務中的相同,后者使用一個轉換器模塊 T_i 的序列來轉換初始圖像,以更改特定的屬性(例如,數字的顏色、筆畫類型或背景)。
模塊
轉換器模塊 (T) 是該模型的核心模塊。它根據輸入條件 a_i 將輸入特征表示轉換成新的特征表示。轉換器模塊接收大小為 C×H×W 的特征圖 f 和長度為 c_i 的條件向量 a_i。它的輸出是大小為 C×H×W 的特征圖 f_t。下圖展示了模塊 T 的結構。長度為 c_i 的條件向量 a_i 被復制到大小為 c_i×H×W 的張量,然后該張量與輸入特征圖 f 拼接。首先使用卷積層將通道數量從 C + c_i 減少到 C。之后,依次應用幾個殘差塊,其輸出用 f' 表示。使用變換后的特征圖 f' 和具有 Tanh 激活函數的附加卷積層來生成尺寸為 H×W 的單通道特征圖 g。隨后該特征圖 g 根據 g' = ( 1 + g ) / 2 的比例被重新縮放到范圍 (0,1)。預測的 g' 就像 alpha 掩碼或注意力層:它鼓勵模塊 T 只變換特征圖中與特定屬性變換相關的區域。最后,使用掩碼 g'將變換后的特征圖 f'與輸入特征圖 f 相結合,得到輸出 f_t = g'×f' + ( 1-g' )×f。
圖 3:轉換器模塊。