深度學習之圖像超分辨重建技術

NO IMAGE

計算機視覺工作者們,總是希望能“看清”繁華世界的每個像素點,但是卻發現分辨率的極限,是他們繞不過去的坎。今天就來和大家聊一聊分辨率以及超分辨圖像重建。

分辨率極限

分辨率極限,無論對於圖像重建或是圖像後處理算法的研究者,都是一項無法迴避的技術指標。時間分辨率性能決定了視頻輸出的幀率,即實時效果空間分辨率性能決定了圖像的畫面清晰度究竟是720P,1080P,還是4K色階分辨率性能決定了圖像顯示色彩的豐滿程度與粒度。因此,分辨率是一幅圖像、一段視頻的核心。

今天就簡單說一下空間分辨率。

在實際的應用場景中,受限於圖像採集設備成本、視頻圖像傳輸帶寬,抑或是成像模態本身的技術瓶頸,我們並不是每一次都有條件獲得邊緣銳化,無塊狀模糊的大尺寸高清圖像。在這種需求背景下,超分辨重建技術應運而生。

深度學習之圖像超分辨重建技術

圖1

應用場景I:圖片壓縮與傳輸,即以較低的碼率進行圖像編碼,在傳輸過程中可極大節省轉發服務器的流量帶寬,在客戶端解碼得到相對低清晰度的圖片,最後通過超分辨重建技術處理獲得高清晰度圖片

深度學習之圖像超分辨重建技術

圖2

應用場景II:生物組織成像 左圖:光聲顯微成像圖像 右圖:光聲超分辨顯微圖像,細微的蜜蜂翅膀紋理清晰可見【5】

傳統超分辨重建技術大體上可分為4類【1, 2】,分別是預測型(prediction-based), 邊緣型(edge-based), 統計型(statistical)和圖像塊型(patch-based/example-based)的超分辨重建方法。

目前大家使用最多的是圖像塊型,我們在圖像塊型領域選擇了4篇基於深度學習的圖像塊型超分辨重建的經典論文進行關鍵技術點分析。從論文中我們可以看出研究者們對於超分辨任務的不同的理解與解決問題思路。

在2012年AlexNet以15.4%的歷史性超低的分類錯誤率獲得ImageNet大規模視覺識別挑戰賽年度冠軍,吹響了深度學習在計算機視覺領域爆炸發展的號角之後。超分辨重建技術也開始採用深度學習的思想,以期獲得更優的算法表現。

文章1:Image Super-Resolution Using Deep Convolutional Networks

作者: Chao Dong, Chen Change Loy, Kaiming He and Xiaoou Tang

SRCNN是基於深度學習的超分辨重建領域的開山之作,繼承了傳統機器學習領域稀疏編碼的思想,利用三層卷積層分別實現: 1. 圖像的圖像塊抽取與稀疏字典建立;2. 圖像高、低分辨率特徵之間的非線性映射;3. 高分辨率圖像塊的重建。

具體地,假設需要處理的低分辨率圖片的尺寸為H × W × C, 其中H、W、C分別表示圖片的長、寬和通道數;SRCNN第一層卷積核尺寸為C × f1 × f1 × n1,可以理解為在低分辨率圖片上滑窗式地提取f1 × f1的圖像塊區域進行n1種類型的卷積操作。在全圖範圍內,每一種類型卷積操作都可以輸出一個特徵向量,最終n1個特徵向量構成了低分辨率圖片的稀疏表示的字典,字典的維度為H1 × W1 × n1;SRCNN第二層卷積核尺寸為n1 × 1 × 1 × n2,以建立由低分辨率到高分辨率稀疏表示字典之間的非線性映射,輸出的高分辨率稀疏字典的維度為H1 × W1 × n2,值得注意的是在這一步中SRCNN並未採用全連接層(fully connected layer)來進行特徵圖或是稀疏字典之間的映射,而是採用1×1卷積核,從而使得空間上每一個像素點位置的映射都共享參數,即每一個空間位置以相同的方式進行非線性映射; SRCNN第三層卷積核尺寸為n2 × f3 × f3 × C,由高分辨率稀疏字典中每一個像素點位置的n2 × 1向量重建f3 × f3圖像塊,圖像塊之間相互重合覆蓋,最終實現圖片的超分辨率重建。

深度學習之圖像超分辨重建技術

圖3 SRCNN的三層卷積結構【1】

文章2:Real-Time Single Image and Video Super-Resolution Using an Efficient

Sub-Pixel Convolutional Neural Network

作者: Wenzhe Shi, Jose Caballero, Ferenc Huszár, Johannes Totz, Andrew P. Aitken,Rob Bishop, Daniel Rueckert, Zehan Wang

在SRCNN將CNN引入超分辨重建領域後,研究者們開始考慮如何利用“卷積”來解決更深入的問題。如果對一幅高分辨率圖片做高斯平滑或是降採樣可以等效為卷積操作,那麼由降採樣後低分辨率圖片恢復高分辨率的過程則相應的等效為反捲積操作(deconvolution)。此時我們的計算任務是學習合適的解卷積核,從低分辨率圖片中恢復高分辨率圖像。CNN中反捲積層的標準做法如圖4所示,對一幅低分辨率圖片填充零值(zero padding),即以每一個像素點位置為中心,周圍2×2或3×3鄰域填充0,再以一定尺寸的卷積核進行卷積操作。

深度學習之圖像超分辨重建技術

圖4 標準反捲積層實現示意圖

但是標準反捲積操作的弊端是顯而易見的,首先,填充的零值並不包含任何圖像相關的有效信息,其次填充後的圖片卷積操作的計算複雜度有所增加。在這種情況下,Twitter圖片與視頻壓縮研究組將sub-pixel convolution的概念引入SRCNN中。

深度學習之圖像超分辨重建技術

圖5 Efficient Sub-Pixel Convolutional Neural Network (ESPCN)網絡結構【2】

Sub-Pixel核心思想在於對於任意維度為H × W × C的圖像,標準反捲積操作輸出的特徵圖維度為rH × rW × C,其中r為超分辨係數即圖片尺寸放大的倍數,而sub-pixel的輸出特徵圖維度為H × W × C × r2,即令特徵圖與輸入圖片的尺寸保持一致,但增加捲積核的通道數,既使得輸入圖片中鄰域像素點的信息得到有效利用,還避免了填充0引入的計算複雜度增加。

文章3:Perceptual Losses for Real-Time Style-Transfer and Super-Resolution

作者: Justin Johnson, Alexandre Alahi, Li Fei-Fei

相較於其他機器學習任務,如物體檢測(object detection)或者實例分割(instance segmentation),超分辨重建技術中學習任務的損失函數的定義通常都相對簡單粗暴,由於我們重建的目的是為了使得重建的高分辨率圖片與真實高清圖片之間的峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)儘可能的大,因此絕大多數的基於深度學習的超分辨重建研究都直接的將損失函數設計為平均均方差(Mean Square Error, MSE),即計算兩幅圖片所有對應像素位置點之間的均方差,由於MSE Loss要求像素點之間位置一一對應,因此又被稱作Per-Pixel Loss。

但隨著技術的發展,研究者慢慢發現Per-Pixel Loss的侷限性。考慮一個極端的情況,將高清原圖向任意方向偏移一個像素,事實上圖片本身的分辨率與風格並未發生太大的改變,但Per-Pixel Loss卻會因為這一個像素的偏移而出現顯著的上升,因此Per-Pixel Loss的約束並不能反應圖像高級的特徵信息(high-level features)。因此研究圖像風格遷移的研究者們相對於Per-Pixel Loss在2016年的CVPR會議上提出了Perceptual Loss的概念。

深度學習之圖像超分辨重建技術

圖6 基於Perceptual Loss的全卷積網絡結構【3】

基於Per-Pixel Loss的超分辨重建網絡目標在於直接最小化高清原圖與超分辨重建圖像之間的差異,使得超分辨重建圖像逐步逼近原圖的清晰效果。但Perceptual Loss最小化的是原圖與重建圖像的特徵圖之間的差異,為了提高計算效率,Perceptual Loss中的特徵圖由固定權重值的卷積神經網絡提取,例如在ImageNet數據集上預訓練得到的VGG16網絡,如圖7所示,不同深度的卷積層提取的特徵信息不同,反映的圖像的紋理也不同。

深度學習之圖像超分辨重建技術

圖7 不同深度的卷積層提取的圖片特徵示意圖【3】

因此研究者們在訓練超分辨神經網絡時,利用跨間隔的卷積層(strided convolution layer)代替池化層(pooling layer)構建全卷積神經網絡(Fully Convolutional Network, FCN)進行超分辨重建,並在卷積層之間添加殘差結構(residual block)以在保證網絡擬合性能的前提下加深網絡深度獲得更佳表現。最終利用VGG16網絡對原圖與重建圖像進行特徵提取,最小化兩者特徵圖之間的差異使得超分辨重建圖像不斷逼近原圖的分辨率。

文章4: RAISR: Rapid and Accurate Image Super Resolution

作者: Yaniv Romano, John Isidoro, and Peyman Milanfar

前面提到的幾種典型的圖像塊型(也被稱作樣例型)超分辨技術,都是在高低分辨率圖像塊一一對應的數據基礎上,學習由低分辨率到高分辨率圖像塊的映射。具體的來說,通常這種映射是一系列的濾波器,針對輸入圖片不同像素位置點的不同的紋理特徵來選擇適當的濾波器進行超分辨重建。

基於這種思想,Google於2016年在SRCNN, A+以及ESPCN等超分辨研究的基礎上發佈了RAISR算法,該算法主打高速的實時性能與極低的計算複雜度,核心思想在於利用配對的高低分辨率圖像塊訓練得到一系列的濾波器,在測試時根據輸入圖片的局部梯度統計學特性索引選擇合適的濾波器完成超分辨重建。因此RAISR算法由兩部分組成,第一部分是訓練高低分辨率映射(LR/HR mapping)的濾波器,第二部分是建立濾波器索引機制(hashing mechanism)。

深度學習之圖像超分辨重建技術

圖8 RAISR 2倍上採樣濾波器【4】

深度學習之圖像超分辨重建技術

圖9 RAISR在2x上採樣率時與SRCNN, A+等超分辨算法的技術指標對比

左圖為PSNR-runtime指標,右圖為SSIM-runtime指標【4】

結語


超分辨重建在醫學影像處理、壓縮圖像增強等方面具有廣闊的應用前景,近年來一直是深度學習研究的熱門領域。卷積和殘差構件的改進、不同種類perceptual loss的進一步分析、對抗生成網絡用於超分辨重建的探索等都是值得關注的方向。

參考文獻


[1] Dong, Chao, et al. “Image Super-Resolution Using Deep Convolutional Networks.” IEEE Transactions on Pattern Analysis & Machine Intelligence 38.2(2016):295-307.

[2] Shi, Wenzhe, et al. “Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network.” (2016):1874-1883.

[3] Johnson, Justin, A. Alahi, and F. F. Li. “Perceptual Losses for Real-Time Style Transfer and Super-Resolution.” (2016):694-711.

[4] Romano, Yaniv, J. Isidoro, and P. Milanfar. “RAISR: Rapid and Accurate Image Super Resolution.” IEEE Transactions on Computational Imaging 3.1(2016):110-125.

[5] Conkey, Donald B., et al. “Super-resolution photoacoustic imaging through a scattering wall.” Nature Communications 6(2015):7902.

相關文章

Android優化(三)_延遲電池續航時間

CVPR2018|圖鴨科技榮獲圖像壓縮挑戰賽冠軍

深度學習圖像視頻壓縮算法——TNG

視頻通信中音視頻處理技術