Efficient Sub-Pixel Convolutional Neural Network(ESPCN)

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

摘要:

當前基於深度神經網絡的方法對於單圖片的超分辨率在重建效率和計算量方面有了很大的成功。但是,這些方法中,都是用低分辨率的圖片通過單一的濾波器,通常是雙三次插值法,變成高分辨率的圖片。這意味着超分辨率的工作是在高分辨率的基礎上完成的。這種方法是次最優並且計算量很大。

該論文提出了一種方法,將低分辨率的圖片直接通過CNN來做超分辨率。另外,提出了一種有效的子像素卷積層,這層能學習到一組擴大濾波器去將低分辨率的特徵映射到高分辨率的輸出。這樣做,我們就省去了雙三次插值法,也減輕了計算量。

1. 簡介:

大部分的超分辨率問題都假設低分辨率的數據是高分辨率數據的低通濾波,下采樣和噪聲產生的。由於在不可逆的低通濾波和子採樣操作期間發生的高頻信息的丟失,這是一個非常惡劣的問題。另外,從低分辨率到高分辨率的映射過程,超分辨率有許多的選擇。基於許多超分辨率技術的一個關鍵假設是大部分高頻數據是冗餘的,因此可以從低頻分量精確地重構。因此,超分辨率是一個推理問題,因此依賴於我們關於圖像統計的模型。

許多方法假設多個圖像可用作具有不同視角的相同場景的低分辨率實例,即具有唯一的先前仿射變換。這些可以歸類爲多圖像超分辨率方法,並通過限制不正確的問題附加信息並嘗試反轉下采樣過程來利用顯式冗餘。然而,這些方法通常需要計算複雜的圖像配準和融合階段,其準確性直接影響結果的質量。一種替代的方法是單圖像超分辨率(SISR)技術。這些技術尋求學習自然數據中存在的隱性冗餘,以從單個低分辨率實例中恢復丟失的高分辨率信息。這通常以圖像的局部空間相關性和視頻中的附加時間相關性的形式出現。在這種情況下,需要以重建約束的形式的先前信息來限制重構的解空間。

1.1 相關工作:

最近最流行的SISR方法可以分爲:edge-based, image statistics-based和patch-based。另外,最新蓬勃發展的技術是sparsity-based techniques(稀疏性技術)。稀疏編碼是一個有效的機制,它假設任何的自然圖片都能夠在轉換區域被稀疏的表達。這種轉換域通常是一個圖像原子性的字典,能通過發現低分辨率和高分辨率之間的對應關係學習到。這個字典能夠嵌入先驗知識以限制上面提到的惡劣的問題。但是稀疏性技術的缺點是將稀疏性限制引入到非線性重建中時,通常需要較大的計算代價。

除此之外,通過神經網絡來習得圖像的表達對於SISR也是很常見的。這些方法,通過在大型的圖片數據庫,比如ImageNet,進行反向傳播訓練,學習到低分辨率到高分辨率的映射關係。堆疊的協同本地自編碼被用作一層層的去做低分辨率圖片的超分辨率。有學者建議用預測卷積稀疏編碼框架來做SISR。於是,基於稀疏編碼的多層卷積神經網絡被提出。該方法提出使用多階段可訓練非線性反應擴散(TNRD)作爲CNN的替代方法,其中權重和非線性是可訓練的。還有人從LISTA得到靈感(學習迭代收縮和閾值算法)訓練了一個端到端的級聯的稀疏編碼網絡,以充分利用圖像的自然稀疏性。這個網絡結構不僅限制於神經網絡,比如隨機森林同樣可以成功的利用。

1.2 動機和貢獻

有兩種方法去提高分辨率。一種是在神經網絡的中間層逐漸增加,另一種是在喂入神經網絡第一層之前就增加分辨率。後者的方法有許多的缺點。第一,計算代價大。第二,插值法並沒有解決ill-posed的問題。

這篇論文中,和之前不一樣的,提出了一種在神經網絡的末端增加分辨率的方法。這解決了一個問題,那就是大部分的超分辨率操作沒有必要在較大的高分辨率圖片上面執行。所以,我們採用了高效的子像素卷積層去學習倍增分辨率的操作。

這個方法有兩個好處:

1. upscaling在神經網絡的末端執行。這意味着將低分辨率圖片喂入神經網絡,並且特者提取是發生在低分辨率空間的非線性卷積操作。因爲輸入的分辨率降低了,我們可以有效地利用較小的過濾器去合成同樣的信息。分辨率和濾波器大小的減小,極大的減小了運算量和存儲空間以至於超分辨率能夠實時地在HD的錄像上完成。

2. 沒有使用插值法,這意味着網絡能明確地學習到對超分辨率有用的東西。因此,比起在第一層用一個固定的倍增濾波器,這個網絡能學習到一個更好的從低分辨率到高分辨率的映射。這能導致重建正確率的提高。

2. 方法

輸入是用高分辨率的圖片,採取r的倍增速率,通過高斯濾波器,壓縮成低分辨率的圖片。所以低分辨率圖片的大小是H*W*C,高分辨率圖片的大小是rH*rW*C(C是channel的數量)。

爲了恢復高分辨率的圖片,該論文用了3層的卷積神經網絡,如下圖。

 

在結構中,直接作用了l層神經網絡在低分辨率圖像上,然後用了一個子像素卷積層,將低分辨率的特徵映射到超分辨率上。

2.1 反捲積層

附加的反捲積層是從max-pooling層和其他圖像的下采樣層中恢復高分辨率的一個很流行的選擇。這種方法已經成功地用於可視化層激活,並且用於使用來自網絡的高級特徵來生成語義分割。這表明SRCNN中使用的雙三次插值是反捲積層的一種特殊情況。反捲積層可以看作是每個輸入像素乘以一個濾波器單元與步幅r,並且在所得到的輸出窗口上也稱爲向後卷積。

2.2 高效的子像素卷積層

另外一種方法去倍增低分辨率圖像是用一個步長爲分數的1/r的卷積作用域低分辨率空間。

 

3. 實驗

3.1 數據集

用5000張隨機從ImageNet數據集中選擇出來的圖片用來訓練。

3.2 實驗結果



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章