賀 偉,王丹陽
(河南城建學(xué)院電氣與控制工程學(xué)院,河南 平頂山 467036)
圖像超分辨重建技術(shù)是指從一幅低分辨率圖像中通過相關(guān)算法得到相應(yīng)高分辨率圖像的一種后處理技術(shù)[1]。高分辨率的圖像不僅包含銳利的邊緣、豐富的紋理以及高保真的色彩等詳細(xì)信息,還能在主觀視覺上讓人賞心悅目。然而,在實(shí)際成像過程中往往存在光學(xué)與運(yùn)動模糊和噪聲等不確定因素影響,導(dǎo)致成像系統(tǒng)得到目標(biāo)圖像分辨率普遍較低,不能滿足人們實(shí)際應(yīng)用需求。又由于改進(jìn)成像設(shè)備的精密程度非常困難,所以利用超分辨率重建技術(shù)來增強(qiáng)圖像的分辨率成為人們首要選擇[2-3]。
圖像超分辨重建方法主要有基于插值方法、基于重建方法和基于學(xué)習(xí)方法?;诓逯捣椒ㄆ鹪从?0世紀(jì)60年代,它根據(jù)給定圖像已知內(nèi)容信息和各像素間空間排列關(guān)系在特定位置插入與圖像周圍像素性質(zhì)相同的像素值,然后結(jié)合插入像素與原始像素重建圖像[4-5]。這類方法直接對圖像中的像素進(jìn)行簡單計(jì)算,所以在重建圖像時(shí)速度比較快,但是在圖像重建過程中會不可避免地流失一些像素之間的差異,導(dǎo)致重建圖像難以獲取精細(xì)特征,產(chǎn)生振鈴和鋸齒狀偽像,視覺效果較差?;谥亟ǖ姆椒ㄖ饕ㄟ^構(gòu)建圖像退化模型,結(jié)合圖像之間一些互補(bǔ)特征信息再根據(jù)充分結(jié)合的信息重構(gòu)圖像[6-8]?;趯W(xué)習(xí)方法[9-11]主要是通過構(gòu)建模型主動學(xué)習(xí)輸入圖像與輸出圖像兩者之間的強(qiáng)關(guān)聯(lián)性,在特定模型下對圖像的先驗(yàn)知識主動進(jìn)行特征提取,然后將這些包含圖像詳細(xì)內(nèi)容的特征重建成圖像。
近幾年隨著人工智能的迅猛發(fā)展,基于深度學(xué)習(xí)方法成為單幅圖像超分辨率重建的熱門研究。2014年,Dong等人注意到卷積神經(jīng)網(wǎng)絡(luò)模型在圖像分類等高級計(jì)算機(jī)視覺中取得令人矚目的成就,然后就考慮將這類網(wǎng)絡(luò)應(yīng)用到單幅圖像超分辨問題中,提出利用堆疊的卷積層構(gòu)建神經(jīng)網(wǎng)絡(luò)模型進(jìn)行圖像重建(SRCNN算法)[12]。隨后,Dong等人對SRCNN模型的網(wǎng)絡(luò)深度、卷積核大小等進(jìn)行改進(jìn),提出FSRCNN算法[13]提升訓(xùn)練速度。隨著殘差網(wǎng)絡(luò)出現(xiàn)[14],Kim等人提出VDSR算法利用殘差模塊加深卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來解決超分辨問題[15]。VDSR算法將插值后低分辨率圖像作為網(wǎng)絡(luò)輸入層,再將輸入圖像與網(wǎng)絡(luò)學(xué)到的殘差相加得到最終輸出圖像。受VDSR啟發(fā),Tong等人[16]將密集連接模塊加入到卷積神經(jīng)網(wǎng)絡(luò)中提出了SRDenseNet算法,這樣的網(wǎng)絡(luò)結(jié)構(gòu)具有減緩梯度消失、加強(qiáng)特征傳播、支持特征重用等優(yōu)點(diǎn),在超分辨問題中取得了不錯(cuò)效果。2018年,Li等人[17]考慮使用不同大小卷積核提取不同的圖像特征,并結(jié)合殘差學(xué)習(xí)提出多尺度殘差網(wǎng)絡(luò)(MSRN算法)應(yīng)用于圖像超分辨。2019年,黃偉[18]等人提出基于多通道極深卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨算法,通過對低分辨圖像進(jìn)行多種預(yù)處理操作增加輸入圖像先驗(yàn)證知識,同時(shí)又加深網(wǎng)絡(luò)深度來提取圖像特征來增強(qiáng)圖像分辨率。
綜上所述,本文提出一種基于多尺度密集連接網(wǎng)絡(luò)的圖像超分辨算法。同時(shí)引入多尺度和密集連接網(wǎng)絡(luò)模塊兩個(gè)概念,設(shè)計(jì)兩個(gè)深度不同的子網(wǎng)絡(luò)提取低分辨圖像特征,最后對兩個(gè)子網(wǎng)絡(luò)提取的特征求殘差進(jìn)行重建得到高分辨率圖像。
為了充分利用卷積神經(jīng)絡(luò)非線性表征能力重建出高分辨率圖像,本文提出了一種基于多尺度密集連接網(wǎng)絡(luò)的圖像超分辨算法。引入多尺度概念利用不同大小卷積核提取多樣化圖像特征,同時(shí)在卷積神經(jīng)網(wǎng)絡(luò)中又引入密集連接模塊加深網(wǎng)絡(luò)的深度以便于提取到更多有用的特征用于圖像重建提升圖像分辨率。本節(jié)將主要從以下幾個(gè)方面展開:多尺度卷積層、密集連接模塊和基于多尺度密集連接網(wǎng)絡(luò)全模型。
為了充分利用輸入層數(shù)據(jù)信息并提高輸入與輸出層之間各種復(fù)雜特征提取的魯棒性,本文引入了多尺度卷積層。實(shí)際上,多尺度卷積就是使用多種大小不同的卷積核對輸入層圖像進(jìn)行卷積獲取多樣的圖像特征,結(jié)構(gòu)如圖1所示。從結(jié)構(gòu)中可以看出,本文設(shè)計(jì)的多尺度卷積層包含了三種大小不同的卷積核,它們的尺寸分別是 3×3×N、5×5×N和 7×7×N 。將輸入圖像分別與三個(gè)卷積核進(jìn)行卷積得到的不同特征圖進(jìn)行拼接得到通道數(shù)為3N(N=20)維的特征圖。
圖1 多尺度卷積層結(jié)構(gòu)示意圖
密集連接模塊由多個(gè)串聯(lián)的卷積層組成,在密集連接模塊內(nèi)允許任意兩個(gè)非相鄰層之間進(jìn)行跨層連接。這種跨層連接方式既能從前面任意層接收輸入,又能把輸出傳遞給后面任意非相鄰層,極大地緩和了在訓(xùn)練時(shí)出現(xiàn)的梯度消失問題。本文網(wǎng)絡(luò)模型所使用的密集連接模塊結(jié)構(gòu)如圖2所示,它由四個(gè)串聯(lián)的卷積層x0,x1,x2和x3組成,其中每層輸入層都包含前面所有層輸出的特征圖,這種結(jié)構(gòu)的好處在于加強(qiáng)特征傳播、促進(jìn)特征重用,各層卷積層之間的關(guān)系用公式表達(dá)為
圖2 密集連接模塊結(jié)構(gòu)示意圖
xl=Hl([x0,x1,…,.xl-1])
(1)
其中,[x0,x1,…,xl-1]為第l層到第l-1層的所有特征圖進(jìn)行張量拼接的結(jié)果,將這些結(jié)果作為第l層的輸入特征。Hl是用于連接兩個(gè)卷積層之間的復(fù)合函數(shù),由交替的ReLu層、瓶頸層(1×1conv)、ReLu層和一個(gè)3×3卷積層組成。參考文獻(xiàn)[19],本文將生長率設(shè)置為一個(gè)較小的正整k=12,瓶頸層卷積核個(gè)數(shù)設(shè)置為4k。根據(jù)密集連接網(wǎng)絡(luò)特征重用的特性那么每個(gè)密集連接模塊將會輸出3k+k0個(gè)特征圖,其中k0為密集連接模塊中輸入層特征圖的維數(shù)。
本文提出基于多尺度密集連接網(wǎng)絡(luò)的圖像超分辨重建方法的網(wǎng)絡(luò)全模型結(jié)構(gòu)如圖3所示,主要由輸入層、兩個(gè)并行的子網(wǎng)絡(luò)以及輸出層組成。該多尺度密集連接網(wǎng)絡(luò)模型結(jié)構(gòu)的詳細(xì)描述如下
圖3 基于多尺度密集連接網(wǎng)絡(luò)的圖像超分辨網(wǎng)絡(luò)結(jié)構(gòu)
輸入層為插值后低分辨率圖像,將輸入數(shù)據(jù)送入兩個(gè)子網(wǎng)絡(luò)中提取圖像特征,然后再對兩個(gè)子網(wǎng)絡(luò)提取的特征進(jìn)行殘差處理,最后對殘差結(jié)果進(jìn)行卷積輸出期望的高分辨率圖像。其中,子網(wǎng)絡(luò)1包含了一個(gè)多尺度卷積層和一個(gè)瓶頸層,瓶頸層是一個(gè)大小為1×1的卷積核對多尺度卷積層進(jìn)行卷積得到。子網(wǎng)絡(luò)2的網(wǎng)絡(luò)深度比自網(wǎng)絡(luò)的深度要更深,由一個(gè)獨(dú)立卷積層、兩個(gè)密集連接模塊和兩個(gè)瓶頸層組成。在子網(wǎng)絡(luò)2中,首先要使用一個(gè)大小為1×1的卷積核進(jìn)行內(nèi)卷積得到一個(gè)包含24個(gè)特征圖的卷積層,接著再將卷積結(jié)果輸入第一個(gè)密集連接模塊進(jìn)行特征提取,然后把第一個(gè)密集連接模塊的輸出特征使用瓶頸層和壓縮因子θ(θ=0.5)進(jìn)行特征降維。接下來,把降維后的特征圖輸入到第二個(gè)密集連接模塊繼續(xù)進(jìn)行特征提取。同樣地,在第二個(gè)密集連接模塊之后連接了一個(gè)瓶頸層并使用壓縮因子控制特征圖的維數(shù)。為了優(yōu)化兩個(gè)子網(wǎng)絡(luò)提取的特征,本文對兩個(gè)子網(wǎng)絡(luò)分別提取的特征進(jìn)行殘差求解,最后使用一個(gè)大小為1×1的卷積核對殘差結(jié)果進(jìn)行重建得到輸出的高分辨率圖像。
為了獲取性能良好的圖像超分辨模型,本文選用均方誤差(MSE)作為網(wǎng)絡(luò)訓(xùn)練時(shí)的損失函數(shù),通常表示成式(2)所示
(2)
其中θ是指網(wǎng)絡(luò)模型中的所有參數(shù),i表示網(wǎng)絡(luò)模型輸出的高分辨圖像,為參考圖像,N表示在訓(xùn)練階段輸入網(wǎng)絡(luò)的批次大小。由于本文的訓(xùn)練集圖像像素在預(yù)處理時(shí)進(jìn)行了歸一化處理,所以損失函數(shù)取值范圍是(0,1)。損失函數(shù)值越小,說明網(wǎng)絡(luò)模型魯棒性越好。
綜上所述,本文所提的圖像超分辨方法的處理步驟如算法1所示。
算法1:基于多尺度密集連接網(wǎng)絡(luò)的圖像超分辨重構(gòu)算法
算法輸入:原始的高分辨率自然圖像XH算法步驟:
步驟1:將原始自然彩色圖像X轉(zhuǎn)換為Ycbcr圖像,提取其亮度通道圖像XY先進(jìn)行下采樣再進(jìn)行雙立方插值得到放大的低分辨圖像XLR;
步驟4:輸入單幅彩色圖像XH,重復(fù)步驟1,得到插值后的低分辨圖像XLR作為卷積神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),載入模型,得到期望的高分辨率圖像Y分量,再與Cb、Cr兩個(gè)分量合成Ycbcr圖像,然后轉(zhuǎn)化為RGB高分辨率圖像;
為了驗(yàn)證本文所提單幅圖像超分辨重構(gòu)方法的有效性。本文對不用的彩色圖像進(jìn)行仿真仿真。本節(jié)主要包括三部分:仿真設(shè)置,仿真結(jié)果分析和超分辨重建方法的CPU執(zhí)行時(shí)間比較。
本文仿真數(shù)據(jù)集采用Timofte數(shù)據(jù)集(包含91幅圖像),測試集采用Set5和Set14數(shù)據(jù)集。為了增加仿真樣本量,本文采用滑動窗口算法對仿真圖像抽取圖像塊生成訓(xùn)練集階段。具體操作為:對低分辨率圖像切分時(shí)滑塊的寬和高的取值為W=H=32(放大因子為2和4)或W=H=33(放大因子為3),步長l為14;對參考圖像進(jìn)行切分時(shí)令W=H=20(放大因子為2和4)或W=H=21(放大因子為3),步長l為21。
本文處理仿真數(shù)據(jù)生成訓(xùn)練集所使用平臺為Matlab R2016a,對多尺度密集連接網(wǎng)絡(luò)的訓(xùn)練與測試采用的是深度學(xué)習(xí)中的Tensorflow框架。網(wǎng)絡(luò)訓(xùn)練損失函數(shù)采用均方誤差,利用均值為0、標(biāo)準(zhǔn)差為0.001的高斯分布隨機(jī)初始化權(quán)值,采用Adam優(yōu)化算法[20]更新網(wǎng)絡(luò)。超參數(shù)批處理Batch_size設(shè)置為128,將最后一層的學(xué)習(xí)率設(shè)置為10-5,其它層的學(xué)習(xí)率設(shè)置為10-4。
本文針對現(xiàn)有的SRCNN[12],VDSR[15],SRDenseNet[16]和Huang[18]等四種重建算法進(jìn)行對比研究。評價(jià)方式采用主觀評價(jià)和客觀評價(jià)相結(jié)合的方式進(jìn)行綜合評價(jià)。其中,客觀評價(jià)標(biāo)準(zhǔn)采用峰值信噪比(PSNR)[21]和結(jié)構(gòu)相似度(SSIM)[22]對圖像進(jìn)行質(zhì)量評估。同時(shí),利用Set5和Set14數(shù)據(jù)集的彩色圖像來驗(yàn)證所提方法的有效性,并將所提方法與上述提到的超分辨重構(gòu)方法進(jìn)行比較。圖4-6(a)-(f)分別展示了原始高分辨圖像和不同超分辨重建方法對“Head”圖像、“Butterfly”圖像和“Baby”圖像重構(gòu)的可視化結(jié)果。在每個(gè)仿真中,對部分區(qū)域進(jìn)行放大,并將其放到重建結(jié)果圖像的右下角。通過觀察這些圖像,可以看出通過SRCNN算法重建的圖像分辨率較低,圖像模糊,細(xì)節(jié)紋理不明顯。VDSR算法改善了圖像模糊現(xiàn)象并獲得了更清晰的圖像,但是仍然缺少圖像的詳細(xì)紋理信息。與前兩種方法相比,通過SRDenseNet算法獲得的圖像得到了改進(jìn),但邊緣存在嚴(yán)重的偽影,需要進(jìn)一步提高重建效果。Huang等人提出的重建方法在保持銳利邊緣和紋理細(xì)節(jié)有較好地表現(xiàn),但是其結(jié)果圖像造成了視覺的不真實(shí)性。與以上幾種重建方法相比,本文所提方法在重構(gòu)高分辨率圖像銳利的邊緣和豐富的紋理細(xì)節(jié)等方面均優(yōu)于上述方法。
圖4 利用不同的超分辨重建方法將“Head”圖像放大3倍的結(jié)果圖像(在紅色框內(nèi)區(qū)域的放大圖顯示在各個(gè)圖像的右下方)
圖5 利用不同的超分辨重建方法將“Butterfly”圖像放大3倍的結(jié)果圖像(在紅色框內(nèi)區(qū)域的放大圖顯示在各個(gè)圖像的右下方)
圖6 利用不同的超分辨重建方法將“Baby”圖像放大3倍的結(jié)果圖像(在紅色框內(nèi)區(qū)域的放大圖顯示在各個(gè)圖像的右下方)
表1顯示了數(shù)據(jù)集Set5不同超分辨率重建算法的PSNR和SSIM值;表2是針對數(shù)據(jù)集set14不同重建算法的PSNR值。數(shù)值結(jié)果表明,對于自然圖像超分辨重建本文方法得到PSNR和SSIM平均值均高于其它同類對比方法。
表1 不同算法在Set5數(shù)據(jù)集上的PSNR和SSIM值的對比表
表2 不同算法在Set14數(shù)據(jù)集上的PSNR值的對比表(放大倍數(shù)為3)
在本小節(jié)中,本文給出了上述超分辨重建方法的CPU執(zhí)行時(shí)間。實(shí)驗(yàn)環(huán)境為因特爾處理器3.1GHz,內(nèi)存10GB。由于本文研究方法以及所進(jìn)行對比分析方法都是基于卷積神經(jīng)網(wǎng)絡(luò),所以圖像重建的CPU執(zhí)行時(shí)間分為訓(xùn)練時(shí)間和測試時(shí)間(單張圖片的測試時(shí)間)。同時(shí),為了使對比效果真實(shí)可信,在訓(xùn)練時(shí)本文將每個(gè)重建方法的模型都統(tǒng)一訓(xùn)練300次;測試時(shí)間比較的是不同重建方法在數(shù)據(jù)集Set14上每張圖片重建的平均時(shí)間。
SRCNN方法由于網(wǎng)絡(luò)架構(gòu)簡單僅由三層組成,該方法訓(xùn)練時(shí)間最短大約花費(fèi)了6個(gè)小時(shí),在測試時(shí)平均大約需要0.51秒重建一張圖像。VDSR方法訓(xùn)練的時(shí)間是大約是6.5個(gè)小時(shí),測試時(shí)的平均時(shí)間大約是2.53秒。SRDenseNet方法創(chuàng)建的網(wǎng)絡(luò)由于使用了密集連接模塊加深網(wǎng)絡(luò),訓(xùn)練的時(shí)間相對較長大約是6.7個(gè)小時(shí),測試時(shí)的平均時(shí)間大約是2.7秒。Huang等人提出的方法由于在輸入層大量增加輸入圖像的通道數(shù)導(dǎo)致訓(xùn)練一次大約是7個(gè)小時(shí),測試的平均時(shí)間大約是3.21秒。本文所提方法需要花費(fèi)7.4個(gè)小時(shí)來訓(xùn)練網(wǎng)絡(luò)模型,重建一張圖片的時(shí)間平均是3.42秒,與其它方法相比具有一定的滯后性,經(jīng)分析相對較慢的原因是本文提出的方法由兩個(gè)子網(wǎng)絡(luò)組成,并且每個(gè)子網(wǎng)絡(luò)的深度都比較深。
在本文中,針對低分辨圖像特征提取不完全的問題,同時(shí)引入多尺度和密集連接兩個(gè)概念設(shè)計(jì)了一種新穎的包含兩個(gè)子網(wǎng)絡(luò)的卷積神經(jīng)網(wǎng)絡(luò)模型用于圖像超分辨問題。多尺度卷積模塊利用不同尺寸大小的卷積核提取到低分辨率圖像的多種特征。兩個(gè)密集連接模塊添加到另一個(gè)子網(wǎng)絡(luò)中加深網(wǎng)絡(luò)模型,用于改善特征表達(dá)能力。另外,密集連接模塊還可以避免模型訓(xùn)練中的消失梯度問題。實(shí)驗(yàn)結(jié)果表明,在相同訓(xùn)練集和測試集下,本文提出的算法具有更好的重建效果和更強(qiáng)的泛化能力。