王素玉,楊 靜*,李 越
(1.北京市物聯網軟件與系統工程技術研究中心(北京工業大學),北京 100124;2.北京工業大學信息學部,北京 100124)
圖像的超分辨率復原技術指的是將給定的低分辨率圖像通過特定的算法恢復成相應的高分辨率圖像。近年來,深度學習在各種計算機視覺問題上表現優異,因此許多學者開始設計用于圖像超分辨率復原的深度網絡結構。2016 年Dong 等[1]使用一個簡單的3 層超分辨率神經網絡(Super Resolution Convolutional Neural Network,SRCNN)成功地將卷積神經網絡引入到超分辨率重建中,同時證明卷積神經網絡可以直接學習從低分辨率圖像到高分辨率圖像的端到端的非線性映射,在不需要傳統方法所要求的人工特征的條件下就可以取得很好的效果。在圖像超分辨領域,目前大多數最新的方法都是基于卷積神經網絡(Convolutional Neural Network,CNN),網絡的深度對算法性能的提高具有重要意義,但過深的網絡卻難以訓練。信息蒸餾網絡(Information Distillation Network,IDN)[2]有著輕量級的參數和計算復雜度,該網絡模型中包含三個部分,即特征提取模塊、堆疊的信息蒸餾模塊、重建模塊。信息蒸餾模塊是該網絡的核心,利用蒸餾模塊逐漸提取大量有效特征來復原超分辨率圖像,IDN 通過壓縮網絡中特征圖通道維度的方式,在減小網絡參數、提高速度的情況下,還保證了復原的結果。但是,該網絡對不同位置和通道特征的差異化利用能力尚顯不足,算法性能仍存在一定的提高空間。
本文在對現有工作進行全面分析和總結的基礎上,設計了一種基于雙注意力機制的信息蒸餾網絡,在網絡模型的基礎上增加通道注意力(Channel Attention,CA)和空間注意力(Spatial Attention,SA)模塊,可以有效地將通道注意力和空間注意力融合起來,使網絡專注于更有用的信道并增強辨別學習能力,提升算法精度。此外,將L1 損失函數和多尺度結構相似(Multi-Scale Structure SIMilarity,MS-SSIM)損失函數結合起來構建混合損失函數[3],加速網絡收斂,提高圖像復原質量。通過提出的圖像超分辨率算法得到最終的高分辨圖像,在Set5、Set14、BSD100 和Urban100 測試集的實驗結果表明,本文算法得到的高分辨率圖像在客觀指標和主觀視覺上都有明顯提高。
綜上所述,本文的主要工作如下:
1)設計了一種基于殘差注意力模塊(Residual Attention Module,RAM)的信息蒸餾網絡架構,使網絡專注于更有用的信息并增強辨別學習能力,提升算法對高頻細節的重建能力,通過考慮通道之間的相互依賴性來自適應地重新調整特征。這種機制允許網絡專注于更有用的信道并增強辨別學習能力,提升超分辨率復原的能力。
2)設計了一種混合損失函數。MS-SSIM 容易導致亮度的改變和顏色的偏差,但它能保留高頻信息(圖像的邊緣和細節)[4],而L1 損失函數能較好地保持亮度和顏色不變化,因此本文提出將L1 損失函數和MS-SSIM 損失函數結合起來構建混合損失函數,加速網絡收斂,提高圖像復原質量。
超分辨率復原是圖像處理領域的經典任務之一,近年來得到了廣泛的研究。典型的算法包括基于頻域和空域的算法等。2010 年Yang 等[5]開創性地將稀疏表示理論應用于圖像的超分辨率復原,通過學習的方式建立高低分辨率圖像間一一對應的冗余字典,實現圖像中高頻細節的重建。隨后,Zeyde 等[6]在Yang 的基礎上進行改進,利用主成分分析對訓練樣本進行降維,并使用K-SVD(K-Singular Value Decomposition)算法進行字典訓練,進一步提高字典訓練的效率,從而獲得具有更高質量的重建圖像。
傳統學習方法利用訓練集隱式地學習圖像的某些先驗知識,但是難以學習圖像深層次的紋理特征,在圖像紋理細節比較豐富的地方會出現模糊的現象。而深度學習的方法,可以利用卷積神經網絡(CNN),主動地學習圖像中的特征以及高分辨率圖像和低分辨率圖像之間的映射關系。從卷積層提取特征的可視化結果可以看出,通過卷積,可以將圖像淺層的紋理信息和深層的復雜結構信息提取出來。所以,基于深度學習的超分辨率復原方法,具有比傳統學習方法更好的復原細節的能力。
Dong 等[1]在簡單的3 層卷積神經網絡模型(SRCNN)基礎上,設計更深層的網絡,但并未發現較好的性能,因此他們得出深層網絡并不會導致更好的性能的結論。Kim 等[7]提出了一個20層的基于VGG網絡的深層卷積網絡預測殘差圖像,并且驗證了隨著層數的增加,模型性能會得到很大的提升。盡管這些方法有效地改善了復原后圖像的質量,但是對圖像中存在的邊緣信息丟失等問題考慮得不夠充分。圖像邊緣是重要的結構性信息,人的視覺系統也對它相當敏感。邊緣特征可以為圖像的超分辨率復原提供有價值的導向。Noh 等[8]提出了用于語義分割的反卷積網絡(DeconvNet),通過在VGG卷積網絡后使用一個多層的反卷積網絡產生輸入圖像的逐像素(pixel-wise)預測,實現目標邊緣的精準預測,可以有效地解決目標邊緣細節丟失等問題。Lim 等[9]設計了一種增強的深度超分辨率復原網絡(Enhanced Deep ReSidual network for single image super-resolution,EDSR),通過堆疊更多的網絡層構造更深層的卷積網絡,并且從每層取更多的特征以復原圖像。現有研究表明,在圖像超分辨率領域,卷積神經網絡的深度非常重要,但過深的網絡卻難以訓練,隨著網絡的深度和寬度增加,基于CNN 的超分辨方法面臨著計算和內存的問題。為解決這個問題,Hui 等[2]提出一個深但簡潔的卷積網絡IDN,直接從原始的低分辨圖像來復原高分辨圖像。IDN在保證模型精度的基礎上,明顯提高了網絡執行速度;但是,低分辨率的輸入以及包含豐富特征的低頻信息,卻在通道間被平等對待,制約了網絡的表示能力。
鑒于對上述研究的深入分析,本文基于信息蒸餾網絡(IDN)模型,設計了一種基于RAM 的信息蒸餾網絡,通過引入注意力模塊RAM,將在信息蒸餾模塊生成的大量有效信息區別對待,從而進行更加自適應和有效的訓練。在此基礎上,為了提高網絡的收斂速度和圖像復原質量,設計了一種基于MS-SSIM 和L1 相結合的混合損失函數。本文設計的網絡結構有效地提高了圖像超分辨率復原的能力。
本文所提網絡直接從原始的低分辨圖像來復原高分辨圖像,其基本網絡結構如圖1 所示。
圖1 基于RAM的網絡結構Fig.1 RAM-based network structure
本文所提網絡是在信息蒸餾網絡的基礎上,引入注意力模塊,整體網絡結構中包含三個部分,即特征提取模塊、堆疊的信息蒸餾模塊(DBlockN′)和重建模塊。首先通過特征提取模塊(FBlock)從低分辨率圖像中提取特征。然后經過信息蒸餾模塊對所提取的特征進行篩選,每個信息蒸餾模塊中包含一個提升單元和一個壓縮單元:提升單元主要包括兩個淺層卷積網絡,用于混合兩種不同類型的特征;而壓縮單元利用1×1 卷積來實現壓縮機制,將提升單元的輸出送至1×1 卷積層,用于提取更有用的信息。信息蒸餾模塊(DBlockN′)中包含一個RAM 雙注意力模塊,在提取更多殘差信息的基礎上,通過考慮通道之間的相互依賴性來自適應地重新調整特征。最后重建模塊(RBlock)聚集所獲得的高分辨率圖像殘差表示來生成殘差圖。通過殘差圖與上采樣后的低分辨率圖進行元素間的相加操作,得到最終的高分辨率圖像。
大多數基于CNN 來進行圖像超分辨的方法都是在內部同等地處理所有類型的信息,這可能無法有效地區分詳細特征間的差異性(例如低頻和高頻信息),即網絡選擇性地使用特征的能力有限。為此,本文引入了一種注意力機制。注意力機制是各種計算機視覺問題中值得注意的網絡結構之一,它允許網絡重新校準提取的特征圖,從而可以進行更加自適應和有效的訓練。網絡中引入注意力機制后的特征提取效果如圖2 所示。
圖2 注意力機制提取效果Fig.2 Extraction effect of attention mechanism
與傳統圖像分割和目標檢測任務不同,超分辨率復原過程旨在恢復圖像中損失的高頻成分,因而利用通道的高頻特性來學習注意力更加合理。基于此,本文采用殘差注意力模模塊(RAM)該模型針對超分辨率復原過程的特點,采取方差池化的方法預測通道注意力圖[10],空間注意力則通過不同的濾波器提取圖像中的邊緣和紋理信息,從而使網絡專注于更有用的信道并增強辨別學習能力,提升算法精度,生成更高質量的圖像。模型結構如圖3所示。
圖3 RAM模型結構Fig.3 RAM model structure
如圖3 所示,RAM 由通道注意力(CA)和空間注意力(SA)兩部分組成,其中:CA 部分采取方差池化,求得每個通道大小為W×H的特征圖的方差,然后通過兩層神經網絡來預測注意力圖;在SA 中,每個通道代表著一種濾波器,不同的濾波器負責提取圖像的不同特征,并且采用深度可分離卷積,針對每個通道的特征分別卷積得到注意力圖。最后,將通道注意力圖和空間注意力圖相加后,經過一個Sigmoid 函數再與原特征相乘,與殘差網絡結合便得到RAM 結構[10]。
損失函數的設計是影響網絡性能的關鍵因素之一,超分辨率復原網絡中常用的損失函數有L1 和L2 兩種,分別定義如式(1)、(2):
二者都能夠準確計算每個像素的損失,其中L1 損失函數對兩張圖差異的懲罰要弱于L2 損失。有研究表明,L1 可以較好地保持顏色亮度特征。在很多情況下,利用L1 損失函數可以獲得較好的圖像質量。在IDN 中用L1 損失函數來度量預測高分辨率圖像和對應的真實圖像之間的差值。
L1 和L2 損失函數都是基于逐像素比較差異,沒有考慮圖像的結構性信息,雖然可以獲得較高的峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)指標,但與人類的主觀感知尚存在一定偏差。結構相似度(Structural SIMilarity,SSIM)指標考慮了亮度、對比度和結構等指標,更重視人類視覺感知。一般而言,將SSIM 作為損失函數,得到的結果會比L1、L2 的結果更有細節,但是會生成更多的偽信息,PSNR 值會稍差一些。
本文在傳統損失函數L1 的基礎上引入MS-SSIM 指標,MS-SSIM 是多尺度結構相似性損失函數,容易導致亮度的改變和顏色的偏差,但能保留圖像的邊緣和細節等高頻信息,而L1 損失函數能較好地保持亮度和顏色不變化。MS-SSIM+L1 混合損失函數的定義如式(3):
其中:α為0.84,由實驗[4]得出;G為高斯分布參數。
所以,將MS-SSIM+L1 混合損失函數作為網絡模型的損失函數,可以加快網絡的收斂,進一步提高網絡性能。
為了客觀評價算法的性能,本文采用PSNR 和SSIM 作為客觀評價標準。
3.2.1 數據集
本文的 訓練集 是291 數據集,包 含T91 數據集[5]和BSD200 數據集[11],共291 張圖片。為了充分利用訓練數據,在訓練之前,本文使用了3 種數據增強方法:1)將圖像旋轉90°、180°和270°;2)水平翻轉圖像;3)圖像下采樣,下采樣因子分別為0.9、0.8、0.7 和0.6。為了得到高分辨率和低分辨率圖像對,對原始高分辨率圖像進行下采樣,通過雙三次插值的方法,得到對應的低分辨率圖像。在公共測試集Set5、Set14、BSD100 和Urban100 上進行測試,得到本文實驗結果。
3.2.2 參數配置
本文中的網絡是使用Tensorflow 框架完成的。學習率初始設置為1E-4,在微調階段每次減為原來的1/10。考慮到執行時間和復原質量的平衡,本算法構建了一個31 層的網絡。網絡中包含4 個DBlocks′,提升單元中每個block 的參數分別設置為64、16 和4。為減少網絡參數,每個提升單元的第二層和第四層利用4 個分組卷積。此外,轉置卷積采用17×17 大小的濾波器為所有的尺度因子。LReLU 的negative scope 設為0.05。初始化權重時,偏置都設為0,利用Adam優化,mini-batch 大小為64,權重衰減為1E-4。
為測試分析本文設計的基于雙注意力的信息蒸餾網絡模型的性能,設計如下實驗,對所提出的方法進行了比較和分析。
1)注意力機制。
本文實 驗分別 對SE(Squeeze-and-Excitation)、CBAM(Convolutional Block Attention Module)、RAM 三種不同的注意力機制進行比較,特別針對空間和通道維度,通過實驗比較分析了空間注意力和通道注意力接入方式的影響。SE 注意力中包括壓縮模塊和提取模塊,提取的特征圖與每個通道的重要性進行相乘得到全新的特征圖[12];CBAM 注意力包括空間注意力和通道注意力兩部分,相比SE 機制,CBAM 在空間層面上也需要網絡能明白特征圖中哪些部分應該有更高的響應[13];RAM 注意力同樣包括空間注意力和通道注意力兩部分,但與CBAM 不同的是,CBAM 將空間注意力和通道注意力串行接入,而RAM 將兩部分并行接入,并和殘差結構結合,使網絡專注于更有用的信道并增強辨別學習能力。三種算法的實驗結果如表1 所示,加粗字體表示最優結果。
從表1 中可以看出,注意力模塊的加入能夠從不同程度提升算法性能,其中雙注意力模塊CBAM 和RAM 的效果優于普通注意力模塊SE 的效果,驗證了空間注意力和通道注意力結合的網絡比只有通道注意力的網絡效果更好。RAM雙注意力模塊將空間注意力和通道注意力并行組合,可以看出并行的方式對特征辨別學習能力更加有效,因此RAM 殘差雙注意力機制是本文算法的最佳選擇。
表1 不同注意力模塊結果對比Tab.1 Comparison of results of different attention modules
2)損失函數。
本文實驗分別對傳統損失函數L1 和多尺度結構相似性損失函數MS-SSIM 及混合損失函數(MS-SSIM)+L1 進行比較,三種損失函數的實驗結果如表2 所示,加粗字體表示最優結果。
表2 不同損失函數結果對比Tab.2 Comparison of results of different loss functions
本文實驗表明,多尺度結構相似性(MS-SSIM)損失函數能保留圖像的邊緣和細節等高頻信息,SSIM 值較高。L1 損失函數能較好地保持亮度和顏色不變化,PSNR 值較高。兩者相結合得到的MS-SSIM+L1 混合損失函數在提升SSIM 指標的基礎上,盡可能地保證PSNR 的指標不下降,甚至在個別實驗結果中還有所提升。因此,MS-SSIM+L1 混合函數是本文算法的最佳選擇。
3)RAM/((MS-SSIM)+L1)消融對比。
本文實驗對性能較好的注意力機制(RAM)和混合損失函數((MS-SSIM)+L1)分別進行實驗,最后再組合實驗。實驗結果如表3 所示,加粗字體表示最優結果。
表3 RAM/((MS-SSIM)+L1)消融對比Tab.3 Ablation comparison of RAM/(MS-SSIM)+L1
實驗結果證明,單獨使用注意力機制(RAM)時,PSNR 值較高;單獨使用混合損失函數((MS-SSIM)+L1)時,SSIM 值較高。兩者結合后的實驗結果可以看出,在明顯提升SSIM 值的基礎上,整體PSNR 值能夠較好地保持。因此可以得出結論,注意力機制(RAM)和混合損失函數((MS-SSIM)+L1)相結合的方案是最佳選擇。
本文給出了SRCNN[14]、VDSR(Very Deep convolutional network for image Super-Resolution)[7]、DRCN(Deeply-Recursive Convolutional Network)[15]、LapSRN(Laplacian Super Resolution Network)[16]和IDN[2]共5 種 算法,在Set5、Set14、BSD100 和Urban100 數據集上分別使用2 倍、3 倍和4 倍放大因子復原圖像的PSNR 和SSIM 指標結果。對比本文算法,結果如表4 所示,加粗字體表示最優結果。
通過表4 中實驗結果可以看出,近年來SRCNN、VDSR、DRCN、LapSRN、IDN 等超分辨率網絡,在客觀指標上不斷提升,信息蒸餾網絡(IDN)和其他網絡相比有不錯的表現。本文算法在IDN 的基礎上引入雙注意力機制和混合損失函數,從實驗結果可以看出,本文算法復原圖像的PSNR、SSIM 相比前幾種算法均有所提高,和效果較好的IDN 相比,PSNR 值平均提高0.02 dB,在個別指標上,略低于IDN。而且,因為引入MS-SSIM+L1 混合損失函數,所以在SSIM 指標上明顯優于IDN,SSIM 值平均提高了1%。整體上,本算法的性能指標優于其他算法。
表4 六種算法對比結果Tab.4 Comparison results of six algorithms
PSNR 和SSIM 作為評價超分辨率質量的傳統指標,兩者僅依賴于像素間低層次的差別,不能完全代表人類的視覺質量。為了表明本文算法相較于其他算法在主觀視覺上的差異,本文選擇了具有代表性的算法作為對比參考,各種算法復原的結果如圖4 所示。
如圖4 所示,圖4(c)、(d)和(e)分別為比較先進的超分辨率方法復原得到的圖片,圖4(f)是本文設計的網絡復原的圖片。可以看出,本文設計的網絡可以更好地恢復邊緣信息,在圖像紋理豐富的地方表現更佳。整體上,使用本文方法重建的高光譜圖像邊緣更加清晰,與原始圖像更為相近。
圖4 主觀效果對比Fig.4 Comparison of subjective effect
為了解決超分辨率復原技術面臨的計算速度慢和邊緣信息丟失的問題,本文基于信息蒸餾網絡(IDN),設計了一種雙注意力信息蒸餾網絡的圖像超分辨率復原算法。本文算法首先在保持較好精度的輕量化信息蒸餾網絡模型基礎下,引入RAM,該機制允許網絡重新校準提取的特征圖,增強網絡的辨別學習能力,有效地提升算法精度。此外,利用一個混合損失函數來提高網絡的收斂速度,提高圖像超分辨率復原的能力。通過大量的消融實驗,驗證了所設計模塊的有效性。該網絡模型在保證網絡精度的基礎上,較少增加網絡計算速度的壓力,保證計算的實時性。后續工作將考慮殘差網絡以及構建更深層次的網絡來進一步提高超分辨率復原效果。