天天看點

深度學習用于圖像超分辨率重建之ESPCN——超分辨率(七)Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

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

論文連結: Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network, CVPR2016)

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

深度學習用于圖像超分辨率重建之ESPCN——超分辨率(七)Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

摘要

近年來,基于深度神經網絡的幾種模型在單幅圖像超分辨率重建精度和計算性能方面都取得了很大的成功。在這些方法中,通常在重建之前,使用單個濾波器(通常為雙三次插值)将低分辨率(LR)輸入圖像放大到高分辨率(HR)空間。這意味着在HR空間中執行超分辨率(SR)操作。我們證明,這是次優的,并且增加了計算複雜度。在本文中,我們提出了第一種能夠在單個K2 GPU上實時1080p視訊SR的卷積神經網絡(CNN)。為此,我們提出了一種新的CNN體系結構,在LR空間中提取特征映射。此外,我們引入了一個有效的亞像素卷積層,它學習一組尺度擴充濾波器,以便将最終的LR特征映射放大到HR輸出中。通過這樣做,我們有效地将SR傳遞途徑中的手工雙三次濾波器替換為針對每個特征圖專門訓練的更複雜的放大濾波器,同時還降低了整個SR操作的計算複雜度。我們使用來自公開可用的資料集的圖像和視訊來評估所提出的方法,并顯示出其性能明顯更好(+0.15dB用于圖像,+0.39dB用于視訊),并且比先前基于CNN的方法快一個數量級。

介紹

從它低分辨率(LR)對應部分恢複高分辨率(HR)圖像或視訊是數字圖像處理領域非常感興趣的課題。這項被稱為超分辨率(SR)的任務在許多領域有直接的應用,如HDTV[15]、醫學成像[28,33]、衛星成像[38]、人臉識别[17]和監視[53]。全局SR問題假設LR資料是HR資料的低通濾波(模糊)、下采樣和噪聲版本。由于不可逆低通濾波和子采樣過程中出現的高頻資訊丢失,這是一個高度不适定(病态)的問題。此外,SR操作實際上是從LR到HR空間的一對多映射,該映射可以有多個解,其中确定正确的解是困難的(重要的)。許多SR技術的基礎的一個關鍵假設是許多高頻資料是備援的,是以可以從低頻分量中精确地重構。是以,SR是一個推理問題,是以依賴于我們所讨論的圖像的統計模型。

許多方法假設多個圖像可用作具有不同視角的同一場景的LR執行個體,即具有獨特的先驗仿射變換。這些可歸類為多圖像SR方法,并通過用附加資訊限制不适定問題并嘗試反轉下采樣過程來利用顯式備援。然而,這些方法通常需要計算複雜的圖像配準和融合階段,其精度直接影響結果的品質。另一種方法是單圖像超分辨率(SISR)技術。這些技術試圖學習自然資料中存在的隐式備援,以便從單個LR執行個體中恢複丢失的HR資訊。這通常以圖像的局部空間相關性和視訊中的附加時間相關性的形式出現。在這種情況,需要重構限制形式的先驗資訊來限制重構的解空間。

方法

SISR的任務是從給定一張由相應原始HR圖像 I H R I^{H R} IHR的縮放得到的LR圖像 I L R I^{L R} ILR來估計HR圖像 I S R I^{S R} ISR。下采樣操作是确定性的且是已知的:為了從 I H R I^{H R} IHR産生 I L R I^{L R} ILR,我們首先使用高斯濾波器卷積 I H R I^{H R} IHR,進而模拟相機的點擴充函數,然後将圖像下采樣r倍。一般來說, I L R I^{L R} ILR和 I H R I^{H R} IHR都有C個顔色通道,是以它們分别表示為大小為H×W×C和rH×rW×C的真值張量。

為了解決SISR問題,提出的SRCNN從 I L R I^{L R} ILR的放大和内插版本中恢複,而不是從 I L R I^{L R} ILR中恢複。為了恢複 I S R I^{S R} ISR,使用了3層卷積網絡。在本節中,我們提出了一種新穎的網絡體系結構,如圖1所示,以避免在将 I L R I^{L R} ILR饋入網絡之前對其進行更新。在我們的體系結構中,我們首先将l層卷積神經網絡直接應用于LR圖像,然後将亞像素卷積層應用于LR特征映射的放大以産生 I S R I^{S R} ISR。

對于一個有L層組成的網絡,首先L-1層可以如下描述:

f 1 ( I L R ; W 1 , b 1 ) = ϕ ( W 1 ∗ I L R + b 1 ) f l ( I L R ; W 1 : l , b 1 : l ) = ϕ ( W l ∗ f l − 1 ( I L R ) + b l ) \begin{aligned} f^{1}\left(\mathbf{I}^{L R} ; W_{1}, b_{1}\right) &=\phi\left(W_{1} * \mathbf{I}^{L R}+b_{1}\right) \\ f^{l}\left(\mathbf{I}^{L R} ; W_{1 : l}, b_{1 : l}\right) &=\phi\left(W_{l} * f^{l-1}\left(\mathbf{I}^{L R}\right)+b_{l}\right) \end{aligned} f1(ILR;W1​,b1​)fl(ILR;W1:l​,b1:l​)​=ϕ(W1​∗ILR+b1​)=ϕ(Wl​∗fl−1(ILR)+bl​)​

其中 W l , b l , l ∈ ( 1 , L − 1 ) W_l , b_l , l\in(1, L − 1) Wl​,bl​,l∈(1,L−1)分别是學習網絡的權值和偏差, W l W_l Wl​是一個大小為 n l − 1 × n l × k l × k l n_{l-1}\times n_{l}\times k_{l}\times k_{l} nl−1​×nl​×kl​×kl​的2D卷積張量,其中 n l n_l nl​是 l l l層的特征數量, n 0 = C , k l n_0=C,k_l n0​=C,kl​是 l l l層的卷積大小。 b l b_l bl​是長度為 n l n_l nl​的向量偏置。非線性函數(或激活函數) ϕ \phi ϕ應用為智能元素并且固定。最後一層 f l f^l fl将LR特征圖轉換為HR圖像 I S R I_{SR} ISR​。

反卷積層

添加反卷積層是從最大值池化max-pooling 和其他圖像下采樣down-sampling層恢複分辨率的常用選擇。這種方法已經成功地用于可視化層激活以及使用來自網絡的進階特征生成語義分割。要證明SRCNN中使用的雙三次插值是反卷積層的特殊情況,這一點并不重要。反卷積層可以看作是每個輸入像素乘以濾波器元素與步幅r的乘法,并且在得到的輸出視窗上求和,也稱為向後卷積。

高效的亞像素卷積層

因為第一次接觸亞像素這個概念,先介紹一下亞像素概念,如有不對望指出:

在相機成像的過程中,獲得的圖像資料是将圖像進行了離散化的處理,由于感光元件本身的能力限制,到成像面上每個像素隻代表附近的顔色。例如兩個感官原件上的像素之間有4.5um的間距,宏觀上它們是連在一起的,微觀上它們之間還有無數微小的東西存在,這些存在于兩個實際實體像素之間的像素,就被稱為“亞像素”。亞像素實際上應該是存在的,隻是缺少更小的傳感器将其檢測出來而已,是以隻能在軟體上将其近似計算出來。

   亞像素可以表示為如下圖所示,每四個紅色點圍成的矩形區域為實際原件上的像素點,黑色點為亞像素點:

深度學習用于圖像超分辨率重建之ESPCN——超分辨率(七)Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

根據相鄰兩像素之間插值情況的不同,可以調整亞像素的精度,例如四分之一,就是将每個像素從橫向和縱向上當做四個像素點。也就是上面圖裡的紅色點之間有三個黑色點。這樣通過亞像素插值的方法可以實作從小矩形到大矩形的映射,進而提高分辨率。

   正因為這樣的操作,是以在圖像超分辨的任務裡使用pixel shuffle的方式獲得高分辨圖像(例如ESPCN)。在一般的反卷積裡會存在大量補0的區域,這可能對結果有害。是以pixel shuffle通過亞像素卷積的方式,實作從低分辨圖到高分辨圖的重構,具體如下所示,通過将多通道feature上的單個像素組合成一個feature上的機關即可,每個feature上的像素就相當于新的feature上的亞像素了。

深度學習用于圖像超分辨率重建之ESPCN——超分辨率(七)Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

亞像素卷積層包含兩個過程,一個普通的卷積層和後面的排列像素的步驟。就是說,最後一層卷積層輸出的特征個數需要設定成固定值,即放大倍數r的平方,這樣總的像素個數就與要得到的高分辨率圖像一緻,将像素進行重新排列就能得到高分辨率圖。

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

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

實驗結果

深度學習用于圖像超分辨率重建之ESPCN——超分辨率(七)Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network
深度學習用于圖像超分辨率重建之ESPCN——超分辨率(七)Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network

繼續閱讀