Image Super-Resolution Using DeepConvolutional Networks論文閱讀筆記

只會寫bug的菜雞發表於2021-01-04

在這裡插入圖片描述

rXiv:1501.00092v3 [cs.CV] 31 Jul 2015

題目:Image Super-Resolution Using DeepConvolutional Networks

1、可以從http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html.獲得該實現。當地面真實影像可用時。

2、標題通過使用不同的度量標準(例如,峰值訊雜比(PSNR),結構相似性指數(SSIM)[43],多尺度SSIM [44],資訊保真度標準[38])進行數值評估。

3.雙三次插值也是一種卷積運算,因此可以表述為卷積層。但是,此層的輸出大小大於輸入大小,因此存在小步跨度。為了利用諸如cuda-convnet [26]之類的廣受歡迎且經過優化的實施方案,我們將這一“層”排除在“layer"之外。

4. ReLU可以等效地視為第二個操作(非線性對映)的一部分,而第一個操作(補丁提取和表示)將變成純線性

摘要:

  • 我們提出了一種用於單影像超解析度(SR)的深度學習方法。我們的方法直接學習低/高解析度影像之間的端到端對映。對映表示為深度卷積神經網路(CNN),該神經網路將低解析度影像作為輸入並輸出高解析度影像這就是端到端】。我們進一步表明,傳統的基於稀疏編碼的SR方法也可以視為深度卷積網路。但是與傳統方法分別處理每個元件不同,我們的方法共同優化了所有層。我們的深層CNN具有輕巧的結構,同時展現了最先進的恢復質量,併為實際線上使用提供了快速的速度。我們探索了不同的網路結構和引數設定,以實現效能和速度之間的折衷。此外,我們擴充套件了網路以同時處理三個顏色通道,並展現出更好的整體重建效果。【單圖超分辨、端到端、

1、引言

  • 單一影像超解析度(SR)[20]旨在從單個低解析度影像中恢復高解析度影像,這是計算機視覺中的經典問題。由於對於任何給定的低解析度畫素都存在多種解決方案,因此該問題天生就不適。換句話說,這是一個不確定的逆問題,其解決方案不是唯一的。通常通過強先驗資訊約束解決方案空間來緩解這種問題。要了解現有技術,最近的最新技術大多采用基於示例的[46]策略。這些方法要麼利用同一影像的內部相似性[5],[13],[16],[19],[47],要麼從外部低解析度和高解析度示例對[2],[4], [6],[15],[23],[25],[37],[41],[42],[47],[48],[50],[51]。根據提供的訓練樣本,可以將基於示例的外部方法制定為通用影像超解析度,或設計為適合特定領域的任務,比如人臉超分辨[30],[50]。【】
  • 基於稀疏編碼的方法[49],[50]是代表性的基於外部示例的SR方法之一。該方法涉及其解決方案流程中的幾個步驟:首先,從輸入影像中密集裁剪出重疊的補丁並進行預處理(例如,減去均值和歸一化)。然後,這些補丁通過低解析度字典進行編碼。將稀疏係數傳遞到高解析度字典中,以重建高解析度色塊。
  • 將重疊的重建面片聚合(例如,通過加權平均)以產生最終輸出。此管道由大多數基於例項的外部方法共享,這些方法特別注意學習和優化字典[2]、[49]、[50]或構建有效的對映函式[25]、[41]、[42]、[47]。然而,管道中的其餘步驟很少得到優化,或者在統一的優化框架中得到考慮。
  • 在本文中,我們證明了上述管道等效於深度卷積神經網路[27](在3.2節中有更多詳細資訊)。基於這一事實,我們考慮了一個卷積神經網路,該網路可以直接學習低解析度和高解析度影像之間的端到端對映。我們的方法與現有的基於外部示例的方法從根本上不同,因為我們沒有顯式學習用於建模補丁空間的字典[41],[49],[50]或流形[2],[4]。這些是通過隱藏層隱式實現的。此外,補丁提取和聚集也被公式化為卷積層,因此涉及優化。在我們的方法中,整個SR流水線是通過學習完全獲得的,幾乎不需要預處理。【將傳統的管道方法改進為深度神經網路方法。並且將一些方法直接用隱藏層實現出來】
  • 我們將提出的模型命名為超解析度卷積神經網路(SRCNN)
    • 1。提出的SRCNN具有幾個吸引人的特性。首先,它的結構在設計時考慮了簡單性,但與基於示例的最新方法相比,卻提供了更高的準確性。圖1顯示了一個示例的比較。【結構簡單、效果好】
    • 2,通過適當的濾波器和層數,我們的方法實現了快速的實際線上使用,甚至在一個CPU上。我們的該方法比許多基於例項的方法更快,因為它是完全前饋的,不需要求解任何優化問題第三種用法, 實驗表明,當(i)有更大、更多樣化的資料集,和/或(ii)使用更大、更深的模型時,網路的恢復質量可以進一步提高。相反,基於資料集的方法會帶來更大的挑戰。此外,該網路能同時處理三通道彩色影像,提高了超解析度效能。【線上應用,使用方便】
      在這裡插入圖片描述

圖1.提出的超解析度卷積神經網路(SRCNN)僅經過幾次訓練迭代就超過了三次三次基線,並且在中等訓練的情況下優於基於稀疏編碼的方法(SC)[50]。通過更多的訓練迭代可以進一步提高效能。在第4.4.1節(Set5資料集具有放大係數3)中提供了更多詳細資訊。所提出的方法提供了視覺吸引力的重建影像。

  • 總的來說,這項研究的貢獻主要在三個方面:
    • 1)我們提出了一種用於影像超解析度的全卷積神經網路。該網路可直接學習低解析度和高解析度影像之間的端到端對映,而無需進行優化即可進行很少的前/後處理。
    • 2)我們建立了基於深度學習的SR方法和傳統的基於解析編碼的SR方法之間的關係。這種關係為網路結構的設計提供了指導。
    • 3)我們證明了深度學習在經典的超解析度計算機視覺問題中是有用的,並且可以獲得很好的質量和速度。
  • 較早提出了這項工作的初步版本[11]。目前的工作以重要的方式增加了初始版本。
    • 首先,我們通過在非線性對映層中引入更大的濾波器大小來改進SRCNN,並通過新增非線性對映層來探索更深的結構【非線性對映層中加入更大的濾波器】
    • 其次,我們將SRCNN擴充套件為同時處理三個顏色通道(在YCbCr或RGBcolor空間中)。通過實驗,我們證明與單通道網路相比,效能可以提高。【擴充套件為同時處理3個顏色通道】
    • 第三,將大量的新分析和直觀的解釋新增到初始結果中。我們還將原始實驗從Set5 [2]和Set14 [51]測試影像擴充套件到BSD200 [32](200個測試影像)。
    • 此外,我們與大量最新發布的方法進行了比較,並確認我們的模型使用不同的評估指標仍勝過現有方法。

2、相關工作

2.1 Image Super-Resolution

  • 根據影像先驗,單影像超分辨演算法可分為四種型別:預測模型,基於邊緣的方法,影像統計方法和基於補丁(或基於示例)的方法。這些方法已在Yanget等人的工作[46]中進行了深入研究和評估。其中,基於示例的方法[16],[25],[41],[47]實現了最先進的效能。
  • 基於內部示例的方法利用自相似性屬性並從輸入影像生成示例補丁。它是在Glasner的工作中首次提出的[16],並提出了幾種改進的變體[13],[45]以加速實施。基於示例的外部方法[2],[4],[6],[15],[37],[41],[48],[49],[50],[51]學習對映在來自外部資料集的低/高解析度補丁之間。這些研究主要涉及如何學習緊湊的字典或流形空間以關聯低/高解析度的補丁,以及如何在這種空間中執行表示方案。在Freemanet等人[14]的開創性工作中,直接介紹了字典。作為低/高解析度補丁對,在低解析度空間中找到輸入補丁的最近鄰居(NN),並使用其對應的高解析度補丁進行重構。[4]引入了多種嵌入技術來替代NN策略。在Yangnet等人的著作[49],[50]中,上述NN對應關係發展為更復雜的稀疏編碼公式。其他對映函式,例如核心迴歸[25],簡單提出了3函式[47],隨機森林[37]和錨定近鄰迴歸[41],[42],以進一步提高地圖繪製的準確性和速度。基於稀疏編碼的方法及其一些改進[41],[42],[48]是當今最先進的SR方法之一。在這些方法中,補丁是優化的重點。補丁提取和聚集步驟被視為預處理/後處理,並分別進行處理。
  • 大多數SR演算法[2],[4],[15],[41],[48],[49],[50],[51]關注於灰度或單通道影像超解析度。對於彩色影像,上述方法首先將問題轉換為不同的色彩空間(YCbCr或YUV),並且僅將SR應用於亮度通道。還有試圖同時超分辨所有通道的工作。例如,Kim和Kwon [25]和Daiet等[7]。將其模型應用於每個RGB通道,並將它們組合以產生最終結果。但是,它們都沒有分析不同通道的SR效能以及恢復所有三個通道的必要性。【以往的工作關注單通道影像的超分辨】

2.2 Convolutional Neural Networks

  • 卷積神經網路(CNN)的歷史可以追溯到幾十年[27],而深層CNN最近在爆炸性流行方面也表現出一定程度的成功,這部分歸功於其在影像分類中的成功[18],[26]。它們也已成功地應用於其他計算機視覺領域,例如物件檢測[34],[40],[52],面部識別[39]和行人檢測[35]。在此過程中,有幾個至關重要的因素:
    • (i)在現代功能強大的GPU上進行有效的訓練[26],
    • (ii)整流線性單元(ReLU)的建議[33],它使收斂速度大大提高,同時仍具有良好的質量[26],
    • (iii)大量資料(例如ImageNet [9])來訓練較大的模型。我們的方法也受益於這些進展

2.3 Deep Learning for Image Restoration

  • 已經有一些使用深度學習技術進行影像恢復的研究。多層感知器(MLP),其所有層都是完全連線的(與卷積相反),用於自然影像去噪[3]和去模糊後去噪[36]。與我們的工作更緊密相關的是,卷積神經網路被用於自然影像去噪[22]和消除噪聲模式(汙垢/雨水)[12]。這些恢復問題或多或少是由去噪驅動的。 Cuiet等人[5]提出在基於內部示例的概念[16]下將自動編碼器網路嵌入其超解析度管道中。由於級聯的每一層都需要對自相似性搜尋過程和自動編碼器進行獨立優化,因此深度模型並未專門設計為端對端解決方案。相反,提出的SRCNN優化了端到端對映。此外,SRCNN的速度更快。它不僅是定量上優越的方法,而且實際上是有用的一種方法。【端到端的提出】

3 CONVOLUTIONALNEURALNETWORKS FORSUPER-RESOLUTION

3.1 Formulation

  • 考慮單個低解析度影像,我們首先使用雙三次插值將其放大至所需大小,這是我們執行的唯一預處理。讓我們將插值影像表示為Y。我們的目標是從Y中恢復影像F(Y),且F(Y)影像與真實高解析度影像X儘可能相似。為了便於演示,我們仍然將Y稱為“低解析度”影像,儘管它的大小與X相同。我們希望學習一個對映F,該F在概念上由三個操作組成:
    • 1)補丁提取和表示:此操作從低解析度影像Y中提取(重疊)補丁,並將每個補丁表示為高維向量。這些向量包括一組特徵圖,其數量等於向量的維數。【將低分辨影像中提取的補丁表示為高維向量】
    • 2)非線性對映:此操作將每個高維向量非線性對映到另一個高維向量。從概念上講,每個對映向量都是高解析度補丁的表示。這些向量包含另一組特徵圖。【將第一步提取的高維向量對映到另一個高維向量】
    • 3)重構:該操作將上述高解析度的逐塊表示形式進行聚合,以生成最終的高解析度影像。預期該影像與Ground truth X相似。我們將證明所有這些操作都形成卷積神經網路。圖2顯示了網路概述。接下來, 我們詳細介紹每個操作的定義。【將上面提取出來的補丁進行聚合形成高分辨影像】
      在這裡插入圖片描述

圖2.給定低解析度的影像Y,SRCNN的第一卷積層將提取一組特徵圖。第二層將這些特徵對映非線性地對映到高解析度補丁表示。最後一層結合空間鄰域內的預測以產生最終的高解析度影像F(Y)

3.1.1 Patch extraction and representation

  • 影像恢復中的一種流行策略(例如[1])是密集提取補丁,然後通過一組預訓練的基礎(例如PCA,DCT,Haar等)來表示它們。這等效於通過一組濾鏡對影像進行卷積,每個都是基礎。在我們的表述中,我們將這些基礎的優化納入網路的優化之中。形式上,我們的第一層表示為F1:
    在這裡插入圖片描述
  • 其中,W1和B1分別表示濾波器和偏置,“*”表示卷積操作。這裡,W1對應於支援c×f1×f1的n1濾波器,其中c是輸入影像中的通道數,f1是濾波器的空間大小。直觀地說,W1對影像進行n1卷積,每個卷積有一個核size c×f1×f1。輸出由n1個特徵圖組成。B1是n1維向量,其每個元素都與一個過濾器相關聯。我們在濾波器響應上應用修正的線性單位(ReLU,max(0,x))[33]。【第一層】

3.1.2 Non-linear mapping

  • 第一層提取每個補丁的n1維特徵。在第二個操作中,我們將每個n1維向量對映為n2維。這等效於應用具有微小空間支援1×1的n2個過濾器。此解釋僅對1×1過濾器有效。但是很容易推廣到3×3或5×5等較大的過濾器。在這種情況下,非線性對映不在輸入影像的色塊上;而是在特徵圖的3×3或5×5“補丁”上。第二層的操作是:【將每個n1維向量對映為n2維】
    在這裡插入圖片描述
  • 這裡W2包含大小為n1×f2×f2的n2個過濾器,而B2是n2維向量。從概念上講,每個n2維輸出向量都是用於重建的高解析度補丁的表示。
  • 可以新增更多的卷積層以增加非線性。但這會增加模型的複雜度(一層的n2×f2×f2×n2引數),因此需要更多的訓練時間。在第4.3.3節中,我們將通過引入其他非線性對映層來探索更深的結構。

3.1.3 Reconstruction

  • 在傳統方法中,通常對預測的重疊高解析度色塊進行平均,以產生最終的完整影像。可以將平均視為一組特徵圖上的預定義濾波器(其中每個位置是高解析度補丁的“扁平化”向量形式)。為此,我們定義了一個卷積層以產生最終的高解析度影像
    在這裡插入圖片描述
  • 這裡W3對應於大小為n2×f3×f3的過濾器,而B3是c維向量。
  • 如果高解析度色塊的表示位於影像域中(即,我們可以簡單地對每個表示進行整形以形成色塊),則我們期望過濾器像平均濾波器;
  • 如果高解析度色塊的表示是在其他某些域中(例如,以某些基數表示的係數),則我們希望W3的行為像是先將係數投影到影像域上然後進行平均。無論哪種方式,W3都是線性濾波器組。
  • 有趣的是,儘管以上三個操作是由不同的直覺驅動的,但它們都導致了相同的形式作為卷積層。我們將所有三個運算放在一起,形成一個卷積神經網路(圖2)。在該模型中,所有濾波權重和偏差都將得到優化。儘管整體結構簡潔,但我們的SRCNN模型還是通過借鑑超解析度方面的重大進展而精心開發的[49],[50]。我們將在下一部分中詳細介紹這種關係。【將上面解決問題的方法整合到一起形成一個網路,這就是這個SRCNN的由來。其實他本質上就是3個解題的步驟,不用糾結卷積神經網網路】

3.2 Relationship to Sparse-Coding-Based Methods(與)

  • 我們證明了基於稀疏編碼的SR方法[49],[50]可以看作是卷積神經網路。圖3顯示了一個插圖。在基於稀疏編碼的方法中,讓我們考慮從輸入影像中提取出一個f1×f1的低解析度色塊。然後,像Feature-Sign [29]這樣的稀疏編碼求解器將首先將補丁投影到(低解析度)字典上。如果字典大小為n1,則等效於在輸入影像上應用n1個線性濾波器(f1×f1)(平均減法也是線性運算,因此可以吸收)。如圖3的左圖所示。
    -

圖3.從卷積神經網路角度說明基於稀疏編碼的方法

  • 然後,稀疏編碼求解器將迭代處理這n1個係數。此求解器的輸出為n2係數,對於稀疏編碼,通常為n2 = n1。 n2係數代表高解析度色塊。在這種情況下,稀疏編碼求解器求解器的行為類似於非線性對映運算子的特例,其空間支援為1×1。參見圖3的中間部分。但是,稀疏編碼求解器不是前饋,它是一種迭代演算法。相反,我們的非線性運算元是完全前饋的,可以有效地進行計算。如果我們將f2 = 1,則我們的非線性運算元可以視為按畫素連線的層。值得注意的是,SRCNN中的“稀疏編碼求解器”指的是前兩層,而不僅僅是第二層或啟用函式(ReLU)。因此,通過學習過程還可以很好地優化SRCNN中的非線性運算。
  • 然後將上述2個係數(在稀疏編碼之後)投影到另一個(高解析度)字典上,以生成高解析度補丁。然後將重疊的高解析度色塊平均。如上所述,這等效於n2特徵對映上的線性卷積。如果用於重建的高解析度色塊的大小為f3×f3,則線性濾波器的等效空間支援大小為f3×f3。參見圖3的右部分。
  • 以上討論表明,基於稀疏編碼的SR方法可以看作是一種卷積神經網路(具有不同的非線性對映)。但是,在基於稀疏編碼的SR方法的優化中並未考慮所有操作。相反,在我們的卷積神經網路中,低解析度字典,高解析度字典,非線性對映以及均值減法和平均都包含在要優化的過濾器中。因此,我們的方法可以優化由所有操作組成的端到端對映。【我們的方法是基於稀疏編碼SR方法的改進版本】
  • 上述類比也可以幫助我們設計超引數。例如,我們可以將最後一層的過濾器大小設定為小於第一層的過濾器大小,因此我們更依賴於高解析度面片的中心部分(極端情況下,如果f3=1,我們使用的是沒有平均值的中心畫素)。我們也可以選擇n2<n1,因為它預計會更稀疏。非典型和基本設定是f1=9,f2=1,f3=5,n1=64,n2=32(我們在實驗部分評估更多設定)。總的來說,高解析度畫素的估計利用了(9 + 5−1)2= 169個畫素的資訊。顯然,用於重建的資訊要比現有的基於外部例項的方法所使用的資訊要大,例如,使用(5 + 5-1)2 = 81畫素 [15],[50]。這是SRCNN表現出卓越效能的原因之一。【這一部分講的是基於稀疏編碼求解器和我們方法的聯絡】

3.3 Training

  • 學習端到端對映函式F需要網路引數的估計Θ= {W1,W2,W3,B1,B2,B3}。這是通過最小化重建影像F(Y;Θ)和相應的地面真實高解析度影像X之間的損耗來實現的。給定一組高解析度影像{Xi}及其對應的低解析度影像{Yi},我們使用均方誤差(MSE)作為損失函式:【訓練過程其實就是通過降低損失函式得到引數Θ= {W1,W2,W3,B1,B2,B3}】
    在這裡插入圖片描述
  • 其中n表示訓練樣本的數量。使用MSE作為損失函式有利於高PSNR。 PSNR是用於定量評估影像恢復質量的廣泛使用的度量,並且至少部分與感知質量有關。值得注意的是,如果只有損失函式是可匯出的,則卷積神經網路並不排除使用其他種類的損失函式。如果在訓練期間給出了更好的感知動機指標,則網路可以靈活地適應該指標。相反,通常對於傳統的“手工”方法很難實現這種靈活性。儘管所建議的模型訓練時偏向於高PSNR,但是當使用替代評估指標(例如SSIM,MSSIM)評估模型時,我們仍然觀察到令人滿意的效能(請參見第4.4.1節)。【不但使用PSNR評價時,我們的方法效果好,在採用其他婊扎雲評價時。我們的方法效果依然很好】
  • 使用隨機反向梯度消散和標準反向傳播可以將損耗降到最低[28]。特別是,權重矩陣更新為
    在這裡插入圖片描述
  • 其中l∈{1,2,3}和i表示層數和迭代的索引,η是學習率,∂L/∂W`是導數。每層的濾波器權重通過從高斯分佈中隨機抽取來初始化零均值和標準差0.001(偏差為0)。前兩層的學習率是10-4,最後一層的學習率是10-5。從經驗上我們發現,最後一層的較小學習速率對於網路收斂很重要(類似於去噪情況[22])。
  • 在訓練階段,將地面真實影像{Xi}準備為fsub×fsub×c-pixel ,sub -pixel是從訓練影像中隨機裁剪的影像。通過“子影像(sub-pixel)” ,這些樣本被視為小的“影像”而不是“補丁”,在某種意義上,“補丁”是重疊的並且需要一些平均值作為後處理,而“子影像”則不需要。
  • 為了合成低解析度樣本{Yi},我們通過高斯核對子影像進行模糊處理,通過放大因子對子影像進行子取樣,並通過雙三次插值以相同因子對子影像進行放大。【如何合成低解析度影像】
  • 為了避免訓練期間的邊界效應,所有卷積層都沒有填充(padding),網路生成的輸出較小((fsub-f1-f2-f3 + 3)2×c)。MSE損失函式僅通過Xi和網路輸出的影像的中心畫素之間的差來評估。在訓練中固定影像大小的情況下,卷積神經網路可以在測試期間應用於任意大小的影像。【即使在訓練時使用固定大小的影像尺寸,但是測試時可以使用任意大小尺寸的影像】
  • 我們使用cuda-convnet package [26]來實現我們的模型。我們還嘗試了Caffe package [24],並觀察到了類似的效能。

4、實驗

  • 我們首先研究使用不同資料集對模型效能的影響。接下來,我們檢查過濾器(通過我們的方法學習到的)。然後,我們探索網路的不同體系結構設計,並研究超解析度效能與諸如深度,濾波器數量和濾波器大小等因素之間的關係。隨後,我們將我們的方法與最新技術進行了定量和定性的比較。繼[42]之後,僅在4.1-4.4節中將超解析度應用於亮度通道(YCbCr顏色空間中的Y通道),第一層/最後一層中的c = 1,並在其上評估效能(例如,PSNR和SSIM)Y頻道。最後,我們擴充套件了網路以處理彩色影像,並評估了不同通道上的效能。

4.1 Training Data

  • 如文獻所示,深度學習通常受益於大資料訓練。為了進行比較,我們使用了一個相對較小的訓練集[41],[50]和一個交大的訓練集,小的其中包含91張影像,而另一個訓練集包含395909張來自ILSVRC 2013 ImageNet檢測訓練分割槽的影像。【使用兩個資料量差距很大的訓練集】訓練子影像的大小為fsub =33因此,可以將91個影像資料集分解為24,800個子影像這些子影像是從原始影像中提取的,步幅為14。而ImageNet甚至可以提供超過500萬個子影像跨度為33。我們使用基本網路設定,即f1 = 9,f2 = 1,f3 = 5,n1 = 64,n2 =32。我們使用Set5 [2]作為驗證集。即使使用較大的Set14set [51],我們也會觀察到類似的趨勢。放大因子為3。我們使用基於稀疏編碼的方法[50]作為基準,其平均PSNR值為31.42dB。
  • 使用不同訓練集的測試收斂曲線如圖4所示。 imageNet與91影像資料集大致相同,因為反向傳播的次數相同。可以看出,在反向傳播次數相同(即8×108)的情況下,SRCNN + ImageNet達到32.52 dB,高於在91個影像上訓練得到的32.39 dB。結果肯定地表明,使用更大的訓練集可以進一步提高SRCNN的效能,但是大資料的效果不如高階視力問題中顯示的那麼令人印象深刻[26]。這主要是因為91張影像已經捕獲了自然影像的足夠的可變性。另一方面,我們的SRCNN是一個相對較小的網路(8,032個引數),不能過度擬合91個影像(24,800個樣本)。不過,在以下實驗中,我們採用包含更多資料的ImageNet作為預設訓練集【經過實驗比較得到結果:使用更大的資料集可以進一步提高SRCNN的效能,但是提升有限】
    在這裡插入圖片描述

圖4.使用更大的ImageNet資料集進行訓練,可提高使用91張影像的效能。PSNR越大越好。

4.2 Learned Filters for Super-Resolution(學習到的濾波器)

  • 圖5顯示了在ImageNet上按放大因子3訓練的學習的第一層濾波器的示例。請參考我們釋出的實現放大因子2和4的實現。有趣的是,每個學習的濾波器都有其特定的功能。例如,濾波器g和濾波器h像拉普拉斯/高斯濾鏡一樣,濾波器a和e像在不同方向的邊緣檢測器,濾波器f像紋理提取器。圖6示出了不同層的示例性特徵圖。顯然,第一層的特徵圖包含不同的結構(例如,不同方向的邊緣),而第二層的特徵圖在強度上主要不同。
  • 在這裡插入圖片描述

圖5.該圖顯示了在ImageNet上訓練的具有放大係數=3的第一層濾鏡。濾鏡是根據其各自的方差組織的。
在這裡插入圖片描述
圖6.不同圖層的示例特徵圖。

4.3 Model and Performance Trade-offs(模型與效能的權衡)

  • 根據基本網路設定(即,f1 = 9,f2 = 1,f3 = 5,n1 = 64,n2 = 32),我們將逐步修改其中一些引數,以研究效能與速度之間的最佳折衷,並進行研究效能與引數之間的關係。

4.3.1 Filter number (濾波器數量)

  • 通常情況下,如果我們增加網路寬度6(即新增更多過濾器)會提高效能,但會花費執行時間。具體來說,根據我們的網路預設設定n1 = 64andn2 = 32,我們進行了兩個實驗:(i)一個是使用n1 = 128andn2 = 64的較大網路,以及(ii)另一個是使用n1 = 32andn2 = 16的較小網路。在第4.1節中,我們還在ImageNet上訓練了兩個模型,並使用放大因子3在Set5上進行了測試。表1顯示了在8×108反向傳播中觀察到的結果。顯然,通過增加寬度可以實現出色的效能。但是,如果需要快速的恢復速度,則首選較小的網路寬度,它仍比基於稀疏編碼的方法(31.42 dB)可獲得更好的效能。【增加濾波器數量會提高效能,但是如果更加強調時間,那就選擇更少的濾波器】

表1: 在SRCNN中使用不同過濾器編號的結果。在ImageNet上進行訓練,而對Set5資料集進行評估
在這裡插入圖片描述

4.3.2 Filter size(濾波器大小)

註釋5.補丁在每個方向上都重疊有4個畫素

  • 在本節中,我們檢查了網路對不同濾波器大小的敏感性。在先前的實驗中,我們將過濾器大小設定為f1 = 9,f2 = 1和f3 = 5,並且網路可以表示為9-1-5。首先,為了與基於稀疏編碼的方法保持一致,我們將第二層的過濾器大小固定為f2 = 1,並將其他層的過濾器大小擴大到f1 = 11和f3 = 7(11-1-7)。所有其他的設定與第4.1節相同。 Set5的放大係數為3的結果為32.57 dB,略高於4.1節中報告的32.52 dB,這表明較大的濾波器尺寸可以捕獲更豐富的結構資訊,進而帶來更好的結果。第二層的較大過濾器尺寸。具體來說,我們固定濾波器大小f1 = 9,f3 = 5,然後將第二層的濾波器大小擴大為(i)f2 = 3(9-3-5)和(ii)f2 = 5(9-5-5)。圖7的收斂曲線表明,使用更大的濾波器尺寸可以顯著提高效能。特別是,Set5上9-3-5和9-5-5在8×108反向傳播下獲得的平均PSNR值分別為32.66 dB和32.75 dB 。結果表明,在對映階段利用鄰域資訊是有益的。但是,隨著過濾器尺寸的增大,部署速度也會降低。例如,9-1-5、9-3-5和9-5-5的引數數量分別為8,032、24,416和57,184。 9-5-5的複雜度幾乎是9-3-5的兩倍,但效能提高是微不足道的。因此,網路規模的選擇應該始終是效能和速度之間的權衡。【實驗證明更大的濾波器尺寸可以提高效能,但是也會帶來更大的引數數量,所以選擇的時候要權衡】
    在這裡插入圖片描述

圖7.較大的過濾器尺寸可獲得更好的結果。

註釋6.我們使用“寬度”來表示一層中的過濾器數量,其後是[17]。 “寬度”一詞在文獻中可能還有其他含義。

4.3.3 Number of layers(網路層數)

  • He和Sun [17]的最新研究表明,適度增加網路深度可以使CNN受益。在這裡,我們通過新增另一個非線性對映層來嘗試更深層次的結構,該層具有n22 = 16個濾波器,大小為f22 =1。我們進行了三個受控實驗,即9-1-1-5、9-3-1-5、9-5- 1-5,分別在9-1-5、9-3-5和9-5-5上增加了一個附加層。附加層的初始化方案和學習率與第二層相同。從圖13(a),13(b)和8(c),我們可以觀察到四層網路的收斂速度比三層網路慢。然而,給定足夠的訓練時間,較深的網路將最終趕上並收斂到三層網路。發現超解析度的深層結構的有效性不如影像分類所示[17]。此外,我們發現更深的網路並不一定總能帶來更好的效能。特別是,如果在9-1-5網路上新增n22 = 32過濾器的附加層,則效能會下降並且無法超過三層網路(請參見圖 9(a))。【更深的網路會導致收斂速度更慢,並且不一定會帶來更好的效能】
  • 如果我們通過在9-1-5上新增兩個非線性對映層(n22=32和n23=16)進行更深入的研究,那麼我們必須設定較小的學習速率以確保收斂,但是經過一週的訓練我們仍然沒有觀察到優越的效能(見圖9(a))。將附加層的過濾器尺寸放大到f22 = 3,並探索兩個深層結構 9-3-3-5和9-3-3-3。但是,從圖9(b)所示的收斂曲線來看,這兩個網路沒有顯示出比9-3-1-5網路更好的結果。【網路層數加深,就要設定更小的學習率來確保收斂】
  • 所有這些實驗表明,對於超級使用者來說,這個深度模型並不是“越深越好”。這可能是由於訓練困難造成的我們的CNN網路不包含池化層或全連線層,因此它**對初始化引數和學習速率敏感**。當我們深入學習時(例如4或5層),我們發現很難設定適當的學習率以確保收斂。即使收斂,網路也可能陷入不良的區域性最小值,並且即使有足夠的訓練時間,學習到的濾波器的多樣性也會降低。在[16]中也觀察到了這種現象,其中深度的不適當增加會導致影像分類的精度飽和或降級。為什麼“更深的世界並沒有更好”仍然是一個懸而未決的問題,這需要進行調查才能更好地理解深度架構中的梯度和訓練動力學。因此,在下面的實驗中我們仍然採用三層網路。【實驗後得出結論:更深的網路結構不一定更好,所以我們還是採用三層網路結構】
    在這裡插入圖片描述

圖8.三層和四層網路之間的比較
在這裡插入圖片描述
圖9.更深的結構並不總能帶來更好的結果

4.4 Comparisons to State-of-the-Arts(和其他流行方法的比較)

  • 在本節中,我們將展示我們的方法與最新方法相比的定量和定性結果。我們採用具有良好效能-速度折衷的模型:在ImageNet上訓練的三層網路,其中f1 = 9,f2 = 5,f3 = 5,n1 = 64,n2 = 32,對於每個放大因子∈{2,3 ,4},我們為此因素訓練了一個特定的網路。
    比較。我們將我們的SRCNN與最新的SR方法進行了比較:
    •Yanget等人基於SC稀疏編碼的方法[50]
    •NE + LLE鄰居嵌入+區域性線性嵌入方法[4]
    •ANR-AnchoredNeighbourhoodRegression方法[41]
    •A ±調整後的鄰域迴歸方法[42]和
    •KK- [25]中所述的方法,在基於外部例項的方法中獲得了最佳效能,根據Yanget等人的工作進行的全面評估[46]
    所有實現均來自作者提供的可公開獲得的程式碼,並且所有影像均使用相同的雙三次核心進行降取樣
    測試集.TheSet5 [2]( 5張圖片),Set14 [51](14張圖片)和BSD200 [32](200張圖片)用於評估評估提升因子2、3和4的效能。
    評估指標。除廣泛使用的PSNR和SSIM [43]指標外,我們還採用了另外四個評估矩陣,即資訊保真度標準(IFC)[38],噪聲質量度量(NQM)[8],加權峰值訊雜比(WPSNR)和多尺度結構相似性指數(MSSSIM)[44],與[46]中報導的人類感知評分具有高度相關性。

4.4.1 Quantitative and qualitative evaluation(4.4.1定量和定性評估)

  • 如表2、表3和表4所示,在所有實驗中,所提出的srcnn在大多數評價矩陣中得到最高的分數.【我們的方法最好】
    -在這裡插入圖片描述

表2、3、4中結果顯示、在任意資料集上,我們的方法是最好的

  • 請注意,我們的SRCNN結果基於8×108向後傳播的checkpoint。特別是,對於放大因子3,SRCNN所實現的平均增益PSNR為0.15 dB,0.17 dB和0.13 dB,高於第二種最佳方法A + [42 ],在三個資料集上。當我們看一下其他評估指標時,我們發現,出乎意料的是,SC的得分甚至比IFC和NQM的雙三次插值還要低。顯然,SC的結果在視覺上比雙三次插值的結果更令人愉悅,這表明這兩個指標可能無法如實地展現影像質量。因此,無論這兩個指標如何,SRCNN都能在所有方法和比例因子中獲得最佳效能。
  • 值得指出的是,SRCNN在學習階段的開始就超過了雙曲線基線(參見圖1),並且在中等訓練下,SR-CNN的表現優於現有的最先進的方法(請參見圖4)。但是,效能還遠未收斂。我們推測,在更長的訓練時間下可以獲得更好的結果(請參見圖10)。
    在這裡插入圖片描述

圖10. SRCNN的測試收斂曲線以及Set5資料集上其他方法的結果。

  • 圖14、15和16顯示了放大係數為3的不同方法的超解析度結果。與其他方法相比,SRCNN產生的邊緣要清晰得多,並且在整個影像上沒有任何明顯的偽影。此外,我們還向Cuietal提出了另一種深度學習方法,用於影像超解析度(DNC)。[5]由於他們使用了不同的模糊核心(標準偏差為0.55的高斯濾波器),因此我們使用與DNC相同的模糊核心來訓練特定網路(9-5-5),以進行公平的定量比較。放大係數為3,訓練集為91個影像資料集。從圖11所示的收斂曲線可以看出,我們的SRCNN僅以2.7×107的反向支撐就超過了DNC,並且在更長的訓練時間下可以獲得更大的餘量。這也表明端到端學習優於DNC,即使該模型已經“深入”了
    在這裡插入圖片描述

圖14. Set5中的“蝴蝶”影像,放大係數為3
圖15. Set14中的“ ppt3”影像,放大係數為3
圖16. Set14中的“斑馬”影像,放大係數為3
在這裡插入圖片描述
圖11. Set5資料集上SRCNN和DNC結果的測試收斂曲線。

4.4.2 Running time(執行時間)

  • 如表2、3和4所示,在所有實驗中,srcnn在大多數評估矩陣中產生最高分數。圖12顯示了幾種最新方法的執行時間比較,以及它們在set14上的恢復效能。所有基線方法都是從相應的作者的Matlab + MeX簡化得到的,而我們的是純C++。
    在這裡插入圖片描述

圖12.與現有的基於外部示例的方法相比,SRCNN可以實現最先進的超解析度質量,同時保持較高的競爭速度。該圖表基於表3中彙總的Set14結果。所有三個SRCNN網路的實現都可以在我們的專案頁面上找到。
圖12中越靠近左上角的方法效果越好、執行時間短,效果好。

  • 我們使用同一臺計算機(Intel CPU 3.10 GHz和16 GB記憶體)來分析所有演算法的執行時間。請注意,由於所有影像都經過相同數量的卷積,因此我們的方法的處理時間與測試影像解析度高度線性相關。我們的方法始終是效能和速度之間的折衷。為此,我們訓練了三個網路進行比較,分別是9-1-5、9-3-5和9-5-5。很明顯,9-1-5網路是最快的,儘管它仍然比下一個最新的A +擁有更好的效能。與9-1-5網路相比,其他方法要慢幾倍甚至幾個數量級。注意,速度差距主要不是由不同的MATLAB / C ++實現引起的;相反,其他方法需要解決用法上的複雜優化問題(例如稀疏編碼或嵌入),而我們的方法是完全前饋。 9-5-5網路可實現最佳效能,但要花費執行時間。 CNN的測試時間速度可以通過許多方式進一步加快,例如,近似或簡化訓練網路[10],[21],[31],而效能可能會略有下降。

Implementation details(實施細節)

  • 對91個影像的資料集進行訓練,對Set5 [2]進行測試。網路設定為:c = 3,f1 = 9,f2 = 1,f3 = 5,n1 = 64,n2 = 32。由於我們已經證明了SRCNN在不同尺度上的有效性,這裡我們只評估了上尺度因子3的效能。
    comparisons
  • 我們將我們的方法與最新的顏色SR方法KK [25]進行了比較。我們還嘗試了不同的學習策略進行比較:
  • •僅Y:這是我們的基準方法,即僅在亮度通道上訓練的單通道(c = 1)網路。 Cb,Cr通道使用雙三次插值進行
  • •YCbCr:在YCbCr空間的三個通道上進行訓練。
  • •Y預訓練:首先,為了保證Y通道上的效能,我們僅使用Y通道的MSE作為損失以預先訓練網路。然後,我們使用所有通道的MSE來微調引數。
  • •CbCr預訓練:我們使用Cb,Cr通道的MSE作為損耗來預訓練網路,然後在所有通道上微調引數。
  • •RGB :訓練是在RGB空間的三個通道上執行的。
  • 結果如表5所示,我們有以下觀察結果。
  • (i) 如果直接在YCBCR通道上訓練,結果甚至比雙三次插值差。由於Y和Cb、Cr通道固有的不同特性,訓練陷入了一個糟糕的區域性極小值。
  • (ii)如果我們在Y、Cb、Cr通道上進行預訓練,效能最終會提高,但仍不優於彩色影像上的“僅Y”(見表5的最後一列,其中PSNR是在RGB顏色空間中計算的)。
  • 這表明,在統一網路中進行訓練時,Cb,Cr通道可能會降低Y通道的效能
  • (iii)我們觀察到,“ Y pre-train”的Cb,Cr通道的PSNR值比“ Y pre-train”的PSNR值高。

原因在於Cb,Cr通道和Y通道之間的差異。在視覺上,Cb,Cr通道比Y通道更模糊,因此受下采樣過程的影響較小。當我們在Cb,Cr通道上進行預訓練時,只有少數濾波器被啟用。然後,在進行微調時,訓練很快就會降到最低的區域性最小值。另一方面,如果我們在Y通道上進行預訓練,則將啟用更多的濾波器,並且Cb,Cr通道的效能將進一步提高。圖13顯示了帶有“
Y預訓練”的第一層濾鏡的Cb,Cr通道,其模式與圖5所示的模式有很大不同。
在這裡插入圖片描述
圖13.使用“ Y預訓練”策略的第一層濾波器的色度通道

  • (iv)在RGB通道上進行訓練可以在彩色影像上獲得最佳效果。

與YCbCr通道不同,RGB通道之間呈現出很高的互相關性。所提出的SRCNN能夠利用通道之間的這種自然對應來進行重構。因此,該模型在Y通道上獲得的結果與“僅Y”可比,並且在Cb,Cr通道上的效果比雙三次插值更好。

-(v)在KK [25]中,將超解析度分別應用於每個RGB通道。當我們將其結果轉換為YCbCr空間時,Y通道的PSNR值類似於“僅Y”,而Cb的Cr通道的PSNR值比雙三次插值差。

結果表明,該演算法偏向Y通道。總體而言,我們在RGB通道上訓練的方法比KK和單通道網路(“僅Y”)具有更好的效能。還值得注意的是,與單通道網路相比,改進並不那麼顯著(即0.07 dB)。這表明Cb,Cr通道幾乎無助於提高效能。

結論

  • 我們為單影像超解析度(SR)提出了一種新穎的深度學習方法。我們證明了傳統的基於稀疏編碼的SR方法可以重構為深層卷積神經網路。所提出的方法SRCNN學習了低解析度和高解析度影像之間的端到端對映,除了優化之外幾乎沒有額外的預處理/後處理。我們認為可以通過探索更多的過濾器和不同的訓練策略來進一步提高效能。此外,所提出的結構具有簡單性和魯棒性的優點,可以應用於其他低階視覺問題,例如影像去模糊或同時進行SR +去噪。人們還可以研究一個網路來應對不同的提升因素。【將傳統的方法重構為深度學習方法,實現了簡單性和魯棒性,改進:更多的濾波器和訓練策略】

  • 疑問:為什麼經過下采樣bicubic處理之後,照片(第一行第二個圖)還是原圖大小。難道尺寸不應該變大嗎?
    在這裡插入圖片描述
    在這裡插入圖片描述

番外——SRCNN的b站視訊

在這裡插入圖片描述
在這裡插入圖片描述

如何評價影像質量
在這裡插入圖片描述
PSNR比較偏移程度,MSE要儘可能小,PSNR儘可能高.
結構相似度:評價不太標準.
MOS:讓人來評價.

引入感知損失函式進行比較

相關文章