杜均森, 郭杰龍, 俞輝, 魏憲
(1.福州大學 先進制造學院, 福建 泉州 362000;2.中國科學院 福建物質結構研究所, 福建 福州 350108;3.中國科學院 海西研究院 泉州裝備制造研究中心, 福建 泉州 362000)
圖像超分辨率重建是通過某種映射將低分辨率(Low Resolution,LR)圖像重建出具有豐富細節(jié)的高分辨率(High Resolution,HR)圖像的技術[1],在許多領域中得到廣泛的應用,例如視頻網絡、眼底影像處理和衛(wèi)星遙感等。目前主流的圖像超分辨率重建算法主要可以分為兩大類:基于傳統(tǒng)的算法[2]和基于學習的算法[3]。傳統(tǒng)算法包括基于插值和基于重建的算法,在圖像超分辨率上取得了一定的效果。其中,基于插值的算法包括最近鄰插值、雙線性插值[4]、雙立方插值[5]等,只是簡單地增加對像素點,并沒有充分利用圖像的先驗信息,難以恢復圖像細節(jié);基于重建的算法[6]包括凸投影集算法[7]和迭代反向投影算法[8],這類算法需要明確的先驗信息并增加一些附加操作,導致計算量較大,效率較低。因此基于傳統(tǒng)的超分辨率重建算法仍未能滿足人們對圖像分辨率提升的期望。
基于學習的算法通過機器學習算法學習到先驗知識,能夠更準確地捕獲低-高分辨率圖像特征之間的映射關系,從而極大地提升超分辨率重建的效果。目前常用的基于學習的算法主要有稀疏表示和深度學習。圖像的稀疏表示作為先驗知識,可以揭示圖像的主要幾何結構特征和分布,更有效地表示圖像和保留高頻結構信息,能夠勝任各種視覺任務,例如人臉識別[9]、超分辨率重建[10]和去噪任務[11]等。Yang等人[12]認為不同分辨率圖像的稀疏表示應當線性一致,通過學習高分辨率圖像和相應的低分辨率圖像之間的字典對獲取對應的稀疏表示,利用稀疏表示恢復缺失的高頻信息,進而重建出超分辨圖像。Zeyde等人[13]在Yang的基礎上對特征提取算子進行了改進,通過采用字典學習算法學習字典,并使用正交匹配追蹤法進行稀疏求解?;谙∈璞硎镜某直媛手亟夹g已經較為成熟,稀疏表示可以提供足夠的圖像高頻信息,且具有較強的噪聲抗干擾能力。稀疏編碼雖然在重構圖像上有著優(yōu)秀的表現(xiàn)和深刻的物理意義,但其仍具有計算開銷大、訓練時間長的問題。
卷積神經網絡已經成為有效解決許多具有挑戰(zhàn)性問題的工具[14],在安防監(jiān)控、光學成像[15]、全息投影[16]等領域得到廣泛的應用。因此,學者們開始研究如何利用效率更高的卷積神經網絡進行超分辨率重建,如SRCNN(Super-Resolution using Convolutional Nerural Network)[17]、VDSR(Super-Resolution using Very Deep Convolutional Networks)[18]、ESPCN(Efficient Sub-Pixel Convolutional Nerural Network)[19]等。近年來,文獻[20]采用更深的網絡并加入殘差模塊。文獻[21]提出了一種融合多尺度特征的光場超分辨網絡以提高光場子孔徑圖像的空間分辨率,進一步推進卷積神經網絡在超分辨率重建技術的發(fā)展。這些深度學習模型可以學習到低分辨率圖像到高分辨率圖像的映射關系,但由于損失函數(shù)廣泛采用嶺回歸以提高峰值信噪比,使得重建圖像整體趨于平滑和缺失高頻信息,重建效果尚不盡人意。而目前大多基于稀疏編碼的超分辨率重建算法在圖像輸入時,首先將圖片劃分為具有重疊的小塊,然后再對每個小塊單獨進行處理。然而這樣的處理方式往往容易導致圖像塊之間的像素缺乏一致性和重疊像素中出現(xiàn)偽影,使得重建圖像質量下降。近年來在深度學習領域中,結合稀疏編碼的研究主要圍繞數(shù)值優(yōu)化算法操作的網絡架構設計。文獻[22]提出了可學習的迭代閾值算法,將迭代閾值算法[23](Iterative Shrinkage Thresholding Algorithm,ISTA)展開為深度神經網絡。Liu等人[24]將可學習的迭代閾值算法應用于圖像超分辨率重建領域。文獻[25]將卷積稀疏編碼轉化為深度卷積神經網絡并應用于圖像的去噪和修復中,獲得了不錯的效果。
隨著各類深度學習模型的提出和訓練策略的不斷完善,Goodfellowt等人[26]提出的生成對抗網絡(Generative Adversarial Networks,GAN)采用了內容損失函數(shù)和對抗損失函數(shù)進行訓練,使得生成圖像更逼近自然圖像。隨后,Ledig等人[27]提出了SRGAN(Super-Resolution Generative Adversarial Networks),首次將GAN思想應用于圖像超分辨率重建中,設計新型的感知損失作為網絡的損失函數(shù),使得重建圖像更符合人眼的主觀感受。Wang等人[28]提出ESRGAN(Enhanced Super-Resolution Generative Adversarial Networks),在SRGAN模型框架上加入了密集殘差塊并去除所有的批歸一化層,同時加入了Relativistic GAN的鑒別器,使得重構圖像具有更高的指標值和更清晰的視覺效果。基于生成對抗網絡的圖像超分辨率重建模型通過生成器與鑒別器的博弈可以生成逼真的重建圖像,極大地改善了主觀質量,但它們仍存在偽影,銳化后不可避免地產生噪點。
針對上述問題,本文提出了基于卷積稀疏編碼和生成對抗網絡的超分辨率重建模型。不同于以往可學習的稀疏編碼模型采用全連接層實現(xiàn)稀疏編碼,本文利用卷積算子替代稀疏編碼算法中的矩陣乘法以獲得圖像的稀疏編碼,既提高了網絡訓練的速度,又能夠利用稀疏編碼捕獲圖像的高頻信息,提高模型對圖像復雜幾何結構的稀疏表示能力。隨后獲得的稀疏表示通過重建層生成重建的高分辨率圖像。將重建圖像與原始的高分辨率圖像輸入到鑒別器進行鑒別,使重建圖像在低層的像素上和高層次的抽象特征上更好地接近原始的高分辨率圖像,進一步提高了重建圖像的質量。
信號的稀疏表示模型具有捕獲信號奇異性結構能力強、表示冗余度低及系數(shù)稀疏度改的優(yōu)勢[29]。利用圖像的稀疏表示作為先驗知識,更有效地表示圖像和保留高頻結構信息。稀疏編碼理論[13]即假設信號x∈Rm可以由字典中D∈Rm×n的原子線性組合來表示,其中m?n,常見的稀疏編碼模型如下:
其中:?∈Rn表示稀疏編碼,ε∈Rm表示信號重建后的殘差。稀疏編碼的目標函數(shù)如式(2)所示:
式中:第一項為重構誤差;第二項為稀疏正則函數(shù),用于測量和約束稀疏表示?x的稀疏性,常見的有?0范數(shù)、?1范數(shù)、?p范數(shù)(0<p<1)。對于公式(2),已經提出一些算法求解,包括正交匹配追蹤[30]、K-SVD算法[31]和迭代閾值算法[23]。
迭代收縮閾值算法是一種在圖像生成領域中非常受關注的算法。對于公式(2),ISTA[23]具體求解稀疏表示的迭代公式如式(3)所示:
式中:Sθ(x)為軟閾值操作函數(shù),θ為閾值,在公式(3)中,αλ=θ;sign(x)為符號函數(shù)。
生成對抗網絡是通過對抗訓練的深度學習模型。生成對抗網絡由生成器(Generator,G)和鑒別器(Discriminator,D)兩個網絡框架構成。生成器G的主要目的是生成一張接近于真實的虛假圖像來騙過鑒別器。而鑒別器D則是一個二分類器,目的是能夠準確判斷輸入的樣本是真實的還是生成器生成的虛假圖像。生成器G與鑒別器D通過不斷的對抗訓練更新優(yōu)化各自網絡能力??偟膿p失函數(shù)如式(5)所示:
其中:pdata(x)為真實樣本分布,p(z)為生成器生成圖像的分布。生成對抗網絡的訓練是單獨交替迭代訓練的。對于鑒別器的優(yōu)化,如式(6)所示,保持生成器G不變而訓練鑒別器D,鑒別器的目的在于能夠正確地區(qū)分真實樣本和生成的虛假樣本,使用1和0來代表輸出的結果為真實樣本和生成的虛假樣本。第一項輸入樣本來自真實數(shù)據(jù),因此期望D(x)接近于1。同理,第二項的輸入樣本來自生成器G生成的數(shù)據(jù),因此期望D(G(z))接近于0,使得總數(shù)最大。
本文采用基于卷積稀疏編碼網絡作為生成器,利用卷積稀疏編碼層學習到低分辨率圖像的稀疏表示?x,隨后稀疏表示?x經過線性變換層映射得到高分辨率圖像的稀疏表示最后再經過卷積字典層得到重建圖像。為使最后重建圖像更加自然,將生成的高分辨率圖像與原始的高分辨率圖像輸入到鑒別器中,通過交替訓練生成器和鑒別器,最后得到生成的高分辨率圖像。模型的整體框架如圖1所示。
目前低分辨率圖像數(shù)據(jù)集主要通過原始的高分辨率圖像數(shù)據(jù)集經過下采樣獲取。在下采樣的過程中,獲得的低分辨率圖像在一定程度上引入噪點,導致后續(xù)進行超分辨率重建時噪點被放大。而圖像信號具有冗余結構,在稀疏編碼過程中可以被稀疏化,噪聲因其自身的隨機性不能被稀疏表示。因此可以通過提取圖像的稀疏表示,再用提取的稀疏表示來重構圖像。在這個過程中,噪聲被處理為觀測圖像和重構圖像之間的殘差,在重構過程中殘差被丟棄,從而避免重建圖像噪點增多的問題。
其中:{xi}為低分辨率圖像集,{yi}為高分辨率圖像集為稀疏性。λ∈R+對稀疏性進行加權,為避免D∈?(m,k),F(xiàn)∈?(l,k)在稀疏編碼過程中的尺度模糊問題,?(a,b)應滿足:
式(8)中的稀疏性常用?1范數(shù)來度量,即給定的信號x在字典D上的稀疏編碼可通過求解以下優(yōu)化問題得解:
由信號的稀疏表示模型可知,理想的低分辨率圖像表示為x=D?x,高分辨率圖像表示為y=F?y。在超分辨率重建中,通過稍微修改符號,?xi(D):xi??xi,?yi(F):yi??yi分別表示在字典D和F的稀疏解。對于公式(3)的稀疏求解則有:
與以往的稀疏編碼不同,本文提出的框架直接輸入整張圖像處理,而不是對圖像進行分塊處理后再輸入模型中。利用卷積算子代替矩陣乘法操作,卷積的濾波器作為字典,提取圖像的特征信息。本文將ISTA的迭代過程展開為一個遞歸的卷積神經網絡,如圖2所示,每一層實現(xiàn)一次的迭代:
圖2 卷積稀疏編碼模塊Fig.2 Convolutional sparse coding module
低分辨率圖像在經過K個卷積稀疏編碼模塊的迭代后,學習到低分辨率圖像的稀疏表示?(D),其中K=12,本文將在4.1節(jié)中通過相關實驗證明在K=12時得到的結果最佳。
Yang等人[12]提出并證明了不同分辨率的圖像結構(稀疏表示)具有線性一致性。本文采用線性轉換層Α來保證源圖像和目標圖像的稀疏表示的一致性,即允許高度稀疏的結構進行稀疏向量的線性變換:
其中ηi為誤差。在得到低分辨率圖像的稀疏表示?x(D)后,將其通過線性轉換層A映射為?y(F),最后通過重建模塊得到重建圖像Y。如圖3所示,重建模塊通過卷積層、子像素卷積層(Pixel-Suffle)和激活層PReLU實現(xiàn):
圖3 重建模塊Fig.3 Reconstruction module
基于卷積稀疏編碼的生成器結構如圖4所示,重建模塊的數(shù)量N由放大倍率決定,即N=2或4,生成網絡中均使用大小為3×3的卷積核。
圖4 基于卷積稀疏編碼的生成器結構Fig.4 Generator structure based on convolutional sparse coding
基于傳統(tǒng)的卷積神經網絡算法雖然在指標值上有很好的表現(xiàn),但由于使用嶺回歸,重建圖像的視覺圖像有涂抹感。為解決以上問題,利用鑒別器網絡評估生成器生成圖像,通過引入對抗損失來激勵,可以使重建圖像更自然,減少涂抹感。鑒別器的設計遵循DCGAN設計原則,即取消池化層,同時使用LeakyReLU激活函數(shù)和批規(guī)范化(Batch Normalization,BN)。整個鑒別器網絡框架主要有8個卷積層,由3×3卷積核和4×4卷積核的卷積層交替構成,卷積步長分別為1和2,卷積核數(shù)量由64逐漸增加到512。在得到輸入圖像的高層次特征后,將其進行維度變換后輸入兩個全連接層,Sigmoid激活函數(shù)得到真實或虛假的概率。具體框架圖如圖5所示,圖中括號中的數(shù)字從左到右分別表示卷積核數(shù)量、卷積核大小以及卷積步長。
圖5 鑒別器網絡結構Fig.5 Discriminant network structure
本文框架的損失函數(shù)在SRGAN的基礎上進行改進,除了常用的圖像均方值損失函數(shù),加入對抗損失、感知損失以及稀疏損失,進一步提高模型重建能力。
對抗損失表示為鑒別器判出重建的高分辨率圖像為真實樣本的概率,旨在使生成器重建的圖像能夠愚弄鑒別器蒙混過關,公式如式(15)所示:
式中:ILR為輸入的低分辨率圖像,GθG(ILR)為重建的圖像,DθD(GθG(ILR))為鑒別器判定生成器生成圖像為真實圖像的概率。
感知損失表示為重建圖像與原始高分辨率圖像在經過卷積神經網絡提取圖像特征的損失,避免最終的重建圖像過于平滑。本文所用的卷積神經網絡為VGG(Visual Geometry Group)[32],公式如式(16)所示:
式中:IHR為輸入的原始高分辨率圖像,i和j分別表示第i層最大池化前的第j個卷積層,φi,j表示通過VGG網絡的第i層最大池化層和第j層卷積層之后提取的特征圖,H和W為圖片的寬和長。
稀疏損失旨在使獲得的稀疏編碼能夠保留更完整的高頻結構信息,公式如式(17)所示:
式中:均方誤差MSE(x,x?)為原始高分辨率圖像和重建圖像像素之間的損失;x表示原始的高分辨率圖像;x?為重建圖像,并通過?1范數(shù)‖?x‖1來約束其稀疏性;?x為圖像的稀疏表示;β=0.6。
本文實驗在Linux操作系統(tǒng)、深度學習框架Pytorch上完成,主要在低分辨率圖像進行2倍和4倍的超分辨率重建實驗。為了驗證本文所提網絡的性能,在通用的公開圖片數(shù)據(jù)集上進行實驗。訓練集采用DIV2K和Filckr2K,兩數(shù)據(jù)集圖像分辨率均為2 048×1 080。DIV2K數(shù)據(jù)集包含1 000幅不同場景的高清圖像,包括具有不同退化類型的低分辨率圖像,其中有800張訓練圖像,100張驗證圖像,100張測試圖像。Filckr2K數(shù)據(jù)集包含2 650張圖像,包括人物、動物以及風景等。測試集采用Set5、Set14,BSD100以及Urban100,包含多種場景,常用于圖像超分辨率重建的性能測試。Set5、Set14是常見的經典數(shù)據(jù)集,分別包含5張和10張動植物圖像;BSD100包含100張不同場景的測試圖像;Urban100包含100張圖像,具有豐富的紋理。
本文除了選取峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結構相似性(Structural Similarity,SSIM)作為圖像的客觀評價指標外,還采用學習感知圖像相似度(Learned Perceptual Image Patch Similarity,LPIPS)[33],用以衡量圖像深度特征的相似性。
PSNR指的是單個圖像接收到的最大信號值和噪聲值之間的比值,可作為衡量圖像質量的一個評價參數(shù)。PSNR表示重建圖像的噪聲失真強度,PSNR的值越大,則重建圖像失真越小,其圖像質量越好。SSIM是用來衡量兩張圖像在亮度、結構和對比度上相似性的定量指標,其取值范圍為[0,1]。SSIM值越趨于1則重建圖像效果越好。
Zhang等人[33]認為傳統(tǒng)指標PSNR和SSIM并不能很好地表示重建圖像的質量,并提出LPIPS,相比于傳統(tǒng)方法PSNR和SSIM更能反映出由GAN所生成圖像的感知優(yōu)勢。LPIPS的值越低表示兩張圖像越相似,反之,則差異越大。原始的高分辨率圖像x與重建圖像x0經過卷積神經網絡的特征提取,對每一層輸出的特征進行激活后歸一化處理,記為再經過w層權重點乘并計算L2距離,最后求和取平均。公式如式(18)所示:
本節(jié)主要實驗為卷積稀疏層迭代次數(shù)對實驗結果的影響,以及本文算法和對比算法在4種測試集的2倍和4倍放大倍率進行實驗對比,并做定性分析與定量分析,主要對比算法有Bicubic、SRGAN、EDSR和ESRGAN。
4.3.1 卷積稀疏層迭代數(shù)實驗
為探究卷積稀疏模塊的迭代層數(shù)對圖像重建效果的影響,對不同的卷積稀疏層數(shù)在DIV2k驗證集上進行放大因子為2倍和4倍的實驗,并以PSNR值和SSIM值作為評價指標。如圖6和圖7所示,隨著卷積字典層數(shù)k的增加,PSNR和SSIM值呈現(xiàn)先增大后減小的趨勢,并在卷積字典層數(shù)k=12時達到最大值。其原因為迭代次數(shù)增加時,卷積稀疏層所提取圖像的有用信息增多。在卷積稀疏層數(shù)k=12時,所提取的信息趨于飽和同時重建性能的提升也在逐漸變緩;而在迭代次數(shù)k>12時,隨著迭代次數(shù)k的增加,網絡加深,所提取圖像的有效信息難以進行遠距離傳播,同時訓練難度加大,導致整體性能下降。經綜合考慮,后續(xù)與其他算法的對比實驗采用的卷積字典層迭代次數(shù)均為12。
圖6 不同迭代次數(shù)的PSNR結果Fig.6 PSNR results for different number of iterations
圖7 不同迭代次數(shù)的SSIM結果Fig.7 SSIM results for different number of iterations
4.3.2 定量比較結果
表1和表2分別為不同模型在4類數(shù)據(jù)集的PSNR、SSIM和LPIPS值對比,所得結果均為在測試集上重復5次實驗所得的平均值,加粗數(shù)據(jù)表示最好的結果。由表1可得,在2倍超分辨率實驗中,本文所提模型在Set5測試集上的PSNR指標略低于ESRGAN模型0.155 8 dB;而在其他3個測試集上,本文所提模型的PSNR均獲得最好的效果,比ESRGAN模型分別提升了0.595 2,0.315 3,0.932 5 dB。在4個測試集上,本文所提模型的SSIM值均得到最好的效果,與ESRGAN相比,分別提升了0.006 0,0.018 5,0.022 9,0.052 8。由表2可知,在4倍超分辨率實驗中,本文所提模型在4個測試集上的PSNR和SSIM值均獲得最優(yōu)結果,與ESRGAN模型相比,PSNR值提升了0.843 1,0.946 6,1.083 2,1.062 0 dB,SSIM值提升了0.009 4,0.046 3,0.032 0,0.001 3。同時,在2倍和4倍的超分辨率實驗中,本文算法在LPIPS上均獲得最優(yōu)的結果,相比ESRGAN的平均LPIPS值分別提升了0.021 0,0.010 9。上述定量實驗結果表明,所提方法在客觀指標上優(yōu)于對比算法,且重建圖像質量更好。
表1 各算法在2倍放大時的平均PSNR、SSIM和LPIPS值Tab.1 Average PSNR, SSIM and LPIPS values for each algorithm for ×2 magnification
表2 各算法在4倍放大時的平均PSNR,SSIM和LPIPS值Tab.2 Average PSNR, SSIM and LPIPS values for each algorithm for ×4 magnification
4.3.3 定性比較結果
為了更直觀地對比和驗證本文算法與其他算法在主觀視覺上的差異,如圖8和圖9所示,在4個測試集中選取6張圖像,分別展示了各對比模型在測試集中的部分圖像的2倍和4倍超分辨率重建的效果,圖像左下角方框內的圖像為局部區(qū)域放大圖。
圖9 各算法的4倍重建圖像重建結果。(a)真實的高分辨率圖像;(b) Bicubic; (c) SRGAN; (d) EDSR; (e) ESRGAN;(f)本文算法。Fig.9 4×super-resolution image reconstruction results of each algorithm.(a) High-resolution original images; (b) Bicubic;(c) SRGAN; (d) EDSR; (e) ESRGAN; (f) Ours.
結合圖8和圖9可以看出,由于Bicubic算法沒有利用圖像的先驗信息,只是通過增加像素點,缺乏泛化性,導致重建的圖像整體失真嚴重,不能清楚地觀察到細節(jié)信息,且在4倍放大倍率時模糊程度加深。SRGAN算法相比Bicubic有較大的提升,但在細節(jié)信息的恢復上仍存在噪聲,如圖9(c)中,Image 4和Image 6顯示SRGAN生成圖像存在偽影和邊緣結構信息模糊的現(xiàn)象。在EDSR網絡框架中去除了歸一化網絡層同時添加了殘差結構,重建圖像在細節(jié)紋理上有著較好的視覺效果,但與本文算法相比,重建圖像的輪廓不夠銳利,如圖8(d)中椅子的紋理和黑色的線條不夠清晰,女子頭巾的黑色條紋較為模糊。而本文算法的重建圖像相對其他算法,整體清晰且邊緣銳利。ESRGAN算法恢復的效果質量整體上都較為清晰,但在細節(jié)恢復部分伴隨著噪點和結構不清晰,如圖8(e)可以看到Image 1石像的細節(jié)部分存在噪點;圖9(e)的Image 6中生成的樹枝結構雜亂,紋理細節(jié)不清晰,并伴隨大量的偽影和噪聲。而本文算法生成的樹枝結構清晰,更接近原高分辨率圖像的樹枝結構。本文所提算法的重建圖像與其他對比算法的重建圖像相比,獲得了更豐富的紋理信息和清晰的邊緣特征,視覺效果更好,更接近原始圖像,如在圖9的Imgae 4中,EDSR算法和本文算法能夠恢復陽臺中間的欄桿。其他算法生成圖像的細節(jié)部分幾乎丟失。在墻沿的恢復上,本文算法相比于EDSR具有更好的細節(jié)。實驗結果圖顯示,由于卷積稀疏編碼可以很好地保留圖像的高頻結構信息,本文算法能夠在恢復圖像細節(jié)時保證圖像清晰度,也避免了重建過程中產生的噪聲和偽影,取得良好的主觀視覺效果,相比其他對比算法有著優(yōu)異的表現(xiàn)。
本文提出了一種基于卷積稀疏編碼和生成對抗網絡的超分辨率重建模型。利用卷積網絡來實現(xiàn)稀疏編碼并獲取圖像稀疏表示,然后將得到的稀疏表示經過重建模塊得到重建的高分辨率圖像,使該模型可以將圖像作為網絡的輸入,避免了傳統(tǒng)算法的復雜的圖像處理以及數(shù)據(jù)重建的過程,同時也具有稀疏字典學習捕獲圖像的高頻結構信息的優(yōu)點,解決高頻信息缺失和存在噪點的問題。利用鑒別器對生成的重建圖像進行鑒別,減少重建圖像的涂抹感,使重建圖像有更好的視覺效果。所提的模型表明,傳統(tǒng)稀疏編碼模型所蘊含的領域知識對深度學習的網絡設計依舊具有重要的指導意義,所提方法在4個數(shù)據(jù)集上的平均PSNR提升約0.702 8 dB,平均SSIM提升約0.047,平均LPIPS提升了0.016,在客觀評價和主觀視覺上獲得了良好的效果。