CVPR 2021 Oral | GLEAN: 基于隱式生成庫的高倍率圖像超分辨率
在 CVPR 2021 上, 南洋理工大學 S-Lab 和商湯科技等提出的隱式生成庫(Generative Latent Bank), 針對高倍率圖像超分辨中的質量和保真度問題提出了一個新的思路。GLEAN 通過利用預訓練的 GAN 中豐富多樣的先驗知識,得到有效的超分效果。與現有方法相比,由 GLEAN 放大的圖像在保真度和紋理真實度方面顯示出明顯的改進。
論文名稱: GLEAN: Generative Latent Bank for Large-Factor Image Super-Resolution。
Part 1 問題與挑戰
Generative Adversarial Network (GAN) 已在超分辨率任務中被廣泛使用,其目的是豐富復原圖像中的紋理細節。現有方法一般可以分為兩種:
1)第一種方法(如 ESRGAN [1])訓練生成器以處理放大任務,其中通過使用鑒別器將真實圖像與生成器生成的放大圖像區分開來進行對抗訓練。在這種設置下,生成器既負責捕獲自然圖像特征,又負責保持對 GT 的保真度。這不可避免地限制了逼近自然圖像流形的能力。因此, 這些方法經常產生偽像和不自然的紋理。
2)第二種方法(如 PULSE [2])通過優化來更好地利用 GAN 的潛在空間來解決上述問題。但是,由于低維隱碼 (latent code)和圖像空間中的約束不足以指導恢復過程,這些方法通常會生成低保真度的圖像。
如下圖所示,雖然 ESRGAN 能夠恢復貓的結構(例如,姿勢,耳朵的形狀),但仍難以產生逼真的紋理。另一方面,盡管PULSE的輸出是真實的,但其保真度非常低, 未能恢復物體的結構。
Part 2 方法介紹
在大規模自然圖像上訓練的 GAN 模型可捕獲豐富的紋理和形狀先驗。先前的研究表明,可以通過 GAN Inversion 來獲取此類先驗信息,以使各種圖像恢復任務受益。但是,如何利用先驗而不進行反演過程中的復雜優化仍然是一個沒有被充分研究的問題。
在這項研究中,我們在一種新穎的 encoder-bank-decoder 結構中設計了 GLEAN,該體系結構允許人們只需要一個 forward-pass 就可以利用生成先驗。如下圖所示,給定嚴重降采樣的圖像,GLEAN 應用 encoder 提取潛在矢量 (latent vector) 和多分辨率卷積特征,這些特征捕獲了重要的高層線索以及LR圖像的空間結構,可以用于調節 latent bank,為 decoder 產生了另一組多分辨率特征。
最后, decoder 通過集成來自 encoder 和 latent bank 的特征來生成最終輸出。在這項工作中,我們采用 StyleGAN [3,4] 作為 latent bank。這里要強調的是這個概念可以擴展到其他網絡,例如 BigGAN [5]。
1. Encoder
為了產生 latent vector,我們首先使用 RRDBNet [1](表示為E0)從輸入LR圖像中提取特征f0。然后,我們通過以下方法逐漸降低特征的分辨率:
其中Ei (i =1, 2, …, N)表示一個 stride -2卷積和 stride-1卷積的堆棧。最后,使用卷積和全連接層來生成latent vector:
其中 C 是一個矩陣,其列表示 StyleGAN 需要的 latent vector。C 中的 latent vector 捕獲圖像的壓縮表示,為 latent bank (StyleGAN) 提供 high-level 信息。為了進一步獲得 LR 圖像的局部結構并為結構恢復提供其他指導,我們還將多分辨率卷積特征fi嵌入到 latent bank。
2. Generative Latent Bank
給定卷積特征 fi 和 latent vector C,我們利用預訓練的生成器 (StyleGAN) 作為 latent bank 來提供紋理和細節生成的先驗。由于 StyleGAN是為圖像生成任務而設計的,因此無法直接集成到建議的 encoder-bank-decoder 框架中。在這項工作中,我們進行了三處修改,使 StyleGAN 更能配合我們的超分網絡:
1/ 生成器的每個塊都采用一個不同的 latent vector 來提高表達能力,而不是將一個 latent vector 作為輸入。更具體地說,假設 StyleGAN 有k個塊,那C=(c0, c1, …, ck-1),其中每個 ci 代表一個 latent vector。我們發現這種修改導致輸出的偽像更少。在以前的工作中[6,7]也可以看到這種修改。
2/ 為了允許使用 encoder 的特征,我們在每個塊中使用了一個附加的卷積來進行特征融合:
其中Si表示具有附加卷積的塊,而gi代表第i個塊的輸出特征。
3/ 我們不是直接從 StyleGAN 生成輸出,而是輸出特征 gi 并將它們傳遞給 decoder,以更好地融合 latent bank 和 encode r中的特征。
優點: 我們的 Generative Latent Bank 與 Reference-Based SR[8,9]有著類似的想法。在 Reference-Based SR 中, 雖然使用外部 HR 信息作為圖像字典可帶來顯著改善,但其網絡性能對輸入和參考之間的相似性很敏感。
當參考圖像或人臉部位(如眼睛、鼻子、嘴)選擇不當時,不匹配的字典可能導致結果變差。另外,這些方法經常需要計算量大的全局匹配或人臉部位檢測/選擇來從參考中聚集適當的信息,阻礙了對具有嚴格計算約束的場景的應用。
相反地,GLEAN 并未構建圖像字典,而是采用了 GAN-based 字典。我們的字典不依賴于任何特定的參考圖像塊。取而代之的是,它捕獲圖像的分布,并且可能具有無限的大小和多樣性。此外,GLEAN 的計算效率很高,無需全局匹配和參考圖像塊選擇。
3. Decoder
GLEAN 使用附加的具有漸進融合功能的 decoder 來集成 encoder 和 latent bank 中的特征以生成輸出圖像。它以 RRDBNet 特征作為輸入,并將特征與 latent bank 中的多分辨率特征逐步融合:
其中 Di 和 di 分別表示3x3卷積及其輸出。除最終輸出層外,每個卷積后面都有一個 pixel-shuffle 層。通過 decoder 和 encoder 之間的跳過連接,可以增強 encoder 捕獲的信息,因此 latent bank 可以將更多的精力集中在紋理和細節生成上。
Part 3 實驗結果
上圖展示了 16x SR 上的定性比較。在低維向量和 LR 空間中的約束的指導下,GAN Iinversion 方法的輸出無法保持良好的保真度: PULSE [2] 和 mGANprior [6] 無法還原相同身份的人臉。另外,在它們的輸出中觀察到偽像。
通過在優化過程中微調生成器,DGP [10] 的結果在質量和保真度方面得到顯著提升。但是,仍然可以觀察到輸出和 GT 之間的差別。例如,眼睛和嘴唇顯示出明顯的差異。
經過對抗性損失訓練的方法(SinGAN [11],ESRGAN+(具有與GLEAN相似的FLOPs的 ESRGAN [1])可以保留局部結構,但無法合成令人信服的紋理和細節。具體而言, SinGAN 無法捕捉自然圖像樣式,從而產生類似繪畫的圖像。
盡管 ESRGAN+ 能夠生成逼真的圖像,但仍難以合成精細的細節,并在細節區域引入不自然的偽像。值得強調的是,盡管 ESRGAN+ 在人臉方面取得不錯的結果,但它在其他類別上的表現卻不太好,如下圖所示:
通過 latent bank 提供的自然圖像先驗,GLEAN 在保真度和自然度方面都取得了成功。為了進一步驗證我們的方法在保真度的優越性,我們計算了 ArcFace [12] 特征的 cosine similarity。從下表可以看到我們的方法勝過其他方法,證明了我們方法在保持身份一致性上的優越性。
我們將 GLEAN 擴展到更高的放大倍率。GLEAN 成功地生成了真實而且接近 GT 的圖像,最多可進行64x的放大。
以下是更多例子,GLEAN 在照片寫實和身份保存方面具有明顯優勢:
Part 4 結語
在本文中,我們提出了一種新方法,可以利用經過預訓練的GAN來進行大規模超分辨率任務,最高的放大倍率為64x。從實驗結果可以得出,預訓練的 GAN 可以用作 encoder-bank-decoder 體系結構中的 latent bank。
相比之前 GAN Inversion 的方法,GLEAN 僅需進行一次網絡向前傳播來調節和檢索 latent bank 中的先驗信息,從而重建高清圖像。GAN-based 字典的普遍性使GLEAN不僅可以擴展到各種體系結構,而且可以擴展到其他圖像復原任務上,如圖像去噪,去模糊和著色等。
另外, 我們 CVPR21的另一篇中稿文章 (https://ckkelvinchan.github.io/projects/BasicVSR/) 對于視頻超分作出分析并提出兩個新算法( BasicVSR和IconVSR )。我們基于這兩個算法作出改進, 在 NTIRE21比賽中取得2個冠軍。BasicVSR 和 IconVSR 的代碼已開源到 MMEditing,歡迎大家關注 :)
論文地址
https://arxiv.org/abs/2012.00739
作者介紹
陳焯杰(Kelvin C.K. Chan) | 南洋理工大學S-Lab和MMLab@NTU三年級博士生。在頂級會議上發表過五篇論文,在NTIRE視頻復原比賽中共獲得六個冠軍。導師是呂健勤(Chen Change Loy)副教授。當前主要研究興趣為圖像和視頻復原,主要包括超分辨率和去模糊等。
個人主頁:https://ckkelvinchan.github.io/
實驗室主頁:mmlab-ntu.github.io
References
# Xintao Wang et al. "ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks" In ECCVW 2018.
# Sachit Menon et al. "PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models." In CVPR 2020.
# Tero Karras, Samuli Laine, and Timo Aila. "A Style-Based Generator Architecture for Generative Adversarial Networks." In CVPR 2019.
# Tero Karras et al. "Analyzing and Improving the Image Quality of StyleGAN." In CVPR 2020.
# Andrew Brock, Jeff Donahue, and Karen Simonyan. "Large scale GAN Training for High Fidelity Natural Image Synthesis." In ICLR 2019.
# Jinjin Gu, Yujun Shen, and Bolei Zhou. "Image Processing Using Multi-Code GAN Prior." In CVPR 2020.
# Jiapeng Zhu et al. "In-Domain GAN Inversion for Real Image Editing." In ECCV 2020.
# Xiaoming Li et al. "Blind Face Restoration via Deep Multi-Scale Component Dictionaries." In ECCV 2020.
# Zhifei Zhang et al. "Image Super-Resolution by Neural Texture Transfer." In CVPR 2019.
# Xingang Pan et al. "Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation." In ECCV 2020.
# Tamar Rott Shaham, Tali Dekel, and Tomer Michaeli. "SinGAN: Learning a Generative Model from a Single Natural Image." In ICCV 2019.
#Jiankang Deng et al. "ArcFace: Additive Angular Margin Loss for Deep Face Recognition." In CVPR 2019