Recovering Realistic Texture in Image Super-resolution by
Deep Spatial Feature Transform
Abstract
在單圖像超分辨(SR)的高質量重建上,雖然使用CNN會有很好的結果,但是如何恢復自然且逼真的紋理仍是一個挑戰性問題。本文在基於語義分割概率圖的單個網絡中,通過空間特征變換(SFT)提取中間層特征,實現端到端的超分辨重建。
Introduction
單圖像超分辨率旨在從單個低分辨率(LR)圖像中恢復高分辨率(HR)圖像。傳統的SR方法一般是基於MSE,即基於像素空間緯度的MSE loss,這種方法會導致產生的圖像模糊且過於平滑。SRGAN提出perceptual loss對特征空間緯度進行優化而不是像素緯度,進一步提出adversarial loss來生成更為自然的圖片。使用perceptual loss和adversarial loss極大地改善了重建圖像的感知質量。然而,生成的紋理趨於單調且不自然。
作者探討了紋理不自然的一個重要原因是由於,對於不用HR片段其對應的LR片段可能會很相同,這就導致在上采樣的時,模型很難區分當前圖像的片斷屬於哪一個類別,從而導致合成的圖像的紋理不真實。
本文使用語義分割圖作為分類的先驗信息來指導SR中不同區域的紋理恢復,使用空間特征變換(SFT)來轉換網絡的某些中間層的特征,改變SR網絡的性能。SFT層以語義分割概率圖為條件,生成一對調制參數,用來在空間上對網絡的特征圖應用仿射變換。
SFT層通過轉換單個網絡的中間特征,只需一次正向傳遞就可以實現具有豐富語義區域的HR圖像的重建。同時,SFT層可以很容易地引入現有的SR網絡結構,能夠與SR網絡一起進行端到端的訓練。
Methodology
3.0定義假設
給定低分辨率圖x,超分辨率估計結果,真實超分辨結果y,基於CNN的映射假設為
,則有映射關系:
基於loss的參數設定:
使用語義分割概率圖來作為類別先驗:
此時,基於先驗的映射關系為:
3.1 Spatial Feature Transform SFT層
① 參數對
空間特征變換(SFT)層學習"基於先驗條件Ψ,輸出調制參數對(γ,β)"的映射函數M.
即,M理論上來說應該是任意的方程,但是這里還是指采用卷積神經網絡來做這個映射關系,同時SFT得到參數對的過程是條件共享的
參數對(γ,β)通過在空間上對SR網絡中的每個中間特征圖應用仿射變換來自適應地影響輸出,即
② SFT層的結構
SFT layer就是一個小型的network用於生成不同層的condition信息,變換方式:
SFT有兩個輸入,一個輸入是condition network的輸出conditions,另一個是上一層的輸出F。conditions分別通過兩層卷積計算得到γ和β,然后參數對與上層F進行變換,計算整個SFT層的輸出,而整個SFT層的輸出又作為下一層的輸入F。
③ SFT的實現
兩層卷積之后直接與F做點乘、加法。
3.2 網絡結構
① 網絡結構
主體分為三個部分,條件網絡condition network、SR網絡和上采樣部分
a)條件網絡將分割概率圖作為輸入,使用四層卷積處理,它生成所有SFT層共享的中間條件。這里為了避免一個圖像中不同分類區域的相互干擾,通過對所有卷積層使用1×1個核來限制條件網絡的感受域。
b) SR網絡由16個殘差塊構成,每個殘差塊包含兩個SFT+Conv,所有SFT共享conditions,SFT以共享conditions作為輸入並學習(γ,β)以通過應用仿射變換來調制特征圖。
c)上采樣部分使用最近鄰上采樣+卷積層進行上采樣操作
最近鄰插值:在待求像素的四鄰象素中,將距離待求像素最近的鄰像素灰度賦給待求像素,最鄰近元法計算量較小,但可能會造成插值生成的圖像灰度上的不連續,在灰度變化的地方可能出現明顯的鋸齒狀。
3.3 Loss Function
感知損失perceptual loss
其中使用預訓練的VGG-19特征
對抗損失 adversarial loss
傳統的GAN loss,使D對G的判定盡可能的准確
Experiments
①限定七個類別,不屬於7類別的則為背景。在訓練時,將圖像裁剪到只包含一個類別來訓練D的識別能力。
②訓練時使用包含單個類別的圖像進行訓練,測試時使用包含多個類別的圖像進行測試。
PS:訓練時單個類別損失,測試時多個類別,網絡是否有效?
——作者在test階段,輸入LR圖片和k張分割概率圖,每一張概率圖中都顯示着某一特定物體在該位置存在的概率,輸入數據兵分兩路進入G,得到輸出的SR圖像。已經訓練好的G+分割概率圖,G網絡便獲得了根據概率圖針對性重建圖像的能力(根據概率圖,將多類別問題轉化為單類別問題)
——訓練時不是整張圖片的訓練,而是將原圖裁剪到98*98大小進行訓練,保證只包含一個分類。但由於使用的是概率圖,雖然每次是單個類別,但是整體數據包含了所有的類別,也就保證了結果的魯棒性。
③D部分,除了包含常規GAN的real/fake分支損失,還包含了一項類別損失,使D能夠對不同的類別進行識別,具體是使用多類交叉熵CrossEntropyLoss來對類別進行限制。
summary
① 使用perceptual loss和adversarial loss極大地改善了重建圖像的感知質量。然而,早缺少先驗信息的情況下,生成的紋理趨於單調且不自然。
② 使用語義分割概率圖作為條件先驗。傳統SR算法着重與PSNR,基於MSE的損失使得圖像模糊;SRGAN引入perceptual loss,通過VGG網絡提取深層特征進行訓練,但紋理信息缺少,因為籠統的提取特征,在遇到不同事物具有相似紋理時往往導致誤判,也就是說D網絡不盡責,區分牆壁與野草的能力差,使得效率低的G網絡輕松通過鑒別,;SFT使用seg map來進行引導,一方面明確告訴G物體的類別,(seg提供信息,SFT處理信息)另一方面告訴D如何識別物體的類別
③ SFT對每個分類尋找通用的增強信息。由於seg map是概率圖,所以除了包含spatial信息之外,還會包含一定的紋理細節信息 這些信息會對sft有一定的影響。sft實際上就是針對每個不同的分類對LR feature加入特定的紋理細節,即(β,γ)的作用。整體的過程就是在保留LR的空間信息的情況下,加入基於分類的紋理細節。