謝朋言
(中國船舶重工集團公司第七二三研究所,江蘇 揚州225101)
隨著光電技術的發展,光電探測系統、光電監控系統等已經廣泛應用于國民經濟及軍事等方面,如平安城市智能監控系統、無人機目標檢測與識別系統等。然而實際情況下,受到目標運動、環境照度、光學畸變、圖像混疊、動態模糊以及噪聲等因素的影響,獲取的圖片往往分辨率較低,難以辨識。超分辨率重構技術可以在不增加硬件成本的基礎上,通過軟件處理的方式將觀測到的低分辨率圖像還原成高分辨率圖像,顯著提高模糊圖像的清晰度,恢復被破壞的圖片特征,因此受到了廣泛的關注和研究。
早期的超分辨率重構大多基于圖片插值的方法,如雙三次插值法和蘭索斯重采樣法[1],這類方法得到的圖片過于平滑,缺少細節。2010 年,Yang等[2]提出了基于稀疏表示的圖像超分辨率重構方法,通過一個轉換矩陣將圖片表示為一個稀疏的向量,便于學習高低分辨率圖片之間的映射關系。在稀疏表示的基礎上,學者們陸續提出了基于圖片自相似性的超分辨率重構方法[3-4]以及基于局部線性回歸的超分辨率重構方法[5-8]。這些方法專注于學習高低分辨率圖片特征之間的映射關系,而沒有將特征提取和圖片重構階段納入到整體的最優化過程中,且模型中有大量的參數需要人為設置,限制了超分辨率重構的效果。
近年來,深度學習廣泛應用于計算機視覺和圖像處理領域,卷積神經網絡是深度學習的一種典型框架。2014年,Dong等[9]率先將卷積神經網絡應用于超分辨率重構任務中,建立了一個輸入為低分辨率圖片、輸出為高分辨率圖片的端到端的網絡模型,其重構效果相比之前基于稀疏表示的經典方法有了顯著提高。在其基礎之上,陸續提出了多種基于深度學習的超分辨率重構網絡模型[10-14]。總的來說,基于深度學習的超分辨率網絡的發展趨勢為:(1)網絡的層數越來越多,從最初的3層到目前普遍的20~30層;(2)網絡結構上的改進,如跳躍連接和循環結構的使用;(3)與結構變化相對應的網絡訓練策略的更新。
盡管深層卷積神經網絡在超分辨率重構上均取得了不錯的效果,但這些網絡的計算量較大,超分辨率重構的效率較低,難以滿足實時超分辨率重構的需要(24 fps)。針對以上不足,本文提出了一種基于分段循環卷積網絡的快速圖像超分辨率重構模型。網絡采用全局殘差結構,學習目標是高低分辨率圖片之差,即殘差圖片。不同于現有的超分辨率重構網絡模型,采用原始尺寸的低分辨率圖片作為輸入,相比使用插值后的圖片,其計算量僅為1/16(以4倍放大為例)。網絡分為特征提取和圖像重構兩部分。在特征提取部分,采用循環卷積層提取輸入圖片的特征信息;使用跳躍連接將提取到的局部特征和全局特征串聯作為圖像重構部分的輸入,便于充分提取輸入圖片的先驗信息。在圖像重構部分,采用并行的1×1的卷積結構以降低輸入通道數,減少了特征降維過程中的信息丟失;最后利用亞像素卷積層重組特征,以得到相應的高分辨率圖片。實驗結果表明,提出的算法不僅在超分辨率重構性能上有了一定提高,而且大幅降低了深層卷積神經網絡的計算量,在實驗平臺下將一張32×32像素的模糊圖片轉化為128×128像素的清晰圖片所需時間為0.0 156 s(64 fps),滿足實時重構的要求。
高、低分辨率圖像間的轉化過程可以由圖像降質模型來描述。具體地,用X∈R N L來表示低分辨率圖像,Y∈R N H來表示原始的高分辨率圖像。這里X與Y都是以一維向量的形式來表示,N L與N H對應著各自圖像所包含的像素總數,顯然有N L<N H。關于高低分辨率圖像間的聯系可以用如下數學模型來表示:

式中:H:R N H→R N H表示模糊算子;S:R N H→R N L表示下采樣算子;v表示附加的高斯白噪聲,v~N(0,σ2I)。
在這里,假設模糊算法H對原始圖像進行了低通濾波操作,模擬了如光學畸變、圖像混疊、運動模糊等實際情況;下采樣算子S對原始圖像進行了指定倍數的下采樣操作;v模擬了整個光電成像系統中可能出現的光子噪聲、暗電流噪聲等隨機噪聲。
基于深度學習的圖像超分辨率重構的實質是建立一個從模糊圖像到清晰圖像的卷積神經網絡,用f W表示,其中W={w1,w2,…,w n},表示待學習的參數。則對于輸入的模糊圖像x,經過卷積神經網絡后的預測圖像y︿可以表示為:

定義損失函數l(W),用于衡量預測圖像y︿和作為基準的清晰圖像y之間的差異。神經網絡訓練或者優化過程的實現是經過前向傳播計算損失函數,根據損失函數的值反向推導,進行相關參數W的調整,使得損失函數最小化。損失函數的值越小,則預測圖像越接近作為基準的清晰圖像,即所構建的神經網絡模型效果越好。整個過程如圖1所示。綜上,基于深度學習的圖像超分辨率重構算法的設計流程如下:
(1)根據圖片的特征以及實際需要,設計用于超分辨率重構的網絡;
(2)定義訓練過程中的損失函數,用于衡量預測圖片和參照圖片的相似度;
(3)根據設計的網絡結構,確定合適的參數初始化方式以及參數更新方法;

圖1 基于深度學習的超分辨率重構原理示意圖
(4)對網絡中的所有參數進行初始化賦值,將預處理后的訓練圖片輸入網絡,根據定義的損失函數和參數更新方法訓練網絡;
(5)將用于測試的模糊圖片輸入到訓練好的網絡中,對超分辨率重構性能進行評測。
網絡的基本結構如圖2 所示,其中Conv表示卷積操作,Bias表示偏置操作,使用PReLU[15]作為激活函數,粗線部分表示循環卷積層,d是循環的次數,concatenate 表示特征在通道數上的級聯,reshape表示亞像素卷積層,每一個卷積層下方括號中第1個數字表示卷積核的大小,第2個數字表示卷積核的數量。采用全局殘差結構[11],輸入的低分辨率圖片經過主體網絡得到相應的殘差圖片,再將殘差圖片與原始圖片雙三次插值后的結果進行元素相加,得到最終的高分辨率預測圖片。主體網絡由兩部分組成:特征提取網絡和圖像重構網絡。特征提取網絡采用循環卷積層來提取低分辨率圖像的特征信息,并通過跳躍連接[12]將每一個卷積層提取到的局部特征級聯起來,作為一個整體輸入到圖像重構網絡。圖像重構網絡采用并行的1×1 的卷積層[16]對提取到的特征進行降維,并通過一個濾波器數量等于放大尺度平方的卷積層進行特征重組,最后通過亞像素卷積[10]得到相應的殘差圖片。特別地,使用原始尺寸的低分辨率圖像作為主體網絡的輸入,直接在低分辨率圖像空間提取特征信息。相比插值后的圖片[9,1113],使用原始尺寸的圖片大大降低了網絡的計算量,提高了網絡的運算速度。

圖2 網絡的基本結構
特征提取網絡的作用是將輸入的模糊圖片轉化為一系列的特征映射,便于后續的圖像重構。為了提高超分辨率重構的質量,最直接的方式就是增加卷積網絡的層數,以提高網絡的有效接收域,使得網絡在預測缺失的高頻細節時有更多可以利用的紋理信息。然而一味地增加卷積層的數量,會增加參數量,易導致模型過擬合。因此引入循環卷積的思想,通過反復使用同一個卷積層,在不增加參數的前提下,提高網絡的學習能力。針對循環卷積網絡在訓練過程中可能產生的梯度爆炸/消失問題,采用跳躍連接[12]將每一次循環卷積的結果直接傳送到特征提取網絡末端,并通過級聯的方式進行整合,作為圖像重構網絡的輸入。則級聯后的特征通道數c可以表示為:

式中:d表示循環卷積的次數。
由于級聯后的特征維數較高,直接對其重構的計算量較大。因此,在圖像重構網絡的前端加入1×1的卷積層以減少通道數。采用并行的網絡結構[16],一路直接用64個1×1的卷積核進行特征降維;另一路先用32個1×1的卷積核進行降維,再用32個3×3的卷積核進一步提取深層信息,最后將兩路的卷積結果進行級聯,并傳遞到后續網絡。相比傳統的鏈式結構,并行結構可以提高網絡的學習能力,同時降低網絡的參數量和計算量。最后需要將高分辨率特征轉化為指定大小的高分辨率圖像。以4倍放大為例,先用16個1×1的卷積操作改變輸入特征的通道數,再通過亞像素卷積操作[10],將特征中的元素按照特定位置,周期性插入到高分辨率圖像中,以得到相應的高分辨率殘差圖像。

式中:W為網絡參數的集合;n為小批量訓練的樣本數。
為防止模型過擬合,在損失函數中加入基于L2范數的正則化項,正則化系數為10-4。最終的損失函數為:

參數初始化是高質量超分辨率重構網絡設計中的重要環節,直接影響到網絡模型的訓練以及最終的重構效果。如果參數W的初始值太小,那么圖像信號在網絡傳遞的過程中逐漸縮小,難以產生作用;如果參數W的初始值太大,那么圖像信號在網絡傳遞的過程中會層層放大,導致網絡的發散和失效。參數初始化的目的是讓每一個卷積層的輸入和輸出都保持良好的高斯分布,便于網絡模型的訓練。
網絡權重的初始化情況如下:所有的卷積參數均采用He初始化方法[15],所有的偏置以及PRe LU中的參數α都初始化為0。在訓練階段,對每個卷積層中PRe LU的輸出進行p=0.8的dropout操作[17],以概率p將非線性激活函數的輸出置0。在測試階段,再將每一個卷積層的輸出乘以(1-p)。損失函數的優化器選用Adam[18],初始學習速率為2×10-3,如果損失函數的值連續5個迭代周期沒有減少,那么就將學習速率除以2。當學習速率低于2×10-5的時候,停止訓練。實驗所用的圖形處理器(GPU)為GTX 1070,處理器為i7-7700,整個訓練過程大約需要70 h。
DIV2K 數據集[19]是目前圖像重構領域廣泛使用的標準數據集之一,它包含1 000張較高分辨率的清晰圖片(2 000×2 000像素)。實驗中為確定網絡的最佳循環次數d,將其中的800張圖片作為訓練集,另200張圖片作為確認集。對于d的不同取值,在同一個訓練集上進行訓練,并通過確認集評價其重構效果,以確定最佳循環次數。在比較不同方法的圖像重構性能時,則采用以下標準數據集:Set5[20],Set14[21],B100[22]和Urban100[23](數字表示該數據集中的圖片數量)。
訓練階段采用了數據增強的方式,以提高樣本的豐富度。將訓練集中的每一張圖片分解為128×128像素的小圖像塊,每個圖像塊之間略有重疊,再對這些圖像塊進行90°、180°、270°的順時針旋轉以及水平鏡像翻轉。然后將數據增強后的圖像塊從RGB色彩空間轉換到YCbCr色彩空間,因為顏色對于超分辨率重建的影響不大,所以后續的卷積操作和性能評估都是在亮度通道Y 上進行。對圖像塊進行高斯模糊濾波,得到相應的低分辨率圖像塊尺寸為32×32像素。由于采用的網絡是全卷積網絡,所以在顯卡內存允許范圍內,輸入的圖片可以為任意尺寸。
本節通過實驗確定最佳循環次數,分別比較循環次數d為1次(即普通卷積層)至15次時,網絡超分辨率重構的性能。實驗在確認集上進行,采用峰值信噪比(PSNR)作為評價指標:

式中:σPSNR單位是dB,σPSNR的值越大,超分辨率重構效果越好;eMS表示重建圖像與參考圖像的均方誤差。
PSNR 實驗結果如表1所示。

表1 不同循環次數下的超分辨率重構性能對比
實驗結果表明,相比普通的卷積層(即循環次數為1),加入循環結構可以有效提高超分辨率重建的性能。剛開始隨著循環次數的增加,測試集的平均峰值信噪比不斷提高;當循環次數d=9時,在測試集上的峰值信噪比達到最大值,表明此時的超分辨率重構質量最好;繼續增加循環的次數,則在測試集上的峰值信噪比急劇下降,原因可能是現有的參數初始化和更新方式并不能完全適應過于深層的網絡結構。最終確定網絡的循環次數d=9。
本節采用主客觀評價相結合的方式,將提出的方法與主流的超分辨率重構方法進行比較,全面客觀地反映出所提方法的性能。
在4倍放大率下進行重構圖像的主觀評價,部分測試結果如圖3所示。相比輸入的模糊圖片以及簡單雙三次差值得到的圖片,經過深度學習框架重構后的圖片細節紋理更加突出。

圖3 部分圖片的重構結果
通過峰值信噪比(PSNR,單位dB)進行客觀評價,將提出的算法與目前具有代表性的幾個超分辨率 模 型(SRCNN[9]、ESPCN[10]、VDSR[11]、DRCN[12]、SRResNet[13])進行對比,在不同測試集下的結果如表2所示。

表2 提出的算法與其它超分辨率重構網絡的對比
由于上述方法采用的軟件和測試平臺不同,故引入計算復雜度[24],用于比較超分辨率重構的效率。各方法的峰值信噪比均值以及計算復雜度關系如圖4所示。

圖4 提出的算法與其它超分辨率重構網絡的對比
實驗結果表明,提出的超分辨率重構網絡在性能上明顯優于SRCNN、ESPCN等淺層卷積網絡,且在網絡計算量方面遠遠低于VDSR、DRCN、SRResNet等深層卷積網絡。在實驗平臺設備上將32×32像素的模糊圖片轉化為128×128像素的清晰圖片,所需的平均時間為0.015 6 s(64fps),滿足實時性的要求。
提出了一種快速圖像超分辨率重構網絡模型。模型采用原始尺寸的低分辨率圖像作為輸入,大幅減少了網絡的整體計算量。通過對特征提取網絡中循環卷積次數的最優化設計,在保證網絡結構精簡的前提下,提高了網絡的超分辨率重構性能。實驗結果表明,提出的模型在實驗平臺設備上將32×32像素的模糊圖片轉化為128×128像素的清晰圖片,所需的平均時間為0.015 6 s(64 fps),滿足實時性的要求。未來該技術有可能應用于雷達圖像或者衛星遙感圖像的重構及相關處理。