(FSRCNN)_Accelerating the Super-Resolution Convolutional Neural Network——超分辨率(三)

Accelerating the Super-Resolution Convolutional Neural Network

論文鏈接: Accelerating the Super-Resolution Convolutional Neural Network, ECCV2016

FSRCNN與SRCNN都是香港中文大學(xué)Dong Chao, Xiaoou Tang等人的工作。FSRCNN是對(duì)之前SRCNN的改進(jìn),主要在三個(gè)方面:一是在最后使用了一個(gè)反卷積層放大尺寸,因此可以直接將原始的低分辨率圖像輸入到網(wǎng)絡(luò)中,而不是像之前SRCNN那樣需要先通過(guò)bicubic方法放大尺寸。二是改變特征維數(shù),使用更小的卷積核和使用更多的映射層。三是可以共享其中的映射層,如果需要訓(xùn)練不同上采樣倍率的模型,只需要fine-tuning最后的反卷積層。

由于FSRCNN不需要在網(wǎng)絡(luò)外部進(jìn)行放大圖片尺寸的操作,同時(shí)通過(guò)添加收縮層和擴(kuò)張層,將一個(gè)大層用一些小層來(lái)代替,因此FSRCNN與SRCNN相比有較大的速度提升。FSRCNN在訓(xùn)練時(shí)也可以只fine-tuning最后的反卷積層,因此訓(xùn)練速度也更快。FSRCNN與SCRNN的結(jié)構(gòu)對(duì)比如下圖所示。


在這里插入圖片描述

SRCNN和FSRCNN計(jì)算復(fù)雜度對(duì)比

SRCNN 的處理過(guò)程如下:

  1. 對(duì)輸入圖片利用雙立方采樣做上采樣,使得其分辨率為目標(biāo)分辨率
  2. 然后分別利用 9x9, 1x1, 5x5 的卷積來(lái)提高圖片質(zhì)量。其中 1x1 卷積是用來(lái)把低分辨率(LR)圖像向量非線性映射為高分辨率 (HR) 圖像向量.
    計(jì)算復(fù)雜度為:
    O\left\{\left(f_{1}^{2} n_{1}+n_{1} f_{2}^{2} n_{2}+n_{2} f_{3}^{2}\right) S_{H R}\right\}
    計(jì)算復(fù)雜度和HR圖像大小成線性比例,SHR。HR圖像越大,復(fù)雜度越高。

FSRCNN 包含如下五個(gè)主要處理步驟:

  1. 特征提?。豪靡粋€(gè) 5x5 卷積代替 SRCNN 中的雙立方差值
  2. 壓縮:利用 1x1 卷積把特征層從 d 壓縮為 s,其中 s 小于 d
  3. 非線性映射:多個(gè) 3x3 網(wǎng)絡(luò)層代替單個(gè)的寬網(wǎng)絡(luò)層
  4. 擴(kuò)大: 1x1 卷積把特征層從 s 擴(kuò)大為 d
  5. 反卷積: 利用 9x9 過(guò)濾器重建 HR 圖像

以上結(jié)構(gòu)就是 FSRCNN(d,s,m). 其計(jì)算復(fù)雜度如下:
O\left\{\left(25 d+s d+9 m s^{2}+d s+81 d\right) S_{L R}\right\}=O\left\{\left(9 m s^{2}+2 s d+106 d\right) S_{L R}\right\}

可見(jiàn)復(fù)雜度和 LR 圖像大小成線性比例,SLR,所以它的復(fù)雜度小于 SRCNN

網(wǎng)絡(luò)中激活函數(shù)是 PReLU. PReLU意為帶參數(shù)的ReLu,目的是比 ReLU 更好。
PReLU:對(duì)于每個(gè)卷積層之后的激活函數(shù),我們建議使用參數(shù)整流線性單元(PReLU)代替常用的整流線性單元(ReLU)。它們?cè)谪?fù)數(shù)部分的系數(shù)上是不同的。對(duì)于ReLU和PReLU,我們可以將一般激活函數(shù)定義為
f\left(x_{i}\right)=\max \left(x_{i}, 0\right)+a_{i} \min \left(0, x_{i}\right)

其中xi是第i個(gè)通道上激活f的輸入信號(hào),并且 ai是負(fù)數(shù)部分的系數(shù)。 對(duì)于ReLU,參數(shù)ai固定為零,但對(duì)于PReLU是可學(xué)習(xí)的。 我們選擇PReLU主要是為了避免ReLU中零梯度引起的“死亡特征”。 然后我們可以充分利用所有參數(shù)來(lái)測(cè)試不同網(wǎng)絡(luò)設(shè)計(jì)的最大容量。 實(shí)驗(yàn)表明,PReLU激活網(wǎng)絡(luò)的性能更穩(wěn)定。

代價(jià)函數(shù)是均方誤差(MSE):
\min _{\theta} \frac{1}{n} \sum_{i=1}^{n}\left\|F\left(Y_{s}^{i} ; \theta\right)-X^{i}\right\|_{2}^{2}

如何利用 1x1 卷積對(duì)網(wǎng)絡(luò)進(jìn)行壓縮和擴(kuò)大

假設(shè)我們?cè)诓皇褂?1x1 卷積的情況下運(yùn)行 5x5 卷積,如下所示


在這里插入圖片描述

計(jì)算次數(shù) = (14x14x48)x(5x5x480) = 112.9M

如果使用 1x1 卷積:


在這里插入圖片描述

1x1 卷積計(jì)算次數(shù) = (14x14x16)x(1x1x480) = 1.5M
5x5 卷積計(jì)算此時(shí) = (14x14x48)x(5x5x16) = 3.8M
兩者總共計(jì)算次數(shù) = 1.5M + 3.8M = 5.3M,比只使用 5x5 足足少了 112.9M 次計(jì)算。
因此在兩個(gè)卷積層之前使用 1x1 卷積來(lái)減少連接(參數(shù))。通過(guò)減少參數(shù),我們只需要更少的乘法和加法運(yùn)算,最終加速網(wǎng)絡(luò)。這就是 FSRCNN 比 SRCNN 快的原因。

如何利用多個(gè) 3x3 卷積實(shí)現(xiàn)非線性映射

在這里插入圖片描述

如上圖所示通過(guò)使用2層 3x3 濾波器來(lái)覆蓋 5x5 濾波器的區(qū)域,讓參數(shù)數(shù)量變少。

1層 5x5 濾波器的參數(shù)數(shù)量 = 5x5 = 25
2層 3x3 濾波器的參數(shù)數(shù)量 = 3x3+3x3 = 18
參數(shù)量減少了28%。而更少的參數(shù)意味著網(wǎng)絡(luò)在訓(xùn)練的時(shí)候可以更快的收斂,并減少過(guò)擬合問(wèn)題。

實(shí)驗(yàn)訓(xùn)練數(shù)據(jù)

訓(xùn)練集:之前傳統(tǒng)SR method基本都在Set91上訓(xùn)練,但是對(duì)CNN來(lái)說(shuō),Set91并不夠去訓(xùn)練大的網(wǎng)絡(luò)結(jié)構(gòu)。由于BSD500是jpeg格式,存在壓縮所以也不適合做訓(xùn)練dataset。本文提出general-100 + Set91進(jìn)行充當(dāng)訓(xùn)練集。并且進(jìn)行數(shù)據(jù)增強(qiáng),1)downscale 0.9, 0.8, 0.7 and 0.6。 2) Rotation 90,180,270。因此我們將會(huì)得到20倍的訓(xùn)練數(shù)據(jù)。

在這里插入圖片描述
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容