Analyzing and Improving the Image Quality of StyleGAN
Abstract
基於風格的GAN架構(StyleGAN)在數據驅動的無條件生成圖像建模方面產生了最先進的結果。我們公開並分析了它的一些特征偽影(artifacts),並建議在模型架構和訓練方法中進行更改來處理它們。特別地,我們重新設計了生成器的標准化,重新審視漸進增長,並規范生成器以促進從潛在編碼到圖像的良好映射。除了改善圖像質量,這一路徑長度正則化器產生額外的好處,使生成器變得明顯更容易逆轉。這樣就可以可靠地將生成的圖像貢獻給特定的網絡。我們進一步可視化了生成器如何很好地利用它的輸出分辨率,並確定一個容量問題,促使我們訓練更大的模型,以獲得額外的質量改進。總的來說,我們改進的模型重新定義了無條件圖像建模的最新技術,包括現有的分布質量指標和可感知的圖像質量。
1. Introduction
生成方法產生的圖像的分辨率和質量,特別是生成對抗網絡(GAN)[16],正在迅速提高[23,31,5]。目前最先進的高分辨率圖像合成方法是StyleGAN[24],它已被證明在各種數據集上可靠地工作。我們的工作集中在修復其特征偽影和進一步提高結果質量上。
StyleGAN[24]的特色是它非傳統的生成器架構。已經不是僅將輸入潛在編碼z∈Z輸入網絡的開始,而是使用一個網絡的映射f首先將z轉換成一個中間潛在編碼w∈W 。然后使用仿射變換產生styles,通過adaptive instance normalization (AdaIN) [21, 9, 13, 8]來控制合成網絡g的層。此外,通過向合成網絡提供額外的隨機噪聲映射,用於隨機變化。已經證明[24,38],這種設計使得中間潛在空間W比輸入潛在空間Z的糾纏度小得多。在本文中,我們僅對W進行分析,因為從合成網絡的角度來看,W是相關的潛在空間。
許多觀測者已經注意到StyleGAN[3]生成的圖像中的特征偽影。我們確定了產生這些偽影的兩個原因,並描述了為了消除它們的架構和訓練方法中的變化。首先,我們調查了常見的blob樣偽影的起源,並發現生成器創建它們是為了規避其體系結構中的設計缺陷。在第2部分中,我們重新設計了生成器中使用的標准化,這將刪除偽影。其次,我們分析了與不斷增長[23]相關的偽影,其在穩定高分辨率GAN訓練中非常成功。我們提出了一種實現同樣目標的替代設計——訓練從關注低分辨率的圖像開始,然后逐步將焦點轉移到越來越高的分辨率上——在訓練期間不改變網絡拓撲。這個新設計還允許我們推斷生成的圖像的有效分辨率,結果顯示它比預期的要低,從而促使容量增加(第4節)。
使用生成方法生成的圖像質量的定量分析仍然是一個具有挑戰性的話題。Fre ́chet inception distance (FID)[20]測量在InceptionV3分類器[39]的兩個分布的密度差異。Precision and Recall (P&R)[36,27]分別明確地量化生成的與訓練數據相似的圖像的百分比和可以生成的訓練數據的百分比,從而提供了額外的可視性。我們使用這些度量來量化改進。
FID和P&R都是基於分類器網絡,這些分類器網絡最近被證明更關注紋理而不是形狀[12],因此,這些指標不能准確地捕捉圖像質量的所有方面。我們觀察到感知路徑長度(PPL, perceptual path length)度量[24],最初被引入作為一種估計潛在空間插值質量的方法,與形狀的一致性和穩定性相關。在此基礎上,我們規范化合成網絡,使其有利於平滑映射(第3節),並在質量上得到了明顯的提高。為了抵消它的計算開銷,我們還建議減少所有正則化的執行頻率,觀察到這可以在不影響效率的情況下完成。
最后,我們發現新的路徑長度正則的StyleGAN2生成器比原來的StyleGAN2生成器能更好地將圖像投影到潛在空間W上。這使得將生成的圖像賦給它的源更加容易(第5節)。
我們的實現和訓練模型可在以下網站獲得:https://github.com/NVlabs/stylegan2
2. Removing normalization artifacts
我們首先觀察到,StyleGAN生成的大多數圖像都呈現出類似水滴的特征斑點狀偽影。如圖1所示,即使在最終的圖像中液滴並不明顯,它也會出現在生成器的中間特征圖中。異常在64×64分辨率左右開始出現,在所有的特征映射中都存在,並且在高分辨率下逐漸增強。這種一致性偽影的存在是令人費解的,因為鑒別器應該能夠檢測到它。
我們將問題定位到AdaIN操作,該操作將每個特征圖的均值和方差分別歸一化,從而可能破壞在特征相對大小中發現的任何信息。我們假設,霧滴偽影是生成器有意將信號強度信息傳遞到實例歸一化(instance normalization)的結果:通過創建一個強大的、控制統計的局部尖峰,生成器可以在其喜歡的任何地方有效地縮放信號。我們的假設得到了以下發現的支持:當標准化步驟從生成器中移除時,液滴偽影完全消失。
2.1. Generator architecture revisited
我們將首先修改StyleGAN生成器的幾個細節,以更好地促進我們重新設計的標准化。就質量度量而言,這些變化對它們自己有中立或小的積極影響。
圖2a顯示了原始的StyleGAN合成網絡g[24],在圖2b中,我們通過顯示權重和偏差,並將AdaIN操作分解為兩個組成部分:歸一化和調制,將圖表擴展到完整的細節。這允許我們重新繪制概念性的灰色框,以便每個框都指示網絡中某一style處於活動狀態的部分(即。“style block”)。有趣的是,最初的StyleGAN在樣式塊中應用了偏差和噪聲,導致它們的相對影響與當前樣式的大小成反比。我們觀察到,通過將這些操作移到樣式塊之外,可以獲得更可預測的結果,在樣式塊中,這些操作對非規范化數據進行操作。此外,我們注意到,在這個變化之后,僅在標准差上操作(即不需要平均值)對於歸一化和調制來說是足夠的了。應用偏差、噪聲和歸一化的常數輸入也可以安全地去除,沒有明顯的缺點。這個變體如圖2c所示,並作為我們重新設計的標准化的起點。
2.2. Instance normalization revisited
StyleGAN的主要優點之一是能夠通過style mixing來控制生成的圖像。,通過在推理時間向不同層輸入不同的潛在w。在實踐中,風格調制可以放大某些特征圖的一個數量級或更多。為了使風格混合工作,我們必須明確地在每個樣本的基礎上抵消這種放大——否則隨后的層將不能以一種有意義的方式對數據進行操作。
如果我們願意犧牲特定比例的控制(見視頻),我們可以簡單地去除標准化,從而能夠去除偽影,也稍微改善了FID[27]。現在,我們將提出一個更好的替代方案,在保留完全可控性的情況下刪除偽影。主要的想法是基於期望的統計數據的輸入特征映射的規范化,但沒有明確的強制。
回想一下,圖2c中的style block由調制、卷積和歸一化組成。讓我們先來考慮一下調制后的卷積效應。調制是根據輸入方式對卷積的每個輸入特征圖進行縮放,也可以通過縮放卷積權重來實現:
其中w和w'分別表示原始的和調制后的權重,si是對應於第i個輸入特征映射的縮放因子,j和k分別列舉了輸出特征映射和卷積的空間足跡
現在,instance normalization的目的是從根本上消除s對卷積輸出特征圖統計量的影響。我們注意到,這一目標可以更直接地實現。我們假設輸入激活是具有單位標准差的隨機變量。經過調制和卷積后,輸出激活的標准差為:
輸出按相應權重的L2范數進行縮放。隨后的歸一化旨在將輸出恢復到單位標准差。根據式2,我們可以通過將每個輸出特征圖j按1/ σj縮放(“解調制”)來實現。或者,我們也可以把它代入卷積權值中:
其中ε是一個小的常量,用來避免分母為0
現在我們已經將整個style block弄成一個卷積層,卷積層的權值使用公式1和3根據s進行調整(圖2d)。與實例歸一化相比,我們的解調技術比較弱,因為它是基於信號的統計假設,而不是特征圖的實際內容。類似的統計分析在現代網絡初始化器中被廣泛使用[14,19],但我們沒有意識到它以前被用作數據依賴標准化的替代。我們的解調也與權值歸一化[37]有關,它執行同樣的計算作為權值張量重新參數化的一部分。之前的研究已經確認,在GAN訓練[43]的背景下,權值歸一化是有益的。
我們的新設計刪除了特征偽影(圖3),同時保留了完全的可控性,如所附的視頻所示。FID在很大程度上沒有受到影響(表1,A, B行),但是從precision到recall有明顯的變化。我們認為這通常是可取的,因為通過截斷可以將召回轉換為精度,而反向[27]則不是正確的。在實踐中,我們的設計可以有效地使用grouped convolutions來實現,詳見附錄b。為了避免需要考慮公式3中的激活函數,我們對激活函數進行了縮放,使其保持預期的信號方差。
3. Image quality and generator smoothness
雖然像FID或Precision and Recall (P&R)這樣的GAN指標成功地捕獲了生成器的許多方面,但它們在圖像質量方面仍然存在一些盲點。例如,參考圖13和圖14,它們將生成器與相同的FID和P&R分數進行對比,但總體質量卻明顯不同
我們觀察到感知圖像質量和感知路徑長度(PPL)[24]之間的相關性,感知路徑長度[24]最初是用於量化從潛在空間映射到輸出圖像的平滑性,通過測量潛在空間小擾動下生成圖像之間的平均LPIPS距離[50]。再次參考圖13和圖14,更小的PPL(更平滑的生成器映射)似乎與更高的整體圖像質量相關,而其他指標對變化是盲目的。圖4通過在LSUN Cat數據集上每個圖片的PPL分數證明了該相關性是十分密切的,通過從中采樣潛在空間計算得到。分數低確實表明圖像質量高,反之亦然。圖5a為對應的柱狀圖,顯示了分布的長尾。該模型的總體PPL只是這些每幅圖像PPL得分的期望值。我們總是計算整個圖像的PPL,與Karras等人[24]不同,他們使用較小的central crop。
目前還不清楚為什么低PPL與圖像質量相關。我們假設在訓練過程中,當鑒別器對破碎的圖像進行懲罰時,最直接的改進方法是有效地拉伸潛在空間區域,從而產生良好的圖像。這將導致低質量的圖像被擠壓到迅速變化的小的潛在空間區域內。雖然這在短期內提高了平均輸出質量,但累積的失真損害了訓練的動力,從而影響了最終的圖像質量。
顯然,我們不能簡單地鼓勵最小PPL,因為這將引導生成器走向零召回的退化解決方案。相反,我們將描述一個新的正則化器,它的目標是使生成器映射更平滑,而不存在此缺點。由於得到的正則化項計算起來有些昂貴,我們首先描述一個適用於任何正則化技術的一般優化。
3.1. Lazy regularization
通常,主要損失函數(如logistic損失[16])和正則化項(如R1[30])被寫成單個表達式,從而同時進行優化。我們觀察到正則化項的計算頻率比主要損失函數要低,從而大大降低了它們的計算成本和總體內存使用量。表1,C行顯示,當R1正則化每16個小批量執行一次時,沒有造成損害,我們對我們的新正則化器也采用相同的策略。附錄B給出了實現細節。
3.2. Path length regularization
我們希望W中的一個固定大小的步長會導致圖像中非零的固定大小的變化。我們可以通過在圖像空間中進入隨機方向並觀察相應的w梯度來測量與這個理想的偏差。無論w方向或圖像空間方向如何,這些梯度的長度應該接近相等,表明從潛在空間到圖像空間的映射是條件良好的[33]。
在一個單一的中,生成器映射函數
的局部度量縮放特性可通過
獲得。為了保持向量的期望長度,無論方向如何,我們將正則化器表示為:
其中y是有着正態分布的像素強度的隨機圖像,,z是正態分布。我們在附錄C中表明,在高維情況下,當Jw在任意w處正交(直到全局尺度)時,這個先驗是最小的。一個正交矩陣保持長度,並且沒有在任意維上引入壓縮。
為了避免Jacobian矩陣的顯式計算,使用恆等式,其使用標准后向傳播[6]可以有效計算。常量a是在優化中動態設置為長度
的長期指數移動平均值,允許優化自己找到一個合適的全局規模。
我們的regularizer與Odena等人[33]提出的Jacobian矩陣clampingregularizer密切相關。實際差別包括我們是解析地計算,而他們使用有限差值來估計
。需要注意的是,生成器[46]的spectral normalization[31]只約束最大奇異值,對其他奇異值沒有約束,因此不一定會產生更好的條件。我們發現,除了我們的貢獻之外,啟用spectral normalization——或者代替它們——總是會損害FID,詳見附錄E。
在實踐中,我們注意到,路徑長度正則化導致更可靠和行為一致的模型,使架構探索更容易。我們還觀察到,更平滑的生成器明顯更容易求反(Section 5)。圖5b顯示,路徑長度正則化清晰地收緊了每幅圖像的PPL分數分布,而沒有將模式推到零。然而,表1D行指出了FID和PPL在數據集中的權衡,這些數據集中的結構比FFHQ要少。
4. Progressive growing revisited
Progressive growing[23]在穩定高分辨率圖像合成方面非常成功,但它會產生自己特有的偽影。關鍵的問題是,逐漸增長的generator似乎有一個強烈的位置偏好的細節;隨附的視頻顯示,當牙齒或眼睛等特征應該在圖像上平滑移動時,它們可能會在跳轉到下一個首選位置之前停留在原地。圖6顯示了一個相關的工件。我們認為,問題在於,在Progressive growing過程中,每個分辨率都暫時充當了輸出分辨率的作用,迫使它生成最大的頻率細節,從而導致訓練好的網絡在中間層擁有過高的頻率,從而破壞了[49]的位移不變性。附錄A給出了一個示例。這些問題促使我們尋求一種替代的提法,既能保留Progressive growing的好處,又不會有缺點。
4.1. Alternative network architectures
當StyleGAN在生成器(合成網絡)和鑒別器中使用簡單的前饋設計時,有大量的工作致力於研究更好的網絡架構。跳躍連接[34,22],殘差網絡[18,17,31]和層次方法[7,47,48]在生成方法上下文中也被證明是非常成功的。因此,我們決定重新評估StyleGAN的網絡設計,並尋找一種能產生高質量圖像而又沒有Progressive growing的架構。
圖7a顯示了MSG-GAN[22],它使用多個跳躍連接連接生成器和鑒別器的匹配分辨率。對MSG-GAN生成器進行修改,以輸出一個mipmap[42]而不是圖像,並為每個真實圖像計算類似的表示。在圖7b中,我們通過向上采樣和對不同分辨率對應的RGB輸出的貢獻進行求和來簡化這種設計。在鑒別器中,我們同樣向鑒別器的每個分辨率塊提供下采樣圖像。在所有的上采樣和下采樣操作中都使用了雙線性濾波。在圖7c中,我們進一步修改了設計以使用殘差連接。該設計類似於LAPGAN[7],但沒有Denton等人使用的per-resolution鑒別器。
表2比較了三種生成器和三種鑒別器架構:StyleGAN中使用的原始前饋網絡、skip connections和殘差網絡,它們都經過了訓練,沒有逐步增長。FID和PPL用於9種組合中的每一種。我們可以看到兩個大的趨勢:在所有配置中,跳過連接在生成器大大改善PPL,和殘差鑒別網絡顯然有利於FID。后者也許並不令人驚訝,因為鑒別器的結構類似於已知殘余結構是有用的分類器。然而,殘差架構在生成器是有害的-唯一的例外是在LSUN Cat數據集中的FID,其中兩個網絡都是殘差的。
在本文的其余部分,我們使用跳躍發生器和殘差鑒別器,沒有漸進增長。這與表1中的配置E相對應,顯著改善了FID和PPL。
4.2. Resolution usage
我們想要保留的漸進增長的關鍵方面是,生成器首先會關注低分辨率的特性,然后慢慢地將注意力轉移到更精細的細節上。圖7中的架構使生成器能夠首先輸出不受高分辨率層顯著影響的低分辨率圖像,然后隨着訓練的進行將焦點轉移到高分辨率層。由於這並沒有以任何方式強制執行,所以生成器只會在有利的情況下執行。為了在實踐中分析這種行為,我們需要量化在訓練過程中生成器對特定分辨率的依賴程度。
由於跳躍生成器(圖7b)通過顯式地將多個分辨率的RGB值相加形成圖像,因此我們可以通過測量對應層對最終圖像的貢獻大小來估計它們的相對重要性。在圖8a中,我們繪制了每個tRGB層產生的像素值的標准差作為訓練時間的函數。我們計算了1024個w隨機樣本值的標准差並將其規格化,使其和為100%
在訓練開始時,我們可以看到新的跳躍生成器的行為類似於漸進式增長——現在在不改變網絡拓撲的情況下實現。因此,有理由期望最高的分辨率在訓練快結束時占主導地位。然而,圖中顯示,這種情況在實踐中沒有發生,這表明生成器可能無法“充分利用”目標分辨率。為了驗證這一點,我們手動檢查了生成的圖像,並注意到它們通常缺少一些訓練數據中存在的像素級細節——這些圖像可以被描述為5122張圖像的銳化版本,而不是真正的10242張圖像。
這讓我們假設我們的網絡存在容量問題,我們通過將兩個網絡的最高分辨率層的特征圖數量翻倍來測試。這使得行為更符合預期:圖8b顯示了最高分辨率層的貢獻顯著增加,而表1 F行顯示FID和Recall顯著提高。最后一行顯示基線StyleGAN也受益於額外的容量,但其質量仍然遠遠低於StyleGAN2。
表3比較了四類LSUN中的StyleGAN和StyleGAN2,再次顯示了FID的明顯改善和PPL的顯著進展。進一步擴大規模可能會帶來額外的好處。
5. Projection of images to latent space
合成網絡g的反向是一個有趣的問題,具有廣泛的應用。在潛在特征空間中對給定圖像進行處理,首先需要找到與其匹配的潛在碼w。之前的研究[1,10]表明,如果每一層發生器都選擇一個單獨的w,結果會有所改善,而不是尋找一個共同的潛碼w。在早期的編碼器實現[32]中使用了相同的方法。在以這種方式擴展潛在空間的同時,可以找到與給定圖像更接近的匹配,這也使得投影沒有潛在表現的任意圖像成為可能。相反,我們專注於在原始的、未擴展的潛在空間中尋找潛在代碼,因為這些代碼與生成器可能產生的圖像相對應。
我們的投影方法與以前的方法有兩個不同之處。首先,我們在優化過程中對潛在編碼添加了下拉噪聲,以便更全面地挖掘潛在編碼空間。其次,我們還優化了styleGAN發生器的隨機噪聲輸入,對它們進行正則化,以確保它們最終不會攜帶相干信號。正則化的基礎是增強噪聲映射的自相關系數,以在多個尺度上匹配單位高斯噪聲。我們的投影方法的詳細內容見附錄D。
5.1. Attribution of generated images
檢測操縱或生成的圖像是一個非常重要的任務。目前,基於分類器的方法可以相當可靠地檢測生成的圖像,不管它們的確切來源是什么[29,45,40,51,41]。然而,考慮到生成方法的快速進步步伐,這可能不是一個持久的情況。除了對假圖像的一般檢測,我們還可以考慮這個問題的一種更有限的形式:能夠將一個假圖像歸到它的特定源[2]上。使用StyleGAN,這相當於檢查是否存在一個w∈W,能重新合成的圖像的問題。
我們通過計算原始圖像和重新合成圖像之間的LPIPS[50]距離來衡量投影的成功程度,即,其中x是被分析的圖像,
表示近似投影運算。圖10顯示了使用原始StyleGAN和StyleGAN2的LSUN CAR和FFHQ數據集的這些距離的直方圖,圖9顯示了示例投影。使用StyleGAN2生成的圖像可以很好地投影到W中,以至於它們幾乎可以明確地歸因於生成網絡。然而,在最初的StyleGAN中,即使在技術上可以找到匹配的潛在代碼,從W到圖像的映射似乎太過復雜,無法在實踐中可靠地成功。令人鼓舞的是,盡管圖像質量得到了顯著提高,StyleGAN2仍然使源歸因變得更容易。
6. Conclusions and future work
我們已經確定並修復了StyleGAN的幾個圖像質量問題,進一步提高了質量,並大大提高了幾個數據集的技術水平。在某些情況下,改進可以在運動中更清晰地看到,如所附的視頻所示。附錄A包括使用我們的方法得到的結果的進一步例子。盡管改進了質量,StyleGAN2使生成的圖像更容易歸因於其來源。
訓練性能也有所提高。原始的StyleGAN(表1中配置A)在8個Tesla V100 gpu的NVIDIA DGX-1上每秒能運行37張圖像,分辨率為10242,而我們的配置E在61 img/s的速度上快了40%。大部分的加速來自於由於權重解調、延遲正則化和代碼優化而簡化的數據流。StyleGAN2(配置F,更大的網絡)的訓練是31 img/s,因此只比原來的StyleGAN稍微貴一點。FFHQ的訓練時間為9天,LSUN CAR的訓練時間為13天。
整個項目,包括所有探究,耗電132mwh,其中0.68 MWh用於FFHQ最終模型的訓練。總的來說,我們使用了大約51年的單GPU計算量(Volta類GPU)。在附錄F中有更詳細的討論。
在未來,對路徑長度正則化的進一步改進,如用數據驅動的特征空間度量代替像素空間L2距離,將會是卓有成效的。考慮到GANs的實際部署,我們認為找到減少訓練數據需求的新方法將是很重要的。這在無法獲得成千上萬的訓練樣本的應用程序中尤為重要,而且數據集包含了大量的內在變異。