計算機視覺工作者們,總是希望能“看清”繁華世界的每個畫素點,但是卻發現解析度的極限,是他們繞不過去的坎。今天就來和大家聊一聊解析度以及超分辨影象重建。
解析度極限
解析度極限,無論對於影象重建或是影象後處理演算法的研究者,都是一項無法迴避的技術指標。時間解析度效能決定了視訊輸出的幀率,即實時效果;空間解析度效能決定了影象的畫面清晰度究竟是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)來進行特徵圖或是稀疏字典之間的對映,而是採用1x1卷積核,從而使得空間上每一個畫素點位置的對映都共享引數,即每一個空間位置以相同的方式進行非線性對映; 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.