本文解讀的是ECCV 2020 Oral論文《Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation》,本文提出一種挖掘預訓練的對抗生成網路(GAN)中影象先驗的方法,無需針對特定任務設計,便可實現種影象復原(上色,補全,超解析度,對抗防禦)和影象編輯(隨機擾動,影象變形,類別轉換)效果。
作者 | 潘新鋼
編輯 | 叢 末
論文連結:arxiv.org/pdf/2003.1365
程式碼連結:XingangPan/deep-generative-prior
影片連結:https://www.youtube.com/watch?v=p7ToqtwfVko&feature;=youtu.be
Deep generative prior的影象復原效果
1
動機:挖掘生成模型的影象先驗
設計和利用更好的影象先驗是實現影象復原與編輯的重要途徑。經典的影象先驗有total variation, dark channel prior, 以及各種基於markov random field的影象先驗等,他們都模擬了影象在某一方面的統計特性。而近期由於深度學習的發展,大家開始用深度神經網路來建模影象先驗,其中代表性的工作是深度影象先驗deep image prior (DIP) [2]。DIP揭示了卷積神經網路在結構設計上就具備了影象的一些統計特性,但由於引數由隨機初始化得到,因此無法模擬影象更高階的資訊例如顏色,遠距離畫素間的關聯等。另一方面,生成模型尤其是對抗生成網路(GAN)近年來得到了長足的發展,能夠相當好地模擬自然影象分佈。因此,一個直觀的想法是,能否以及如何利用在大規模自然影象上訓練的GAN作為一種通用的影象先驗?
近期已經有一些工作對此進行了嘗試[3][4][5],其中最相關的是幾乎同期的multi-code GAN prior [4]和PULSE [5],前者為周博磊老師組的工作,也歡迎大家關注。在方法上,本文提出了與它們不同的策略,實現了更豐富的功能,並且應用在重建更加困難的BigGAN模型上。
1、在觀察空間重建給定一張灰度影象,如何利用預訓練好的GAN恢復它的顏色呢?一個自然的想法是在GAN的影象空間尋找一張灰度化後與目標圖片一致的圖片,由於GAN傾向於輸出自然的圖片,因此找到的這張圖會有自然的顏色。動畫示意如下:
圖1. 在灰度空間重建目標圖片
這種在觀察空間重建的策略在DIP等工作中就已經被應用。它有個前提條件是對應的退化變換 已知且可導,好在上色,補全,超解析度這些任務所對應的退化變換(灰度化,裁剪,降取樣)都滿足該要求。
2、GAN重建的挑戰上述方案要求用GAN的生成器G準確重建一張目標圖片。針對該任務,傳統的做法是最佳化生成器輸入的隱向量z,又稱作GAN inversion。其對應的最佳化目標為:
(1)
其中 為目標圖片, 為生成器, 為上述退化變換, 為圖片距離度量例如MSE loss。然而在實踐中,僅僅透過最佳化隱向量z難以準確重建ImageNet這樣的複雜真實圖片。例如,以下(a)(b)(c)(d)為以往GAN inversion方法的重建結果:
圖2. 不同GAN inversion方法對比
究其原因,一方面用來訓練GAN的資料集(ImageNet)本身是自然圖片中很少的一部分,另一方面GAN受限於有限的模型效能和mode collapse,其模擬的圖片分佈與訓練集圖片分佈也存在鴻溝。這兩方面鴻溝讓GAN難以精確重建任意給定的圖片。
2
解放你的Generator吧
即使存在以上限制,GAN仍然學習了豐富的圖片資訊。為了利用這些資訊並且實現精確重建,我們讓生成器online地適應於每張目標圖片,即聯合最佳化隱向量z和生成器引數 :
(2)
這種解放生成器的做法其實沿襲了DIP的思路。生成器僅需要微調,就可以實現對目標圖片的精確重建,如上圖中的(e)。
1、重拾被遺忘的距離度量:判別器在GAN重建中,傳統的距離度量是MSE或Perceptual loss。但是我們發現,在上述允許最佳化生成器引數的設定下,將這些傳統距離度量用在影象恢復如上色任務中時,常常無法準確恢復顏色,並且重建過程中影象變得模糊,即生成器會喪失原本的生成特性,如下圖(a)(b)所示。對此,需要設計更好的最佳化方式來保留生成器的特性。
圖3. 不同最佳化方式的影象重建過程對比
因此,我們在該工作中選擇使用與該生成器對應的判別器來作為距離度量。與Perceptual loss所採用的VGGNet不同,判別器並非在一個第三方的任務上訓練,而是在預訓練時就與生成器高度耦合,它天然地適用於調整生成器的輸出分佈。我們用判別器特徵空間的L1距離作為距離度量,即 ,其中 代表以x作為輸入時判別器第i個block輸出的特徵。從上圖(c)可以看出,使用這種基於判別器的距離度量時,重建的過程更加自然和真實,最終顏色恢復的效果也更好。
2、先整體後區域性:漸進式重建雖然改進的距離度量帶來了更好的效果,但是影象復原的結果仍存在非自然痕跡,例如上圖(c)五個蘋果中最左邊的一個沒有繼承到初始蘋果的綠色。這是因為整個生成器在針對目標圖片最佳化時,在淺層引數匹配好圖片整體佈局之前,深層引數就開始匹配細節紋理了。因此,對影象復原任務我們提出漸進式重建的策略,即在微調生成器時,先最佳化淺層,再逐漸過渡到深層,讓重建過程“先整體後區域性”:
圖4. 漸進式重建
從圖3(d)可看出,採用漸進式重建後,生成器重建的蘋果從一個分成兩個,然後分成五個,最後匹配細節,這樣最終的五個蘋果都恢復了自然的顏色。
3
應用
1、影象復原我們稱上述方法為深度生成式先驗deep generative prior (DGP),並運用到多種影象復原任務中,文章開頭的動畫展示了復原過程。這裡展示更多結果:(注:這些是在ImageNet validation集上的結果,GAN在預訓練時並沒見過這些圖片。)
影象上色結果
影象補全結果
影象超解析度結果 (四倍放大)
我們也將DGP應用於非ImageNet的圖片,同樣可以取得不錯的效果:
除了(b)來自Places資料集,其它圖片抓取自網際網路
這裡(d)中兩個樓房的例子很有意思,圖中需要恢復部分的資訊(橫樑,窗戶)在周圍僅出現了4或8次,而生成器就能在重建的過程中“學過來”,利用周圍畫素資訊填補缺失部分。可見相比較DIP,DGP更好地模擬了畫素間的空間關係。
此外,DGP可以有更加靈活的應用,例如下圖中的條件上色和混合復原。條件上色即在灰度空間重建時對生成器輸入不同的類別條件,最終恢復的顏色會呈現出不同的效果。混合復原即同時進行多種影象復原任務,例如下圖(b)中同時進行上色,補全,和超解析度(兩倍放大)。
DGP還可以用於對抗防禦,由於attacker加上的攻擊噪聲不符合自然的影象分佈,用DGP可以將這種非自然噪聲消除:
2、影象編輯另一方面,由於改進的GAN inversion實現了精確的重建,我們可以利用GAN本身的特性,透過操縱隱向量來編輯目標圖片。
例如,透過對隱向量z加隨機高斯噪聲,可以對目標圖片實現隨機擾動效果:
對重建兩張圖片得到的隱向量和生成器引數進行插值,可以實現影象漸變效果:
將生成器的輸入類別改變,還可以實現對圖中物體類別的轉換:
影象重建與編輯的動畫demo:
4
小結
本文提出了一種挖掘GAN中影象先驗的方式,在多個任務上揭示了GAN作為一種通用影象先驗的潛力。我們首次將其應用於複雜圖片的對抗防禦;提出了同時插值隱變數和生成器的影象漸變方法;實驗中DGP所展現出的強大的畫素間空間關係模擬能力也十分有趣。
Reference:[1] Pan, Xingang, et al. "Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation." ECCV2020.
[2] Ulyanov, Dmitry, Andrea Vedaldi, and Victor Lempitsky. "Deep image prior." CVPR2018.
[3] Bau, David, et al. "Semantic photo manipulation with a generative image prior." ACM Transactions on Graphics (TOG) 38.4 (2019): 1-11.
[4] Gu, Jinjin, Yujun Shen, and Bolei Zhou. "Image processing using multi-code gan prior." CVPR2020.
[5] Menon, Sachit, et al. "PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models." CVPR2020.
如何加入?
【來源:AI科技評論】
宣告:轉載此文是出於傳遞更多資訊之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯絡,我們將及時更正、刪除,謝謝。 郵箱地址:[email protected]