SinGAN: Learning a Generative Model from a Single Natural Image - 1 - 論文學習


 

https://github.com/tamarott/SinGAN

SinGAN: Learning a Generative Model from a Single Natural Image

Abstract

我們介紹SinGAN,一種可以從單個自然圖像學習的無條件生成模型。我們的模型被訓練來捕捉圖像內patches的內部分布,然后能夠生成高質量、多樣化的樣本,這些樣本與圖像具有相同的視覺內容。SinGAN包含一個由全卷積GANs組成的金字塔,每個GANs負責學習圖像在不同尺度下的patch分布。這允許生成任意大小和高寬比的新樣本,這些樣本具有顯著的可變性,同時保持了訓練圖像的全局結構和精細紋理。與之前的單一圖像GAN方案相比,我們的方法不局限於紋理圖像,而且是無條件的(即從噪聲中生成樣本)。用戶研究證實,我們生成的樣本通常被混淆為真實的圖像。我們將說明SinGAN在各種圖像處理任務中的使用。

 

1. Introduction

生成對抗網絡(GANs)[19]在建模可視化數據的高維分布方面取得了巨大的飛躍。特別是,無條件的GANs在針對特定類別的數據集(例如face[33],卧室[47])進行訓練時,在生成現實的高質量樣本方面表現出了顯著的成功。然而,捕獲帶有多個對象類的高度多樣化的數據集(例如:ImageNet[12])的分布仍然被認為是一個主要的挑戰,通常需要調節產生另一個輸入信號[6]或為一個特定的任務(e.g. super-resolution [30], inpainting [41], retargeting [45])訓練模型。

在這里,我們將GANs的使用帶入一個新的領域——從單個自然圖像學習無條件生成。具體地說,我們展示了單個自然圖像中patches的內部統計信息通常攜帶了足夠的信息來學習一個強大的生成模型。SinGAN是我們新的單一圖像生成模型,允許我們處理包含復雜結構和紋理的一般自然圖像,而不需要依賴於來自同一類的圖像數據庫的存在。這是通過一個由全卷積輕量級GANs組成的金字塔來實現的,每個GANs負責捕獲不同尺度上patch的分布。經過訓練后,SinGAN可以生成不同的(任意維數的)高質量圖像樣本,這些樣本在語義上類似於訓練圖像,但包含新的目標配置和結構(圖1)。

 

在許多計算機視覺任務中,建模單一自然圖像中patch的內部分布一直被認為是一種強大的先驗方法[64]。經典的例子包括去噪[65]、[39]去模糊、超分辨率[18]、去霧[2,15]和圖像編輯[37,21,9,11,50]。本文中最相關的工作是[48],其中定義並優化了雙向patch相似度度量,以保證處理后的圖像patch與原始patch相同。受這些工作的啟發,這里我們將展示如何在一個簡單的統一學習框架內使用SinGAN來解決各種圖像操作任務,包括從單一圖像進行paint-to-image、編輯、協調、超分辨率和動畫。在所有這些情況下,我們的模型都能得到高質量的結果,並且保留了訓練圖像內部的patch統計量(見圖2和我們的項目頁面)。所有的任務都是在同一個生成網絡中完成的,沒有任何額外的信息,也沒有在原有的訓練圖像之外進行進一步的訓練。

 

1.1. Related Work

Single image deep models. 最近的一些研究提出將深度模型“過度擬合”到單一訓練示例[51,60,46,7,1]。然而,這些方法是為特定的任務而設計的(例如,超分辨率[46],紋理擴展[60])。Shocher等人[44,45]首次為單個自然圖像引入了基於GAN的內部模型,並在重定向的背景下對其進行了說明。但是,它們的生成取決於輸入圖像(即圖像到圖像的映射),而不是用於繪制隨機樣本。相比之下,我們的框架是純生成的(即將噪聲映射到圖像樣本),因此適合許多不同的圖像處理任務。無條件單圖像GANs僅在紋理生成的背景下進行了研究[3,27,31]。在非紋理圖像上訓練時,這些模型不會生成有意義的樣本(圖3)。另一方面,我們的方法不局限於紋理,可以處理一般的自然圖像(如圖1)。

 

Generative models for image manipulation. 在許多不同的圖像處理任務中,基於GAN的方法已經證明了對抗性學習的力量[61,10,62,8,53,56,42,53]。例如交互式圖像編輯[61,10]、sketch2image[8,43]和其他圖像到圖像的翻譯任務[62,52,54]。然而,所有這些方法都是在特定類的數據集上訓練的,這里也常常是在另一個輸入信號上生成。我們對捕獲同一類圖像的共同特征不感興趣,而是考慮不同來源的訓練數據——在一個單一的自然圖像的多個尺度上所有重疊的patches。我們從這些數據中可以學習到一個強大的生成模型,並可用於一些圖像處理任務。

 

2. Method

我們的目標是學習一個獲取單個訓練圖像x內部統計信息的無條件生成模型。這個任務在概念上與傳統的GAN設置類似,不同的是這里的訓練樣本是單個圖像的小塊,而不是數據庫中的整個圖像樣本。

我們選擇u不進行紋理生成,而是處理更一般的自然圖像。這需要在許多不同的尺度上捕獲復雜圖像結構的統計數據。例如,我們想要捕捉全局屬性,比如圖像中大型物體的排列和形狀(例如頂部的天空,底部的地面),以及細節和紋理信息。為了實現這個目標,我們的生成框架,如圖4中說明的,由一個patch-GANs(Markovian判別器)[31,26]層次組成,其中每個部分負責捕獲不同尺寸的x的patch分布。GANs接受域小企且能力有限,以此來阻止他們記憶單一的圖像。雖然類似的多尺度架構已經在傳統的GAN設置中(例如[28,52,29,52,13,24])進行了探索,但我們是第一個從單一圖像進行內部學習的研究。

 

2.1. Multi-scale architecture

我們的模型由一個生成器金字塔{G0,…, GN}組成,訓練圖像金字塔x: {x0,…,xN},其中xn是x的下采樣版本,乘以一個因子rn,其中 r > 1。每個生成器Gn負責生成真實圖像樣本 w.r.t. 對應圖像xn中的patch分布。這是通過對抗訓練來實現的,其中Gn學會欺騙一個相關的判別器Dn,該判別器試圖將生成的樣本中的patch與xn中的patch進行區分。

圖像樣本的生成從最粗糙的尺度開始,依次經過所有的生成器,直到最細的尺度,並在每個尺度中注入噪聲。所有的生成器和判別器都具有相同的接受域,因此隨着生成過程的進行,捕獲結構的大小逐漸減小。在最粗糙的尺度上(即一開始),生成就是純生成的,即GN將映射空間高斯白噪聲zN到一個圖像樣本x̃N,

該級別的有效感受域一般為圖像高度的1/2,因此GN生成了圖像的總體布局和物體的整體結構。在更細的尺度(n < N)上的每個生成器G都添加了以前的尺度沒有生成的細節。因此,除了空間噪聲zn之外,每個發生器Gn從較粗尺度接受圖像的上采樣版本,即,

 每個生成器都有相似的結構,如圖5所示。具體來說,噪音zn被添加到圖像上,然后輸入到一系列卷積層中。這確保了GAN不會忽略噪聲,就像在包含隨機性的條件方案中經常發生的那樣[62,36,63]。卷積層的作用是生成中丟失的細節(殘差學習[22,57])。主要是,Gn實現了操作:

其中是一個帶有5個格式為Conv(3 x 3)-BatchNorm-LeakyReLu[25]的卷積塊的全卷積網絡。一開始在粗糙尺度上使用每個塊32 kernels,然后每4個尺度增加2倍。因為生成器是完全卷積的,我們可以在測試時生成任意大小和寬高比的圖像(通過改變噪聲映射的維度)。

 

2.2. Training

我們按順序訓練我們的多尺度架構,從最粗糙的尺度到最精細的尺度。每個GAN一旦被訓練,它就是固定的。第n個GAN的訓練損失由一個對抗項和一個重建項組成,

對抗損失Ladv懲罰在xn中的patch的分布和在生成樣本x̃n中的patch的分布之間的距離。重建損失Lrec保證了能夠產生xn的一組特定噪聲映射的存在,這是用於圖像處理的一個重要特性(第4節)。接下來我們將詳細描述Ladv, Lrec。有關優化細節,請參閱補充材料(SM)。

Adversarial loss . 每個生成器Gn都與一個Markovian判別器Dn相組合,該Dn將其輸入的每個重疊patches分類為真或假[31,26]。我們使用wgan-gp損失[20],我們發現它提高了訓練的穩定性,其中最終的辨別分數是patch辨別映射上的平均值。相對於用於紋理的單一圖像GANs(例如[31,27,3]),這里我們在整個圖像上定義損失,而不是在隨機crop上定義損失(batch大小為1)。這允許網絡學習邊界條件(見SM),這是我們設置中的一個重要特性。Dn的架構與Gn內的網絡相同,其patch大小(網絡接受域)為11×11。

Reconstruction loss. 我們想要保證這里存在一組特殊的輸入噪聲映射,能夠用來生成原始圖像x。具體來說就是選擇,其中z*是一些固定的噪聲映射(在訓練中一旦繪制就固定)。使用表示在訓練該噪聲映射時在第n個尺度上的生成圖像。對於n<N,

重構圖像在訓練中有另一個作用,就是去決定噪音zn在每個尺度上的標准差σn。具體來說就是使σn和xn之間的均方根誤差RMSE成正比,其給出了需要在該尺度下添加的細節數量的指示。

 

3. Results

我們在各種圖像上對我們的方法進行了定性和定量的測試,這些圖像跨越了大范圍的場景,包括城市和自然風景,以及藝術和紋理圖像。我們使用的圖像取自Berkeley Segmentation Database (BSD) [35], Places[59]和Web。我們總是將最粗尺度上的最小維度設置為25px,並選擇尺度的數量N s.t.,尺度因子r盡可能接近4/3。對於所有的結果(除非另有說明),我們將訓練圖像的最大尺寸調整到250px。

我們生成的隨機圖像樣本的定性例子如圖1、圖6所示,SM中還包含了更多的例子。對於每個示例,我們都展示了一些與原始圖像具有相同長寬比的隨機樣本,並且在每個軸上都有縮小和擴大的維度。可以看出,在所有這些情況下,生成的樣本描述了新的真實的結構和對象配置,同時保留了訓練圖像的視覺內容。我們的模型成功地保存了物體的全局結構,例如山脈(圖1)、氣球或金字塔(圖6),以及精細的紋理信息。因為網絡有一個有限的接受域(小於整個圖像),它可以生成在訓練圖像中不存在的新的patch組合。此外,我們注意到,在許多情況下反射和陰影能逼真合成,可見圖6和圖1(和圖8的第一個例子)。注意,SinGAN架構是分辨率無關,因此可以用於高分辨率的圖像,如圖7中所示(在補充材料中可見4Mpix結果)。在這里,所有尺度的結構都能很好地生成,從天空、雲和山的全局排列到雪的精細紋理。

 

Effect of scales at test time. 我們的多尺度架構允許在測試時開始通過選擇生成的尺度來控制樣本之間的可變性。從尺度n開始,我們將噪聲映射固定到該尺度,即,然后對使用隨機繪制。其效果如圖8所示。可以看出,從最粗糙的尺度(n = N)開始生成,會導致全局結構的大變異性。在某些情況下,一個大的突出對象,如斑馬圖像,這可能導致不真實的樣本。然而,從較細的尺度開始生成,可以保持全局結構的完整,同時只改變較細的圖像特征(例如斑馬的條紋)。更多例子見補充材料。

Effect of scales during training. 圖9顯示了較少尺度的訓練的效果。在小尺度的情況下,最粗糙級別的有效感受域更小,只允許捕捉細微的紋理。隨着尺度的增加,出現了更大的支持結構,並更好地保留了全局對象的安排。

 

3.1. Quantitative Evaluation

為了量化生成的圖像的真實性以及他們捕獲的訓練圖像的內部統計,我們使用兩個指標:(i)Amazon Mechanical Turk (AMT) “Real/Fake”的用戶研究,和(ii)一個新的單一圖片版本的Fre ́chet Inception Distance [23]。

AMT perceptual study. 我們遵循了[26,58]的協議並在兩種設置下進行了感知實驗。(i)Paired(真與假):向測試者展示一輪50次的實驗,每一次實驗中,一幅假圖像(由SinGAN生成)和其對應的真實的訓練圖像一起呈現1秒。測試者被要求從中挑選出假照片。(ii)Unpaired(真或假):讓測試者看一張圖片1秒鍾,然后問它是不是假的。總共有50張真實的圖像和50張不相交的假圖像以隨機的順序呈現給每個測試者。

我們為兩種類型的生成過程重復了這兩種協議:從最粗糙(第N個)尺度開始生成,以及從尺度N−1(如圖8所示)開始生成。通過這種方式,我們在兩個不同的可變性水平上評估我們結果的真實性。為了量化生成圖像的多樣性,對於每個訓練實例,我們計算每個像素在100幅生成圖像上的強度值的標准差(std),並將其平均到所有像素上,然后用訓練圖像的強度值的標准差進行歸一化。

真實圖像從“places”數據庫[59]的山脈、丘陵、沙漠、天空等子類別中隨機選取。在這4個測試中,每一個都有50個不同的參與者。在所有測試中,前10個測試都是包含反饋的教程測試。結果如表1所示。

正如預期的那樣,在沒有配對的情況下,混淆率更大,因為沒有可供比較的參考。此外,可以清楚地看到,隨着生成圖像的多樣性增高,混淆率降低。然而,即使大的結構被改變了,我們生成的圖像也很難與真實的圖像區分開來(50%的分數意味着真實和虛假的完全混淆)。所有的測試圖像都包含在補充材料中。

 

Single Image Fre ́chet Inception Distance.我們下一步則是量化SinGAN如何捕捉x的內部統計數據。GAN評價的通用指標是Fre ́chet Inception Distance(FID)[23],衡量生成的圖像和真實圖像的深度特征分布之間的偏差。然而,在我們的設置中,我們只有一個真實的圖像,並且對它的內部patch統計數據非常感興趣。因此,我們提出了Single Image FID (SIFID) 度量。我們沒有使用Inception網絡[49]中最后一個池化層之后的激活向量(每個圖像一個向量),而是使用在第二個池化層之前的卷積層輸出處的深層特征的內部分布(在map中每個位置一個向量)。我們的SIFID是在真實圖像和生成的樣本中那些特征的統計特征之間的FID。

從表2中可以看出,從N−1中產生的平均SIFID比從N中產生的平均SIFID要低,這與用戶研究結果一致。我們也報告了SIFID分數和假圖像的混淆率之間的相關性。注意,兩者之間有顯著的(反)相關性,這意味着一個小的SIFID是一個典型的大混淆率的好指標。成paired測試的相關性更強,因為SIFID是成對的度量(設有一對xn, x̃n)。

 

 

4. Applications

我們將探索SinGAN在許多圖像處理任務中的使用。為此,我們在訓練后使用我們的模型,不進行架構更改或進一步調優,並對所有應用程序采用相同的方法。其思想是利用在推理時,SinGAN只能生成與訓練圖像patch分布相同的圖像。因此,我們可以在n < N的尺度下,將一幅圖像(可能是下采樣的圖像)注入到生成金字塔中,通過生成器進行前向傳播,使其patch分布與訓練圖像的patch分布匹配。不同的注入尺度會產生不同的效果。我們考慮以下應用(參見補充材料獲得更多結果和注入尺度效果)。

Super-Resolution. 使用一個因子s來增加一個輸入圖像的分辨率。我們在低分辨率(LR)圖像上訓練我們的模型,重構損失的權重設置為α= 100和金字塔尺度因子設置為。小結構往往會在自然場景[18]中重現,在測試時間我們使用因子 r 上采樣LR圖像和冰將其(和噪音一起)注入到生成器G0中。我們重復其k次以獲得最終的高分辨率輸出。實例結果如圖10所示。可以看出,我們的重建的視覺質量超過了最先進的內部方法[51,46],也超過了以PSNR最大化[32]為目標的外部方法。

有趣的是,它可以與外部訓練的SRGAN方法[30]相媲美,盡管它只暴露在一個單一的圖像中。在[4]之后,我們在BSD100數據集[35]上比較了表3中的5種方法,在失真(RMSE)和感知質量(NIQE[40])方面進行對比,這是兩個從根本上相互沖突的需求[5]。可以看出,SinGAN在感知質量上很優秀;它的NIQE得分僅略低於SRGAN, RMSE比SRGAN略好。

Paint-to-Image . 將剪貼畫轉換成逼真的圖像。這是通過下采樣剪紙畫,並將其輸入一個粗糙尺度(如N−1或N-2)的網絡來實現的。在圖2和11可見結果,剪貼畫的全局結構保存了下來,同時匹配原始圖像的紋理和高頻信息生成得很逼真。在視覺質量方面,我們的方法優於風格轉換方法[38,17](圖11)。

Harmonization. 逼真地混合粘貼對象與背景圖像。我們在背景圖像上訓練SinGAN,並在測試時注入一個naively粘貼的合成圖像的下采樣版本。在這里,我們將生成的圖像與原始背景相結合。從圖2和圖13中可以看出,我們的模型裁剪了粘貼的物體的紋理來匹配背景,通常比[34]更好地保留了它的結構。尺度2、3、4通常在保存物體結構和轉移背景紋理之間達到良好的平衡。

Editing.生成一個無縫組合結果,其中圖像區域已復制和粘貼到其他位置。在這里,我們再次將一個向下采樣的復合版本注入到一個粗糙尺度中。然后我們將SinGAN在編輯區域的輸出與原始圖像結合起來。如圖2和圖12所示,SinGAN重新生成了精細的紋理,並將粘貼的部分無縫拼接,比Photoshop的Content-Aware-Move效果更好。

 

Single Image Animation.從單一的輸入圖像創建一個帶有真實的物體運動的短視頻clip。自然圖像經常包含重復內容,在相同的動態物體[55](例如,一群鳥的圖像顯示了一只鳥的所有翅膀姿勢)的時間里顯示不同的“快照”。使用SinGAN,我們可以沿着圖像中物體的所有外觀的manifold移動,從而從單個圖像合成運動。我們發現,對於許多類型的圖像,所有生成尺度上的第一幀從zrec開始,通過在z空間中進行隨機游走可以獲得真實的效果。結果可以在https://youtu.be/xk8bWLZk4DU上獲得。

 

5. Conclusion

我們介紹了SinGAN,一種新的無條件生成方案,從單一的自然圖像學習。我們演示了它能夠超越紋理並為自然復雜的圖像生成多樣的真實樣本的能力。與外部訓練的生成方法相比,內部學習在語義多樣性方面是有限的。例如,如果訓練圖像只包含一條狗,我們的模型將不會生成不同犬種的樣本。然而,正如我們的實驗所證明的,SinGAN可以為廣泛的圖像處理任務提供一個非常強大的工具。

 


免責聲明!

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



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