SinGAN: Learning a Generative Model from a Single Natural Image(論文解讀二十三)

Title:SinGAN: Learning a Generative Model from a Single Natural Image

Code :PyTorch

From:ICCV2019

Note data:2019/11/19

Abstract:提出一個可以從單張自然圖像學習的非條件性生成式模型SinGAN


目錄

Abstract

1 Introduction

2 Related Work

3  Method

 3.1 多尺度結構

3.2 訓練

4 Results

4.1 實驗細節

4.2 測試中的尺度數量的影響

4.3 訓練中尺度數量的影響

4.4 定量評價

4 Applications

5 Conclusion



Abstract

論文提出一種基於生成對抗模型的SinGAN;

網絡結構:基於多個全卷積GAN組成的金字塔形式,每個全卷積GAN都負責學習圖像中某個小塊的數據分佈;

創新:提出的SinGAN模型不僅可以學習圖像中紋理,而且是非條件性模型,直接從噪聲圖像中學習,且可以應用到多種計算機視覺任務;

動機:解決計算機視覺中網絡泛化能力不足,只解決單一任務等問題提出的一種無條件GAN模型。

本文將GANs的使用帶入了一個新的領域——從單一的自然圖像中進行無條件生成學習。

具體來說,利用單個自然圖像中patch(小塊、補丁)的內部統計信息去學習一個強大的生成模型。我們新的單一圖像生成模型SinGAN允許我們處理包含複雜結構和紋理的一般自然圖像,而不需要依賴於來自同一類別的圖像的數據庫。這是通過一個由全卷積的輕量級GANs組成的金字塔來實現的,每個GANs負責捕獲不同規模的patch分佈。一旦經過訓練,SinGAN可以生成各種高質量的圖像樣本(任意維度),這些樣本在語義上與訓練圖像相似,但包含新的對象配置和結構。


1 Introduction

生成對抗網絡(GAN)在可視化數據的高維分佈建模方面取得的巨大成功,在特定領域(超分,繪畫,重定向)表現出優異的結果。但是,在捕獲多種不同的類別組成的數據集的分佈仍然是一種挑戰。這篇論文將GANs的應用推向另一高度---從單一的自然圖像中進行無條件生成學習。

模型利用單個圖像中的patch的內部統計信息獲得足夠的信息來學習一個強大的生成模型。生成的模型允許處理包含複雜結構和紋理的一般自然圖像,不依賴現在依靠數據集的堆積得到的最優結果。網絡模型是一個由全卷積的輕量型GANs組成的金字塔結構,每個GANs負責捕獲不同規模的patch分佈。一旦經過訓練,SinGAN就可以生成各種高質量的圖像樣本,這些樣本在語義上與訓練圖像相似,但包含新的對象配置和結構。

論文展示瞭如何在一個簡單的統一學習框架中使用SinGAN來解決各種圖像處理任務,包括從單個圖像到圖像的繪製、編輯、協調、超分辨率和動畫。在這些情況下,模型產生了高質量的結果,保持了訓練圖像的內部patch統計。所有的任務都是在相同的生成網絡中完成的,沒有任何額外的信息或原始訓練圖像之外的進一步訓練。


2 Related Work

目前大多數的模型都是爲特定任務而設計,只能特定的場景下有效。之前嘗試的一些基於內部GAN的模型效果並不理想。這篇SinGAN,採用純生成式,引入噪聲映射到圖像樣本中,因而適用於多種計算機視覺任務。無條件的單圖像GAN僅僅在紋理生成的環境中被研究過。當對非紋理圖像進行訓練時,這些模型不會生成均值樣本。SinGAN強大之處在於其不侷限於紋理,可以處理一般的自然圖像。同時稍加修改就可以泛化到其他任務中,如 繪製,編輯, 融合, 超分辨, 動畫化。

該模型另一強大之處在於,不依賴數據集,僅僅在一張圖像上進行訓練,沒有任何限制。通過對單張圖像下采樣,得到多尺度圖像,可以增加網絡對不同尺度的感知和增大感受野。


3  Method

我們的目標是學習一個無條件生成模型,它可以捕獲單個訓練圖像內部統計信息。這個任務在概念上與傳統的GAN設定類似,只是這裏的訓練樣本是單個圖像的patch,而不是來自數據庫的整個圖像樣本。

我們選擇不侷限於紋理生成,要能夠處理更一般的自然圖像。這需要在許多不同的尺度上獲取複雜圖像結構的統計信息。例如,我們希望捕獲全局屬性,例如圖像中大型對象的排列和形狀(例如頂部的天空,底部的地面),以及精細的細節和紋理信息。爲了實現這一目標,我們生成框架下圖所示,由層次性的patch -GANs (馬爾科夫判別器)組成,每個patch -GANs負責捕捉不同尺度的patch分佈。GANs的接受域小,容量有限,無法記住單個圖像。而類似的多尺度體系結構已經在傳統的GAN設定環境中得到了探索,SinGAN是第一個從單一的圖像探索它的內部學習。

SinGAN的多尺度管道。模型由許多GANs組成一個金字塔,其中訓練和推理都是以一種由粗到精的方式完成的。在每個尺度上,G_{n}學習生成圖像樣本,其中所有的重疊patch用判別器D_{n}無法從下采樣訓練圖像x_{N}中的patch中識別出;當我們沿着金字塔向上移動時,有效的patch大小會減小(在原始圖像上用黃色標記以作說明)。G_{n}的輸入是隨機噪聲圖像z_{n},和生成的圖像從之前的規模\widetilde{x}_{n}, 向上採樣到當前分辨率(除了純生成的最粗級別)。第n級的生成過程涉及所有生成器{G_{n}…和所有的噪聲映射{z_{N},…,z_{n}}到這個層次。    

 3.1 多尺度結構

模型的構成是有幾個生成器\left \{G_{0},...,G_{N}\right \}組成的金字塔結構。針對x的圖像金字塔訓練X\left \{x_{0},...,x_{N}\right \},其中x_{n}是一個x的因子爲r^{n}的下采樣版本,r>1。每一個生成器G_{n}負責生成真實的圖像樣本,即對應圖像中的patch分佈x_{n}。這是通過對抗訓練實現的,在訓練中G_{n}儘可能的欺騙判別器D_{n},它試圖將生成的樣本中的patch與x_{n}中的patch區分開。

圖像樣本的生成從最粗的尺度開始,依次通過所有生成器,直到最細的尺度,在每個尺度注入噪聲。所有的生成器和判別器都有相同的接感受野,因此在生成過程中捕獲的結構尺寸都在減小。在粗尺度上,這一代是純生成,即G_{n}映射空間高斯白噪聲z_{N}\widetilde{x}_{N}.

                                                                                \widetilde{x}_{N}=G_{N}(z_{N})                                               

這一層的有效接受域通常爲圖像高度的一半,因此G_{n}生成圖像的總體佈局和對象的全局結構。每個更精細尺度上的生成器G_{n} (n < N)都添加了以前的尺度沒有生成的細節。因此,除了空間噪聲z_{n}外,每個生成器G_{n}還接受較粗尺度圖像的上採樣版本,即

                                                                 \widetilde{x}_{n}=G_{n}(z_{n},(\widetilde{x}_{n+1})\uparrow^{r}), n<N

所有的生成器都具有相似的架構,如下圖所示。具體來說,噪音z_{n}是添加到圖像(\widetilde{x}_{n+1})\uparrow ^{r}被送入一個卷積序列層。這確保了GAN不會忽略噪聲,就像隨機條件規劃中經常發生的那樣。卷積層的作用是生成的遺漏的細節(\widetilde{x}_{n+1})\uparrow ^{r}(殘差學習)。

                     

單尺度的生成。在每個尺度n,圖像從以前的規模\widetilde{x}_{n+1},上採樣並添加到輸入噪聲映射z_{n}。結果送入卷積層的輸出是一個殘差圖像添加回(\widetilde{x}_{n+1})\uparrow ^{r}。這是G_{n}輸出的 \widetilde{x}_{n}

G_{n}執行操作 :\widetilde{x}_{n}=(\widetilde{x}_{n+1})\uparrow^{r}+\psi _{n}(z_{n}+(\widetilde{x}_{n+1})\uparrow^{r}), 其中\psi _{n}是一個有着5個Conv(3×3)-BatchNorm-LeakyReLU卷積塊。我們在最粗糙的尺度上從每個塊32個內核開始,然後每4個尺度增加2倍。因爲生成器是全卷積的,所以我們可以在測試時生成任意大小和寬高比的圖像(通過改變噪聲圖的尺寸)。

3.2 訓練

我們按順序訓練我們的多尺度體系結構,從最粗糙的尺度到最精細的尺度。一旦每個GAN被訓練,它就會被固定下來。我們對第n個GAN的訓練損失包括一個對抗性公式和一個重構公式:

                                                 

對抗的loss \pounds_{adv}懲罰patch之間的距離分佈的x_{n}和patch的分佈生成樣本\widetilde{x}_{n}。重構損失\pounds_{rec}保證了一組特定的噪聲映射的存在,這些噪聲映射可以產生x_{n},這是圖像處理的一個重要特徵(第4節)。

對抗損失

每個生成器G_{n}都與一個馬爾可夫鏈判別器D_{n}耦合,該判別器將其輸入的每個重疊的patch分類爲真或假。使用WGAN-GP 損失來增加訓練的穩定性,其中最終的判別分數是patch判別映射的平均值。相對於紋理的單圖像GANs,在這裏,我們定義整個圖像的損失,而不是隨機剪裁(批量大小爲1),這允許網絡學習邊界條件(見補充資料),這是我們設定的一個重要特性。D_{n}的架構和包含G_{n}在內的網絡\psi_{n}相同,所以它的patch大小(網絡的接受域)是11×11。

重構的損失

我們要確保存在一組特定的輸入噪聲映射,生成原始圖像x。我們具體選擇

其中Z*是一些固定的噪聲映射(繪製一次,在訓練時保持固定)。當使用這些噪聲圖時,用\widetilde{x}_{rec}^{n}表示在第n個尺度上生成的圖像。對於n < N時,

對於n = N,我們使用

重建圖像\widetilde{x}_{rec}^{n}在訓練中還有另一個角色,就是確定噪聲z_{n}的標準差\sigma _{n}在每一個尺度。具體地說,我們把\sigma _{n}成比例的根均方誤差(RMSE)——漸變(\widetilde{x}_{rec}^{n})\uparrow^{2}x_{n},它給出了在這個範圍內需要添加的細節數量的指示。


4 Results

4.1 實驗細節

論文對SinGAn進行了定性和定量的測試,包括城市和自然風景,以及藝術和紋理圖像。使用(BSD)、Places和Web作爲測試數據集。論文在在最粗糙的刻度處設置最小尺寸爲25px,並選擇刻度的數量N s.t,比例因子 儘可能接近 4/3。對於所有的結果,(除非另有說明),我們將訓練圖像調整爲最大尺寸250px

4.2 測試中的尺度數量的影響

多尺度體系結構允許通過選擇在測試時開始生成的尺度來控制樣本之間的變化量。爲了從尺度n開始,我們修正了噪聲映射到這個比例爲\left \{ z_{rec}^{N},..., z_{rec}^{n+1} \right \},只對\left \{z _{n} ,...,z _{0}\right \}做隨機描繪。其效果如圖所示。

                                  

從不同的尺度生成(在推理時)。我們展示了從給定的n級開始分層生成的效果。對於我們的完整生成方案(n = N),最粗糙級的輸入是隨機噪聲。爲了生成更小比例的n,我們插入向下採樣的原始圖像Xn作爲該比例的輸入。這使得我們可以控制生成結構的規模,例如,我們可以保持斑馬的形狀和姿勢,只有從n = n−1開始生成才能改變其條紋紋理。

可以看出,在最粗糙的尺度上開始生成(n = N),全局結構有可能會發生較大變化。在某些情況下,一個大的突出的物體,如斑馬圖像的例子中,這可能導致生成不真實的樣本。然而,從更細的尺度開始生成,就可以保持全局結構不變,而只改變更細的圖像特徵(例如斑馬的條紋)。參見補充資料獲得更多的例子。

4.3 訓練中尺度數量的影響

下圖顯示了使用較少的尺度尺度數量的訓練效果。用少量的尺度,在最粗糙的水平上有效的接受域更小,只允許捕獲精細的紋理。隨着尺度數量的增加,出現了更大的支撐結構,全局對象的排列得到了更好的保留。

                                  

使用不同數量的規模進行訓練的效果。SinGAN架構中的規模數量對結果有很大的影響。只有少量比例的模型才能捕獲紋理。隨着規模數量的增加,SinGAN成功地捕捉到了更大的結構以及場景中物體的整體佈局。

4.4 定量評價

爲了量化生成圖像的真實性以及它們如何捕獲訓練圖像的內部統計數據,論文使用了兩個指標:

  • Amazon Mechanical Turk (AMT,亞馬遜衆包)“真實/虛假”用戶研究;
  • Frechet Inception距離的新單圖像版本。

AMT感知研究(感性評價有點扯)

對兩種類型的生成過程重複了這兩個過程:從最粗糙的(N)尺度開始生成,從N -1尺度開始生成。爲了量化生成圖像的多樣性,對於每個訓練示例,我們計算每個像素超過100個生成圖像的強度值的標準差(std),在所有像素上取平均值,然後根據訓練圖像的強度值的std進行標準化。真實的圖片是從“places”數據庫中隨機選取的,來自山脈、丘陵、沙漠和天空的子類別。在這四個測試中,我們有50個不同的參與者。在所有測試中,前10個測試都是包含反饋的教程。結果見表。

                                        

“真/假”AMT測試。報告了兩個生成過程的混淆率:從最粗糙尺度N開始(生成具有大量多樣性的樣本),從第二個最粗糙尺度N - 1開始(保留原始圖像的全局結構)。在每種情況下,我們都進行了配對研究(真-vs。-假圖像對顯示),和一個未配對的(無論是假或真圖像顯示)。方差由bootstrap估計。

在未配對的情況下,混淆的比例總是更大,因此沒有可比性。此外,很明顯,混淆率隨着生成圖像的多樣性而降低。然而,即使改變了大型結構,我們生成的圖像也很難與真實圖像區分開來(50%的分數意味着完全混淆了真實圖像和虛假圖像)。完整的測試圖像包含在補充資料中。

單幅圖像Fréchet Inception Distance

量化SinGAN在多大程度上捕獲了x的內部統計信息。GAN評價的一個常用指標是Frechet Inception Distance (FID),它測量生成圖像的深度特徵分佈與真實圖像的分佈之間的偏差。然而,在我們的設置中,我們只有一個真實的圖像,並且對它的內部patch統計非常感興趣。因此提出了單圖像FID (SIFID)度量。而不是使用激活向量

在Inception網絡的最後一個池化層(每個圖像一個向量)之後,我們在第二個池化層(圖中每個位置一個向量)之前使用卷積層輸出的深層特徵的內部分佈。我們的SIFID是真實圖像和生成的樣本中這些特徵的統計數據之間的FID。

                                               

單圖像FID(SIFID)。我們將FID指標應用於單個圖像,並報告50幅圖像的平均分,對於完整的生成(第一行),以及從第二個最粗糙尺度(第二行)開始。與AMT結果的相關性表明,SIFID與人類的排名高度一致。

從表中可以看出,規模N - 1生成的SIFID平均值低於規模N 生成的SIFID平均值,這與用戶研究結果一致。我們還報告了SIFID分數和假圖像的混淆率之間的相關性。請注意,這兩者之間存在顯著的(反)相關性,這意味着一個小的SIFID通常可以很好地指示出較大的混淆率。成對測試的相關性更強,因爲SIFID是成對的措施(它作用於對x_{n},\widetilde{x}_{n})。


4 Applications

這部分探討了SinGAN在許多圖像處理任務中的應用。在訓練後使用我們的模型,不進行架構更改或進一步調優,並對所有應用採用相同的方法。該思想是利用這樣一個事實,即在推理時,SinGAN只能生成與訓練圖像具有相同patch分佈的圖像。因此,可以通過在n < N的某個尺度將圖像(可能是向下採樣的版本)注入到生成金字塔中,並通過生成器將其前饋傳輸,從而使其patch分佈與訓練圖像的patch分佈匹配,從而進行操作。不同的注入規模導致不同的效果。


5 Conclusion

本文介紹了一個新的非條件生成方案SinGAN,它是從一個單一的自然圖像中學習來的。展示了它不僅限於紋理的學習能力,併爲自然複雜的圖像生成多樣的真實樣本。與外部訓練的生成方法相比,內部學習在語義多樣性方面存在固有的侷限性。例如,如果訓練圖像包含一條狗,我們的模型將不會生成不同犬種的樣本。不過實驗證明,SinGAN可以爲廣泛的圖像處理任務提供一個非常強大的工具。

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章