本文是CVPR17年的文章,也是超分辨領域的新作SRGAN,作者來自推特工作室,先放上整個網絡結構圖,再詳細介紹。
上周我在用SRCNN進行實驗效果不理想時,師兄推薦了這篇文章,事實上這篇文章和我上周看的SAGAN的整體結構很相似,都是在GAN的基礎上進行的image2image的工作。
在SRGAN中,作者論證PSNR不能作為評價超分辨的標準,因為這個和人對圖片的感受結果不一致,這里作者采用了MOS進行評價;另外作者在loss函數上進行了改進,更好的恢復出細節(jié)的紋理信息。接下來,就按照文章的順序進行介紹。
方法:
ISR是高分辨率圖像,ILR是低分辨率圖像,是由高分辨率圖像先加高斯噪聲然后經過一個r步長的下采樣得到的,所以高低分辨率的圖像大小分別是:rW*rH*C和W*H*C。模型的目的就是生成網絡G可以將輸入的低分辨率圖像重構出ISR,所以在生成器時就采用前饋CNN記作Gθ,參數是θ,那么此部分要優(yōu)化的就是:
和標準GAN一樣,模型需要訓練下式:
生成網絡的結構如下,核心是下面的B殘差塊部分,重復的殘差塊用于生成高分辨率圖像,然后接著兩個亞像素卷積層用于恢復高分辨率圖像的尺寸。
判別網絡的結構如下圖,連續(xù)的卷積層、BN和Leaky ReLU,緊接著是稠密塊和SIGMOD用于對圖像分類。
接著就是SRGAN的一個創(chuàng)新點,loss函數兩部分組成,內容損失和對抗損失:
首先內容損失,傳統(tǒng)的loss都是以像素為單位的MSE,如下式:
而MSE的loss函數使得輸出缺乏高頻成分,過于光滑不適宜人們閱讀,所以本文在基于預訓練的VGG19的RELU激活層來定義loss函數:
上式是通過歐氏距離定義的,其中
是VGG19里面第i個最大池層之后的第j個卷積層所提取到的特征,
是各自的特征維度。
對抗損失是指GAN網絡生成器部分是損失,
是生成圖像被判別為高分辨率圖像的概率:
實驗:
數據集是SET5、SET14和BSD100三個圖像超分辨領域的基準數據集,低分辨率和高分辨率之間是4倍的差距,采用PSNR和SSIM作為性能衡量標準。訓練的時候是用的ImageNet數據集下采樣,用adam優(yōu)化。
作者在衡量超分辨性能時提出了一個新的標準MOS,就是采用人作為標準,作者要求26個用戶對超分辨的圖像進行打分,1-5分,越高性能越好。在三個基準數據集的圖像進行打分,結果如下:
各個超分辨方法所得到的PSNR、SSIM和MOS的最終結果如下表,本文的生成網絡部分SRResNet得到了最高的指標,雖然SRGAN的PANR和SSIM并不是最高,但是他得到了最高的MOS值,這意味著PSNR和SSIM不能單獨作為超分辨的衡量標準。
作者針對內容損失函數也做了幾組對比實驗,分別在MSE、VGG22和VGG54的loss函數進行實驗,結果如下,雖然MSE的PSNR值更高,但是他在圖像的視覺感知上效果并不好,文理細節(jié)處理不夠精細,這又一次證明了作者對PSNR的觀點。
通過以上實驗看出,用均方誤差優(yōu)化SRResNet,能夠得到具有很高的峰值信噪比的結果。在訓練好的VGG模型的高層特征上計算感知損失來優(yōu)化SRGAN,并結合SRGAN的判別網絡,能夠得到峰值信噪比雖然不是最高,但是具有逼真視覺效果的結果,基于VGG模型高層特征比基于VGG模型低層特征的內容損失能生成更好的紋理細節(jié)。