徐石,張莉,2*,季家歡
(1.蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.蘇州大學(xué) 江蘇省計算機信息處理技術(shù)重點實驗室,江蘇 蘇州 215006)
單圖像超分辨率(single image super-resolution, SISR)旨在從相關(guān)的低分辨率(low-resolution, LR)圖像中恢復(fù)出令人滿意的高分辨率(high-resolution,HR)圖像,這是計算機視覺和圖像處理中的一種重要應(yīng)用。超分辨率(super-resolution, SR)技術(shù)可以有效地用于安全監(jiān)控[1-2]、醫(yī)學(xué)成像[3-4]和超高清內(nèi)容生成[5-7]等各種場景,因此其具有巨大的實用價值。經(jīng)過數(shù)十年的廣泛研究,提出了不少解決SISR問題的方法。但是由于該問題為一個不適定逆問題,即給定一個LR圖像,可能有許多HR圖像對應(yīng)于同一幅LR圖像,所以SISR仍然是一個非常具有挑戰(zhàn)性和開放性的研究問題。
近年來,深度學(xué)習(xí)已成功地解決計算機視覺的眾多任務(wù),包括SISR任務(wù)。Dong等人[8]首先提出了一種用于優(yōu)化非線性映射和特征提取的三層超分辨率卷積神經(jīng)網(wǎng)絡(luò)(super-resolution convolutional neural network, SRCNN),其令人鼓舞的結(jié)果引起了極大的關(guān)注。許多關(guān)于SISR的最新工作表明,更深的網(wǎng)絡(luò)模型會帶來更好的性能[9-12],因為增加網(wǎng)絡(luò)的深度或?qū)挾瓤梢詳U大感受野,提供更豐富的特征信息,有助于提升SR圖像的質(zhì)量。
上述SISR方法取得了顯著的成果,但是它們?nèi)匀淮嬖谝韵氯秉c。首先,通過添加更多層來構(gòu)建更深或更廣的網(wǎng)絡(luò)實現(xiàn)更好的性能,這需要更高的計算成本和更大的存儲空間,而巨大的模型在實踐中可能是無法接受的。其次,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)傾向于采用前向網(wǎng)絡(luò)結(jié)構(gòu)。因此,Kim等人[13]提出了一種深度遞歸卷積網(wǎng)絡(luò)(deeply-recursive convolutional network,DRCN),利用構(gòu)造遞歸單元和共享權(quán)重參數(shù)來解決上述缺點。但是,DRCN在訓(xùn)練過程中還是會遭遇到梯度彌散或梯度爆炸問題,導(dǎo)致其不容易收斂。在DRCN的基礎(chǔ)上,Tai等人[14]提出了深度遞歸殘差網(wǎng)絡(luò)(deep recursive residual network,DRRN),應(yīng)用全局和局部殘差學(xué)習(xí)來促進特征提取和梯度流動。但是,這些方法在訓(xùn)練之前,需要對LR圖像放大至所需的尺寸。這會導(dǎo)致更高的計算復(fù)雜度,并使LR圖像過度平滑或模糊。Tong等人修改了密集連接卷積網(wǎng)絡(luò)(densely connected convolutional network,DenseNet)[15]的結(jié)構(gòu)并提出了用于SISR任務(wù)的超分辨率密集連接卷積網(wǎng)絡(luò)(super-resolution DenseNet,SRDenseNet)[16]。此外,SRDenseNet在網(wǎng)絡(luò)末端使用轉(zhuǎn)置卷積層進行上采樣,這有助于恢復(fù)高頻細(xì)節(jié)。但是,DenseNet的提出是為了解決更高層次的計算機視覺問題,例如圖像分類和檢測。因此,將該架構(gòu)直接應(yīng)用于低層次視覺問題(如超分辨率),可能不是最佳方案。
為了解決上述問題,本文提出了一種多尺度遞歸密集網(wǎng)絡(luò)(multi-scale recursive dense network, MSRDN)。在訓(xùn)練過程中,MSRDN直接將LR圖像用作輸入,而無須使用預(yù)定義的上采樣運算符將其放大到所需的尺寸。在MSRDN中,多尺度密集模塊(multi-scale dense block, MSDB)作為其中的關(guān)鍵部分融合了不同尺度下的特征以獲得更豐富和有效的信息,這有助于解決圖像重建任務(wù)。重建模塊將MSDB群的輸出恢復(fù)成SR圖像,然后通過多項L1損失函數(shù)訓(xùn)練網(wǎng)絡(luò)。
本文的主要貢獻如下:
1) 我們設(shè)計了一個MSDB群,其包含多個MSDB。在每個MSDB中,都有一個雙旁路子網(wǎng)和一個通道注意力機制。雙旁路子網(wǎng)的功能是將多尺度特征與密集跳躍連接融合在一起。通道注意力機制從通道中提取更多有用的信息。MSDB群在信息跨網(wǎng)絡(luò)流動方面發(fā)揮了作用。
2) 在MSDB群的基礎(chǔ)上,我們提出了用于SISR的MSRDN方法。首先,淺層特征提取模塊用于獲得MSRDN中的粗糙特征。然后,MSRDN將粗略特征傳遞到MSDB 群,并在高頻空間中生成殘差特征。在損失函數(shù)中考慮使用所有MSDB群重建的SR圖像。
目前,已經(jīng)提出了許多用于SISR的方法,包括基于預(yù)測的方法[17]、基于邊緣的方法[18]、基于統(tǒng)計的方法[19]、基于補丁的方法[20]、基于稀疏表示的方法[21]和基于CNN的方法。在這里,我們重點介紹基于CNN的方法。
近年來,隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,人們積極探索基于數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)的SR模型。這些模型可用來還原所需的重建細(xì)節(jié),并在各種超分辨率基準(zhǔn)數(shù)據(jù)集上達到很好的重建性能。不同于在圖像塊空間中建模LR-HR的映射,Dong等人[8]提出的SRCNN可以用端對端的方式學(xué)習(xí)圖像空間LR-HR的非線性映射,并優(yōu)于傳統(tǒng)的淺層方法。Kim等人[22]提出了一種非常深的超分辨率CNN模型,稱為極深超分辨率網(wǎng)絡(luò)(image super-resolution using very deep convolutional networks, VDSR)。 VDSR將網(wǎng)絡(luò)深度從SRCNN中的3層增加到了20層,且在訓(xùn)練中利用梯度修剪和殘差學(xué)習(xí)來使網(wǎng)絡(luò)更精確地收斂。Tai等人[23]提出了一種非常深的端到端的新型持久性記憶網(wǎng)絡(luò)(a persistent memory network for image restoration, MemNet)。 該網(wǎng)絡(luò)可以分為類似于SRCNN的三個部分,其中堆疊的記憶模塊在網(wǎng)絡(luò)中起著至關(guān)重要的作用,由一個遞歸單元和一個門單元組成。每個遞歸單元的輸出被級聯(lián),并通過額外的1×1卷積進行記憶和遺忘操作。密集連接這類結(jié)構(gòu)有助于補償中高頻信號,并確保信息在記憶塊之間充分流動。Shi等人[24]提出了一種有效的亞像素卷積網(wǎng)絡(luò)(an efficient sub-pixel convolutional network, ESPCN),能在LR空間中提取特征。亞像素卷積運算可用于縮放輸入特征圖的尺寸,且只需要較低的計算復(fù)雜度。盡管可以通過添加更多層生成更深或更寬的網(wǎng)絡(luò),以此來獲得更好的性能,但這樣做也需要更高的計算成本和更大的存儲空間。為了解決這個問題,Kim等人[13]提出了DRCN,該網(wǎng)絡(luò)由三個較小的子網(wǎng)絡(luò)組成,并多次應(yīng)用相同的卷積層。該技術(shù)的優(yōu)點在于,隨著遞歸次數(shù)的增加,模型參數(shù)的數(shù)量依舊保持不變。此外,遞歸監(jiān)督和跳躍連接可以進一步提高網(wǎng)絡(luò)性能。Tai等人[14]通過引入更深的體系結(jié)構(gòu)(包含多達52個卷積層)來設(shè)計了DRRN。通過利用全局和局部殘差學(xué)習(xí),DRRN有效地減輕了訓(xùn)練深度網(wǎng)絡(luò)的難度,并將豐富的圖像細(xì)節(jié)傳遞給后續(xù)層。Tong等人[16]提出了一種稱為SRDenseNet的方法,其每個卷積層可以通過密集連接直接對其所有先前層的輸出進行操作。 SRDenseNet改善了網(wǎng)絡(luò)中的信息流動并減輕了梯度彌散與梯度爆炸的問題。
在本節(jié)中,我們首先描述了所提MSRDN模型的框架,然后介紹其核心部分MSDB。
MSRDN的網(wǎng)絡(luò)架構(gòu)如圖1所示,主要由三部分組成:特征提取(feature extraction, FE)模塊,多尺度密集模塊群和重建模塊。
此處,設(shè)ILR和ISR分別為MSRDN的輸入和輸出。在淺層特征提取模塊中,我們利用一個3×3的卷積層從原始LR輸入圖像中提取粗糙特征。此過程可以表示為
F0=fs(ILR),
(1)
其中,fs代表淺層特征提取函數(shù),而F0表示粗糙特征并作為下一階段的輸入。
在MSDB群中,有多個MSDB生成精細(xì)特征,即
F1=R1(F0)
(2)
和
Fk=Rk([Fk-1,F0]),k=2,3,…,n,
(3)
其中,Rk表示第k個MSDB函數(shù),Fk表示第k個MSDB的輸出,n是總的MSDB函數(shù)的個數(shù),[·]表示特征拼接,此處是用Fk-1和F0拼接后的特征作為第k個MSDB函數(shù)的輸入。
最后,MSRDN使用重建模塊還原由多個MSDB函數(shù)生成的殘差圖像,而不是學(xué)習(xí)從LR圖像到HR圖像的直接映射。因此,SR圖像可以表示為
(4)
(5)
圖1 MSRDN網(wǎng)絡(luò)架構(gòu)Fig.1 Architecture of MSRDN
圖2 多尺度密集模塊的基本結(jié)構(gòu)Fig.2 Basic structure of the multi-scale dense block
如前所述,MSDB群是MSRDN的核心部分,由多個MSDB組成,能有效地改善從LR圖像到SR圖像的信息流動,并在訓(xùn)練過程中促進梯度向后傳播。圖2給出了一個MSDB的基本結(jié)構(gòu)。每個MSDB可以分為兩個子網(wǎng):雙旁路子網(wǎng)和通道注意力子網(wǎng)。
MSDB的雙旁路子網(wǎng)采用密集連接,不同的旁路采用不同大小的卷積核。在雙旁路子網(wǎng)中,每個卷積層后面都接一個帶泄露修正線性單元(leaky rectified linear unit,LReLU)作為激活函數(shù)。為了簡化過程描述,在此將該單元省略。因此,雙旁路子網(wǎng)可以表示為:
(6)
Ui=f3([H,U1,…,Ui-1,Di-1]),i=1,…,m
(7)
Di=f5([H,D1,…,Di-1,Ui-1]),i=1,…,m
(8)
(9)
在MSDB中的另一個部分是通道注意力子網(wǎng),可以被描述如下
(10)
其中,Fk表示第k個MSDB的輸出且fgp為全局池化函數(shù)。
為了優(yōu)化計算效率并充分利用深度學(xué)習(xí)技術(shù)來提高圖像分辨率,我們在低維空間中執(zhí)行MSRDN,而不是采用預(yù)定義的上采樣操作先將其放大至所需大小。如圖3所示,最終的重構(gòu)模塊采用一個亞像素卷積層[24]和兩個3×3卷積層。因此,該重建模塊可以表示為:
(11)
圖3 重建模塊的基本結(jié)構(gòu)Fig.3 Basic structure of the reconstruction module
我們在四個基準(zhǔn)數(shù)據(jù)集上評估了MSRDN的性能。本節(jié)首先描述了相關(guān)的數(shù)據(jù)集與測量指標(biāo),然后介紹實驗細(xì)節(jié),最后將模型與其他先進方法的結(jié)果進行比較。
3.1.1 訓(xùn)練集
近年來,已有許多可用于圖像超分辨率的數(shù)據(jù)集,它們在圖像數(shù)量、質(zhì)量和分辨率等方面有明顯差異。這里,我們選擇公開的高質(zhì)量(2K 分辨率)數(shù)據(jù)集DIV2K[26]用于SISR任務(wù),并使用其中指定的800張訓(xùn)練圖像來訓(xùn)練MSRDN。為了充分利用訓(xùn)練數(shù)據(jù),我們通過隨機旋轉(zhuǎn)或翻轉(zhuǎn)圖像來進行數(shù)據(jù)增強操作。
3.1.2 測試集
在評估過程中,我們分別在以下四個公共基準(zhǔn)數(shù)據(jù)集上對所提方法進行了驗證:Set5[27]、Set14[28]、BSD100[29]和Urban100[30]。在這些數(shù)據(jù)集中,Set5和Set14是SR的經(jīng)典數(shù)據(jù)集;BSD100是來自伯克利圖像分割數(shù)據(jù)集,由自然場景組成;Urban100是相對較新的數(shù)據(jù)集,有100幅充滿挑戰(zhàn)性的城市場景圖像。我們采用MATLAB默認(rèn)設(shè)置下的imresize函數(shù)(即雙三次插值)生成用于測試的LR-HR圖像對作為測試集。
3.2.1 峰值信噪比
(12)
其中
(13)
通常,L的值為255.0或1.0(歸一化后)。當(dāng)L固定時,PSNR僅與圖像之間的像素級MSE有關(guān),它的范圍一般在20到40之間,且值越高越好。
3.2.2 結(jié)構(gòu)相似性
Wang等人[31]提出了用于衡量圖像之間差異的結(jié)構(gòu)相似性指數(shù)(structural similarity index,SSIM)。 該指數(shù)與亮度、對比度和結(jié)構(gòu)有關(guān),其定義如下:
(14)
其中,Cl、Cc和Cs分別對應(yīng)亮度、對比度和結(jié)構(gòu)的比較函數(shù)。
在訓(xùn)練過程中,我們每次隨機裁剪16幅低分辨率RGB圖像,且每幅圖像的大小為40×40,其相應(yīng)的HR圖像大小則為40s×40s,其中s(s=2,3,4)是縮放因子。本文,我們構(gòu)建了一個稱為MSRDN的51層卷積神經(jīng)網(wǎng)絡(luò)模型。該模型擁有4個MSDB,其每個旁路中都包含8個卷積層。重建模塊中的兩個卷積層分別由512個和3個卷積核構(gòu)成,而網(wǎng)絡(luò)中其他卷積層均為64個卷積核。
我們通過減去DIV2K數(shù)據(jù)集的平均像素值對所有輸入進行預(yù)處理,在最后的重建環(huán)節(jié)中再對所有SR圖像加上該平均值。本文提出的MSRDN應(yīng)用Adam算法[32]對網(wǎng)絡(luò)進行了優(yōu)化,其中β1=0.9,β2=0.999和ε=1×10-8。我們使用He等人[33]描述的方法初始化權(quán)重,并將偏差設(shè)置為零。學(xué)習(xí)率最初設(shè)置為1×10-4,然后每訓(xùn)練200次衰減一半,共衰減4次。我們在TITAN V GPU上使用PyTorch框架實現(xiàn)了MSRDN。
我們將提出的MSRDN與其他SR算法進行了比較,包括Bicubic、VDSR[22]、DRCN[13]、DRRN[14]、MemNet[23]、SRDenseNet[16]和NLRN[9],其中除Bicubic外,其他方法均是基于深度學(xué)習(xí)的圖像超分辨率方法。我們在四個測試數(shù)據(jù)集上分別計算平均PSNR值和平均SSIM值,具體結(jié)果如表1所示。與其他方法相比,我們提出的MSRDN表現(xiàn)出了其先進性。圖4-圖5顯示了各個方法下的重建圖像。從視覺效果上來看,MSRDN算法具有較好的重建效果,細(xì)節(jié)更加完善,更接近原始圖像。
在本文中,我們提出了一種基于多尺度遞歸密集網(wǎng)絡(luò)的超分辨率算法。我們使用MSDB而不是單個卷積層作為遞歸單元,在沒有引入大量參數(shù)的情況下獲得更大的感受野。多尺度學(xué)習(xí)使模型能夠從多個不同尺度提取圖像特征,進一步提高了網(wǎng)絡(luò)性能。相較于其他SR方法,本文提出的方法在四個基準(zhǔn)數(shù)據(jù)集上的PSNR和SSIM值,取得了更好的結(jié)果,能夠恢復(fù)更多的圖像細(xì)節(jié),具有更好的視覺效果。因此,本文的方法是可行且高效的。
表1 SR算法的定量評估
圖4 MSRDN與其他方法在3倍比例因子下的視覺比較Fig.4 Visual comparison of MSRDN with other works on scale factor of 3
圖5 MSRDN與其他方法在4倍比例因子下的視覺比較Fig.5 Visual comparison of MSRDN withother works on scale factor of 4