1. 程式人生 > >文獻閱讀:Multi-scale Residual Network for Image Super-Resolution

文獻閱讀:Multi-scale Residual Network for Image Super-Resolution

文章地址: http://openaccess.thecvf.com/content_ECCV_2018/html/Juncheng_Li_Multi-scale_Residual_Network_ECCV_2018_paper.html
作者的專案地址: MSRN-PyTorch

1 簡單介紹

    在這篇論文中,作者從重建經典的超解析度模型開始講起,包括SRCNN、EDSR和SRResNet這些已知的經典模型。基於這些重建實驗,研究人員認為這些模型具有一些共同點:

  1. 難以重現。可能網路效能的提升不是由於網路本身提高的,而可能是使用某種特殊的訓練技巧。
  2. 特徵利用率不足。現在的SR方法只是盲目的提高層數,沒有充分的利用特徵。
  3. 可擴充套件性差,往往對尺寸的魯棒性比較差。

    所以,研究人員提出了一種新型的網路架構,並稱之為多尺度殘差網路(Multi-scale residual network,MSRN)。他是由兩個部分組成:特徵提取模組和重建模組。其中特徵提取模組包含了一個淺層的CNN提取層還有N個(論文中使用8個)級聯的MSRB模組。然後將前面(N+1)層concatenate起來,作者稱為Hierarchical Feature Fusion Structure(HFFS)。這個操作可以參考我之前的文章

深度學習中的concatenate使用。每個多尺度殘差網路的輸出都被用作全域性特徵融合的分層特徵,最終,所有這些特徵都在重建模型中用於修復高解析度影象。在重建階段,依次通過conv->pixelshuffle->conv層。
在這裡插入圖片描述
    我們的 Multi-scale Residual Block (MSRB)由兩部分構成:多尺度特徵融合和區域性殘差學習,可以用不同大小的卷積核來適應性檢測不同規模的影象特徵。在MSRB中我們使用了1×1的conv,它有兩個作用:其一是降低網路的引數,其二就是聯合3×3和5×5卷積核幫助我們獲取多尺度的資訊。採用區域性殘差學習法可以讓神經網路更高效。
在這裡插入圖片描述

     另外作者為了證明效能的提升只是由網路帶來的,不使用VGG損失、Charbonnier Penalty function(一種L1損失的變種,在LapSRN首次作為損失函式使用)以及L2損失(會導致重建結果過於光滑),而是使用L1的損失函式。也沒有使用特別的權重初始化方法以及其他特殊的訓練技巧,只是為了對比的公正性。

     在重建模組中,作者沒有使用通用的方法,比如單純堆疊pixelshuffle層或者使用deconv層,而是直接使用conv->pixelshuffle->conv結構,僅僅使用一個pixelshuffle層,只要微調其中的引數就可以達到任意我們想要達到scale。比如x2,x3,x4,x5等等。
在這裡插入圖片描述

2 重建效果

    作者在沒有任何初始化或技巧的情況下,用DIV2K資料集訓練網路,證明了這可以解決我們上述提到的第一問題:復現性差。
在這裡插入圖片描述
    從圖中可以看出,我們的MSRN竟然比不過EDSR。作者從兩個方面解釋原因:我們的MSRN訓練過程是使用YCbCr顏色空間的luminance通道(單通道),而EDSR使用RGB通道進行訓練。另外就是我們的網路比EDSR小,引數量更小。
在這裡插入圖片描述
    另外從視覺效果上也是不錯的。但是作者好像沒有對比EDSR~
    在其他低階計算機視覺的任務中的結果也可以拿來對比,這個方法對作者來說最大的意義就是開創了一個用於影象修復的單個多工模型。
在這裡插入圖片描述
    作者是使用Pytorch框架的,在新發布的程式碼中是借鑑了RCAN這個程式碼,而RCAN程式碼又是借鑑EDSR程式碼的。

3 感想

    個人感覺作者有兩點創新:第一點就是使用MSRB模組(核心就是使用不同尺寸的卷積核)融合多尺度的資訊,第二點就是使用一個pixelshuffle層可以很方便擴充套件SR的分辨尺寸。