楊書廣
(西安建筑科技大學(xué) 理學(xué)院,陜西 西安 710055)
單圖像超分辨率重建(SR)是計算機視覺中的一個經(jīng)典問題,它的目標(biāo)是從一張低分辨率(LR)圖像重建高分辨率(HR)圖像。SR 已廣泛應(yīng)用于視頻監(jiān)控、衛(wèi)星遙感圖像、醫(yī)學(xué)圖像、顯微鏡成像以及圖像和視頻壓縮等諸多領(lǐng)域。雖然針對圖像SR 提出了許多解決方案,但由于圖像SR 的病態(tài)性和較高的實用價值,在計算機視覺領(lǐng)域仍是一個活躍而富有挑戰(zhàn)性的研究課題。近年來,深度學(xué)習(xí)技術(shù),特別是卷積神經(jīng)網(wǎng)絡(luò)(CNN)和殘差學(xué)習(xí),極大地提升了圖像超分辨率重建的性能。SRCNN[1]是首個成功采用CNN 來解決SR 問題的模型,它是一個簡單的3 層網(wǎng)絡(luò),可以學(xué)習(xí)低分辨率圖像LR 和高分辨率圖像HR 之間的端到端的映射,在當(dāng)時取得了超越傳統(tǒng)算法的重建效果。隨后,各種用于超分辨率重建的卷積神經(jīng)網(wǎng)絡(luò)相繼出現(xiàn)。He Kim 等[2]通過引入全局殘差學(xué)習(xí),將網(wǎng)絡(luò)深度增加到20 層,在SR 性能上取得了顯著提高。其他一些模型,如DRCN[3]和DRRN[4],則側(cè)重于權(quán)重共享,以減小模型參數(shù)的比例。雖然這些方法性能優(yōu)越,但都需要原始LR 圖像的雙三次插值版本作為輸入,不可避免地丟失了一些細(xì)節(jié),且計算量較大。而反卷積[5]和亞像素卷積[6],可以改善這一問題。相比于雙三次插值,它們有助于減少原圖像的信息損失。為了生成高質(zhì)量的圖像,Johnson 等人提出了基于從預(yù)先訓(xùn)練的網(wǎng)絡(luò)中提取的高級特征的感知損失函數(shù),與使用逐像素?fù)p失訓(xùn)練的方法相比,該函數(shù)可以重構(gòu)更精細(xì)的細(xì)節(jié)。近年來生成對抗網(wǎng)絡(luò)(GANs)[7]在包括單圖像超分辨率重建在內(nèi)的許多計算機視覺任務(wù)中都取得了良好的效果。Ledig 等人[8]使用GANs(SRGAN)獲得了逼真的自然圖像,其在視覺效果上明顯優(yōu)于非GAN 網(wǎng)絡(luò)重建的圖像,但也產(chǎn)生了許多偽細(xì)節(jié)紋理。
綜合來看,目前已有的基于CNN 進(jìn)行超分辨率重建的方法可以分為兩大類。第一種方法將SR 作為重構(gòu)問題,采用均方誤差MSE 作為損失函數(shù)來實現(xiàn)高的峰值信噪比(PSNR)和結(jié)構(gòu)相似度(SSIM)值,以SRCNN 等作為代表。然而,這種方法往往產(chǎn)生過度平滑的圖像,在紋理細(xì)節(jié)上難以滿足人的視覺感知需要。為了獲得更好的感知質(zhì)量,第二種方法將SR 轉(zhuǎn)換為圖像生成問題。通過結(jié)合感知損失[9]與生成對抗網(wǎng)絡(luò)(GAN),這種SR 方法具有生成符合人視覺效果的紋理和細(xì)節(jié)的潛力,以SRGAN 為代表。盡管GAN 網(wǎng)絡(luò)生成的高分辨率圖像具有良好的感知效果,但也生成了很多原圖并不具有的紋理細(xì)節(jié),其忠實性很成問題。這表現(xiàn)在GAN 網(wǎng)絡(luò)生成的高分辨率圖像PSNR 和SSIM 值通常都較低。
針對上述問題,本文提出了一種基于深度反向投影的感知增強SR 網(wǎng)絡(luò)模型,設(shè)計了雙尺度自適應(yīng)加權(quán)融合的特征提取模塊,基于深度反向投影的重建模塊和具有U-net 結(jié)構(gòu)的增強模塊。采用稠密連接[10]和殘差連接以實現(xiàn)圖像特征的重復(fù)利用和減少梯度消失對模型優(yōu)化的影響,并引入了可學(xué)習(xí)的感知相似度[11](LPIPS)作為新的圖像感知質(zhì)量的評價指標(biāo)和損失函數(shù)。模型可以在4 倍下采樣因子下重建超分辨率圖像,實驗結(jié)果表明,本文提出的模型在保持較高的PSNR和SSIM 值的同時,感知質(zhì)量也優(yōu)于SRGAN 生成的超分辨率圖像。
網(wǎng)絡(luò)結(jié)構(gòu)總體分為特征提取模塊、重建模塊、增強模塊,如圖1所示。
圖1 網(wǎng)絡(luò)總體結(jié)構(gòu)Fig.1 Overall structure of network
本文結(jié)合亞像素卷積和逆亞像素卷積設(shè)計了雙尺度自適應(yīng)加權(quán)融合特征提取模塊。該模塊有2 個輸入分支,一支和原圖分辨率相同,另一支通過亞像素卷積得到分辨率減小一半的低分辨率特征圖。2 個分支分別通過亞像素卷積和逆亞像素卷積[12]進(jìn)行上采樣和下采樣,以實現(xiàn)兩組特征圖不同分辨率之間的相互轉(zhuǎn)化,相比于常用的池化和各種插值實現(xiàn)下采樣和上采樣,亞像素卷積和逆亞像素卷積能夠完整地保留原特征圖的信息。不同分辨率的特征圖分別經(jīng)過上采樣和下采樣之后,與另一分支分辨率同樣大小的特征圖并行連接,并分別與各自的可學(xué)習(xí)的權(quán)重向量相乘,以自適應(yīng)的調(diào)節(jié)各通道權(quán)重,藉此實現(xiàn)不同分辨率之間的自適應(yīng)信息交互,最后再分別進(jìn)行卷積,如圖2所示。所有卷積核大小均為3×3,步長為1,通道數(shù)見表1。每個卷積核之后接PReLU 激活函數(shù)。
表1 特征提取模塊中各卷積核通道數(shù)Table 1 Number of each convolution kernel channel in feature extraction module
圖2 特征提取模塊Fig.2 Feature extraction module
亞像素卷積的主要功能是將通道數(shù)為c、大小為w×h的特征圖組合為新的通道數(shù)為c/r2、大小為(wr)×(hr)的高分辨率特征圖,其中r為上采樣因子。具體來說,就是將原來低分辨特征圖的一個像素點擴充為r×r個像素點,利用r×r個低分辨率特征圖的同一像素位置的值按照一定的規(guī)則來填充擴充后的r×r個像素點。按照同樣的規(guī)則將每個低分辨像素點進(jìn)行擴充就完成了重組過程,過程中沒有損失任何像素信息,且沒有可學(xué)習(xí)的參數(shù)。逆亞像素卷積則是將上述過程反過來,從高分辨率得到下采樣后的低分辨率圖像,圖像分辨率減小而通道數(shù)增加。
特征提取模塊可用公式表達(dá)如下:
式中:Xk(k=1,···,7)為特征圖;Cm(m=1,···,6)為卷積核;Xh表示并行連接后的高分辨率特征圖;Xl代表并行連接后的低分辨率特征圖;表示Xh的第i個通道;c1為Xh的通道數(shù);表示Xl的第j個通道;c2為Xl的通道數(shù);和為可學(xué)習(xí)的權(quán)重向量,初始值為單位向量;Xhw為按通道加權(quán)后的高分辨率特征圖;Xlw為按通道加權(quán)后的低分辨率特征圖;*表示卷積運算;S表示亞像素卷積;DS為逆亞像素卷積;P(·)為PReLU 激活函數(shù);Cat(·)表示特征圖的并行連接。
重建模塊以深度反向投影[13]為基礎(chǔ),將低分辨率特征圖4 倍上采樣為高分辨特征圖。迭代反向投影通過交替使用上采樣塊(Up-block)和下采樣塊(Down-block)(見圖4)來迭代學(xué)習(xí)低分辨率和高分辨率圖像之間的誤差,以更好的重建高分辨率圖像。文獻(xiàn)[14]證明了反向投影在超分辨率重建任務(wù)中的有效性。與文獻(xiàn)[13]不同的是,本文采用亞像素卷積代替了原結(jié)構(gòu)中的反卷積進(jìn)行上采樣,這顯著減少了網(wǎng)絡(luò)參數(shù)和運算量。本文使用了4 個上采樣塊和3 個下采樣塊進(jìn)行重建,且各個上采樣快(下采樣塊)之間進(jìn)行了稠密連接,以共享特征圖及防止梯度消失,如圖3。
圖3 重建模塊Fig.3 Reconstruction module
第t個上采樣塊通過亞像素卷積將輸入的LR 圖像Lt-1上采樣為HR 圖像經(jīng)卷積下采樣為LR 圖像然后將與Lt-1按像素作差,得到再經(jīng)亞像素卷積得到HR 圖像最后將與按像素求和,得到輸出Ht,如圖4(a)所示。卷積核的參數(shù)為:核大小為8,步長為4,填充為2。
上采樣塊的結(jié)構(gòu)可用公式表達(dá)如下:
式中:S表示亞像素卷積;P(·)表示激活函數(shù)PReLU;C表示卷積核;*表示卷積運算;t=1,2,3,4。
下采樣塊結(jié)構(gòu)與上采樣塊類似,如圖4(b)所示,用公式表達(dá)為
圖4 上采樣塊與下采樣塊Fig.4 Up-sampling block and down-sampling block
各采樣塊通道數(shù)見表2。
表2 各采樣塊通道數(shù)Table 2 Number of each sampling block channel
增強模塊以U-net[15]結(jié)構(gòu)為主體,通過對重建后的圖像進(jìn)行增強以提高視覺感知。U-net 最早用于醫(yī)學(xué)圖像分割,其結(jié)構(gòu)特征為:先上采樣,后下采樣,且同分辨率之間采用跳躍連接[16]。這種結(jié)構(gòu)有助于網(wǎng)絡(luò)學(xué)習(xí)到不同尺度的特征,有效避免梯度消失的問題,結(jié)合低分辨率和高分辨率信息獲得很好的學(xué)習(xí)效果。這也使得U-net 近年來被廣泛應(yīng)用于圖像分割、目標(biāo)檢測、圖像生成等領(lǐng)域。
本文設(shè)計的U-net 結(jié)構(gòu)如圖5。重建后的HR 圖像依次和7×7×64、5×5×64、3×3×32 的卷積核進(jìn)行卷積,得到下采樣圖像,然后依次進(jìn)入5 個稠密殘差塊(見圖5 右邊),最后再與3×3×32、5×5×64、7×7×104、3×3×3 的反卷積進(jìn)行卷積得到最終輸出的HR 圖像。這里跳躍連接是按對應(yīng)像素求和。除最后一層的3×3 的卷積核填充為1 外,其余填充皆為0,所有卷積核步長均為1。
圖5 增強模塊Fig.5 Enhanced module
稠密殘差塊由4 個卷積層組成,依次有32、32、64、128 個通道,所有卷積核大小皆為3×3,填充為1。卷積層之間采用了稠密連接:每一層都以前面所有層的輸出作為輸入。這種連接方式可以共享稠密殘差塊內(nèi)的特征,文獻(xiàn)[17]表明,共享底層特征對于圖像中結(jié)構(gòu)細(xì)節(jié)的正確重建非常重要,同時也增加了后續(xù)層輸入的變化,有助于網(wǎng)絡(luò)學(xué)習(xí)到更多信息。最后的輸出采用了殘差連接。
本文的損失函數(shù)使用L2范數(shù),包括像素間的損失Lp以及特征圖之間的LPIPS 損失LLPIPS。
記I為原圖,ISR為模型的輸出圖,則
Lp=‖I-ISR‖2
式中‖·‖2表示L2范數(shù)。
LLPIPS損失以LPIPS 指標(biāo)作為損失函數(shù),對于LPIPS 指標(biāo)的介紹見2.2。模型總的損失L為
L=Lp+λLLPIPS
式中 λ為參數(shù),經(jīng)實驗后,取 λ為0.1。
本文使用General-100 作為訓(xùn)練數(shù)據(jù)集,測試數(shù)據(jù)使用了從Flickr2K 數(shù)據(jù)集中裁剪的部分圖片。訓(xùn)練時對訓(xùn)練集的圖像進(jìn)行隨機裁剪得到80×80 像素大小的圖像塊,然后對圖像塊進(jìn)行4 倍因子的下采樣以獲得低分辨率輸入圖像。下采樣采用Bicubic 算法。
本文使用Pytorch 框架訓(xùn)練模型,學(xué)習(xí)率為0.000 1,優(yōu)化算法采用Ranger 算法,該算法結(jié)合了RAdam 算法[18]和LookAhead 算法[19],能夠使網(wǎng)絡(luò)更為穩(wěn)定快速地收斂。模型迭代次數(shù)為9 000 次,批大小為30,損失函數(shù)曲線見圖6所示。
圖6 損失函數(shù)曲線Fig.6 Loss function curve
本文采用的圖像評價指標(biāo)有峰值信噪比(PSNR)、結(jié)構(gòu)相似度(SSIM)、可學(xué)習(xí)的感知相似度(LPIPS)。
PSNR 是最普遍和使用最為廣泛的一種圖像客觀評價指標(biāo),數(shù)值越大說明與原圖越接近。然而它是基于對應(yīng)像素點間的誤差,即基于誤差敏感的圖像質(zhì)量評價。由于并未考慮到人眼的視覺特性(人眼對空間頻率較低的對比差異敏感度較高,人眼對亮度對比差異的敏感度較色度高,人眼對一個區(qū)域的感知結(jié)果會受到其周圍鄰近區(qū)域的影響等),因而經(jīng)常出現(xiàn)評價結(jié)果與人的主觀感覺不一致的情況。
SSIM 是一種評價圖像質(zhì)量的主觀評價指標(biāo),其值介于0~1 之間,越接近1 說明與原圖越相似。SSIM 算法在設(shè)計上考慮到了圖像的結(jié)構(gòu)信息在人的感知上的變化,該模型還引入了一些與感知上的變化有關(guān)的感知現(xiàn)象和結(jié)構(gòu)信息,結(jié)構(gòu)信息指的是像素之間有著內(nèi)部的依賴性,尤其是空間上靠近的像素點。這些依賴性攜帶著目標(biāo)對象視覺感知上的重要信息,因此SSIM 比PSNR 更適于評價圖像的感知效果。
可學(xué)習(xí)的感知相似度(LPIPS)于2018年被提出,是一種基于學(xué)習(xí)的感知相似性度量指標(biāo)。與感知損失類似,其方法是:使用預(yù)訓(xùn)練網(wǎng)絡(luò)(如VGG 和Alex)的某些層得到特征圖,然后再訓(xùn)練另一個精心設(shè)計的網(wǎng)絡(luò),網(wǎng)絡(luò)輸出特征圖的距離,距離越小說明感知質(zhì)量越好。實驗證明感知相似度比傳統(tǒng)相似性度量方法更好。近年來,這一指標(biāo)多用于GAN 網(wǎng)絡(luò)生成的圖像的評價。相比于PSNR、SSIM 指標(biāo),LPIPS 更能反映出由GAN 所生成的圖像的感知優(yōu)勢。
實驗從Flickr2K 數(shù)據(jù)集中選取了7 張圖片進(jìn)行測試,在4 倍上采樣因子下,將本文的算法結(jié)果與Bicubic、SRCNN、SRGAN 的重建結(jié)果進(jìn)行了對比,重建效果展示見圖7,對比指標(biāo)有PSNR、SSIM、LPIPS,對比結(jié)果見表3、表4、表5,表中最優(yōu)結(jié)果均加粗顯示。
圖7 重建效果對比Fig.7 Comparison of reconstruction effects
表3 PSNR 對比結(jié)果Table 3 PSNR comparison results
表4 SSIM 對比結(jié)果Table 4 SSIM comparison results
表5 LPIPS 對比結(jié)果Table 5 LPIPS comparison results
由表3、表4、表5 可見,本文算法在PSNR、SSIM 兩項指標(biāo)對比中,7 個樣本中有6 個樣本優(yōu)于對比算法,在基于學(xué)習(xí)的感知評價指標(biāo)LPIPS 上則全面優(yōu)于對比算法。同時可以看到,Bicubic 和SRCNN 在PSNR、SSIM 指標(biāo)上優(yōu)于SRGAN,而SRGAN 則在LPIPS 指標(biāo)上優(yōu)于Bicubic 和SRCNN。本文算法則在保持高的PSNR、SSIM 值的情況下,同時擁有較低的LPIPS 值。
本文提出了一種基于迭代反向投影的感知增強SR 模型,設(shè)計了雙尺度自適應(yīng)加權(quán)融合特征提取模塊、基于深度反向投影的重建模塊以及具有U-net 結(jié)構(gòu)的增強模塊。結(jié)合像素間的損失和LPIPS指標(biāo)作為損失函數(shù)。實驗和指標(biāo)評價表明,相比于SRCNN 模型只追求高的PSNR 和SSIM 值,SRGAN模型只追求高的感知質(zhì)量而不顧圖像細(xì)節(jié)的忠實性,本文所提出的模型能夠在保持較高PSNR 和SSIM 值的情況下,同時獲得較好的感知質(zhì)量。