社群計算機視覺課程文件
StyleGAN 變體
並獲得增強的文件體驗
開始使用
StyleGAN 變體
本章您將學到什麼
- Vanilla GAN 缺少什麼
- StyleGAN1 的元件和優點
- StyleGAN1 的缺點以及 StyleGAN2 的必要性
- StyleGAN2 的缺點以及 StyleGAN3 的必要性
- StyleGAN 的用例
Vanilla GAN 缺少什麼
生成對抗網路(GANs)是一類生成逼真影像的生成模型。但很明顯,您無法控制影像的生成方式。在 Vanilla GAN 中,您有兩個網路:(i) 生成器,和 (ii) 判別器。判別器接收影像作為輸入,並判斷其是真實影像還是由生成器合成的影像。生成器接收噪聲向量(通常從多元高斯分佈中取樣)並嘗試生成看起來相似但與訓練樣本中可用的影像不完全相同的影像,最初它會是垃圾影像,但從長遠來看,生成器的目標是欺騙判別器,使其相信生成器生成的影像是真實的。
考慮一個訓練好的 GAN,設 z1 和 z2 是從高斯分佈中取樣的兩個噪聲向量,它們被髮送到生成器以生成影像。假設 z1 轉換為一個戴眼鏡的男性影像,z2 轉換為一個不戴眼鏡的女性影像。如果您需要一個戴眼鏡的女性影像怎麼辦?這種明確的控制決策無法透過 Vanilla GAN 直觀地實現,因為特徵是糾纏的(更多內容見下文)。請您仔細思考這一點,當您看到 StyleGAN 實現的功能時,您會理解得更深入。
總結;StyleGAN 僅對生成器的架構風格進行了特殊修改,而判別器保持不變。StyleGAN 的這種修改後的生成器提供了使用者按需生成影像的自由,並控制高階(姿勢、面部表情)和隨機(低階特徵,如皮膚毛孔、頭髮區域性位置等)特徵。除了這種靈活的影像生成能力,多年來 StyleGAN 還被用於其他一些所謂的下游任務,如隱私保護、影像編輯等。
StyleGAN 1 的元件和優點

讓我們深入瞭解 StyleGAN 中引入的特殊元件,這些元件賦予了 StyleGAN 我們上面描述的強大功能。不要被上圖嚇倒,它是一個最簡單但功能強大的思想之一,您可以輕鬆理解。
正如我已經說過的,StyleGAN 只修改生成器,判別器保持不變,因此上面沒有提及。圖 (a) 對應於 ProgessiveGAN 的結構。ProgessiveGAN 只是一個 Vanilla GAN,但它不是生成固定解析度的影像,而是逐步生成更高解析度的影像,旨在生成逼真的高解析度影像,即,生成器塊 1 生成 4x4 解析度的影像,生成器塊 2 生成 8x8 解析度的影像,依此類推。圖 (b) 是提出的 StyleGAN 架構。它具有以下主要元件:
- 一個對映網路
- AdaIN(自適應例項歸一化)
- 噪聲向量的串聯
讓我們一個一個地分解它。
對映網路
與傳統 GAN 中將潛在程式碼(也稱為噪聲向量)z 直接傳遞給生成器不同,現在它透過一系列 8 個 MLP 層對映到 w。生成的潛在程式碼 w 不僅作為輸入傳遞給生成器的第一層(如 ProgessiveGAN 中所示),而是傳遞給生成器網路(在 StyleGAN 中稱為合成網路)的每個塊。這裡有兩個主要思想:
- 將潛在程式碼從 z 對映到 w 可以解纏特徵空間。我們在這裡所說的解纏是指在一個 512 維的潛在程式碼中,如果您只更改其一個特徵值(例如,在 512 個值中,您只增加或減少第 4 個值),那麼理想情況下,在解纏的特徵空間中,只有一個真實世界特徵應該改變。如果第 4 個特徵值對應於真實世界特徵“微笑”,那麼更改 512 維潛在程式碼的第 4 個值應該生成微笑/不微笑/介於兩者之間的影像。
- 將潛在程式碼傳遞給每一層對控制的真實特徵型別有著深遠的影響。例如,將潛在程式碼 w 傳遞給合成網路的較低塊可以控制高階方面,如姿勢、一般髮型、臉型和眼鏡;而將其傳遞給合成網路的較高解析度塊可以控制較小尺度的面部特徵、髮型、眼睛開合等。
自適應例項歸一化 (AdaIN)

AdaIN 透過允許根據來自獨立源的樣式資訊動態調整歸一化引數(均值和標準差)來修改例項歸一化。此樣式資訊通常源自潛在程式碼 w。
在 StyleGAN 中,潛在程式碼不直接傳遞到合成網路,而是將仿射變換 w,即 y,傳遞到不同的塊。y 被稱為“樣式”表示。這裡,和是樣式表示 y 的均值和標準差,並且和是特徵圖 x 的均值和標準差。
AdaIN 使生成器能夠在生成過程中動態調整其行為。這在生成的輸出不同部分可能需要不同樣式或特性的場景中特別有用。
噪聲向量的串聯
在傳統的 GAN 中,生成器必須自行學習隨機特徵。我所說的隨機特徵是指那些微小但重要的細節,例如頭髮的位置、皮膚毛孔等,它們應該在每次影像生成時有所不同,並且不應保持不變。在傳統的 GAN 中沒有任何明確的結構,這使得生成器很難做到這一點,因為它需要自行在每一層中引入畫素級別的隨機性,這通常無法生成多樣化的隨機特徵。
相反,在 StyleGAN 中,作者假設透過在合成網路(也稱為生成器)的每個塊中向特徵圖新增噪聲圖,每一層都可以利用這些資訊生成多樣的隨機性質,而無需像傳統 GAN 那樣嘗試自行完成所有操作。這取得了很好的效果。

StyleGAN1 的缺點以及 StyleGAN2 的必要性
StyleGAN 在資料驅動的無條件生成影像建模方面取得了最先進的結果。然而,其現有架構設計仍然存在一些問題,這些問題在下一版本 StyleGAN2 中得到了解決。
為了使本章易於閱讀,我們避免深入探討架構細節,而是陳述第一版中發現的特徵性偽影以及質量如何進一步提高。
本文主要解決了兩個主要的偽影,即常見的斑點狀偽影和由於現有漸進式增長架構引起的定位偏好偽影。

您可以在上圖中看到斑點結構,作者聲稱它起源於 StyleGAN1 的歸一化過程。因此,下圖 (d) 是克服該問題的提議架構。

(ii) 修復漸進式 GAN 結構中強烈的定位偏好偽影。

在上圖中,每張影像都是透過插值潛在程式碼 w 來調節姿勢而獲得的。這導致了儘管具有高視覺質量,但仍相當不真實的影像。
使用跳躍生成器和殘差判別器來克服該問題,而無需漸進式增長。
StyleGAN2 中還引入了其他更改,但上述兩點是首先要了解的重要內容。
StyleGAN2 的缺點以及 StyleGAN3 的必要性
StyleGAN2 的同一批作者發現合成網路對絕對畫素座標的不健康依賴。這導致了所謂的鋸齒效應。
上面,動畫是透過插值潛在程式碼 w 生成的。您可以清楚地看到,在左側影像中,紋理畫素固定在某個位置,只有高階屬性(面部姿勢/表情)發生變化。這在生成此類動畫時暴露了人工性。StyleGAN3 從根本上解決了這個問題,您可以從右側的動畫中看到結果。
用例
StyleGAN 生成照片級逼真影像的能力為各種應用打開了大門,包括影像編輯、隱私保護甚至創意探索。
影像編輯
- 影像修復:以無縫逼真的方式填充缺失的影像區域。
- 影像風格遷移:將一種影像的風格遷移到另一種影像。
隱私保護應用
- 生成合成資料:用逼真的合成數據替換敏感資訊,用於訓練和測試目的。
- 影像匿名化:模糊或更改影像中的可識別特徵以保護個人隱私。
創意探索
- 生成時尚設計:StyleGAN 可用於生成逼真多樣的時尚設計。
- 建立沉浸式體驗:StyleGAN 可用於建立逼真的虛擬環境,用於遊戲、教育和其他應用。例如,Stylenerf:一種基於風格的 3D 感知生成器,用於高解析度影像合成。
這只是一份不完全的列表。