[論文筆記]Distilling With Residual Network for Single Image Super Resolution

[論文筆記]Distilling With Residual Network for Single Image Super Resolution

論文地址

閱讀材料:DPN1 DPN2 pytorch code ResnetXt

1.Abstract

近年來,深卷積神經網絡(cnn)在單幅圖像超分辨率方面取得了顯著進展,但是,盲目地利用residual結構和dense結構從LR圖像中提取特徵,會導致網絡臃腫,訓練困難。爲了解決這些問題,我們提出了一種簡單有效的distilling with residual network((DRN)。

我們的主要貢獻有三方面:

  • 我們提出了residual distilling block(RDB),它享有ResNet和distills efficient imformation的優點。它可以融合共同的特徵,同時保持提取重要特徵的能力。
  • 該方法網絡參數少,網絡結構簡單,易於遞歸。它是一個緊湊的網絡,在性能和型號大小之間有很大的權衡。
  • 提出了一種簡單有效的殘差網絡(DRN)提取高質量圖像SR的方法。

2. Distilling With Residual Network

2.1 Network Architecture

如圖3所示,論文提出的DRN主要包括三個部分:

  • low-level feature extraction(LFE)
  • residual distilling groups(RDGs)
  • image reconstruction(IR)

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9oZDlbSf-1579007595059)(assets/1564575410713.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-1PiopAsf-1579007595060)(assets/1564577393912.png)]

2.2 Residual Distilling Group

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oGPs0bcQ-1579007595060)(assets/1564577451031.png)]
Yg=Fg(Yg1)+Yg1=Fg(Fg1(...F1(Y0)...))+Yg1 Y_g=F_g(Y_{g-1})+Y_{g-1}=F_g(F_{g-1}(...F_1(Y_0)...))+Y_{g-1}
其中FgF_g表示爲gthg_{th}的RDG操作,Fg1,FgF_{g-1},F_g是第g個的RDG的輸入和輸出。不受限制地使用residual distilling會使通道數增加很大的數量,因此,我們設置了1×1卷積與ELU,以減少通道數。最後g相當於G,所以YRDGs=YGY_{RDG_s}=Y_G

2.3 Residual Distilling Block

LR圖像具有豐富的低頻信息,但是沒有HR圖像中存在的高頻信息。因此,我們需要提取LR信息並生成高頻信息。在論文DPN中發現殘差學習中的聯繫是消除深層網絡中梯度消失現象的有效途徑。所以在每個RDB中,我們設計了殘差提取作爲基本卷積,即當信道執行殘差運算時,它同時提取出新的信道。該信道由殘差操作,儘可能地保留輸入信息,新的distilled channel包含有用的特徵,有利於產生高頻信息。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oSvVWPLX-1579007595060)(assets/1564579294413.png)]
[Dout,i,d]=Frd(Di) [D_{out,i},d]=F_{rd}(D_i)

Di+1=Fconcat(Dout,i+Di,d) D_{i+1}=F_{concat}(D_{out,i}+D_i,d)

通過這樣的一個操作,局部的殘差信息被這樣的殘差操作所提取出來,並且網絡仍然是學習新特性靈活性的一條distilled path。我們都知道,在高像素向低像素轉換是一個信息丟失的過程,因此,resiudal distilling 幫助我們的神經網絡通過潛在的信息來提取有用的特徵。

We steak K resiudal distilling blocks(RDB) in each RDG. So Yg,kY_{g,k} the k-th resiudal distilling block in g-th RDG, can be expressed as:(猜測:圖4中左邊的Yg,k1Y_{g,k-1},正確是不是應該爲Yg,0Y_{g,0}???)
Yg,k=FRDB,k(Dk)=FRDB,k(FRDB,k1(...FRDB,1(D1)...)) Y_{g,k}=F_{RDB,k}(D_k)=F_{RDB,k}(F_{RDB,k-1}(...F_{RDB,1}(D_1)...))
其中FRDB,kF_{RDB,k}代表k-th RDB function。

最後,我們可以得到YgY_g, g-th RDG的輸出爲:
Fg(Yg1)=Fp(Yg,K), F_g(Y_{g-1})=F_p(Y_{g,K}),

Yg=Fg(Yg1)+Yg1 Y_g=F_g(Y_{g-1})+Y_{g-1}

(where Fp denotes the compression using 1×1 convolution with ELU, andYg,KY_{g,K}is the output of g-th RDG when k is
K)

2.4 Image Reconstruction

對於upscaling modules可以有方法deconvolution layer, nearest-neighbor upsampling convolution and pixelshuffle proposed by ESPCN。但是隨着upscaling factor的增加,網絡將存在一些不確定的訓練問題。隨着網絡的訓練,反捲積的權重會改變。此外,這些方法不能適用於奇數提升因子。

基於以上的情況,我們選擇 pixelshuffle 作爲 upscaling module。如表1.

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-M8YOWTnu-1579007595061)(assets/1564626085781.png)]

2.5. Loss function

在超分辨率領域有很多可用的loss函數,如MSE,mean absolute loss,perceptual and adversarial loss。由於在MSE損失的情況下,神經網絡生成不符合人類視覺的圖像,所以我們使用MAE loss:
lMAE=1Ni=1NIiI^i1 l_{MAE}=\frac{1}{N}\sum_{i=1}^{N}||I_i-\hat I_i||_1
(where N denotes the number of training samples in each batch. IiI_iis the reconstructed HR image. I^i\hat I_idenotes the
ground truth HR image.)

發佈了17 篇原創文章 · 獲贊 58 · 訪問量 8946
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章