論文谷歌翻譯:SinGAN(代碼開源)

論文地址:https://arxiv.org/abs/1905.01164

代碼地址:http://webee.technion.ac.il/people/tomermic/SinGAN/SinGAN.htm

摘要

提出了 SinGAN,這是一個可以從單張自然圖像學習的非條件性生成式模型。模型可以捕捉給定圖像中各個小塊內的內在分佈,接着就能夠生成帶有和給定圖像中的視覺內容相同的高質量且多樣的新圖像。SinGAN的結構是多個全卷積GANs組成的金字塔這些全卷積GANs都負責學習圖像中的某個小塊中的數據分佈,不同的GANs學習的小塊的大小不同。這種設計可以讓它生成具有任意大小和比例的新圖像,這些新圖像在具有給定的訓練圖像的全局結構和細節紋理的同時,還可以有很高的可變性。與此前的從單張圖像學習GAN的研究不同的是,作者們的這個方法不僅僅可以學習圖像中的紋理,而且是一個非條件性模型(也就是說它是從噪聲生成圖像的)。作者們做實驗讓人分辨原始圖像和生成的圖像,結果表明很難區分兩者。作者們也在多種圖像操控任務中展示了SinGAN的作用。

 

1. 介紹

生成式對抗網絡(GANs)[19]在可視化數據的高維分佈建模方面取得了巨大的飛躍。特別是,在特定類數據集(例如,面部[33],臥室[47])上進行訓練時,無條件GANs在生成真實、高質量的樣本方面表現出了顯著的成功。但是,捕獲多種不同的類別組成的數據集的分佈(例如,(ImageNet[12])仍然被認爲是一個主要的挑戰,通常需要根據另一個輸入信號對生成過程做限制(條件式生成)[6]或爲特定的任務訓練模型(例如,超分辨率[30],inpainting[41],重定向[45])。

在這裏,我們將GANs的使用帶入了一個新的領域——從單一的自然圖像中進行無條件生成學習。

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

圖1:從單個訓練圖像中學習的圖像生成。提出了一種基於單一自然圖像的無條件生成模型我們的模型使用一種專門的多尺度對抗訓練方案,在多個尺度上學習圖像中的小塊的數據分佈;然後,它可以用來生成新的逼真的圖像樣本,在創建新的對象配置和結構時,保持原始的小塊分佈。

對單個自然圖像中的patch內部分佈進行建模長期以來一直被認爲是許多計算機視覺任務的重要前提[64]。經典的例子包括去噪[65],去模糊[39],超分辨率[18],去霧[2,15],圖像編輯[37,21,9,11,50]。在這方面最相關的工作是[48],其中定義了一個雙向的patch相似性度量,並對其進行了優化,以保證處理後的圖像patch與原始圖像的patch是相同的。在這些工作的激勵下,在這裏,我們展示瞭如何在一個簡單的統一學習框架中使用SinGAN來解決各種圖像處理任務,包括從單個圖像到圖像的繪製、編輯、協調、超分辨率和動畫。在這些情況下,我們的模型產生了高質量的結果,保持了訓練圖像的內部patch統計(見圖2和我們的項目網頁)。所有的任務都是在相同的生成網絡中完成的,沒有任何額外的信息或原始訓練圖像之外的進一步訓練。

圖2:圖像操控。SinGAN 可以用來執行多種圖像操控任務,包括:把一張剪貼畫轉換成具有真實感的照片,編輯、重新排列圖像中的物體,讓添加到圖像中的物體變得協調一致,圖像超分辨率,或者從單張輸入生成動畫。在所有這些例子中,模型都只觀察過第一橫行的訓練圖像,所有這些應用也都是以同樣的方式訓練的,沒有額外的模型架構修改或者精細調節。

1.1 相關工作

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

圖3:SinGAN對比單個圖像紋理生成。用於紋理生成的單一圖像模型[3,16]並不是爲了處理自然圖像而設計的。我們的模型可以生成包含複雜紋理和非重複全局結構的真實圖像樣本。

生成式圖像編輯模型 在許多不同的圖像處理任務中,最近的基於gan的方法已經證明了對抗性學習的力量[61、10、62、8、53、56、42、53]。例如交互式圖像編輯[61,10]、sketch2image[8,43],以及其他圖像到圖像的翻譯任務[62,52,54]。然而,所有這些方法都是在類特定的數據集上訓練的,而且正如上文所說,它們通常需要有另一個輸入信號作爲生成條件。我們不感興趣的是捕獲同一類圖像之間的共同特徵,而是考慮不同的訓練數據來源——單個自然圖像的多個尺度上的所有重疊補丁。我們證明了一個強大的生成模型可以從這些數據中學習,並可用於許多圖像處理任務。

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

圖5:單尺度的生成。在每個尺度n,圖像從以前的規模,˜Xn+1,上採樣並添加到輸入噪聲映射,z n。結果送入卷積層的輸出是一個殘差圖像添加回(˜Xn+1)↑r。這是Gn輸出的 ˜xn。

2. 方法

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

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

2.1 多尺度結構

我們的模型由一個生成器金字塔組成,

,針對

的圖像金字塔進行訓練,其中

是一個因子

的x的下采樣版本,對於某個r > 1。每個生成器Gn負責生成真實的圖像樣本w.r.t,即對應圖像

中的patch分佈。這是通過逆向訓練實現的,在這種訓練中,Gn學會欺騙一個相關的識別器Dn,該識別器試圖將生成的樣本中的patch與

中的patch區分開來。

圖像樣本的生成從最粗的尺度開始,依次通過所有生成器,直到最細的尺度,在每個尺度注入噪聲。所有的生成器和判別器都有相同的接收域,因此在生成過程中捕獲的結構尺寸都在減小。在粗尺度上,這一代是純生成,即Gn映射空間高斯白噪聲

到圖像樣本˜xN

這一層的有效接受域通常爲圖像高度的一半,因此

生成圖像的總體佈局和對象的全局結構。每個更小尺度上的生成器Gn (n < n)都添加了以前的尺度沒有生成的細節。因此,除了空間噪聲zn外,每個生成器Gn還接受較粗尺度圖像的上採樣版本,即

所有的生成器都具有相似的架構,如圖5所示。具體來說,噪音Zn是添加到圖像(˜x n +1)↑r,被送入一個卷積序列層。這確保了GAN不會忽略噪聲,就像隨機條件規劃中經常發生的那樣[62,36,63]。卷積層的作用是生成的遺漏的細節(˜x n + 1)↑r(殘差學習[22,57])。即Gn執行操作

其中ψn是一個有着5個Conv(3×3)-BatchNorm-LeakyReLU[25]卷積塊。我們在最粗糙的尺度上從每個塊32個內核開始,然後每4個尺度增加2倍。因爲生成器是全卷積的,所以我們可以在測試時生成任意大小和寬高比的圖像(通過改變噪聲圖的尺寸)。

2.2 訓練

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

對抗的損失Ladv懲罰patch之間的距離分佈的xn和patch的分佈生成樣本˜x n。重構損失Lrec保證了一組特定的噪聲映射的存在,這些噪聲映射可以產生

,這是圖像處理的一個重要特徵(第4節)。

對抗損失

每個生成器Gn都與一個馬爾可夫鏈判別器Dn耦合,該判別器將其輸入的每個重疊的patch分類爲真或假[31,26]。

我們使用WGAN-GP 損失[20]來增加訓練的穩定性,其中最終的判別分數是patch判別映射的平均值。相對於紋理的單圖像GANs(例如,[31,27,3]),在這裏,我們定義整個圖像的損失,而不是隨機剪裁(批量大小爲1),這允許網絡學習邊界條件(見補充資料),這是我們設定的一個重要特性。Dn的架構和包含Gn 在內的網絡ψn相同,所以它的patch大小(網絡的接受域)是11×11。

重構的損失

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

其中Z*是一些固定的噪聲映射(繪製一次,在訓練時保持固定)。當使用這些噪聲圖時,用

表示在第n個尺度上生成的圖像。對於n < N時,

對於n = N,我們使用

重建圖像

在訓練中還有另一個角色,就是確定噪聲Zn的標準差

在每個規模。具體來說,我們把

當成) 在(

+1)↑r和

比例之間的均方誤差(RMSE,表示在該尺度下需要添加的細節量。

3.結果

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

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

圖6:隨機圖像樣本。通過對單個圖像進行訓練,可以生成描述新結構和目標配置的圖像樣本的逼真的隨機圖像,同時保留訓練圖像的patch分佈。由於我們的模型是全卷積的,因此生成的圖像可能具有任意大小和縱橫比。請注意,我們的目標不是圖像重定向--我們的圖像樣本是隨機的和優化的,以維護patch分佈,而不是保留突出的目標。更多結果和圖像重定向方法的定性比較請參見補充資料.

圖7:高分辨率圖像生成。我們的模型生成的隨機樣本,訓練在243×1024的圖像上(右上角);新的全局結構以及精細的細節被真實地生成。參見補充資料中的4Mpix示例

測試中尺度數量的影響

我們的多尺度體系結構允許通過選擇在測試時開始生成的尺度來控制樣本之間的變化量。爲了從比例n開始,我們修正了噪聲映射到這個比例爲

只對

做隨機描繪。其效果如圖8所示。

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

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

訓練中尺度數量的影響

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

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

3.1 定量評價

爲了量化生成圖像的真實性以及它們如何捕獲訓練圖像的內部統計數據,我們使用了兩個指標:(i) Amazon Mechanical Turk (AMT,亞馬遜衆包)“真實/虛假”用戶研究,(ii)Frechet Inception距離[23]的新單圖像版本。

AMT感知研究

我們遵循[26,58]的方案,在兩種情況下進行感知實驗。

(i)配對(真與假):研究人員向參與者展示了50個實驗序列,每個實驗中,一張假圖像(由SinGAN生成)與它的真實訓練圖像進行1秒鐘的對比。工作人員被要求挑選出假照片。

(ii)非配對(真或假):工作人員看到一張圖片1秒鐘,然後被問及這是否是假的。總共有50張真實的圖像和50張不相關的假圖像被隨機分配給每個參與者。

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

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

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

單幅圖像FréchetInceptionDistance

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

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

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

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

4. 應用

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

超分辨率

將輸入圖像的分辨率提高一個因子s。我們訓練我們的模型在低分辨率(LR)圖像,重建低損失權重α= 100和金字塔規模因子

k∈N。

由於小型結構往往在自然場景[18]的規模上反覆出現,在測試時,我們通過一個r因子對LR圖像進行上採樣,並將其(連同噪聲)注入最後一個生成器g0。我們重複k次以獲得最終的高分辨率輸出。示例結果如圖10所示。可以看出,我們重建的視覺性能超過了最先進的內部方法[51,46],外部方法的目的是PSNR最大化[32]。

 

圖10:超分辨率。當SinGAN被訓練在一個低分辨率的圖像上時,我們能夠超級分辨。這是通過迭代地對圖像進行採樣並將其輸入到SinGAN的最精細的比例生成器來實現的。可以看出,SinGAN的圖像質量優於SOTA內標法ZSSR[46]和DIP[51]。它也比EDSR[32]好,可以與SRGAN[30]相比,後者是在大型數據集上訓練的外部方法。括號中顯示了相應的PSNR和NIQE[40]。

有趣的是,它可以與外部訓練的SR-GAN方法[30]相媲美,儘管它只暴露在一張圖像中。在[4]之後,我們在BSD100數據集[35]上比較表3中5種方法的失真程度(RMSE)和感知質量(NIQE[40])是兩個根本衝突的需求[5]。可以看出,SinGAN在感知品質上非常優秀;其NIQE分數僅略低於SRGAN,其RMSE稍好一些。

表3:超分辨率評估。在[5]之後,我們在BSD100[35]上報告了失真(RMSE)和感知性能(NIQE[40],越低越好)。可以看出,gan的性能與SRGAN[30]類似。

圖畫-圖像(Paint-to-Image)

將剪貼畫轉換成逼真的圖像。這是通過向下採樣剪貼畫圖像並將其輸入一個粗尺度(例如N−1或N−2)來實現的。從圖2和圖11可以看出,我們保留了畫面的整體結構,真實地生成了與原圖匹配的紋理和高頻信息。我們的方法在視覺性能上優於風格遷移方法[38,17](圖11)。

圖11:Paint-to-Image。我們在目標圖像上訓練SinGAN,並在測試時將一個向下採樣的油漆注入到一個粗糙的水平。我們生成的圖像保留了剪貼畫的佈局和一般結構,同時生成與訓練圖像匹配的真實紋理和精細細節。著名的風格遷移方法[17,38]在此任務中失敗。

協調(Harmonization)

把粘貼的對象與背景圖像融爲一體。我們在背景圖像上訓練SinGAN,並在測試時注入原始粘貼的複合材料的下采樣版本。在這裏,我們將生成的圖像與原始背景相結合。從圖2和圖13可以看出,我們的模型對粘貼對象的紋理進行了裁剪以匹配背景,並且經常比[34]更好地保留了對象的結構。縮放2、3、4通常會在保持對象結構和轉移背景紋理之間取得良好的平衡。

圖13:協調。我們的模型能夠保持粘貼對象的結構,同時調整其外觀和紋理。專用的協調方法[34]過度混合對象與背景。

編輯(Editing)

把圖像中一個區域的內容複製粘貼到另一個區域後,仍然保持真實的觀感。這裏,我們再次將複合材料的下采樣版本注入到粗糙規模之一。然後我們將SinGAN在編輯區域的輸出與原始圖像結合起來。如圖2和圖12所示,SinGAN重新生成了精細的紋理,並無縫地縫合了粘貼的部分,比Photoshop的Content-Aware-Move(內容感知剪切)效果更好。

 

圖12:編輯。我們從原始圖像(a)中複製並粘貼一些補丁,然後將編輯後的圖像(b)的下采樣版本輸入到我們的模型的中間層(在(a)上進行預訓練)。在生成的圖像(d)中,這些局部編輯被轉換成連貫的、逼真的結構。(c)與Photoshop的contentaware move比較。

單圖像動畫(SingleImage Animation)創建一個簡短的視頻剪輯與現實物體的運動,從一個單一的輸入圖像。自然圖像往往包含重複,這揭示了不同的“快照”在同一動態對象[55]的時間(例如,一羣鳥的圖像揭示了一個鳥的所有翼姿態)。使用SinGAN,我們可以沿着圖像中物體的所有表象的表面前進,從而從一個單一的圖像合成運動。我們發現,對於許多類型的圖像,一個現實的效果是通過z空間中的隨機漫步實現的,從z rec開始的第一幀在所有的生成尺度(見補充資料視頻)。

5. 結論

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

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