【超解析度】Laplacian Pyramid Networks(LapSRN)
看了眼作者,Jia-Bin Huang是傳統演算法領域(呃,自從深度學習出來後,我就將之前的演算法都算傳統方法了)的超解析度學習的專家大牛。
然而有意思的是,這篇論文結合了傳統演算法laplacian pyramid 和 CNN網路,這也給我們這些研究者一些思路,可以通過結合經典演算法和深度學習作為insight。打個比方,最近KaiMing大神指導的一篇文章:《Non-local Neural Networks 》則將非區域性演算法融入到深度學習中。
值得惋惜的是,好多人上來就直接研究深度學習,對自己領域的傳統演算法知之甚少。
LapSRN有兩個版本(CVPR版本和期刊版本)。廢話不多說,直接進入主題。下面是對期刊論文的LapSRN
Insight
- 本文是通過將低解析度影象直接作為輸入到網路中,通過逐級放大,在減少計算量的同時,也有效的提高了精度
- 提出了一種魯棒的loss function, robust Charbonnier loss function.
- 對各個金字塔的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為迴圈次數
各個超解析度演算法引數細節:
各個超解析度演算法實驗結果: