Image Super-Resolution Using Deep Convolutional Networks
阿新 • • 發佈:2018-11-07
- 主要思想
-
(1)首先將一張低解析度的圖片使用二次插值法縮放到desired size,這一步使用的也是卷積操作,可以使用卷積層實現
- (2)學習對映F,包含以下三個步驟:
- ① Patch提取和表示,從低解析度影象中提取patch,然後將每個patch表示成一個高維向量,由這些向量組成一個特徵集
- ② 非線性對映,將每個高維向量對映到另一個高維向量上,每個映射向量都是一個高解析度patch的表示。由這些向量能夠組成另一個特徵集
- ③ 重建,將上述高解析度的patch大小的表示組合到一起,生成最終的高解析度影象,這裡希望輸出能夠和ground-truth的結果相同。
- patch提取和表示
-
傳統的patch提取方法是使用預先訓練好的模板進行提取,如PCA,DCT等作為基底進行提取。本文中,將這些基底的優化也包含到網路中去,第一層可以用公式表達成
其中 大小為 個 ,輸出為 個特徵圖。
- 非線性對映
-
經過第一層後,每個patch都能夠得到 個特徵圖,在第二階段,將每個 維向量對映到一個 維向量上。這步的操作是在每個特徵圖上進行的
包含 個大小為 的filter。每個輸出都是一個高解析度patch的表示,將用於重建。
- 重建
-
在傳統方法中,預計重疊的高解析度patch通常採用取平均值的方法,這也可以認為是一種卷積操作,本文定義產生最後的高解析度影象的卷積層公式為
包含 個大小為 的filter。
Tips
(1)將前面層的filter size設計的比後面的大,以便將重心放在高解析度patch中的中心部分。
(2)由於重建部分使用到的每個patch的畫素量為
,比傳統方法使用到的畫素量更大,因此使得SRCNN能夠給出更好的效果。
Training
- 需要學習的引數包括 ,可以通過最小化重構影象loss進行訓練。使用L2距離定義loss策略函式
- filter weight初始化使用高斯隨機分佈~(0,0)。前兩層學習速率為0.0001,最後一層學習速率為0.00001。基於經驗發現最後一層使用更小的學習速率將有助於收斂。
- 為了在訓練過程中避免border effects,所有的卷積層都不使用padding。
實驗
1.研究使用不同資料集時模型的表現
2. 測試使用本文方法學習到的filter
3. 嘗試不同的網路設計結構,研究超解析度效能與深度、filter數量以及filter大小等元素間的關係
-
-
1.使用不同資料集進行效果比較,結果發現無論使用大的資料集(ImageNet)或是小的資料集(91 images)得到的結果是相同的,訓練時間也相同。但PSNR資料比較發現使用91 images得到的值更小,原因在於91 images已經包括了自然影象的變化;同時由於網路較小,因此對於91 images也不會產生過擬合。
-
-
2.第一層特徵圖主要包含不同的結構(如不同方向的邊),第二層特徵圖主要是強度不同
-
-
3.模型和效能的權衡
-
3.1 filter 數量
隨著filter數量的增加,效能也得到提升,但是計算速度就會下降
|