劉 恒,梁 媛,潘 斌,劉琳珂,侯 健
(1.遼寧石油化工大學(xué) 信息與控制工程學(xué)院,遼寧 撫順 113001;2.遼寧石油化工大學(xué) 理學(xué)院,遼寧 撫順 113001)
圖像是人類傳遞信息的常用方式之一,但受拍攝設(shè)備和天氣等因素的影響,獲取的圖像在分辨率上往往不盡人意。圖像超分辨率重建技術(shù)在一定程度上滿足了人們對(duì)高質(zhì)量圖像的需求,并且在視頻監(jiān)控、醫(yī)學(xué)影像、圖像壓縮等領(lǐng)域廣泛應(yīng)用。
實(shí)現(xiàn)單幅圖像超分辨率重建的方法有三大類,分別是基于插值、重建和學(xué)習(xí)的方法。其中,基于插值的方法[1]是依據(jù)低分辨率圖像的像素灰度值估算其它像素點(diǎn)的灰度值,進(jìn)而實(shí)現(xiàn)超分辨率圖像的重建。但是采用該方法獲得的重建圖像,在邊緣會(huì)產(chǎn)生鋸齒效應(yīng)和塊效應(yīng)?;谥亟ǖ姆椒ǎ?]是建立圖像的退化模型,利用退化前后低分辨率圖像的誤差進(jìn)行迭代,優(yōu)化求解,從而重建出高分辨率圖像。但是該方法依賴高分辨率圖像的先驗(yàn)知識(shí),所以不適合做放大倍數(shù)的圖像重建?;趯W(xué)習(xí)的方法[3]是輸入一組高分辨率和低分辨率圖像對(duì),利用低分辨率圖像對(duì)模型進(jìn)行訓(xùn)練,學(xué)習(xí)低分辨率圖像與高分辨率圖像的對(duì)應(yīng)關(guān)系,從而更好地輸出超分辨率圖像。與其他兩類方法相比,基于學(xué)習(xí)的方法重建的圖像具有更好的視覺效果。
近年來,基于深度學(xué)習(xí)的方法成為研究重點(diǎn)。2014年,卷積神經(jīng)網(wǎng)絡(luò)首次被Dong等[4]引入圖像超分辨率重建技術(shù)中,提出SRCNN(Superresolution convolutional neural network)算法,但該算法運(yùn)行效率低。2016年,Dong等針對(duì)該問題,提出FSRCNN(Fast super-resolution convolutional neural networks)算法[5],將需要提高分辨率的圖像直接輸入網(wǎng)絡(luò),從而提高運(yùn)行效率,但是圖像重建效果一般。為了避免輸入圖像預(yù)處理帶來的重構(gòu)偽影,Lai等將拉普拉斯金字塔引入圖像超分辨率重建中,提出LapSRN(Laplacian pyramid super-resolution network)算法[6],在圖像特征空間域和通道域采用均等處理,浪費(fèi)計(jì)算資源?,F(xiàn)有算法沒有考慮超分辨率圖像重建模型的自適應(yīng)性問題,限制了圖像的重建質(zhì)量。
本文引入基于雙注意力機(jī)制的對(duì)偶學(xué)習(xí)算法,在深層特征提取模塊引入注意力機(jī)制,提高重建精確度,從而優(yōu)化重建過程中的映射關(guān)系;在處理圖像特征空間域和通道域時(shí),更多關(guān)注目標(biāo)任務(wù)顯著性的特征,從而使計(jì)算資源得到最大化的利用。采用對(duì)偶學(xué)習(xí)策略,為低分辨率圖像提供額外的重建監(jiān)督,減少映射函數(shù)的可能空間,并通過迭代反饋誤差有效指導(dǎo)超分辨率圖像重建,以更好地解決超分辨率圖像重建模型的自適應(yīng)性問題。
本文算法分為兩個(gè)子網(wǎng)絡(luò),即原始重建網(wǎng)絡(luò)和對(duì)偶學(xué)習(xí)網(wǎng)絡(luò)。其中,原始重建網(wǎng)絡(luò)包含三個(gè)模塊:淺層信息提取模塊、深層信息提取模塊和重建模塊。淺層特征提取模塊和深層特征提取模塊包含的基本模塊數(shù)由放大倍數(shù)S決定,為log2S個(gè)基本模塊。淺層特征提取模塊的每個(gè)基本模塊依次由卷積層、激活函數(shù)、卷積層組成;深層特征提取模塊每個(gè)基本塊由一個(gè)雙重注意力模塊、亞像素卷積層和卷積層組成。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 基于雙注意力機(jī)制的對(duì)偶學(xué)習(xí)算法網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Dual learning algorithm network structure based on dual attention mechanism
淺層特征提取時(shí),首先對(duì)原始圖像預(yù)處理,采用雙三次插值法將圖像尺寸放大至與輸出圖像相同,記作ILR,將其作為輸入圖像,使用3×3卷積核提取ILR的特征,記為;接著使用3×3卷積核、以2為步長(zhǎng)做卷積操作,使用Leaky ReLu函數(shù)激活,再通過3×3卷積核、以1為步長(zhǎng)做卷積操作,得到下采樣處理特征圖。下采樣次數(shù)為log2S,得到與原圖像尺寸相同的特征圖I,使用1×1卷積得到原圖像。計(jì)算過程
式中:S為圖像的放大倍數(shù);HSF()為單層卷積映射;()表示第一次進(jìn)行卷積-激活函數(shù)-卷積操作。
深層特征提取時(shí),將最后一次下采樣得到的特征圖作為雙注意力機(jī)制模塊的輸入,之后使用亞像素卷積進(jìn)行上采樣操作,這一過程同樣執(zhí)行l(wèi)og2S次。為了更好地進(jìn)行特征融合,對(duì)上采樣得到的特征圖使用1×1卷積核降維,降維后的特征圖與尺寸相同的淺層特征圖進(jìn)行特征融合,融合后的特征圖作為下一次雙注意力機(jī)制的輸入,特征融合次數(shù)為log2S次。
重建模塊中,對(duì)融合的特征圖進(jìn)行卷積操作得到高分辨率圖像ISR即為所求圖像。計(jì)算過程
式中:HUP()為上采樣操作,上標(biāo)表示第幾次執(zhí)行上采樣操作;HCASA()為雙重注意力操作,上標(biāo)1表示第1次執(zhí)行雙注意力操作;⊕表示特征融合操作。
對(duì)偶學(xué)習(xí)中,用重建高分辨率圖像下采樣生成低分辨率圖像。當(dāng)放大倍數(shù)為S時(shí),基本模塊數(shù)為log2S個(gè)。對(duì)偶模塊框架如圖2所示。
圖2 對(duì)偶模塊框架Fig.2 Dual module framework
受CBAM(Convolutional block attention module)算法[7]的啟發(fā),將雙重注意力機(jī)制的內(nèi)部結(jié)構(gòu)設(shè)置為通道注意力模塊和空間注意力模塊,如圖3所示。
圖3 雙重注意力機(jī)制的結(jié)構(gòu)Fig.3 Structure of dual attention mechanism
1.2.1 通道注意力 通道注意力機(jī)制即網(wǎng)絡(luò)通過自動(dòng)學(xué)習(xí)的方式獲取每個(gè)特征通道的顯著性,并且據(jù)此給每一個(gè)特征通道賦予一個(gè)權(quán)重值,從而使網(wǎng)絡(luò)將重點(diǎn)放在信息多的特征上,重新標(biāo)定前面得到的特征。其結(jié)構(gòu)如圖4所示。
圖4 通道注意力機(jī)制的結(jié)構(gòu)Fig.4 Structure of channel attention mechanism
首先對(duì)輸入的特征圖H×W×C進(jìn)行全局平均池化,得到1×1×C的特征向量,計(jì)算式
式中:C為特征圖的個(gè)數(shù);H×W表示特征圖的尺寸;uc(i,j)為特征圖第c個(gè)通道位置在(i,j)的像素值;Fsq()為全局平均池化操作,用來求出每個(gè)特征圖對(duì)應(yīng)的均值。
使用兩個(gè)全連接層建立通道與通道間的相關(guān)性,并根據(jù)網(wǎng)絡(luò)學(xué)習(xí)各通道的重要程度對(duì)特征圖的權(quán)重進(jìn)行調(diào)整,計(jì)算式
其中,F(xiàn)ex為特征提取函數(shù);W1和W2分別為兩個(gè)1×1卷積層的權(quán)重,W1以比率r的形式進(jìn)行通道縮減,W2以比率r的形式進(jìn)行通道增加,通過訓(xùn)練網(wǎng)絡(luò)學(xué)習(xí)不斷調(diào)整權(quán)重值。
最后,不同的通道乘上相應(yīng)的權(quán)重,得到每個(gè)特征圖的權(quán)重。計(jì)算式
式中:xc為新的特征圖;sc為第c個(gè)通道的權(quán)重;uc為第c個(gè)通道;Fscale為sc和uc的乘積函數(shù)。
1.2.2 空間注意力 每個(gè)通道的特征圖顯著性不同,每個(gè)特征圖上不同位置的紋理細(xì)節(jié)也是不同的,由此,本文引入空間注意力模塊,捕捉圖像的紋理細(xì)節(jié)。網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。將H×W×C的特征圖F同時(shí)進(jìn)行一個(gè)通道維度的平均池化和最大池化,得到兩個(gè)H×W×1的通道描述,之后將兩個(gè)描述按通道完成拼接。為保證拼接后的描述能強(qiáng)化所有空間位置并實(shí)現(xiàn)非線性映射,本文使用7×7卷積核進(jìn)行卷積操作,采用Sigmoid激活函數(shù)得到權(quán)重矩陣Ms,并將其與特征圖F的權(quán)重信息相乘,得到具有新權(quán)重的特征圖。
圖5 空間注意力機(jī)制的結(jié)構(gòu)Fig.5 Structure of spatial attention mechanism
對(duì)偶回歸網(wǎng)絡(luò)通過反饋信息對(duì)學(xué)習(xí)任務(wù)的效果進(jìn)行加強(qiáng)和指導(dǎo),結(jié)構(gòu)如圖6所示。將低分辨率圖像輸入原始重建網(wǎng)絡(luò),生成高分辨率圖像,再利用對(duì)偶網(wǎng)絡(luò)將其轉(zhuǎn)化為低分辨率圖像。這一過程存在噪聲[8],因此轉(zhuǎn)化后的低分辨率圖像與原始圖像之間存在差異。若將這個(gè)差異最小化,可同時(shí)改進(jìn)兩個(gè)子網(wǎng)絡(luò)模型的性能??紤]到對(duì)偶任務(wù)概率分布之間的聯(lián)系,在訓(xùn)練過程中加入約束條件:目標(biāo)函數(shù)1
圖6 對(duì)偶學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 Dual learning network structure
目標(biāo)函數(shù)2
式中:l為兩個(gè)函數(shù)的差異函數(shù);f和g是兩個(gè)對(duì)偶網(wǎng)絡(luò)的模型;θxy為低分辨率圖像到高分辨率圖像的映射;θyx為高分辨率圖像到低分辨率圖像的映射;x為低分辨率圖像;y為高分辨率圖像;P(x)P(y|x;θxy)為對(duì)偶學(xué)習(xí)對(duì)原始重建模型的約束;P(y)P(x|y;θyx)為原始重建模型對(duì)對(duì)偶模型的約束。
為了求解這個(gè)問題,使用拉格朗日乘數(shù)法,為兩個(gè)目標(biāo)函數(shù)增加乘數(shù)項(xiàng)
若能較好地估計(jì)P(x)和P(y),對(duì)偶學(xué)習(xí)算法就能提升兩個(gè)對(duì)偶網(wǎng)絡(luò)的性能。
兩個(gè)子網(wǎng)絡(luò)都使用L1損失函數(shù),則原始重建網(wǎng)絡(luò)的損失函數(shù)為L(zhǎng)P(P(xi),yi),其中,i為第i張圖像,P(xi)為超分辨率圖像,y原始高分辨率圖像。對(duì)偶網(wǎng)絡(luò)的損失函數(shù)表示為L(zhǎng)D(D(P(xi)),xi),其中,D(P(xi))表示超分辨率圖像下采樣得到的低分辨率圖像;x表示由預(yù)處理圖像經(jīng)過淺層特征提取模塊卷積得到的低分辨率圖像??倱p失函數(shù)為
其中λ為超參數(shù),用來控制兩個(gè)網(wǎng)絡(luò)的權(quán)重。
實(shí)驗(yàn)使用pytorch框架對(duì)網(wǎng)絡(luò)進(jìn)行構(gòu)建,實(shí)驗(yàn)操作系統(tǒng)為64位Ubuntu18.04,計(jì)算平臺(tái)版本為CUDA10.0,硬件配置為Intel Xeon(R)Platinum 8160 CPU,250G內(nèi)存,GPU為4張NVIDIAP100。
注意力卷積核數(shù)為64,每次上采樣前包含30個(gè)注意力模塊;采用自適應(yīng)矩估計(jì)優(yōu)化器,β1=0.9,β2=0.999;對(duì)偶回歸中的權(quán)重λ為0.1,批量大小為6。本文算法放大4倍圖像重建的參數(shù)設(shè)置如表1所示。
表1 訓(xùn)練模型網(wǎng)絡(luò)參數(shù)Tab.1 Network parameters of training model
使用的訓(xùn)練集為DIV2K和Flickr2K,基準(zhǔn)數(shù)據(jù)集為Set5、Set14、B100、Urban100。
從主觀與客觀兩方面對(duì)圖像的重建質(zhì)量進(jìn)行評(píng)估。以峰值信噪比(Peak signal-to-noise ratio,PSNR)、結(jié)構(gòu)相似度(Structural similarity,SSIM)以及重建時(shí)間作為客觀評(píng)價(jià)的指標(biāo)。其中,PSNR值越大,圖像失真的程度就越小,即圖像的重建效果越好;SSIM值越接近于1,重建圖像與真實(shí)圖像就越接近。主觀評(píng)價(jià)依據(jù)直觀的視覺效果,對(duì)圖像的重建質(zhì)量進(jìn)行評(píng)估。
(1)算法性能及時(shí)間分析。分別在4個(gè)基準(zhǔn)數(shù)據(jù)集上完成算法的性能評(píng)估及重建時(shí)間分析,并與SRCNN算法進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表2所示。雖然本文算法的重建時(shí)間比SRCNN算法平均每張圖像多消耗0.03~0.2 s,但是本文算法的PSNR值和SSIM值都高于SRCNN算法。尤其是在Set14數(shù)據(jù)集中,相比SRCNN算法,本文算法平均每張圖像的重建時(shí)間縮短了0.01 s,且PSNR值提高1.16 dB,SSIM提升0.018。本文算法的性能以及重建效率均可滿足相關(guān)應(yīng)用的需要。
表2 在放大2倍和4倍下PSNR、SSIM及時(shí)間分析Tab.2 PSNR,SSIMand time analysis under 2 times and 4 times magnification factors
(2)不同算法性能對(duì)比。設(shè)置相同實(shí)驗(yàn)參數(shù),將本文算法與Bicubic、SRCNN、ESPCN(Efficient sub-pixel convolutional neural network)、DRRN(Deep recursive residual network)、LapSRN、DBPN(Deep back-projection networks)算法進(jìn)行對(duì)比,結(jié)果如表3所示。當(dāng)放大倍數(shù)為2和4時(shí),本文算法的峰值信噪比和結(jié)構(gòu)相似度都高于其他算法。
表3 不同算法在圖像放大2倍和4倍下PSNR和SSIM對(duì)比Tab.3 Comparison of PSNR and SSIM for different algorithms under 2 times and 4 times magnifications
(3)不同算法的視覺效果對(duì)比。將本文算法與原始高分辨率圖像(High resolution,HR)、低分辨率圖像(Low resolution,LR)、Bicubic、SRCNN、DRRN、LapSRN和DBPN算法從重建圖像的視覺效果上進(jìn)行對(duì)比。從基準(zhǔn)數(shù)據(jù)集中隨機(jī)選取圖像,將其輸入到各網(wǎng)絡(luò)模型中,重建圖像的局部放大圖與真實(shí)圖像的局部放大圖詳見圖7和圖8。與其他算法相比,本文算法重建的高分辨率圖像,在邊緣和紋理細(xì)節(jié)上更加清晰,與真實(shí)圖像的視覺效果更接近。
圖7 Set5圖像放大2倍下不同算法的視覺效果對(duì)比Fig.7 Comparison of visual effects of different algorithms under 2 times magnification of Set5 image
圖8 Set14圖像放大4倍下不同算法的視覺效果對(duì)比Fig.8 Comparison of visual effects of different algorithms under 4 times magnification of Set14 image
為了解決圖像重建的自適應(yīng)問題和避免圖像重建浪費(fèi)過多計(jì)算資源,本文引入雙注意力機(jī)制和對(duì)偶學(xué)習(xí)用于單幅圖像超分辨率重建。算法使用對(duì)偶學(xué)習(xí)減少低分辨率圖像到高分辨圖像的函數(shù)映射空間,并且結(jié)合通道注意力機(jī)制和空間注意力機(jī)制獲取不同位置不同通道的權(quán)重值,使網(wǎng)絡(luò)可以依據(jù)權(quán)重高效分配計(jì)算資源,同時(shí)使用極少的參數(shù)提高超分辨率重建的質(zhì)量。在基準(zhǔn)數(shù)據(jù)集Set5、Set14、BSDS100、Urban100上進(jìn)行放大2倍和4倍的重建測(cè)試實(shí)驗(yàn),并對(duì)比峰值信噪比和結(jié)構(gòu)相似度指標(biāo)。實(shí)驗(yàn)結(jié)果表明,與Bicubic、SRCNN、ESPCN、DRRN、LapSRN算法相比,本文算法的峰值信噪比和結(jié)構(gòu)相似度都高于其他算法,視覺效果比其他算法圖像更清晰。本文算法的重建時(shí)間比SRCNN算法稍長(zhǎng)或持平。