1. 程式人生 > >【超解析度】Laplacian Pyramid Networks(LapSRN)

【超解析度】Laplacian Pyramid Networks(LapSRN)

看了眼作者,Jia-Bin Huang是傳統演算法領域(呃,自從深度學習出來後,我就將之前的演算法都算傳統方法了)的超解析度學習的專家大牛。
然而有意思的是,這篇論文結合了傳統演算法laplacian pyramid 和 CNN網路,這也給我們這些研究者一些思路,可以通過結合經典演算法和深度學習作為insight。打個比方,最近KaiMing大神指導的一篇文章:《Non-local Neural Networks 》則將非區域性演算法融入到深度學習中。
值得惋惜的是,好多人上來就直接研究深度學習,對自己領域的傳統演算法知之甚少。

LapSRN有兩個版本(CVPR版本和期刊版本)。廢話不多說,直接進入主題。下面是對期刊論文的LapSRN

做簡要理解。

Insight

  1. 本文是通過將低解析度影象直接作為輸入到網路中,通過逐級放大,在減少計算量的同時,也有效的提高了精度
  2. 提出了一種魯棒的loss function, robust Charbonnier loss function.
  3. 對各個金字塔的level之間和每個level之內,通過recursive進行引數共享

這裡寫圖片描述

Detail:

網路結構:

一、Network architecture
1. Feature extraction branch
通過stack convolution來獲取非線性特徵對映
2. Image reconstruction branch


在每一個pyramid level,最後加上deconv來提升影象的2x解析度

引數共享
本文網路在兩個地方進行引數共享,減少了引數量
1. 在各個pyramid level之間引數共享, 稱之為Recursive block

因為laplacian pyramid是在x2的基礎上得到x4,由於各個level中的結構相似性,因此在各個level,引數得以共享
形式如下:
這裡寫圖片描述

2. 每個pyramid level之中引數共享

inspired DRCN and DRRN,作者在每個pyramid level中進行引數共享,如下圖
這裡寫圖片描述


整個網路深度為:depth = (D x R + 1) x L + 2


也因此會出現了兩個超引數 D,R

二、Local residual learning
為了解決梯度彌散問題,作者在各個recursive block上採取了local residual learning。在本文中,作者探究了三種方法來stabilize訓練過程:
1. No skip connection
該種方法在之後的實驗中稱之為: LapSRN(NS)
2. Distinct-source skip connection
該種方法在之後的實驗中稱之為: LapSRN(DS)
3. Shared-source skip connection
該種方法在之後的實驗中稱之為: LapSRN(SS)
這裡寫圖片描述

實驗證明LapSRN(ss)更work一些

三、Loss function

本文認為相同的LR patch 可能有多種corresponding HR patches,而L2範數並不能capture the underlying multi-modal distributions of HR patches. 因此L2範數重建出的影象往往過平滑

本文提出了一種抗噪性強的loss functions:
這裡寫圖片描述

Experiments:

D,R關係, D為每個pyramid中的conv數,R為迴圈次數

這裡寫圖片描述

各個超解析度演算法引數細節:
這裡寫圖片描述

各個超解析度演算法實驗結果:
這裡寫圖片描述