Accelerating the Super-Resolution Convolutional Neural Network
論文鏈接: Accelerating the Super-Resolution Convolutional Neural Network, ECCV2016
FSRCNN與SRCNN都是香港中文大學Dong Chao, Xiaoou Tang等人的工作。FSRCNN是對之前SRCNN的改進,主要在三個方面:一是在最后使用了一個反卷積層放大尺寸,因此可以直接將原始的低分辨率圖像輸入到網(wǎng)絡(luò)中,而不是像之前SRCNN那樣需要先通過bicubic方法放大尺寸。二是改變特征維數(shù),使用更小的卷積核和使用更多的映射層。三是可以共享其中的映射層,如果需要訓練不同上采樣倍率的模型,只需要fine-tuning最后的反卷積層。
由于FSRCNN不需要在網(wǎng)絡(luò)外部進行放大圖片尺寸的操作,同時通過添加收縮層和擴張層,將一個大層用一些小層來代替,因此FSRCNN與SRCNN相比有較大的速度提升。FSRCNN在訓練時也可以只fine-tuning最后的反卷積層,因此訓練速度也更快。FSRCNN與SCRNN的結(jié)構(gòu)對比如下圖所示。
SRCNN和FSRCNN計算復雜度對比
SRCNN 的處理過程如下:
- 對輸入圖片利用雙立方采樣做上采樣,使得其分辨率為目標分辨率
- 然后分別利用 9x9, 1x1, 5x5 的卷積來提高圖片質(zhì)量。其中 1x1 卷積是用來把低分辨率(LR)圖像向量非線性映射為高分辨率 (HR) 圖像向量.
計算復雜度為:
計算復雜度和HR圖像大小成線性比例,SHR。HR圖像越大,復雜度越高。
FSRCNN 包含如下五個主要處理步驟:
- 特征提取:利用一個 5x5 卷積代替 SRCNN 中的雙立方差值
- 壓縮:利用 1x1 卷積把特征層從 d 壓縮為 s,其中 s 小于 d
- 非線性映射:多個 3x3 網(wǎng)絡(luò)層代替單個的寬網(wǎng)絡(luò)層
- 擴大: 1x1 卷積把特征層從 s 擴大為 d
- 反卷積: 利用 9x9 過濾器重建 HR 圖像
以上結(jié)構(gòu)就是 FSRCNN(d,s,m). 其計算復雜度如下:
可見復雜度和 LR 圖像大小成線性比例,SLR,所以它的復雜度小于 SRCNN
網(wǎng)絡(luò)中激活函數(shù)是 PReLU. PReLU意為帶參數(shù)的ReLu,目的是比 ReLU 更好。
PReLU:對于每個卷積層之后的激活函數(shù),我們建議使用參數(shù)整流線性單元(PReLU)代替常用的整流線性單元(ReLU)。它們在負數(shù)部分的系數(shù)上是不同的。對于ReLU和PReLU,我們可以將一般激活函數(shù)定義為
其中xi是第i個通道上激活f的輸入信號,并且 ai是負數(shù)部分的系數(shù)。 對于ReLU,參數(shù)ai固定為零,但對于PReLU是可學習的。 我們選擇PReLU主要是為了避免ReLU中零梯度引起的“死亡特征”。 然后我們可以充分利用所有參數(shù)來測試不同網(wǎng)絡(luò)設(shè)計的最大容量。 實驗表明,PReLU激活網(wǎng)絡(luò)的性能更穩(wěn)定。
代價函數(shù)是均方誤差(MSE):
如何利用 1x1 卷積對網(wǎng)絡(luò)進行壓縮和擴大
假設(shè)我們在不使用 1x1 卷積的情況下運行 5x5 卷積,如下所示

計算次數(shù) = (14x14x48)x(5x5x480) = 112.9M
如果使用 1x1 卷積:

1x1 卷積計算次數(shù) = (14x14x16)x(1x1x480) = 1.5M
5x5 卷積計算此時 = (14x14x48)x(5x5x16) = 3.8M
兩者總共計算次數(shù) = 1.5M + 3.8M = 5.3M,比只使用 5x5 足足少了 112.9M 次計算。
因此在兩個卷積層之前使用 1x1 卷積來減少連接(參數(shù))。通過減少參數(shù),我們只需要更少的乘法和加法運算,最終加速網(wǎng)絡(luò)。這就是 FSRCNN 比 SRCNN 快的原因。
如何利用多個 3x3 卷積實現(xiàn)非線性映射
如上圖所示通過使用2層 3x3 濾波器來覆蓋 5x5 濾波器的區(qū)域,讓參數(shù)數(shù)量變少。
1層 5x5 濾波器的參數(shù)數(shù)量 = 5x5 = 25
2層 3x3 濾波器的參數(shù)數(shù)量 = 3x3+3x3 = 18
參數(shù)量減少了28%。而更少的參數(shù)意味著網(wǎng)絡(luò)在訓練的時候可以更快的收斂,并減少過擬合問題。
實驗訓練數(shù)據(jù)
訓練集:之前傳統(tǒng)SR method基本都在Set91上訓練,但是對CNN來說,Set91并不夠去訓練大的網(wǎng)絡(luò)結(jié)構(gòu)。由于BSD500是jpeg格式,存在壓縮所以也不適合做訓練dataset。本文提出general-100 + Set91進行充當訓練集。并且進行數(shù)據(jù)增強,1)downscale 0.9, 0.8, 0.7 and 0.6。 2) Rotation 90,180,270。因此我們將會得到20倍的訓練數(shù)據(jù)。