1. 程式人生 > >基於CNN的超解析度重建方法_2016 review

基於CNN的超解析度重建方法_2016 review

    自從那年看了琅琊榜,就徹底成為了我歌的粉絲,哪天想著在網上找幾張做個動態桌面,看中了下面這張,然而看夠了高清圖的我,覺得這解析度不夠。(lll¬ω¬)

    不過小編不死心,就相中這張了。聯想到最近火熱的超解析度重建,就乾脆試了一把,提升了兩倍解析度如右圖。

    看著像磨皮?Oh no,還真不是,難道磨皮能磨出下面的對比效果?

1 什麼是超解析度重建?
super-resolution reconstruction,它指的是利用低質量、低解析度影象來產生高質量、高解析度影象,輸入可以是單幅或者多幅影象。因此,有基於單圖,多視角圖以及視訊的重建。
2 有什麼用?
既然是提升解析度,那就可以用於高清電視,人臉識別,醫療影象,衛星影象
等領域。
3 大概方法?
下面只說基於單張影象的重建,從低解析度影象到高解析度影象的重建,一定是一個ill-posed問題,也就是沒有唯一的解,對於許多方法來說,它所依賴的理論基礎就是:影象中大部分的高頻分量是冗餘的,可以從低頻分量中重建出來。(1)早期主要是基於預測的方法,代表是雙三次插值bicubic filtering等,結果過於平滑。
(2)接下來是cnn之前基於學習的方法,基本上遵循sparse coding框架,有一些neighborhood embedding methods, edge-ditected algorithms, self-similarith methods等。
(3)現在響應deep learning搞一切CV的潮流,cnn方法為主。

篇幅有限,對於早期的方法,本文不再詳述,下面主要讀幾篇CNN的paper,如有理解錯誤的地方,還請自行修正;CNN方法代表作有幾篇,下面是幾個方法的代號,(1)SRCNN,(2)DRCN,(3)ESPCN,(4)SRResNet/SRGAN。當然還有SelfExSR等,精力有限就不一一解讀。

1 SRCNN[1]

一句話總結:bicubic interpolation + three layer deep fcn,提出個與sparse coding等價的框架。

它將bicubic interpolation當成預處理,低解析度圖進行雙三次插值resize成高解析度圖,文中仍然稱這個插值後的圖為low resolution,作為三層fcn的輸入。

後續重建過程分3步,對應一個3層的全卷積網路

1 選影象子塊,與濾波器卷積提取特徵

特徵對映,將n1維特徵非線性對映到n2維特徵。

3 重建, 從n2維特徵中,學習出線性濾波器,即重建係數。

對於sparse coding問題,n2=n1,因為它希望用自身的高階特徵來重新組合實現自編碼

而此處,n2<n1,文章給出了一組經驗引數,f1 = 9,f3 = 5, n1 = 64, and n2 = 32。

(1) 證明效能與網路的大小正相關,即採用更大的n1,n2有正向的結果。複雜度與影象尺寸線性相關

(2) 3層的效能對於重建問題已經足夠,雖然是與稀疏編碼統一的框架,但是由於是同時優化low-resolution dictionary 產生,non-linear mapping,以及reconstruction,所以效能更加優異。

該文章當時留下來的兩個問題,是後面改進的重點。

(1) loss函式採用重建影象與原始影象的最小均方誤差MSE,這在後面基本被perceptual loss全面替代。

(2) bicubic上取樣方法,後面也被學習的upscale卷積替代。 

2 DRCN[2]

提出了一個結合skip connection的迴圈網路結構,在不增加模型引數量大小的情況下,將感受野大大提升到了41×41。

首先看看該演算法的總體結構如上圖,分3塊:

(1) embeddnig net

用於獲取feature map。

(2) inference network

級聯了16層的完全相同的卷積,隨著每一次的卷積,感受野不斷增大。

(3) reconstruction network

與其他網路一樣,將高維feature map投影至單通道或者3通道。

具體結構如上,包含兩部分:

(1) 一個輸入和輸出之間的skip connection,這是因為對於超解析度重建問題,輸入只是輸出的下采樣,所以有很多元素是相同的,這些資訊可以直接使用。

(2) 就是迴圈層,每一個子層都是256個filters,filter尺寸為3×3。每一個迴圈子層的loss都會疊加到最終的總loss,從而成為一個有效的supervision,也對梯度消失與爆炸有平滑作用。

提出了一個高效能的模型結構,能夠捕捉畫素長程的依賴,在保持較小模型的情況下,有更寬的感受野,41×41。

3 ESPCN[3]

1 一個可用於1080p video的實時重建的框架。

2 採用學習到的sub-pixel卷積,替代了bicubic 上取樣。

文章的結構也很簡單如上,標準FCN後加deconvolution layer,文中稱為sub-pixel convolutional nn。

究竟如何實現地上取樣?看上圖,假如要實現的上取樣因子為3,即r=3,對於7×7的feature map,則輸出是21×21,如果總共有3×3個通道,那麼正好滿足從9個feature map中各取一個畫素,能拼接成結果,文中稱之為shuffling。

看最右圖左上角的3×3影象塊如上,可知它是9個feature map各自同一空間位置的畫素值。

提出在網路輸出層才進行上取樣的框架,與在輸入層利用bicubic上取樣的SRCNN相比,在訓練和測試時都降低了複雜度。

(1) 測試時,進入卷積的影象比SRCNN方法小r×r個尺度,r為上取樣尺度,所以速度快r×r,這是因為大部分時間花銷都在輸出層之前的卷積上。

(2) 訓練時,可以將輸入的訓練資料,預處理成shuffling操作前的格式,比如將21×21的單通道圖,預處理成9個通道,7×7的圖,這樣在訓練時,就不需要shuffling操作。

另外值得一提的是,該文采用tanh替代了relu。

4 SRGAN[4]

與ESPCN是同一批人,只不過,這一次用resnet和adversarial network搞了。

利用對抗網路首次做到了4倍的上取樣重建。

結構如下圖,典型的對抗網路:

(1) 生成網路的結構:採用B residual blocks與ESPCN的結合。

(2) 判別網路的結構:類似VGG的網路結構與標準對抗網路的判別網路。

由於作者對對抗網路也不熟,下面不再詳述。

簡單說來對抗網路的精髓就一個字,

最為人知的應用就是生成現實生活中並不存在但高度模擬的自然圖片,利用:

一個生成網路,不斷提高造假能力。

一個判別網路,不斷提高識別造假的能力。

兩者相愛相殺,懟到最終都提升到一個較高的水平,這就是原理。

除了採用對抗網路外,基本貢獻就在loss function上,這也是作者強調的對效能影響很關鍵的因素。

採用perceptual loss替代MSE,重建誤差content loss在VGG特徵空間計算。

最終loss = adversavial loss + content loss。

對於不使用adversavial loss的版本,稱之為SRResnet,加上adversavial loss的稱之為SRGAN,後者比前者效能全面超越。

關於perceptual loss替代MSE的問題,文[5-6]也是採用了類似策略,現在看來這已經是主流。

好了,看了這麼多方法,一個個嘗試就沒必要了,下面試了試幾張圖,左圖或上圖為低解析度,右圖或下圖為高解析度,放大倍率為2,採用方法SRCNN。

從結果上看來,對於人像還是很不錯的,對於風景圖略微有點過平滑了。一方面原因是嘗試的方法比較早,採用的是MSE作為loss function,另外一方面是跟訓練模型的資料有關係。

補充一句,攝影相關的內容已經移至另一個公眾號<言右三的北京>,如下,歡迎關注。


本系列微訊號如下,實在是沒有太多精力在CSDN重新排版一遍,請見諒!

【1】C. Dong, C. C. Loy, K. He, and X. Tang. Learning a deep convolutional network for image super-resolution. In European Conference on Computer Vision (ECCV), pages 184–199. Springer,
2014. 3, 6, 8

【2】Kim J, Kwon Lee J, Mu Lee K. Deeply-recursive convolutional network for image super-resolution[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1637-1645.

【3】Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1874-1883.

【4】Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[J]. arXiv preprint arXiv:1609.04802, 2016.

【5】Johnson J, Alahi A, Fei-Fei L. Perceptual losses for real-time style transfer and super-resolution[C]//European Conference on Computer Vision. Springer International Publishing, 2016: 694-711.

【6】J. Bruna, P. Sprechmann, and Y. LeCun. Super-resolution with deep
convolutional sufficient statistics. In International Conference on
Learning Representations (ICLR), 2016. 2, 3, 5
.