張華成 紀 飛 鐘曉雄 陸 瑛
1(桂林電子科技大學計算機與信息安全學院 廣西 桂林 541000) 2(廣西中煙工業有限責任公司信息中心 廣西 南寧 530001)
單幅圖像超分辨率重建(Single Image Super Resolution Reconstruction,SISR)的目標是將輸入的低分辨率圖像(LR)重建為高分辨率圖像(HR),以修復由于硬件限制或者不良的外界環境在圖像采集時造成的圖像顯示不清晰、圖像質量低等問題[1]。由于SISR能夠復原圖像的部分高頻細節,這項技術便被廣泛應用于從安全和監視成像到醫學成像等需要按需提供更多圖像細節的領域。
目前為止SISR的研究者們已經提出了許多方法用于提升圖像重建的效果,依據這些方法的性質,可以將它們分為三類:基于插值的方法[2]、基于重建的方法[3]和基于學習的方法[4-8]。基于插值的方法主要是利用現有的圖像像素點的周邊信息,在中心點的四周插入像素值進行重建。盡管基于插值的方法計算速度快,然而該類方法通常提供過于平滑的重建圖像,留下了振鈴效應,視覺效果較差。基于重建的方法如迭代反投影法、凸集投影法、最大后驗概率估計法等,都是基于信號處理理論實現成像原理的逆過程,將在成像過程中丟失的高頻信息復原。這類方法可以恢復出相對清晰的圖像,但是通常也會忽略少許細節方面的內容。由于深度學習的不斷發展促使基于學習的方法逐漸成為SISR重建研究任務中的主要方法,這類方法主要通過神經網絡去學習LR圖片和HR圖片之間的映射模型,而后利用習得的模型完成圖像的超分辨率重建。其中Dong等[9]首次把深度學習的方法使用于單幅圖片超分辨率重建(SRCNN)任務上,后來他們又在SRCNN的基礎上做出改進,即并沒有把原始LR圖像進行插值放大后才作為輸入放進網絡,而是直接把LR圖像放入網絡中,然后在整個網絡結構的最后一層使用反卷積層實現比例的擴大,減少了網絡的參數,提升了網絡的運算速度(FSRCNN)[10]。Kim等[11]將殘差網絡(ResNet)[12]的思想引入SISR的工作中來,并在訓練過程中,使用不同比例大小的圖片同時訓練,旨在建立一個多尺度的超分辨重建模型,但是該方式重建的HR圖片視覺效果并不是很好,細節恢復較差(VDSR)。Kim等隨后將循環神經網絡(RNN)用于超分辨問題中,同時利用殘差的思想提升了性能,但是與VDSR兩者的效果非常接近(DRCN)[13]。但是,值得注意的是,上述基于學習的SISR重建方法,在學習映射模型過程中所使用的輸入樣本,都是HR圖像通過Bicubic方法下采樣得到,但是實際應用中,會包含多種退化因素,比如圖片模糊不清、因環境或硬件導致的噪聲等,這些都會對習得的網絡模型的泛化能力有不同程度的影響,使得模型在測試集甚至真實場景的使用中表現得不如人意。
針對上面提到的問題,本文設計一種更加有效的圖像超分辨率重建方法:通過在Bicubic下采樣退化得到的LR圖像輸入網絡模型前加入高斯模糊核,以增強下采樣圖片與真實低分辨率圖片的相似度,進而提高模型的重建效果,并在網絡中使用全局殘差結構,只學習HR圖片和LR圖片的差值信息,提升網絡性能,在網絡末端使用亞像素卷積層(pixel shuffle)[14]進行上采樣,實現HR圖像重建。最終的實驗結果顯示,與類似的方法相比,本文方法有著更快的網絡收斂速度、更好的重建效果。
SRCNN建立了三層神經網絡模型,本文提出的SISR方法是在SRCNN的基礎上,以其三層結構的網絡模型為原型,利用全局殘差的思想進行訓練。這個三層結構可以用如下三個階段描述:
(1)特征提取階段。在低分辨率圖片(LR)輸入網絡前,與一個高斯模糊核進行卷積操作,獲得LR圖片對應的高斯模糊退化圖(GLR),然后將GLR圖片通過復制填充法放大至與輸入的LR圖片同樣尺寸,作為偽噪聲源;其次將LR圖片與一個通道數為64的3×3的小卷積核卷積,從而得到一個通道為64的特征圖,完成特征提取。
(2)非線性映射階段。將特征提取階段獲得的特征圖與多個同樣大小的卷積核串聯卷積,完成非線性映射,進而提高網絡的擬合能力,此處我們將通過非線性映射的特征圖稱為FLR。
(3)重建階段。將LR圖片、GLR圖片、FLR進行維度統一化處理,以全局殘差的方式完成信息融合,再利用亞像素卷積進行最后的圖像放大操作,從而得到最終的重建HR圖像。
本文算法的網絡結構如圖1所示。
為了改善超分辨率重建任務的僅采用插值法降采樣得到LR圖片的問題,提高模型的泛化能力,本文引入了高斯模糊核,高斯模糊[15]也叫高斯平滑,它將圖片按中心劃分,讓每個像素點對應的權重值隨著它們到中心點距離的不同而改變,這個特點是利用正態分布實現的。該分布的一維形式是:
(1)
式中:?代表θ的均值;φ是θ的方差。因為計算平均值的時候,中心點即是原點,所以?等于0。根據其一維函數,推導得到的二維函數為:
(2)
式中:G(θ,y)即為本文所使用的模糊核。
本文通過將高斯模糊核與插值法降采樣得到的LR圖片卷積,提取模糊信息,來增強訓練使用的LR圖片特征,提高泛化能力,該過程如式(3)所示。
L=(H↓s)?G(θ,y)
(3)
式中:?表示原始的高分辨率圖片H降采樣后與高斯模糊核G(θ,y)的卷積操作;↓s表示縮放比例為s的下采樣操作;L為通過高斯模糊核提取的模糊特征圖。
由于在圖像處理任務中,特征提取的等級隨著網絡深度的加深而變高,且網絡結構的深度越深該網絡獲取的特征就越多。因此在非線性映射階段,本文采用了18個3×3×64的卷積核串聯的深度特征提取結構,通過加深網絡深度來提高網絡特征提取能力;每層網絡通過使用修正線性單元函數ReLU來加快網絡收斂。
一般情況下,一個網絡模型的深度與重建的效果成正比,不過伴隨著深度的加大,如梯度消失、梯度爆炸等訓練過程中常見的問題也就顯現出來,而殘差網絡則很好地處理了這些問題。殘差網絡最重要的組成是殘差學習單元,在一個多層神經網絡中,假設它的輸入是X時,其輸出記為H(X),各個網絡層之間主要學習到的是F(X)=H(X)-X,即輸入與輸出之間的差值,在網絡進行訓練的過程中,輸入值保持不變,作為恒等映射直接與網絡層學習值相加,這樣網絡學習特征所需要的參數大量縮少的同時也保證了深層網絡的有效性。一個殘差單元可以用式(4)表示。
Y=(x,{Wi})+Wsx
(4)

圖2 殘差單元結構
為了減少網絡的參數,提升訓練速度,在網絡末端才對圖像進行放大,因此通過卷積神經網絡學習獲取的特征圖只是原始輸入LR圖像的比例大小。然而常用的特征圖放大算法如插值法、反卷積法通常會帶入過多的人工因素,而使用亞像素卷積層會大大降低這個風險。亞像素卷積層的做法是:假設對原圖放大s倍,那么就生成s2個相同尺寸的特征圖,然后將特征圖每個像素的s2個通道重新排列成一個s×s的區域,對應HR圖像中的一個s×s大小的子塊。假如原始圖像高為H、寬為W,那么網絡末端生成的特征圖大小可以表示成H×W×s2,通過亞像素卷積層后可表示為則sH×sW×1,即我們需要的高分辨率圖片的比例大小。
本文選用L1范數[16]損失函數作為整個網絡模型的目標函數,該損失函數把目標值Yi和估計值f(xi)的絕對差值的綜合S最小化。其表達式如下:
(5)
L1范數相對于其他損失函數能夠讓重建結果得到一個更高的峰值信噪比(PSNR),而一般情況下經SISR后得到的圖像的PSNR越高,說明模型的效果也就越好。
本文實驗使用的系統是Ubuntu16.04,整個實驗所使用的是在系統上搭建的Pytorch框架,在PyCharm上進行實驗測試。電腦的硬件配置為Intel?CoreTMi7-8700 CPU @ 3.20 GHz×12,NVIDIA TITAN Xp/PCIe/SSE2。使用DIV2K[17](包含800幅2K分辨率的圖片)數據集作為訓練集,為了提升訓練效果,對DIV2K數據進行數據增強:將圖片塊進行水平、垂直方向的翻轉以及90°、180°、270°的旋轉。
本文分別在放大倍數為2、3、4的時候與Bicubic、SRCNN、文獻[18]、DRSR[19]、VDSR算法在不同測試集下進行比較。使用Set5、Set14、BSD100三個基準測試集對算法的效果進行驗證。訓練過程中在原始圖像輸入網絡前裁剪為64×64的子像素塊,并將它與相對應的HR圖像的像素塊組成訓練數據。本文算法實驗的學習率設置為1e-4,每經過2×105的小批次更新便將學習率減半;在訓練數據迭代時,使用Adam對網絡中各個層的權重進行更新。
在相同的網絡參數設定以及同樣的訓練批次下(均為200次),相比于常用的損失函數均方誤差(MSE),以放大比例為2倍的重建任務中,在Set5測試集下,L1范數損失函數和MSE損失函數的PSNR值如圖3所示。

圖3 L1范數損失和MSE損失效果
可見,L1范數損失比MSE損失有著更高的起點、更快的收斂速度,以及更高的PSNR值。
一般情況下卷積核的尺寸越大,則其感受野就越大,獲得的圖片信息就越多,特征獲取得也就越好。但是大的卷積核會導致計算量增加、性能降低。而考慮到高斯模糊核的選擇是固定的,即不隨網絡的反向傳播而更新權重,因此在高斯模糊核的尺寸上,可能不遵循一般卷積核尺寸的選擇規律,所以本文在以損失函數為L1范數損失、放大比例為2倍、測試集為Set5的前提下分別對比了不同尺寸的高斯模糊核對實驗結果的影響,如表1所示。

表1 不同尺寸高斯模糊核在Set5測試集下的PSNR平均值
可以發現,在尺寸為5×5的高斯模糊核下,可以獲得更高的PSNR。
與其他方法類似,本文采用PSNR(峰值信噪比)作為重建的HR圖像質量的客觀評價指標。原始HR圖片Y和經算法重建得到的圖片Y′相對應的PSNR(dB)計算公式如下:
(6)

(7)
式中:I表示一個大小是m×n的原始的HR圖片;K表示通過網絡模型后得到的圖片;m、n分別代表圖片的寬和高。由于網絡深度的加深以及增加了多方信息融合,本文算法的PSNR平均值與傳統的Bicubic算法相比有明顯的提高,相比于其他基于CNN的算法也均有提高,實現了更好的重建效果。本文算法在放大倍數為2的時候,比其他對比算法有更大的差值,使用Set5作為測試集時,重建圖片的PSNR平均值達到了37.65 dB,相比于最原始方法提高了3.99 dB。不同算法在不同測試集中以2倍、3倍、4倍的比例放大時的PSNR值分別如表2-表4所示。

表2 不同算法在測試集Set5的PSNR平均值 單位:dB

表3 不同算法在測試集Set14的PSNR平均值 單位:dB

表4 不同算法在測試集BSD100的PSNR平均值 單位:dB
圖4、圖5展示了本文方法與其他幾種方法在測試集Set5中的部分圖像以2倍放大比例下的重建效果。通過對圖4、圖5的觀察可以發現:本文方法在進行SISR時,相比其他幾種方法有更好的重建結果和更清晰的細節表現。

(a)原始HR圖片 (b)文獻[18]

(a)原始HR圖片 (b)文獻[18]
本文針對圖像超分辨率重建過程中退化模型單一的問題(主要通過Bicubic對HR圖像進行下采樣),提出了基于高斯噪聲的CNN的單幅圖像超分辨率重建方法,通過Bicubic下采樣與高斯模糊核結合,初始化網絡輸入圖片,并使用殘差網絡學習LR圖像和HR圖像之間的殘差信息,然后將模型習得的殘差信息、Bicubic插值降采樣信息、高斯模糊后的信息融合,最后使用亞像素卷積層,即不需要將輸入的LR圖像經插值擴充至與目標HR圖像同樣的像素大小,從而降低了模型的計算量。實驗表明,相比于Bicubic、SRCNN、文獻[18]、DRSR、VDSR等方法,在不同放大倍數下,本文方法均實現了較好的重建效果。但本文只在加深網絡深度的同時,通過高斯模糊結合Bicubic降采樣的方式實行全局殘差信息融合,未來將在如噪聲、翹曲等退化方式和低頻信息、高頻信息的融合方式上繼續研究,進一步提高超分辨率的重建效果。