論文筆記 — Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold

Watson Wang
9 min readJun 27, 2023

Paper link:https://arxiv.org/abs/2305.10973

Demo影片: https://vcai.mpi-inf.mpg.de/projects/DragGAN/

Introduction

理想的圖像合成方法應具備以下特性:

  1. 靈活性:它應該能夠控制不同的空間屬性,包括生成的物體或動物的位置、姿勢、形狀、表情
  2. 精度:能夠高精度地控制空間
  3. 通用性:適用於不同的對像類別,但不限於某一類別。

具體來說,這篇論文提出了 DragGAN 允許用戶點擊圖像上任意數量的 handle points 和 target points,目標是驅動handle points到達其對應的target points。 下圖包含了各種不同物體的效果展示。

此模型解決了兩個問題,包括 :

  1. 監督handle points向目標移動
  2. 跟踪handle points,以便在每次編輯時知道它們的位置。

整體所做到的變形效果是在 GAN 的學習圖像流形上進行的,它往往遵循底層的對象結構。 例如,我們的方法可以產生被遮擋的內容,比如獅子嘴裡的牙齒,並且可以隨著物體的特性而變形,比如馬腿的彎曲。 我們還開發了一個 GUI,供用戶只需單擊圖像即可交互式地執行操作。

Method

前情提要:

1. 512 latent code 𝒛 ε N (0, 𝑰) 通過 mapping network 映射到中間 latent code 𝒘 ε R(512),𝒘 的空間通常稱為 W

2. 𝒘 通常被發送到生成器 𝐺 以生成輸出圖像 I = 𝐺 (𝒘)。 在這個過程中,𝒘被多次複製並發送到生成器𝐺的不同層,以控制不同級別的屬性。

3. 也可以對不同層使用不同的 𝒘,在這種情況下,輸入將為 𝒘 ∈ R(𝑙×512) ,其空間通常稱為 W+,其中 𝑙 是層數。 這種約束較少的 W+ 空間被證明更具表現力。

圖像處理流程的概述如圖所示。對於由帶有latent code 𝒘 的 GAN 生成的任何圖像I∈R(3×𝐻×𝑊),其允許用戶輸入多個處理點 {𝒑𝑖 = (𝑥𝑝,𝑖,𝑦𝑝,𝑖)|𝑖 = 1,2,…,𝑛}及其對應的目標點{𝒕𝑖 = (𝑥𝑡,𝑖,𝑦𝑡,𝑖)|𝑖 = 1,2,…,𝑛}(即𝒑𝑖對應的目標點為𝒕𝑖。

目標是移動圖像中的對象,使得handle points的語義位置到達其對應的目標點。 此外,還允許用戶選擇繪製一個binary mask M 來表示圖像的哪個區域是可移動的。

考慮這些用戶輸入,我們以優化方式執行圖像處理,每個優化步驟由兩個子步驟組成,包括:

  1. 運動監督(motion supervision)
  2. 點跟踪 (point tracking)

在運動監督中,使用強制 handle points 向目標點移動的損失優化 latent code 𝒘。 經過一個優化步驟後,我們得到一個新的latent code 𝒘′和一個新的圖像I′。 更新會導致圖像中的對象發生輕微移動。 請注意,運動監督步驟僅將每個handle point向其目標移動一小步,但步驟的確切長度尚不清楚,因為它受到複雜的優化過程影響,因此對於不同的對象和零件會有所不同。 因此,我們然後更新handle point {𝒑𝑖 } 的位置來跟踪對像上的相應點。實驗中通常需要 30–200 次迭代。 用戶還可以在任何中間步驟停止優化。 編輯完成後,用戶可以輸入新的handle points 和目標點並繼續編輯,直到得到滿意的結果。

Motion Supervision

不依賴於任何額外神經網絡的運動監督損失,其關鍵是生成器的intermediate feature 必須非常具有鑑別度,因此簡單的損失足以監督運動。

具體來說,我們考慮 StyleGAN2 第 6 個block 之後的特徵圖 F,由於分辨率和可判別性之間的良好權衡,它在所有特徵中表現最好。 我們通過雙線性插值調整 F 的大小,使其具有與最終圖像相同的分辨率。 如圖所示,要將handle point 𝒑𝑖移動到目標點𝒕𝑖,我們的想法是監督𝒑𝑖(紅色圓圈)周圍的一小塊向𝒕𝑖移動一小步(藍色圓圈)。 我們用Ω1(𝒑𝑖,𝑟1)來表示到𝒑𝑖距離小於𝑟1的像素,那麼運動監督損失就會是:

其中 F(𝒒) 表示 F 在像素 𝒒 處的特徵值,𝒅𝑖 是從 𝒑𝑖 指向 𝒕𝑖 的歸一化向量(如果 𝒕𝑖 = 𝒑𝑖 則𝒅𝑖 = 0),F0 是與初始圖像對應的特徵圖。由於 𝒒𝑖 + 𝒅𝑖 的數值不是整數,我們通過雙線性插值得到 F(𝒒𝑖 + 𝒅𝑖 )。

𝒘 可以在 W 空間或 W+ 空間中進行優化,具體取決於用戶是否想要更受約束的 Image manifold。 由於 W+ 空間更容易實現分佈外操作,因此我們在這項工作中使用 W+ 以獲得更好的可編輯性。 在實踐中,我們觀察到圖像的空間屬性主要受前 6 層的 𝒘 影響,而其餘的僅影響外觀。 因此,受到風格混合技術的啟發,我們只更新前 6 層的𝒘,同時修復其他層以保留外觀。這種選擇性優化會導致圖像內容發生所需的輕微移動。

Point Tracking

先前的運動監督 (Motion Supervision) 產生新的潛在代碼𝒘’、新的特徵圖F’和新的圖像I’。 由於運動監督步驟不容易提供 handle points 的精確新位置,因此我們的目標是更新每個 handle points 𝒑𝑖,以便它跟踪對像上的相應點。 點跟踪(Point Tracking) 通常通過 optical flow estimation models 或particle video 方法來執行。同樣,這些額外的模型可能會嚴重損害效率,並且可能會出現累積誤差,尤其是在 GAN 中存在別名偽影(alias artifacts)的情況下。

因此,我們提出了一種新的 GAN 點跟踪方法。 我們的見解是,GAN 的判別特徵很好地捕獲了對應關係,因此可以通過特徵塊中的最近鄰搜索來有效地執行跟踪。 具體來說,我們將初始 handle points 的特徵表示為 𝒇𝑖 = F0 (𝒑𝑖 )。 我們將𝒑𝑖周圍的 patch 表示為 Ω2(𝒑𝑖,𝑟2)={(𝑥,𝑦)||𝑥−𝑥𝑝,𝑖|<𝑟2,|𝑦−𝑦𝑝,𝑖|<𝑟2},然後通過在 Ω2(𝒑𝑖,𝑟2) 中搜索𝑓𝑖的最近鄰點來獲得跟踪點:

𝒑𝑖 被更新繼續用來跟踪 target, 對於多個控制點,我們對每個點應用相同的過程。

Experiments

作為實驗設置,UserControllableLT 不支持 Binary mask 輸入,但允許用戶定義多個固定點。 因此,對於使用Binary mask的測試用例,我們對圖像上的常規 16 × 16 網格進行採樣,並使用 Binary mask 外部的點作為UserControllableLT 的固定點。

此外,我們還與 RAFTPIPs 兩種用於 point tracking的方法進行比較,為此,我們創建了方法的兩種變體。

Qualitative Evaluation

下圖顯示了我們的方法和 UserControllableLT 之間的比較,我們展示了幾種不同對像類別和用戶輸入的圖像處理結果。 我們的方法準確地移動 handle points 以到達目標點,實現多樣化和自然的操縱效果,例如改變動物的姿勢、汽車的形狀和景觀的佈局。

相比之下,UserControllableLT 無法忠實地將手柄點移動到目標,並且經常導致圖像發生意外的變化,例如人的衣服和汽車的背景。 它也不會像我們的一樣保持未遮蔽區域的固定,如貓圖像所示。 我們在圖 10 中展示了更多比較。

下圖提供了我們的方法與 PIP 和 RAFT 的比較。我們的方法準確地跟踪了獅子鼻子上方的 handle point,從而成功地將其驅動到目標位置。 在 PIP 和 RAFT 中,在操縱過程中跟踪點開始偏離鼻子。 因此,他們將錯誤的零件移動到目標位置。 當不進行跟踪時,固定handle point 在幾步之後很快就開始驅動圖像的另一部分(例如背景)並且永遠不知道何時停止,從而無法達到編輯目標。

Quantitative Evaluation

我們在兩種設置下評估我們的方法,包括面部標誌操作 (Face landmark manipulation )和配對圖像重建。

Face landmark manipulation

具體來說,我們使用在 FFHQ 上訓練的 StyleGAN 隨機生成兩張人臉圖像並檢測它們的 landmarks。 目標是操縱第一幅圖像的landmarks 以匹配第二幅圖像的 landmarks。 處理後,我們檢測最終圖像的landmarks,併計算到目標地標的平均距離(MD),結果是 1000 次測試的平均值 使用同一組測試樣本來評估所有方法。

最終的 MD 分數反映了該方法將地標移動到目標位置的能力。 我們在具有不同數量的 landmarks(包括 1、5 和 68)的 3 種設置下進行評估,以顯示我們的方法在不同數量的handle points 下的穩健性。 我們還報告編輯圖像和初始圖像之間的 FID 分數,作為圖像質量的指示。

Paired image reconstruction

在此評估中,我們遵循與 UserControllableLT 相同的設置。 令 I1 和 I2 為從兩個latent code 生成的 StyleGAN 圖像。 然後,我們計算 I1 和 I2 之間的 optical flow,並從flow field 中隨機採樣 32 個像素作為用戶輸入 U。目標是從 I1 和 U 重建 I2。我們報告 MSE 和 LPIPS 並對 1000 個樣本的結果進行平均。

--

--