【深度學習】Image Super-Resolution Using Deep Convolutional Networks

摘要

作者提出了一種深度學習圖像超分辨率的方法,直接在高低分辨率圖像之間學習一個端到端的映射。作者後續還證明了傳統的sparse-coding-based超分方法也可以看做一個深度卷積神經網絡,相對於這種方法,作者的方法聯合優化所有層。作者的深度CNN有一個輕量級的結構,實現了SOTA效果並且速度更快。作者通過在不同的網絡結構和參數設置中進行探索實現了性能與速度的平衡。另外,作者還拓展網絡來同時處理三色通道,並且得到了更好的全局重建性能。

1、Introduction

圖像超分辨率是CV的一個經典問題,但是這個問題本質上是不適定的,因爲任何給定的低分辨率像素都存在多重解。因此這種問題需要強大的先驗信息。爲了學習這個先驗,最近的方法主要是基於實例的策略。這些方法要麼挖掘同一張圖的內部相似性,要麼學習高低分辨率之間的映射。外部基於實例的方法可以用於生成式超分以及根據數據集應用於領域特定問題。
SC方法是基於實例的SR代表性方法,涉及到以下幾步:首先重疊部分會被從輸入圖像中裁剪並且預處理(例如減去均值並歸一化)。這些塊然後被編碼爲低分辨率字典。這個解析係數然後被傳遞給一個高分辨率字典來重建高分辨塊。這些重建塊最終被合併得到最終的輸出。這個過程被大多數基於外部實例的方法使用,主要關注學習與優化字典或構件有效的映射函數。然而,這個流程的其他部分很少被考慮。
在本文中,作者前面提出的方法與深度卷積神經網絡是等價的。基於這個事實,作者考慮使用一個端到端的CNN來直接學習這個映射。不同於前面的方法,作者不顯式地學習字典或流形,塊的提取與聚合也通過CNN實現與優化。在作者的方法裏,SR流程幾乎全部通過CNN實現,幾乎不使用預處理與後處理方法。
作者提出的方法命名爲SRCNN,有很多具有吸引力的特性。首先,其結構經過了有意的設計,相對於SOTA有更高的精度。第二,通過適中數量的濾波器和層,可以實現一個較快的速度。該方法比很多基於實例的方法要快,因爲不需要在使用的時候解決任何優化問題。第三,實驗證明恢復效果隨着數據集變大或者更復雜的模型可以進一步提升。另外,提出的網絡可以同時處理三個圖像通道來提升超分效果。
總的來說,該工作的貢獻可以總結爲以下三個方面:
1)作者提出了一個用於圖像超分的全卷積神經網絡,可以直接學習端到端的映射。
2)作者確立了深度學習方法與傳統方法的關係,可以用於設計網絡結構。
3)作者證明深度學習方法對於經典的計算機視覺問題例如超分是很有用的,並且能夠實現比較好的質量與速度。
相對於第一個方法,首先通過引入更大的濾波器並且探索更深的網絡結構。第二,作者拓展SRCNN來同時處理三通道信息。經過實驗,作者證明了比單通道的網絡有了提升。第三,加入了更多分析與解釋。

2、相關工作

2.1 圖像超分
2.2 卷積神經網絡
2.3 通過深度學習進行圖像超分

3、使用卷積神經網絡實現超分

3.1 Formulation

對於一張低分辨率圖像,首先將其上採樣到需要的尺寸,這也是唯一的預處理。目標便是從這張圖中恢復出盡可能接近GT的結果。作者希望能夠學習一個映射F,包括以下三個操作:
1)Patch extraction and representation
這個操作從低分辨率提取塊並且表示爲高維向量,向量組成feature map。
2)Non-linear mapping
3)Reconstruction

Patch Extraction and Representation
圖像恢復一個流行的策略是提取patch然後通過PCA、DCT等方法得到基底進行表示。和與通過濾波器卷積圖像等價。
形式上,第一層有如下表示:

雙三次差值也是一種卷積操作,因此也可以設計爲卷積層。爲了利用流行的良好優化的實現,比如cuda convnet,從學習中排除了這個層。

非線性映射
第一層從每個patch中提取了n1維特徵,第二次層將n1維特徵映射爲n2維特徵。這與應用n2的濾波器等價,這個解釋只對1×1的濾波器有效。但也很容易類推到3×3或者5×5,這種情況下非線性映射就不是1個patch,而是3×3或5×5個。

當然也可以增加層數來提高非線性效果,但是這樣會增大計算量,降低速度。
重建
傳統的方法高分辨率圖像一般會被平均來得到最終完整的圖像。這個平均的過程也可以看做在一組feature map上預定義的濾波器,每個位置都是高分辨率patch展平的向量。基於這個作者又定義了一個卷積層來產生最終的高分辨率圖像。

如果高分patch在圖像域,希望濾波器表現的像均值濾波器,其他域則希望W3類似首先映射到圖像域然後再進行均值化。在這兩種方法中W3都是線性濾波器。
有趣的是,儘管這三個步驟來自不同的動機,最終都是表現爲卷積層,將三者合併最終形成一個卷積神經網絡。其中的濾波器均爲模型的優化目標。

3.2 Relationship to Sparse-Coding-Based Methods
3.3 Training

loss:MSE
optimizer:
Initializer:Gaussion mean=0 cov=0.001
SGDm:0.9 10-4(前兩層) 10-5(最後一層)
GT f×f×c
低分辨率輸入:高斯濾波 上採樣
避免邊界效應:no padding

4、實驗

4.1 Training Data
4.2 Learned Filters for Super-Resolution
4.3 Model and Performance Trade-Offs

總結

這篇文章是深度學習剛流行不久的文章,其實主要做的就是通過CNN來代替傳統的SR方法,但是因爲CNN有更強的特徵提取與擬合能力,效果比傳統方法好一些。後來也有很多更高級的超分算法,但很多都是建立在SRCNN的基礎上。作者後面也做了很多實驗選擇kernel size以及其他方面的比較。總的來說,其思路是用卷積層代替了傳統SR方法的特徵提取與表示、非線性映射和重建三個步驟。使用的loss也是比較常規的mse。一個比較大的啓發就是對於一些傳統方法,如何通過CNN對其進行幾乎等價替換,得到更好的效果或者更快的速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章