從SRCNN到EDSR,總結深度學習端到端超分辨率方法發展歷程 從SRCNN到EDSR,總結深度學習端到端超分辨率方法發展歷程

從SRCNN到EDSR,總結深度學習端到端超分辨率方法發展歷程

超分辨率技術(Super-Resolution, SR)是指從觀測到的低分辨率圖像重建出相應的高分辨率圖像,在監控設備、衛星圖像和醫學影像等領域都有重要的應用價值。

本文針對端到端的基於深度學習的單張圖像超分辨率方法(Single Image Super-Resolution, SISR),總結一下從SRCNN到EDSR的發展歷程。(排列順序大致按論文中給出的4倍上採樣結果的峯值信噪比(Peak Signal to Noise Ratio, PSNR)從低到高排列)

1. SRCNN

(Learning a Deep Convolutional Network for Image Super-Resolution, ECCV2014)

SRCNN是深度學習用在超分辨率重建上的開山之作。SRCNN的網絡結構非常簡單,僅僅用了三個卷積層,網絡結構如下圖所示。


SRCNN首先使用雙三次(bicubic)插值將低分辨率圖像放大成目標尺寸,接着通過三層卷積網絡擬合非線性映射,最後輸出高分辨率圖像結果。本文中,作者將三層卷積的結構解釋成三個步驟:圖像塊的提取和特徵表示,特徵非線性映射和最終的重建

三個卷積層使用的卷積核的大小分爲爲9x9,,1x1和5x5,前兩個的輸出特徵個數分別爲64和32。用Timofte數據集(包含91幅圖像)和ImageNet大數據集進行訓練。使用均方誤差(Mean Squared Error, MSE)作爲損失函數,有利於獲得較高的PSNR。

code: http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html


2. FSRCNN

(Accelerating the Super-Resolution Convolutional Neural Network, ECCV2016)

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

由於FSRCNN不需要在網絡外部進行放大圖片尺寸的操作,同時通過添加收縮層和擴張層,將一個大層用一些小層來代替,因此FSRCNN與SRCNN相比有較大的速度提升。FSRCNN在訓練時也可以只fine-tuning最後的反捲積層,因此訓練速度也更快。FSRCNN與SCRNN的結構對比如下圖所示。


FSRCNN可以分爲五個部分。特徵提取:SRCNN中針對的是插值後的低分辨率圖像,選取的核大小爲9×9,這裏直接是對原始的低分辨率圖像進行操作,因此可以選小一點,設置爲5×5。收縮:通過應用1×1的卷積核進行降維,減少網絡的參數,降低計算複雜度。非線性映射:感受野大,能夠表現的更好。SRCNN中,採用的是5×5的卷積核,但是5×5的卷積覈計算量會比較大。用兩個串聯的3×3的卷積核可以替代一個5×5的卷積核,同時兩個串聯的小卷積核需要的參數3×3×2=18比一個大卷積核5×5=25的參數要小。FSRCNN網絡中通過m個核大小爲3×3的卷積層進行串聯。擴張:作者發現低維度的特徵帶來的重建效果不是太好,因此應用1×1的卷積核進行擴維,相當於收縮的逆過程。反捲積層:可以堪稱是卷積層的逆操作,如果步長爲n,那麼尺寸放大n倍,實現了上採樣的操作。

FSRCNN中激活函數採用PReLU,損失函數仍然是均方誤差。對CNN來說,Set91並不足夠去訓練大的網絡結構,FSRCNN提出general-100 + Set91進行充當訓練集。並且進行數據增強,1)縮小尺寸爲原來的0.9, 0.8, 0.7和0.6。2)旋轉 90°,180°和270°,因此獲得了數據量的提升。

code: http://mmlab.ie.cuhk.edu.hk/projects/FSRCNN.html


3. ESPCN

(Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network, CVPR2016)

作者在本文中介紹到,像SRCNN那樣的方法,由於需要將低分辨率圖像通過上採樣插值得到與高分辨率圖像相同大小的尺寸,再輸入到網絡中,這意味着要在較高的分辨率上進行卷積操作,從而增加了計算複雜度。本文提出了一種直接在低分辨率圖像尺寸上提取特徵,計算得到高分辨率圖像的高效方法。ESPCN網絡結構如下圖所示。


ESPCN的核心概念是亞像素卷積層(sub-pixel convolutional layer)。網絡的輸入是原始低分辨率圖像,通過三個卷積層以後,得到通道數爲 r^{2} 的與輸入圖像大小一樣的特徵圖像。再將特徵圖像每個像素的 r^{2} 個通道重新排列成一個 \[r \times r\] 的區域,對應高分辨率圖像中一個 \[r \times r\] 大小的子塊,從而大小爲 \[H \times W \times {r^2}\] 的特徵圖像被重新排列成 \[rH \times rW \times 1\] 的高分辨率圖像。我理解的亞像素卷積層包含兩個過程,一個普通的卷積層和後面的排列像素的步驟。就是說,最後一層卷積層輸出的特徵個數需要設置成固定值,即放大倍數r的平方,這樣總的像素個數就與要得到的高分辨率圖像一致,將像素進行重新排列就能得到高分辨率圖。

在ESPCN網絡中,圖像尺寸放大過程的插值函數被隱含地包含在前面的卷積層中,可以自動學習到。由於卷積運算都是在低分辨率圖像尺寸大小上進行,因此效率會較高。

訓練時,可以將輸入的訓練數據,預處理成重新排列操作前的格式,比如將21×21的單通道圖,預處理成9個通道,7×7的圖,這樣在訓練時,就不需要做重新排列的操作。另外,ESPCN激活函數採用tanh替代了ReLU。損失函數爲均方誤差。

github(tensorflow): https://github.com/drakelevy/ESPCN-TensorFlow

github(pytorch): https://github.com/leftthomas/ESPCN

github(caffe): https://github.com/wangxuewen99/Super-Resolution/tree/master/ESPCN


4. VDSR

(Accurate Image Super-Resolution Using Very Deep Convolutional Networks, CVPR2016)

在介紹VDSR之前,首先想先提一下何愷明在2015年的時候提出的殘差網絡ResNet。ResNet的提出,解決了之前網絡結構比較深時無法訓練的問題,性能也得到了提升,ResNet也獲得了CVPR2016的best paper。殘差網絡結構(residual network)被應用在了大量的工作中。

正如在VDSR論文中作者提到,輸入的低分辨率圖像和輸出的高分辨率圖像在很大程度上是相似的,也就是指低分辨率圖像攜帶的低頻信息與高分辨率圖像的低頻信息相近,訓練時帶上這部分會多花費大量的時間,實際上我們只需要學習高分辨率圖像和低分辨率圖像之間的高頻部分殘差即可。殘差網絡結構的思想特別適合用來解決超分辨率問題,可以說影響了之後的深度學習超分辨率方法。VDSR是最直接明顯的學習殘差的結構,其網絡結構如下圖所示。


VDSR將插值後得到的變成目標尺寸的低分辨率圖像作爲網絡的輸入,再將這個圖像與網絡學到的殘差相加得到最終的網絡的輸出。VDSR主要有4點貢獻。1.加深了網絡結構(20層),使得越深的網絡層擁有更大的感受野。文章選取3×3的卷積核,深度爲D的網絡擁有(2D+1)×(2D+1)的感受野。2.採用殘差學習,殘差圖像比較稀疏,大部分值都爲0或者比較小,因此收斂速度快。VDSR還應用了自適應梯度裁剪(Adjustable Gradient Clipping),將梯度限制在某一範圍,也能夠加快收斂過程。3.VDSR在每次卷積前都對圖像進行補0操作,這樣保證了所有的特徵圖和最終的輸出圖像在尺寸上都保持一致,解決了圖像通過逐步卷積會越來越小的問題。文中說實驗證明補0操作對邊界像素的預測結果也能夠得到提升。4.VDSR將不同倍數的圖像混合在一起訓練,這樣訓練出來的一個模型就可以解決不同倍數的超分辨率問題。

code: https://cv.snu.ac.kr/research/VDSR/

github(caffe): https://github.com/huangzehao/caffe-vdsr

github(tensorflow): https://github.com/Jongchan/tensorflow-vdsr

github(pytorch): https://github.com/twtygqyy/pytorch-vdsr


5. DRCN

(Deeply-Recursive Convolutional Network for Image Super-Resolution, CVPR2016)

DRCN與上面的VDSR都是來自首爾國立大學計算機視覺實驗室的工作,兩篇論文都發表在CVPR2016上,兩種方法的結果非常接近。DRCN第一次將之前已有的遞歸神經網絡(Recursive Neural Network)結構應用在超分辨率處理中。同時,利用殘差學習的思想(文中的跳躍連接(Skip-Connection)),加深了網絡結構(16個遞歸),增加了網絡感受野,提升了性能。DRCN網絡結構如下圖所示。


DRCN輸入的是插值後的圖像,分爲三個模塊,第一個是Embedding network,相當於特徵提取,第二個是Inference network, 相當於特徵的非線性映射,第三個是Reconstruction network,即從特徵圖像恢復最後的重建結果。其中的Inference network是一個遞歸網絡,即數據循環地通過該層多次。將這個循環進行展開,等效於使用同一組參數的多個串聯的卷積層,如下圖所示。


其中的 H_{1} 到 H_{D} 是D個共享參數的卷積層。將這D個卷積層的每一層的結果都通過相同的Reconstruction Net,在Reconstruction Net中與輸入的圖像相加,得到D個輸出重建結果。這些所有的結果在訓練時都同時被監督,即所有的遞歸都被監督,作者稱之爲遞歸監督(Recursive-Supervision),避免了梯度消失/爆炸問題。將D個遞歸得到的結果再加權平均:\[\widehat y = \sum\limits_{d = 1}^D {{w_d} \cdot {{\widehat y}_d}} \]得到一個總輸出。每個加權 w_{d} 在訓練的過程中也不斷地更新。最終的目標函數就需要優化每一個遞歸層輸出的誤差和總輸出的誤差:

\[{l_1}\left( \theta \right) = \sum\limits_{d = 1}^D {\sum\limits_{i = 1}^N {\frac{1}{{2DN}}{{\left\| {{y^{\left( i \right)}} - \widehat y_d^{\left( i \right)}} \right\|}^2}} } \]

\[{l_2}\left( \theta \right) = \sum\limits_{i = 1}^N {\frac{1}{{2N}}{{\left\| {{y^{\left( i \right)}} - \sum\limits_{d = 1}^D {{w_d} \cdot \widehat y_d^{\left( i \right)}} } \right\|}^2}} \]

\[L\left( \theta \right) = \alpha {l_1}\left( \theta \right) + \left( {1 - \partial } \right){l_2}\left( \theta \right) + \beta {\left\| \theta \right\|^2}\]

\beta 表示的是權值衰減(weight decay)。 \alpha 的初始值設置得比較高以使得訓練過程穩定,因爲訓練開始的階段遞歸更容易收斂。隨着訓練的進行, \alpha 逐漸衰減來提升最終輸出的性能。

code: https://cv.snu.ac.kr/research/DRCN/

githug(tensorflow): https://github.com/jiny2001/deeply-recursive-cnn-tf


6. RED

(Image Restoration Using Convolutional Auto-encoders with Symmetric Skip Connections, NIPS2016)

這篇文章提出了由對稱的卷積層-反捲積層構成的網絡結構,作爲一個編碼-解碼框架,可以學習由低質圖像到原始圖像端到端的映射。網絡結構如下圖所示。


RED網絡的結構是對稱的,每個卷積層都有對應的反捲積層。卷積層用來獲取圖像的抽象內容,反捲積層用來放大特徵尺寸並且恢復圖像細節。卷積層將輸入圖像尺寸減小後,再通過反捲積層上採樣變大,使得輸入輸出的尺寸一樣。每一組鏡像對應的卷積層和反捲積層有着跳線連接結構,將兩部分具有同樣尺寸的特徵(要輸入卷積層的特徵和對應的反捲積層輸出的特徵)做相加操作(ResNet那樣的操作)後再輸入到下一個反捲積層。這樣的結構能夠讓反向傳播信號能夠直接傳遞到底層,解決了梯度消失問題,同時能將卷積層的細節傳遞給反捲積層,能夠恢復出更乾淨的圖片。可以看到,網絡中有一條線是將輸入的圖像連接到後面與最後的一層反捲積層的輸出相加,也就是VDSR中用到的方式,因此RED中間的卷積層和反捲積層學習的特徵是目標圖像和低質圖像之間的殘差。RED的網絡深度爲30層,損失函數用的均方誤差。


7. DRRN

(Image Super-Resolution via Deep Recursive Residual Network, CVPR2017)

DRRN的作者應該是受到了ResNet、VDSR和DRCN的啓發,採用了更深的網絡結構來獲取性能的提升。作者也在文中用圖片示例比較了DRRN與上述三個網絡的區別,比較示例圖如下所示。


DRRN中的每個殘差單元都共同擁有一個相同的輸入,即遞歸塊中的第一個卷積層的輸出。每個殘差單元都包含2個卷積層。在一個遞歸塊內,每個殘差單元內對應位置相同的卷積層參數都共享(圖中DRRN的淺綠色塊或淺紅色塊)。作者列出了ResNet、VDSR、DRCN和DRRN四者的主要策略。ResNet是鏈模式的局部殘差學習。VDSR是全局殘差學習。DRCN是全局殘差學習+單權重的遞歸學習+多目標優化。DRRN是多路徑模式的局部殘差學習+全局殘差學習+多權重的遞歸學習。

文章中比較了不同的遞歸塊和殘差單元數量的實驗結果,最終選用的是1個遞歸塊和25個殘差單元,深度爲52層的網絡結構。總之,DRRN就是通過對之前已有的ResNet等結構進行調整,採取更深的網絡結構得到結果的提升。

github(caffe): https://github.com/tyshiwo/DRRN_CVPR17


8. LapSRN

(Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution, CVPR2017)

論文中作者先總結了之前的方法存在有三點問題。一是有的方法在輸入圖像進網絡前,需要使用預先定義好的上採樣操作(例如bicubic)來獲得目標的空間尺寸,這樣的操作增加了額外的計算開銷,同時也會導致可見的重建僞影。而有的方法使用了亞像素卷積層或者反捲積層這樣的操作來替換預先定義好的上採樣操作,這些方法的網絡結構又相對比較簡單,性能較差,並不能學好低分辨率圖像到高分辨率圖像複雜的映射。二是在訓練網絡時使用 l_{2} 型損失函數時,不可避免地會產生模糊的預測,恢復出的高分辨率圖片往往會太過於平滑。三是在重建高分辨率圖像時,如果只用一次上採樣的操作,在獲得大倍數(8倍以上)的上採樣因子時就會比較困難。而且在不同的應用時,需要訓練不同上採樣倍數的模型。針對這三點問題,作者提出了LapSRN,網絡結構如下圖所示。


LapSRN的結構可以看成有多級,每一級完成一次2倍的上採樣操作,要實現8倍的上採樣就需要有三級。在每一級中,先通過一些級聯的卷積層提取特徵,接着通過一個反捲積層將提取出的特徵的尺寸上採樣2倍。反捲積層後連有兩個卷積層,一個卷積層的作用是繼續提取特徵,另外一個卷積層的作用是預測出這一級的殘差。輸入圖像在每一級也經過一個反捲積層使尺寸上採樣2倍,再與對應級的殘差相加,就能重構出這一級的上採樣結果。LapSRN設計損失函數爲:

\[L\left( {\widehat y,y;\theta } \right) = \frac{1}{N}\sum\limits_{i = 1}^N {\sum\limits_{s = 1}^L {\rho \left( {\widehat y_s^{\left( i \right)} - y_s^{\left( i \right)}} \right)} } = \frac{1}{N}\sum\limits_{i = 1}^N {\sum\limits_{s = 1}^L {\rho \left( {\left( {\widehat y_s^{\left( i \right)} - x_s^{\left( i \right)}} \right) - r_s^{\left( i \right)}} \right)} } \]

其中, \[\rho \left( x \right) = \sqrt {{x^2} + {\varepsilon ^2}} \] 叫作Charbonnier懲罰函數( l_{1} 範數的變形), \varepsilon 大小設置爲0.001。x表示低分辨率圖像,y表示高分辨率圖像,r表示殘差,s表示對應的級。N表示訓練時batch size的大小,L表示網絡一共有多少級。通過將高分辨率圖下采樣,在每一級都存在有對應的ground truth進行監督,因此每一級都有一個損失,訓練的時候就是要把每一級的損失的和降低。

LapSRN通過逐步上採樣,一級一級預測殘差的方式,在做高倍上採樣時,也能得到中間低倍上採樣結果的輸出。由於尺寸是逐步放大,不是所有的操作都在大尺寸特徵上進行,因此速度比較快。LapSRN設計了損失函數來訓練網絡,對每一級的結果都進行監督,因此取得了不錯的結果。

github(matconvnet): https://github.com/phoenix104104/LapSRN

github(pytorch): https://github.com/twtygqyy/pytorch-LapSRN

github(tensorflow): https://github.com/zjuela/LapSRN-tensorflow


9. SRDenseNet

(Image Super-Resolution Using Dense Skip Connections, ICCV2017)

DenseNet是CVPR2017的best papaer獲獎論文。DenseNet在稠密塊(dense block)中將每一層的特徵都輸入給之後的所有層,使所有層的特徵都串聯(concatenate)起來,而不是像ResNet那樣直接相加。這樣的結構給整個網絡帶來了減輕梯度消失問題、加強特徵傳播、支持特徵複用、減少參數數量的優點。一個稠密塊的結構如下圖所示。


SRDenseNet將稠密塊結構應用到了超分辨率問題上,取得了不錯的效果。網絡結構如下圖所示。


SRDenseNet可以分成四個部分。首先是用一個卷積層學習低層的特徵,接着用多個稠密塊學習高層的特徵,然後通過幾個反捲積層學到上採樣濾波器參數,最後通過一個卷積層生成高分辨率輸出。

文章中針對用於最後重建的輸入內容不同,設計了三種結構並做了比較。一是反捲積層只輸入最頂層稠密塊的輸出。二是添加了一個跳躍連接,將最底層卷積層的輸出特徵和最頂層稠密塊的輸出特徵串聯起來,再輸入反捲積層。三是添加了稠密跳躍連接,就是把稠密塊看成一個整體,第一個卷積層的輸出以及每個稠密塊的輸出,都輸入給在之後的所有稠密塊,像是把在反捲積層之前的整個網絡也設計成像稠密塊那樣的結構。由於這樣做,所有的特徵都串聯起來,這樣直接輸入反捲積層會產生巨大的計算開銷,因此添加了一個核大小爲1×1的卷積層來減小特徵數量,這個卷積層被稱爲瓶頸層。最後的結果是越複雜的越好,3>2>1。文章中分析的是,受益於低層特徵和高層特徵的結合,超分辨率重建的性能得到了提升。像第三種結構把所有深度層的特徵都串聯起來,得到了最佳的結果,說明不同深度層的特徵之間包含的信息是互補的。


10. SRGAN(SRResNet)

(Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network, CVPR2017)

在這篇文章中,將生成對抗網絡(Generative Adversarial Network, GAN)用在瞭解決超分辨率問題上。文章提到,訓練網絡時用均方差作爲損失函數,雖然能夠獲得很高的峯值信噪比,但是恢復出來的圖像通常會丟失高頻細節,使人不能有好的視覺感受。SRGAN利用感知損失(perceptual loss)和對抗損失(adversarial loss)來提升恢復出的圖片的真實感。感知損失是利用卷積神經網絡提取出的特徵,通過比較生成圖片經過卷積神經網絡後的特徵和目標圖片經過卷積神經網絡後的特徵的差別,使生成圖片和目標圖片在語義和風格上更相似。一個GAN所要完成的工作,GAN原文舉了個例子:生成網絡(G)是印假鈔的人,判別網絡(D)是檢測假鈔的人。G的工作是讓自己印出來的假鈔儘量能騙過D,D則要儘可能的分辨自己拿到的鈔票是銀行中的真票票還是G印出來的假票票。開始的時候呢,G技術不過關,D能指出這個假鈔哪裏很假。G每次失敗之後都認真總結經驗,努力提升自己,每次都進步。直到最後,D無法判斷鈔票的真假……SRGAN的工作就是: G網通過低分辨率的圖像生成高分辨率圖像,由D網判斷拿到的圖像是由G網生成的,還是數據庫中的原圖像。當G網能成功騙過D網的時候,那我們就可以通過這個GAN完成超分辨率了。

文章中,用均方誤差優化SRResNet(SRGAN的生成網絡部分),能夠得到具有很高的峯值信噪比的結果。在訓練好的VGG模型的高層特徵上計算感知損失來優化SRGAN,並結合SRGAN的判別網絡,能夠得到峯值信噪比雖然不是最高,但是具有逼真視覺效果的結果。SRGAN網絡結構如下圖所示。


在生成網絡部分(SRResNet)部分包含多個殘差塊,每個殘差塊中包含兩個3×3的卷積層,卷積層後接批規範化層(batch normalization, BN)和PReLU作爲激活函數,兩個2×亞像素卷積層(sub-pixel convolution layers)被用來增大特徵尺寸。在判別網絡部分包含8個卷積層,隨着網絡層數加深,特徵個數不斷增加,特徵尺寸不斷減小,選取激活函數爲LeakyReLU,最終通過兩個全連接層和最終的sigmoid激活函數得到預測爲自然圖像的概率。SRGAN的損失函數爲:


其中內容損失可以是基於均方誤差的損失的損失函數:


也可以是基於訓練好的以ReLU爲激活函數的VGG模型的損失函數:


i和j表示VGG19網絡中第i個最大池化層(maxpooling)後的第j個卷積層得到的特徵。對抗損失爲:


文章中的實驗結果表明,用基於均方誤差的損失函數訓練的SRResNet,得到了結果具有很高的峯值信噪比,但是會丟失一些高頻部分細節,圖像比較平滑。而SRGAN得到的結果則有更好的視覺效果。其中,又對內容損失分別設置成基於均方誤差、基於VGG模型低層特徵和基於VGG模型高層特徵三種情況作了比較,在基於均方誤差的時候表現最差,基於VGG模型高層特徵比基於VGG模型低層特徵的內容損失能生成更好的紋理細節。

github(tensorflow): https://github.com/zsdonghao/SRGAN

github(tensorflow): https://github.com/buriburisuri/SRGAN

github(torch): https://github.com/junhocho/SRGAN

github(caffe): https://github.com/ShenghaiRong/caffe_srgan

github(tensorflow): https://github.com/brade31919/SRGAN-tensorflow

github(keras): https://github.com/titu1994/Super-Resolution-using-Generative-Adversarial-Networks

github(pytorch): https://github.com/ai-tor/PyTorch-SRGAN


11. EDSR

(Enhanced Deep Residual Networks for Single Image Super-Resolution, CVPRW2017)

EDSR是NTIRE2017超分辨率挑戰賽上獲得冠軍的方案。如論文中所說,EDSR最有意義的模型性能提升是去除掉了SRResNet多餘的模塊,從而可以擴大模型的尺寸來提升結果質量。EDSR的網絡結構如下圖所示。


可以看到,EDSR在結構上與SRResNet相比,就是把批規範化處理(batch normalization, BN)操作給去掉了。文章中說,原始的ResNet最一開始是被提出來解決高層的計算機視覺問題,比如分類和檢測,直接把ResNet的結構應用到像超分辨率這樣的低層計算機視覺問題,顯然不是最優的。由於批規範化層消耗了與它前面的卷積層相同大小的內存,在去掉這一步操作後,相同的計算資源下,EDSR就可以堆疊更多的網絡層或者使每層提取更多的特徵,從而得到更好的性能表現。EDSR用L1範數樣式的損失函數來優化網絡模型。在訓練時先訓練低倍數的上採樣模型,接着用訓練低倍數上採樣模型得到的參數來初始化高倍數的上採樣模型,這樣能減少高倍數上採樣模型的訓練時間,同時訓練結果也更好。

這篇文章還提出了一個能同時不同上採樣倍數的網絡結構MDSR,如下圖。

MDSR的中間部分還是和EDSR一樣,只是在網絡前面添加了不同的預訓練好的模型來減少不同倍數的輸入圖片的差異。在網絡最後,不同倍數上採樣的結構平行排列來獲得不同倍數的輸出結果。

從文章給出的結果可以看到,EDSR能夠得到很好的結果。增大模型參數數量以後,結果又有了進一步的提升。因此如果能夠解決訓練困難的問題,網絡越深,參數越多,對提升結果確實是有幫助吧。

github(torch): https://github.com/LimBee/NTIRE2017

github(tensorflow): https://github.com/jmiller656/EDSR-Tensorflow

github(pytorch): https://github.com/thstkdgus35/EDSR-PyTorch


通過以上11篇有關深度學習超分辨率方法的論文,可以看到通過網絡結構、損失函數以及訓練方式的演變,深度學習超分辨率方法在結果、速度以及應用性上都有了不斷的提高。這裏再放上一篇深度學習超分辨率方法綜述的鏈接(Super-Resolution via Deep Learning)以及github上一個超分辨率方法的總結(https://github.com/YapengTian/Single-Image-Super-Resolution)。

非常感謝許多知乎和博客上的文章,由於比較多,這裏列出參考得比較多的幾個資源:

https://zhuanlan.zhihu.com/p/25532538?utm_source=tuicool&utm_medium=referral

http://blog.csdn.net/u011692048/article/category/7121139

http://blog.csdn.net/wangkun1340378/article/category/7004439


文章最後發佈於: 2017-12-04 16:50:44
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章