styleGAN相關論文 - Image Processing Using Multi-Code GAN Prior(mGAN) - 1 - 論文學習


 

https://genforce.github.io/mganprior/

Image Processing Using Multi-Code GAN Prior

Abstract

盡管生成對抗網絡(GANs)在圖像合成方面取得了成功,但將經過訓練的GAN模型應用於真實圖像處理仍然具有挑戰性。以前的方法通常通過反向傳播或學習額外的編碼器將目標圖像反向回潛在空間。但兩種方法的重建效果都不理想。在這項工作中,我們提出了一種新的方法,稱為mGANprior,將訓練有素的GANs作為有效的在各種圖像處理任務的先驗。特別地,我們利用多個潛碼在生成器的某個中間層生成多個特征圖,然后將它們組合成具有自適應channels重要性的特征圖,以恢復輸入圖像。這種潛在空間的過參數化顯著提高了圖像重建質量,優於現有的競爭對手。得到的高保真圖像重建使經過訓練的GAN模型能夠作為許多真實應用,如圖像着色、超分辨率、圖像修補和語義操作的prior操作。我們進一步分析了GAN模型學到的基於層的表征的屬性,並闡明了每一層能夠表示什么知識

 

1. Introduction

最近,生成式對抗網絡(GANs)[16]通過提高合成質量[23,8,24]和穩定訓練過程[1,7,17],提高了圖像生成。GANs具有生成高質量圖像的能力,這使得GANs適用於許多圖像處理任務,如語義人臉編輯[27,36]、超分辨率[28,42]、圖像到圖像的轉換[53,11,31]等。然而,大多數基於GAN的方法需要針對特定任務設計特殊的網絡結構[27,53]或損失函數[36,28],這限制了它們的泛化能力。另一方面,大型GAN模型,如StyleGAN[24]和BigGAN[8],經過數百萬張不同的圖像訓練后,可以合成非常逼真的圖像。他們的神經表征被顯示包含不同層次的語義基礎上的觀察數據[21,15,35,44]。在進行真實圖像處理之前重用這些模型可能會帶來更廣泛的應用,但還需要更多的探索。

實現這一目標的主要挑戰是,標准GAN模型最初設計用於從隨機噪聲合成圖像,因此將真實圖像用於任何后處理操作。一種常見的做法是將給定的圖像反轉回潛在的代碼,以便生成器可以重新構建它。這樣,反向的代碼就可以用於進一步的處理。為了逆轉生成過程,現有的方法分為兩種類型。一種是通過反向傳播將重構誤差最小化,直接優化潛在代碼[30,12,32]。另一種方法是訓練額外的編碼器學習從圖像空間到潛在空間的映射[34,52,6,5]。然而,這兩種方法的重建效果都不理想,特別是當給定的圖像具有高分辨率時。因此,重建的圖像質量較差,無法用於圖像處理任務。

原則上,不可能用一個潛碼來恢復任意真實圖像的每一個細節,否則,我們就有了一種無與倫比的圖像壓縮方法。換句話說,潛碼的表達能力是有限的,因為它的有限維數。因此,為了忠實地恢復目標圖像,我們提出在生成器的某一中間層使用多個潛碼並生成相應的特征圖。利用多重潛碼,使生成器能夠利用在深層生成表示中學習到的所有可能的組合知識恢復目標圖像。實驗表明,該方法顯著提高了圖像重建質量。更重要的是,我們的方法能夠更好地重建輸入圖像,通過使用預先訓練好的GAN模型,不需要再訓練或修改,簡化了各種真實圖像處理應用程序,如圖1所示。我們的工作總結如下:

  • 本文提出了一種基於多重潛碼和自適應channels重要性的GAN反演方法,該方法是一種有效的GAN反演方法。該方法忠實地重建了給定的真實圖像,優於現有的方法。
  • 我們將提出的mGANprior應用於一系列真實世界的應用,如圖像着色、超分辨率、圖像修補、語義處理等,展示了其在真實圖像處理中的潛力。
  • 我們進一步分析了GAN生成器中不同層的內部表示方法,將每個層的反向潛碼的特征分別組合在一起。

 

2.Related Work

GAN Inversion. GAN反演的任務是使用預先訓練的GAN模型將給定的圖像反轉回潛在代碼。其作為將GANs應用於實際應用的重要步驟,近年來受到越來越多的關注。為了使GAN中的固定生成器反轉,現有方法要么基於梯度下降優化潛碼[30,12,32],要么學習額外的編碼器將圖像空間投影回潛碼空間[34,52,6,5]。Bau等人[3]提出使用編碼器提供更好的初始化優化。也有一些模型在訓練階段考慮了可逆性[14,13,26]。然而,上述方法都只考慮使用單個潛碼對輸入圖像進行恢復,重構質量遠不理想,特別是當測試圖像與訓練數據之間存在較大的域間隙時。這是因為輸入圖像可能不存在於生成器的合成空間中,在這種情況下,使用單個潛在代碼的完美反演並不存在。相反,我們提出增加潛在編碼的數量,無論目標圖像是域內還是域外,都能顯著提高反演質量。

Image Processing with GANs.  由於GANs具有很強的合成真實感圖像的能力,因此在真實圖像處理中得到了廣泛的應用。這些應用包括圖像去噪[9,25]、圖像修補[45,47]、超分辨率[28,42]、圖像着色[38,20]、風格混合[19,10]、語義圖像處理[41,29]等。而目前基於GAN的模型通常是針對特定任務設計的,具有專門的架構[19,41]或損失函數[28, 10],還有以一幅圖像作為輸入,另一幅圖像作為監督進行配對數據訓練[45,20]。與此不同的是,我們的方法可以重用包含在經過良好訓練的GAN模型中的知識,並可以使用一個GAN模型作為上述所有任務的先驗,而無需重新訓練或修改。值得注意的是,我們的方法可以比現有的專門為某項任務而訓練的基於GAN的方法取得類似甚至更好的結果。

Deep Model Prior. 一般來說,深層卷積模型令人印象深刻的性能可以歸因於它從大規模數據中捕獲統計信息的能力。該先驗可反方向用於圖像生成和圖像重建[40,39,2]。Upchurch等人[40]倒置了一個判別模型,從深度卷積特征出發,實現了圖像的語義變換。Ulyanov等人[39]用U-Net結構對目標圖像進行了重構,表明生成器網絡的結構足以在任何學習之前捕獲底層圖像的統計信息。Athar等人[2]學習了一個通用圖像先驗用於各種圖像恢復任務。一些工作在理論上探索了深度生成模型所提供的先驗[32,18],但在真實圖像處理之前使用GAN的結果仍然不令人滿意。最近的一項工作[3]在語義照片處理之前應用了生成圖像,但它只能編輯輸入圖像的部分區域,不能應用於着色或超分辨率等其他任務。這是因為它只是將GAN模型反轉到某個中間特征空間,而不是最早的隱藏空間。而我們的方法將整個生成過程反向,即從圖像空間到最初的潛在空間,支持更靈活的圖像處理任務。

 

3. Multi-Code GAN Prior

GAN的一個良好訓練的生成器G(.)能夠通過采樣來自潛在空間Z的編碼合成高質量的圖像。給定一個目標圖像x,GAN反演任務旨在通過尋找合適的編碼去恢復x來反轉生成過程。其公式為:

但是,由於該優化問題的高度非凸性,以往的方法不能通過優化單個潛在代碼來理想地重構任意圖像。為此,我們提出使用多個潛碼,並構造相應的具有自適應channels重要性的中間特征圖,如圖2所示。

 

3.1. GAN Inversion with Multiple Latent Codes

單個潛在代碼的表現力可能不足以恢復特定圖像的所有細節。那么,使用N個潛碼{zn}n=1N,每個潛碼都可以幫助重構目標圖像的一些子區域怎么樣?下面,我們將介紹如何利用多個潛在代碼進行GAN反演。

Feature Composition. 引入多重潛碼后的一個關鍵難點是如何將其整合到生成過程中。一個簡單的解決方案是將每個來自圖像空間X的zn生成的圖像融合。然而,X本身並不是一個線性空間,將合成的圖像線性組合並不能保證生成有意義的圖像,更不用說恢復細節輸入。最近的一項工作[5]指出從圖像空間到某個中間特征空間要比到潛在空間去反演生成模型容易得多。在此基礎上,我們提出了通過構造潛碼的中間特征映射來組合潛碼的方法。更具體來說,就是生成器G(.)會被分成兩個子網絡,即G1(l)(.)和G2(l)(.)。這里l是中間層的索引,用來實現特征組合。對於任意zn,使用這樣的分離,我們能夠抽取到對應的空間特征用於進一步的組合。

Adaptive Channel Importance. 回想一下,我們希望每個zn都能恢復目標圖像的某些特定區域。Bau等人[4]觀察到GAN中生成器的不同單元(即通道)負責生成不同的視覺概念,如物體和紋理。在此基礎上,我們為每個zn引入了自適應信道重要度αn,以幫助它們根據不同的語義進行對齊。在這里,是一個C維向量,C是G(.)在第層的channels數量。我們希望每一個αn都能表示對應特征映射通道的重要程度。使用該組合方法,重建圖像的生成為:

這里i和j表示空間位置,c表示channel索引

Optimization Objective. 在引入特征組合技術和自適應信道重要性對多個潛碼進行集成后,總共有2N組參數需要優化。因此,我們將式(1)重新表示為

為了提高重構質量,我們通過利用低層次和高層次的信息來定義目標函數。具體來說,我們使用像素級重建誤差以及從兩幅圖像中提取的感知特征[22]之間的l1距離。因此,目標函數為:

式中,Φ(.)為感知特征提取器。利用梯度下降算法找出最優潛碼以及相應的信道重要度分數。

 

3.2. Multi-Code GAN Prior for Image Processing

反演后,我們將重建結果作為各種圖像處理任務的多碼GAN先驗。每個任務都需要一個圖像作為參考,它是要處理的輸入圖像。例如,圖像着色任務處理灰度圖像,圖像填充任務恢復有缺失空洞的圖像。針對一個輸入信號,采用本文提出的多碼GAN反演方法對輸入信號進行重構,然后對重構后的圖像進行后處理來逼近輸入信號。當逼近足夠接近輸入時,我們假設后處理前的重構是我們想要的。這里,為了適應mGANprior到某個特定的任務,我們基於后處理功能對等式(5)進行修改:

對於圖像着色任務,以灰度圖像Igray作為輸入,我們期望反演結果具有與Igray相同的灰度通道:

其中gray(·)表示取圖像灰度通道的操作。

對於圖像超分辨任務,以低分辨率圖像的ILR作為輸入,對反演結果進行采樣,逼近ILR

down(.)表示下采樣操作

對於圖像修復任務,我們使用一個完整的圖像Iori和一個表示已知像素的二值掩模m,只重建未損壞的部分,並讓GAN模型自動填充缺失的像素:

 

4. Experiments

為了驗證mGANprior的有效性,我們對最先進的GAN模型(即PGGAN[23]和StyleGAN[24])進行了廣泛的實驗。這些模型在各種數據集上進行訓練,包括用於人臉的CelebA-HQ[23]和FFHQ[24],以及用於場景的LSUN[46]。

4.1. Comparison with Other Inversion Methods

文獻中關於GAN反演的嘗試很多。在本節中,我們將我們的multi-code反演方法與下面的基本方法相比較:(a)如等式(1)[32]優化一個潛在的代碼z,(b)學習一個編碼器encoder反向生成器[52],和(c)合並(a)和(b)兩個方法,使用(b)中編碼器的輸出作為(a)的初始化來進一步優化[5]。

為了定量地評價反演結果,我們引入Peak Signal-to-Noise Ratio (PSNR)來衡量原始輸入和像素級重建結果之間的相似性,以及已知與人的感知相匹配的LPIPS度量[49]。我們對三種PGGAN[23]模型分別在LSUN卧室(室內場景)、LSUN教堂(室外場景)和CelebA-HQ(人臉)上進行了比較。對於每個模型,我們倒置300幅真實圖像進行測試。

表1和圖3分別為定量和定性比較。從表1可以看出,無論從像素級(PSNR)還是感知級(LPIPS), mGANprior在三種模型上都優於其他競爭對手。從圖3中我們還可以看到,現有的方法無法恢復目標圖像的細節,這是由於單個潛在代碼的表示能力有限。與之相比,我們的方法獲得了更令人滿意的重建與大多數細節,受益於多個潛在代碼。我們甚至用在西方數據上訓練的模型(CelebA-HQ[23])恢復了一張東方面孔

 

4.2. Analysis on Inverted Codes

如第3節所述,我們的方法實現了N個潛在編碼和N個重要性因子的高保真GAN反演方法。以PGGAN為例,選擇第6層(即512通道)作為N = 10的組成層,優化的參數數為10×(512 + 512),是原始潛在空間維數的20倍。在本節中,我們將對反演代碼進行詳細的分析。

Number of Codes.  顯然,在優化空間的維數和反演質量之間存在權衡。為了更好地分析這種權衡,我們通過改變要優化的潛在代碼的數量來評估我們的方法。從圖4可以看出,使用的潛碼越多,重構效果越好。然而,這並不意味着可以通過增加潛在代碼的數量來無限地提高性能。從圖4可以看出,當數量達到20時,加入更多的潛碼並沒有顯著的改善。

 

Different Composition Layers. 在哪一層上進行特征合成也會影響mGANprior的性能。因此,我們在PGGAN的各層(即1 - 8層)上構建潛碼,比較反演質量,如圖4所示。一般來說,組合層越高,反演效果越好。然而,正如[4]中顯示的那樣,更高的層包含局部像素模式的信息,如邊緣和顏色,而不是高級語義。在更高層次上組合特征很難重用GANs學習的語義知識。這將在第4.4節中進一步討論。

Role of Each Latent Code.  我們采用多重潛碼,期望每一個潛碼負責一個特定區域的反演,從而彼此互補。在這一部分中,我們可視化不同的潛碼在反演過程中所扮演的角色。正如[4]所指出的,對於GAN模型中的特定層,不同的單元(通道)控制不同的語義概念。回想一下,mGANprior使用自適應通道重要性來幫助確定特定z應該關注哪種語義。因此,對於每一個zn,我們將αn中大於0.2的元素值改設為0,得到了α'n。然后,我們計算了分別使用的αn和α'n重建的圖像之間的差異映射。借助[51]分割模型,我們還可以得到各種視覺概念的分割圖,如塔和樹。最后,我們基於相應的差異映射與所有候選分割映射之間的Intersection-over-Union (IoU) 度量對每個潛在代碼進行注釋。圖5顯示了所選潛碼的分割結果和IoU映射。結果表明,潛碼是專門用來將圖像中不同的有意義區域倒置,從而構成整個圖像的。這也是使用多個潛在代碼而不是使用單個代碼的巨大優勢。

 

4.3. Image Processing Applications

在高保真圖像重建的情況下,我們的多碼反演方法與之前一樣,用預先訓練過的GANs簡化了許多圖像處理任務。在本節中,我們將提出的mGANprior應用於各種實際應用程序,以演示其有效性,包括圖像着色、圖像超分辨率、圖像修補和去噪,以及語義操作和樣式混合。對於每個應用程序,GAN模型都是固定的。

Image Colorization. 給定一個灰度圖像作為輸入,我們可以使用mGANprior對其着色,如3.2節所述。我們將我們使用了優化中間特征圖[3]的反演方法進行了比較。我們還與DIP[39]進行了比較,DIP[39]使用了一個判別模型作為先驗,Zhang等人的[48]模型是專為着色任務設計的。我們在經過訓練的卧室和教堂合成圖的PGGAN模型上進行實驗,並以ab顏色空間上累積誤差分布曲線下的面積作為評價指標,如[48]模型所做。表2和圖6分別為定量和定性比較。結果表明,使用判別模型作為先驗並不能使圖像充分着色。這是因為辨別性模型側重於學習高級別的表現形式,而不適合低級別的任務。相反,使用生成模型作為先驗,可以得到更令人滿意的色彩豐富的圖像。作為主要目標為圖像着色的模型(圖6 (c)和(d)),我們也獲得了可比較的結果。這得益於GANs學到的豐富知識。請注意,Zhang等人提出的[48]用於一般圖像着色,而我們的方法只能應用於與給定GAN模型相對應的特定圖像類別。在更多樣化的數據集上訓練一個更大的GAN模型應該可以提高它的泛化能力。

 

 

Image Super-Resolution. 我們也評估了我們的方法在圖像超分辨率(SR)任務。我們在訓練好的人臉合成PGGAN模型上進行實驗,並將SR因子設為16。這么大的因子對於SR任務來說是非常具有挑戰性的。我們與DIP[39]以及最先進的SR方法,RCAN[50]和ESRGAN[42]進行了比較。除了PSNR和LPIPS之外,我們還引入了Naturalness Image Quality Evaluator (NIQE)[33]作為額外的度量指標。表3為定量比較。我們可以得出結論,我們的方法與先進的以學習為基礎的競爭對手相比,取得了可比較甚至更好的性能。一個可視化的例子也顯示在圖7中,在那里我們的方法重建了更詳細的人眼。與RCAN和ESRGAN等現有的基於學習的模型相比,我們的mGANprior對於SR因素更加靈活。這表明,自由訓練的PGGAN模型自發地學習了豐富的知識,因此可以將其用作增強低分辨率(LR)圖像的先驗。

 

 

 

 

 

Image Inpainting and Denoising.  我們進一步擴展了我們的方法的圖像恢復任務,如圖像的修復和去噪。我們首先通過隨機裁剪或添加噪聲破壞圖像內容,然后使用不同的算法恢復它們。在PGGAN模型上進行了實驗,並與幾種基線反演方法以及DIP[39]方法進行了比較。采用PSNR和Structural SIMilarity (SSIM) [43]作為評價指標。

表4給出了定量比較,其中我們的方法在中心裁剪和隨機裁剪兩種情況下都取得了最好的效果。圖8包括一些恢復損壞圖像的例子。很明顯,現有的反演方法和DIP方法都不能充分地填充缺失的像素,也不能完全去除添加的噪聲。相比之下,我們的方法能夠使用訓練有素的GANs來令人信服地修復帶有有意義填充內容的損壞圖像。

 

Semantic Manipulation.  除了前面提到的低級應用程序之外,我們還用一些高級任務測試了我們的方法,比如語義操作和樣式混合。正如之前的工作所指出的[21,15,35],GANs已經在潛在空間內編碼了一些可解釋語義。從這一點上講,我們的反演方法為將這些學習到的語義應用於實際圖像處理提供了一種可行的方法。我們利用[35]中提出的基於潛碼的操作框架實現了人臉屬性的語義編輯。操作結果如圖9所示。我們看到mGANprior可以為語義操作提供足夠豐富的信息。

 

 

 

4.4. Knowledge Representation in GANs

如上所述,使用單個潛在編碼的主要限制是其表達能力有限,特別是當測試圖像與訓練數據之間存在域間隙時。在這里,我們驗證使用多個潛在編碼是否有助於緩解這個問題。特別是,我們嘗試使用訓練來合成臉,教堂,會議室和卧室的不同GAN模型來反演卧室圖像。如圖10所示,當使用單一的潛在代碼時,重構的圖像仍然處於原始訓練域中(例如,PGGAN CelebA-HQ模型的反演看起來像一張臉而不是一間卧室)。相反,我們的方法能夠組成一個卧室的圖像,無論GAN生成器是用什么數據訓練。

 

通過在不同的層上進行特征組合,我們進一步分析了受過良好訓練的GAN模型的分層知識。從圖10可以看出,使用的層越高,重構效果越好。這是因為重建側重於恢復底層像素值,而GANs傾向於在底層表示抽象語義,而在頂層表示內容細節。我們還觀察到,第4層對於卧室模型來說已經足夠好來反轉卧室圖像,但是其他三個模型需要第8層來實現滿意的反轉。原因是,卧室與臉、教堂和會議室共享不同的語義,因此不能重用來自這些模型的高級知識(包含在底層)。我們進一步將我們的方法應用於圖像着色和圖像修補任務進行分層分析,如圖11所示。着色任務在第8層得到最好的結果,而修補任務在第4層得到最好的結果。這是因為着色更像是一個低級的渲染任務,而修補需要GAN先驗用有意義的對象填充缺失的內容。這與圖10的分析是一致的,即GAN先驗的低級知識可以在更高的層重用,而高級知識可以在更低的層重用。

 

5. Conclusion

我們提出了mGANprior,它使用多重潛碼,利用預先訓練的GAN模型重建真實圖像。它使這些GAN模型成為各種圖像處理任務的強大先驗。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM