1. 程式人生 > >學習筆記之——SRGAN深度調研報告

學習筆記之——SRGAN深度調研報告

SRGAN這個網路的最大貢獻就是使用了生成對抗網路(Generative adversarial network)來訓練SRResNet,使其產生的HR影象看起來更加自然,有更好的視覺效果(SRResNet是生成網路,對抗網路是用來區分真實的HR影象和通過SRResNet還原出來的HR影象,SRGAN網路的最終目標就是要讓對抗網路無法區分真實的HR影象和SRResNet還原的HR影象)。

通俗來講:GAN所要完成的工作,原文舉了個栗子:

G網是印假鈔的人,D網是檢測假鈔的人。G的工作是讓自己印出來的假鈔儘量能騙過D,D則要儘可能的分辨自己拿到的鈔票是銀行中的真票票還是G印出來的假票票。

開始的時候呢,G技術不過關,D能指出這個假鈔哪裡很假。G每次失敗之後都認真總結經驗,努力提升自己,每次都進步。直到最後,D無法判斷鈔票的真假……

SRGAN的工作就是:

G網通過低解析度的影象生成高解析度影象,由D網判斷拿到的影象是由G網生成的,還是資料庫中的原影象。當G網能成功騙過D網的時候,那我們就可以通過這個GAN完成超分了。

首先介紹一下作者為什麼要採用GAN來訓練SRResNet。因為當前監督SR效果的演算法(損失函式)的優化目標是使恢復後的HR影象與ground truth間的均方差(MSE)最小化,因為醬紫可以取得很高的峰值信噪比(PSNR,這也是評價SR演算法的效果的最常用指標)。但是由於PSNR是基於畫素級影象(pixel-wise image)的差異來定義的,因此PSNR捕捉到和人的感官非常密切的差異(紋理細節)的能力十分有限,因此最高的PSNR不一定能反映人感官上最好的結果。下圖可以說明:

可以看到圖三的PSNR雖然比圖二低了近0.1,但是圖二的臉和手明顯是模糊的,看起來很不真實,但是圖三的各個細節都很清晰,看起來就很真實。後面一張圖更加清晰的說明了這種情況,一旦放大倍數超過4,那麼基於MSE優化的網路產生出來的HR影象在紋理細節方面就會過於平滑,看起來就像是糊成一團,但是這樣峰值信噪比還很高,特別讓人崩潰,下圖展示的更加清晰。如果想將做一個將AV畫質轉成1080p+的軟體來賣錢利用MSE做損失函式的話效果會很不理想。

並且,作者通過請26位評判者打分的方式(MOS得分),證明高PSNR並不能帶來良好的感官效果。評分如下圖所示:

還有一張不同網路的MOS得分圖,說明在26位評委眼中,SRGAN產生的影象更真實:

但是感官這個東西是一個很主觀的玩意兒,是沒法來給出具體的數學公式的,那麼該如何實現以感官的標準來指定監督演算法(損失函式)呢?作者所選擇的是基於VGG的內容損失。先基於預訓練的19層VGG網路的ReLU啟用層來定義損失函式。這部分的理論來源於” Very deep convolutional networks for large-scale image recognition”這篇論文。在這篇論文裡面,作者建立了一個從VGG19網路裡提取的特徵圖之間歐式距離的損失函式,無論是超解析度還是藝術風格的轉移,效果都非常好。SRGAN的作者直接使用了這個作為損失函式的一部分。後面會具體分析。

的計算公式如下:

其中最重要的就是特別定製的損失函式,可以說就是為了這個損失函式才採用GAN的。在論文裡作者將他們特製的損失函式稱為Perceptual loss function。結構如下:

是內容損失,是對抗損失。下文具體分析:

內容損失

因為上文已經講過基於最小化MSE的損失函式雖然可以獲得很高的PSNR,但是高放大倍數下視覺效果並不好。因此採用作者選擇的是基於VGG的內容損失。先基於預訓練的19層VGG網路的ReLU啟用層來定義損失函式。再發一次圖:

對抗損失

除了目前描述的內容損失外,作者還在感知損失中加入了GAN的生成成分。這鼓勵該網路傾向於基於自然影象流形的解決方案,試圖愚弄鑑別器網路。衍生的損失函式是基於概率鑑別器在所有樣本上的概率值來定義的,公式如下:

這個公式裡,表示的是重構影象是自然的HR影象的概率。是一個分類網路,結構如下:

生成網路是SRResNet,結構如下:

 

 

這裡可以看到,作者的主要創新點拋棄了MSE轉而用基於VGG的內容損失定義損失函式。並且使用了GAN對抗網路來分辨自然HR影象和重建出來的HR影象,並且把分類網路的結果引入生成網路的損失函式,將使得訓練出來的結果從視覺上來說更接近自然HR影象。雖然這樣做會降低峰值信噪比,因為放大倍數越大,越不平滑的情況下PSNR越低。不過從視覺上說最為真實,因為過於平滑會使得影象內部物體的邊緣看起來模糊。