藺國梁
(蘭州文理學(xué)院 數(shù)字媒體學(xué)院,甘肅 蘭州 730010)
圖像是人類傳遞信息最便捷的載體之一,在醫(yī)學(xué)、智能交通、安全監(jiān)控、遙感及國防等領(lǐng)域應(yīng)用廣泛.然而在實際中因為環(huán)境和成像設(shè)備的限制,圖像質(zhì)量仍不理想,不利于信息傳遞的準(zhǔn)確性和完整性.因此,如何提升圖像質(zhì)量成為研究者關(guān)注的熱點.圖像超分辨率(Super Resolution,SR)重建的主要思想是通過計算機(jī)軟件技術(shù)在原有低分辨率(Low Resolution,LR)圖像的基礎(chǔ)上,產(chǎn)生單幀或多幀邊緣和紋理清晰的高質(zhì)量、高分辨率(High Resolution,HR)圖像的過程[1-2].目前圖像SR重建方法主要有3種:基于插值的方法、基于重建的方法和基于學(xué)習(xí)的方法[3-4].基于深度學(xué)習(xí)的方法近年來受到人們的青睞,其主要思想是利用觀測到的LR圖像和原始HR圖像之間的映射關(guān)系及大量的訓(xùn)練樣本數(shù)據(jù),從中學(xué)習(xí)得到更多高頻細(xì)節(jié)的HR圖像.
2014年Dong等[5]在傳統(tǒng)方法的基礎(chǔ)上提出一種包含3層卷積的深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)實現(xiàn)圖像SR重建,即SRCNN(Super Resolution Convolutional Network)方法,并取得了良好的效果.由于卷積層較少,HR圖像預(yù)測僅依靠輸入LR圖像內(nèi)較小局部區(qū)域像素之間相關(guān)信息,模型重建精度有限.Wang等[6]在CNN模型中應(yīng)用稀疏編碼表示先驗信息,實現(xiàn)重建,提高了重建質(zhì)量并簡化了模型.Kim等[7]提出了一種帶有深度反饋信息的網(wǎng)絡(luò)模型SR方法(VSDR)運用20層的卷積網(wǎng)絡(luò)來重建HR圖像高頻信息,利用殘差學(xué)習(xí)加快網(wǎng)絡(luò)收斂速度,證明了該方法有助于超分辨率重建的性能提升.但是VSDR方法增加了訓(xùn)練和重建的時間復(fù)雜度.以上方法在圖像分塊的過程中,容易破壞圖像的整體結(jié)構(gòu),導(dǎo)致重建結(jié)果存在“網(wǎng)格化”效應(yīng),丟失圖像的高頻信息,出現(xiàn)計算復(fù)雜、重建效果不理想的問題.
基于以上問題,本文提出一種基于深度殘差卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率重建方法.該方法以LR 圖像為輸入,采用殘差卷積神經(jīng)網(wǎng)絡(luò)在 LR 空間提取特征,得到殘差圖像,最后將輸入的LR圖像與得到的殘差圖像進(jìn)行線性相加實現(xiàn)圖像超分辨率重建.
SRCNN方法是深度學(xué)習(xí)在圖像超分辨率重建中的重要方法之一,其網(wǎng)絡(luò)結(jié)構(gòu)(如圖1所示)有3層:特征提取、非線性映射和圖像超分辨率重建.
圖1 SRCNN 網(wǎng)絡(luò)框架
該網(wǎng)絡(luò)的特征提取、非線性映射和圖像HR重建3個過程的具體實現(xiàn)過程如公式(1)~(3)所示.
F1(Y)=max(0,W1*Y+B1).
(1)
F2(Y)=max(0,W2*F1(Y)+B2).
(2)
F3(Y)=W3*F2(Y)+B3.
(3)
其中:Fi(·),i=1,2,3表示圖像的特征圖,Wi,i=1,2,3是卷積核,大小為n×c×f×f,c為通道數(shù),c=1,n1=64,f1=9,n2=32,f2=1,n3=1,f3=5.*表示卷積運算,Bi,i=1,2,3為偏移向量.max(0,x)表示卷積之后的結(jié)果經(jīng)過ReLU激活函數(shù)處理,將其值取0和卷積結(jié)果的最大值為最終值,用于濾波器響應(yīng)[8].
隨著CNN網(wǎng)絡(luò)的發(fā)展,He等首次提出殘差學(xué)習(xí)網(wǎng)絡(luò)框架ResNet.殘差結(jié)構(gòu)是在網(wǎng)絡(luò)中添加一個跳躍從而繞過一些層的連接,包含一個跳躍的幾層網(wǎng)絡(luò)稱為一個殘差塊.如圖2(a)中,H(X)為理想映射,F(xiàn)(X)為殘差映射,H(X)=F(X)+X.通過將擬合目標(biāo)函數(shù)H(X)轉(zhuǎn)變?yōu)閿M合殘差函數(shù)F(X),此時,只需要F(X)=0,就能夠構(gòu)成恒等映射H(X)=X,使得擬合殘差更加容易.因此,殘差網(wǎng)絡(luò)只需要學(xué)習(xí)輸入與輸出之間的差別,將其與LR圖像的原始信息疊加,可以提高HR圖像重建質(zhì)量.由于ResNet中BN(Batch Normalization,BN)層降低了訓(xùn)練速度,會導(dǎo)致網(wǎng)絡(luò)發(fā)散和不穩(wěn)定,同時BN會破壞圖像的原始信息而影響重建圖像質(zhì)量,因此在本文研究中去除BN層,改進(jìn)后的殘差單元如圖2(b)所示.
同時,在本文殘差網(wǎng)絡(luò)中采用ELU激活函數(shù)[8],相比ReLU,ELU可以取到負(fù)值,這讓單元激活均值可以更接近0,在輸入較小值時具有軟飽和的特性,提升了對噪聲處理的魯棒性,同時能減少數(shù)據(jù)的計算量.ELU激活函數(shù)如下:
(4)
(a)ResNet 殘差單元結(jié)構(gòu)
本文網(wǎng)絡(luò)在SRCNN的基礎(chǔ)上提出了一種改進(jìn)的殘差網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)超分辨率圖像重建算法.該網(wǎng)絡(luò)共包含18個卷積層,由5部分組成:低分辨率圖像輸入、卷積特征提取、4個殘差塊組成的非線性映射部分(每個殘差塊由4個殘差單元構(gòu)成)、殘差圖像特征層和高分辨率圖像輸出層,整體結(jié)構(gòu)如圖3所示.
(1)輸入輸出層.提出的網(wǎng)絡(luò)以原始圖像作為輸入,輸出層與輸入層圖像大小一致.
(2)特征提取層.輸入圖像經(jīng)過Bicubic插值得到低分辨率圖像.特征提取由一個卷積層和一個激活函數(shù)層組成,將輸入的低分辨率圖像Y與n1個特征圖進(jìn)行特征提取,提取特征的過程可描述為:
B0=σ(W1*Y+b1).
(5)
其中:*為卷積操作,σ為ELU激勵函數(shù),W1為第一個卷積層的卷積核.在特征提取時設(shè)置卷積核大小為3×3像素,濾波器數(shù)量n1=64.在卷積操作時,對所有卷積層進(jìn)行“補(bǔ)零”操作,保證每次卷積后圖像大小不變.(3)非線性映射層.在圖像超分辨率重建中,訓(xùn)練深層卷積神經(jīng)網(wǎng)絡(luò)時,為保留不同水平的圖像特征,非線性映射過程使用局部殘差連接方式,本文在實驗中非線性映射過程由4個殘差模塊組成,每個殘差塊由4個殘差單元組成,對ResNet殘差單元進(jìn)行了改進(jìn),改進(jìn)的殘差單元可表示為:
Hm=Gm(Hm-1)=F(Hm-1,Wm)+Hm-1.
(6)
其中:Hm-1和Hm分別為第m個殘差單元的輸入和輸出;F為學(xué)習(xí)到的殘差映射,即
(7)
(4)網(wǎng)絡(luò)重構(gòu).在網(wǎng)絡(luò)最后一層設(shè)置單獨的3×3像素的卷積層作為網(wǎng)絡(luò)輸出層,通過前面殘差網(wǎng)絡(luò)輸出圖像塊的特征圖,饋送到最后的卷積層,以便產(chǎn)生與輸入圖像相同數(shù)量通道的張量.將得到的殘差圖像與輸入的插值LR圖像相加,最終融合成一個完整的HR圖像,具體重建過程如圖4所示.
(a)低分辨率圖像Y (b)殘差圖像R (C)高分辨率圖像Z
本實驗環(huán)境為Windows7操作系統(tǒng),軟件平臺為Python3.7,深度學(xué)習(xí)框架采用Tensorflow1.8版本,圖形處理采用OpenCV,硬件配置CPU為Intel(R) Core i5-4580@3.2 GHz,內(nèi)存為6GB,GPU為4GB的GTX1050.
訓(xùn)練數(shù)據(jù)集選Timofte發(fā)布的數(shù)據(jù)集DIV2K.本文選用該數(shù)據(jù)集中的800個訓(xùn)練圖像.首先將訓(xùn)練集的高分辨率圖像運用雙三次差值(Bicubic)算法縮小為原來的1/3,然后再放大,使其變成低分辨率圖像,并在訓(xùn)練過程中選取大小為32×32像素,步長為14的23 890張子圖像作為網(wǎng)絡(luò)輸入.試集采用set5、set14和BSD100數(shù)據(jù)集.
算法采用Adam梯度優(yōu)化算法[9],學(xué)習(xí)率初始化為0.0001,權(quán)重衰減參數(shù)為0.0005,網(wǎng)絡(luò)的動量參數(shù)為0.9.
為了定量表示重建結(jié)果,本文采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結(jié)構(gòu)相似度(Structural Similarity,SSIM)2個指標(biāo)作為重建效果的評價標(biāo)準(zhǔn).PSNR是通過計算圖像內(nèi)像素最大值與加性噪聲功率的比值來衡量重建圖像是否存在失真問題,其數(shù)值越大,則說明重建圖像效果越好.PSNR的計算方法如公式(8)所示.
(8)
其中,MSE表示原始圖像與處理后圖像的均方誤差,MAXI表示圖像顏色的最大值,采樣圖像的像素范圍為0255.MSE的計算公式如下:
(9)
SSIM是衡量原始圖像與處理圖像之間的結(jié)構(gòu)度、亮度和對比度的相似性,其值與1進(jìn)行比較,越接近于1,表示輸出圖像質(zhì)量越好,其計算公式如下:
(10)
其中,uI和uISR表示低分辨率輸入圖像I和重建圖像ISR的均值;σI和σISR表示I和ISR的方差;σIISR表示I和ISR的協(xié)方差;C1和C2表示防止分母趨于0的常數(shù);通常SSSIM∈(-1,0].
為了驗證本文算法的有效性,將其分別與Bicubic算法、SRCNN算法和FSRCNN算法進(jìn)行定性和定量比較.在set5數(shù)據(jù)集上圖像尺寸放大2倍、3倍和4倍后,圖像SR重建的定量比較結(jié)果如表1所列.在set14數(shù)據(jù)集上圖像放大3倍后圖像SR重建的定量比較結(jié)果如表2所列.通過PSNR和SSIM總結(jié)了幾種方法對超分辨率的重建效果.
從表1中可以看出,本文算法相較于Bicubic、SRCNN和FSRCNN算法在PSNR值上擴(kuò)大因子為2時,均值分別提升了0.432、0.778和0.63dB;擴(kuò)大因子為3時提升了0.062、0.566、0.818dB,擴(kuò)大因子為4時提升了0.32、0.6和0.772dB.在擴(kuò)大因子為2時,SSIM均值提升了0.0112、0.0288和0.0324,擴(kuò)大因子為3時提升了0.0100、0.02718和0.0213,擴(kuò)大因子為4時提升了0.01214、0.01868和0.03834.
表1 不同方法在set5數(shù)據(jù)集上的PSNR和SSIM結(jié)果(放大倍數(shù)=2,3,4)
表2 不同算法在set14數(shù)據(jù)集上的PSNR/SSIM的對比
由表2的定量數(shù)值分析可以看出,本文算法的PSNR平均值比Bicubic算法、SRCNN算法和FSRCNN算法的PSNR平均值分別提高3.01、0.04和0.74,SSIM的平均值分別提高0.0689、0.0035和0.0291.實驗結(jié)果較好地驗證了本文算法的有效性,在一定程度上增強(qiáng)了重建圖像的紋理信息和清晰度.
圖5~7分別為在set14種的Baboon、Face和Pepper進(jìn)行3倍尺寸放大后不同算法的視覺效果比較,比較結(jié)果如圖5~7所示.
從圖5~7可以看出本文算法重建出的圖像較為清晰,細(xì)節(jié)更為豐富,并對噪聲有一定的抑制作用.
(a)原圖 (b)BIcubic (c)SRCNN (d)本文方法
(a)原圖 (b)Bcubic (c)SRCNN (d)本文方法
(a)原圖 (b)Bicubic (c)SRCNN (d)本文方法
本文提出了一種改進(jìn)殘差網(wǎng)絡(luò)的單幅圖像超分辨率重建算法.該網(wǎng)絡(luò)包含18個卷積層,改進(jìn)了ResNet的殘差單元,移除BN層,有效抑制了圖像空間信息的破壞.采用ELU激活函數(shù),具有修正數(shù)據(jù)分布以及加速收斂的優(yōu)點,同時又不完全丟失特征.改進(jìn)后的殘差網(wǎng)絡(luò)較好地抑制了網(wǎng)絡(luò)退化問題,并大大提高了收斂速度.實驗結(jié)果表明本算法在重建效果和客觀指標(biāo)上均優(yōu)于其他3種方法,不僅獲得圖像更多的紋理信息和邊緣細(xì)節(jié),而且重建效果真實.