劉星辰,賈俊鋮,張 莉,胡沁涵
蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州215006
圖像超分辨率(Super-Resolution,SR)技術(shù)指從給定的低分辨率(Low-Resolution,LR)圖像中復(fù)原高分辨率(High-Resolution,HR)圖像。圖像超分辨率技術(shù)在視頻監(jiān)控、醫(yī)療圖像和衛(wèi)星遙感中都有普遍的應(yīng)用。
隨著卷積神經(jīng)網(wǎng)絡(luò)研究的一步步深入,在圖像SR任務(wù)方面已取得了良好進(jìn)展。Dong等人在文獻(xiàn)[1]中提出了基于卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率方法(Super-Resolution Convolutional Neural Network,SRCNN),首次將深度學(xué)習(xí)方法應(yīng)用于超分辨率。文獻(xiàn)[2]提出了一種利用有效的亞像素卷積神經(jīng)網(wǎng)絡(luò)(Efficient Sub-Pixel Convolutional Neural Network,ESPCN)的方法。該方法在最后一層重新布置特征圖以重建HR圖像。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,研究人員發(fā)現(xiàn)更深或更廣的網(wǎng)絡(luò)通常具有更好的重建結(jié)果。但是僅依賴于更深或更廣的網(wǎng)絡(luò)會(huì)帶來(lái)問(wèn)題,例如梯度爆炸和收斂困難等。Kim等人基于文獻(xiàn)[3]中的殘差網(wǎng)絡(luò)(ResNet)提出了一種新方法,使用非常深的卷積神經(jīng)網(wǎng)絡(luò)(VDSR)[4]。該網(wǎng)絡(luò)使用跳過(guò)連接方法,通過(guò)特征圖的積累,解決了由于網(wǎng)絡(luò)層過(guò)多而引起的梯度分散問(wèn)題。VDSR不僅具有快速的收斂速度,而且還適用于多尺度圖像SR網(wǎng)絡(luò)。Tai等人在文獻(xiàn)[5]中提到通過(guò)深度遞歸殘差網(wǎng)絡(luò)(Deep Recursive Residual Network,DRRN)的方法,在網(wǎng)絡(luò)中添加遞歸神經(jīng)網(wǎng)絡(luò),從而大大減少了網(wǎng)絡(luò)參數(shù)。但是上述所有網(wǎng)絡(luò)都需要在預(yù)處理階段將LR圖像放大到所需大小,此過(guò)程不僅增加了網(wǎng)絡(luò)計(jì)算的難度,而且所生成的HR圖像過(guò)于柔和,不符合真實(shí)的自然圖像。
文獻(xiàn)[6]提出了一種方法,在SRCNN的基礎(chǔ)上使用反卷積網(wǎng)絡(luò)增加圖像大小以達(dá)到重構(gòu)效果,通過(guò)此種方式可以將原始LR圖像直接進(jìn)行輸入,從而降低了網(wǎng)絡(luò)的計(jì)算難度。文獻(xiàn)[7]提出一種新型網(wǎng)絡(luò)LapSRN(Laplacian Pyramid Super-Resolution Network)。文獻(xiàn)[8]提出了使用密集跳過(guò)連接的圖像超分辨方法。文獻(xiàn)[9]提出了密集連接的卷積網(wǎng)絡(luò)(DenseNet),網(wǎng)絡(luò)將每個(gè)層的特征輸入到密集塊的所有后續(xù)網(wǎng)絡(luò)層,連接所有圖層的特征,而不是將其直接添加到ResNet中。Lim等人在文獻(xiàn)[10]中提出了針對(duì)單個(gè)圖像超分辨率的增強(qiáng)型深度殘差網(wǎng)絡(luò)(Enhanced Deep Super-Resolution Network,EDSR)。EDSR模型主要的貢獻(xiàn)是刪除了SRResNet[11]的冗余模塊以提高最終效果。文獻(xiàn)[12]提出了用于圖像超分辨率的殘差密集網(wǎng)絡(luò)(Residual Dense Network,RDN),將ResNet和DenseNet的特點(diǎn)結(jié)合起來(lái),提出了殘差密集網(wǎng)絡(luò)以取得良好的效果。文獻(xiàn)[13]提出了信息蒸餾網(wǎng)絡(luò)(Information Distillation Network,IDN),該網(wǎng)絡(luò)通過(guò)特有的信息蒸餾塊提取特征信息,有較好的重建效果。
本文基于文獻(xiàn)[13]提出了特征濃縮網(wǎng)絡(luò)(Feature Concentration Network,F(xiàn)CN),該卷積網(wǎng)絡(luò)不需要特別深的網(wǎng)絡(luò)結(jié)構(gòu)即可獲得較好的重建效果。該網(wǎng)絡(luò)使用兩個(gè)底層特征提取塊來(lái)提取有效特征,然后使用多個(gè)CBlock來(lái)有效地利用有效特征,最終通過(guò)一個(gè)重建模塊來(lái)重構(gòu)高清圖像。主要貢獻(xiàn)有以下三點(diǎn):
(1)提出了一種特征濃縮網(wǎng)絡(luò)(FCN),可以從不同比例的原始LR圖像中快速準(zhǔn)確地重建HR圖像。
(2)所提出的CBlock經(jīng)過(guò)級(jí)聯(lián)和切片操作,可以有效地利用有效特征信息,并進(jìn)一步濃縮特征信息。
(3)在4個(gè)公開(kāi)的數(shù)據(jù)集中,本文方法在不同尺度的實(shí)驗(yàn)中具有最佳測(cè)試結(jié)果。
對(duì)于圖像超分辨率的工作主要分為三方面的方法:插值方法[14]、重構(gòu)方法[15]和基于學(xué)習(xí)的方法[16-18]。在前兩種方法中,重建圖像的結(jié)果受放大因子的影響,因此重建效果相對(duì)較差。Huang等人在文獻(xiàn)[19]中指出,從給定圖像獲得的內(nèi)部字典可能無(wú)法顯示由于場(chǎng)景變化而引起的外觀變化,從而提出了一種自我示范性的超分辨率算法。該算法無(wú)需外部數(shù)據(jù)訓(xùn)練即可產(chǎn)生良好的視覺(jué)效果。近鄰算法[20]、流形嵌入[21]、隨機(jī)森林[22]和稀疏表示[23]都使用基于外部示例的方法。該方法主要從外部數(shù)據(jù)中學(xué)習(xí)低清圖像和高清圖像之間的映射關(guān)系。許多人提出了非常有建設(shè)性的方法。盡管這些方法有效,但它們不一定是生成高質(zhì)量SR圖像的最佳選擇。通過(guò)將神經(jīng)網(wǎng)絡(luò)應(yīng)用于SR,這些問(wèn)題得到了改善?;趯W(xué)習(xí)的方法不受擴(kuò)展因素的影響,大多數(shù)SR任務(wù)使用基于學(xué)習(xí)的SR方法。
最近,圖像超分辨率任務(wù)利用卷積神經(jīng)網(wǎng)絡(luò)的方式已經(jīng)很普遍。Li等人在文獻(xiàn)[24]中提出了SRFBN(Super-Resolution Feedback Network)。該網(wǎng)絡(luò)可以使用高級(jí)信息來(lái)改進(jìn)相關(guān)的低級(jí)信息,用低級(jí)信息表示高級(jí)信息。SRFBN在初期就有很強(qiáng)的重建能力,可以一步步創(chuàng)建最后的HR圖像。Zhang等人在文獻(xiàn)[25]中提出了SRNTT(Super-Resolution Neural Texture Transfer)。該模型使用基于參考的超分辨率紋理自適應(yīng)傳輸紋理來(lái)豐富HR細(xì)節(jié)。Soh等人在文獻(xiàn)[26]中提出了一種用于高質(zhì)量圖像的新方法。該方法可以在保持良好視覺(jué)效果的同時(shí)重建具有高感知質(zhì)量的SR圖像。陳晨等人在文獻(xiàn)[27]中提出了一種基于殘差網(wǎng)絡(luò)的模型。該模型僅對(duì)殘差網(wǎng)絡(luò)進(jìn)行結(jié)構(gòu)優(yōu)化,網(wǎng)絡(luò)結(jié)構(gòu)較為簡(jiǎn)單,重建效果較差。汪鑫耘等人在文獻(xiàn)[28]中提出一種基于生成式對(duì)抗網(wǎng)絡(luò)的模型,雖然結(jié)合了幾種優(yōu)秀模型,效果有一定的提升,但是最終重建效果還是不理想。
下面介紹本文提出的特征濃縮網(wǎng)絡(luò)(FCN)。文獻(xiàn)[13]提出一種信息蒸餾網(wǎng)絡(luò),通過(guò)多個(gè)信息蒸餾塊堆疊起來(lái)逐步提取殘留信息。受到該方法啟發(fā),本文提出特征濃縮塊,在文獻(xiàn)[13]的研究?jī)?nèi)容基礎(chǔ)上進(jìn)一步優(yōu)化提高。首先介紹整個(gè)網(wǎng)絡(luò)結(jié)構(gòu),然后詳細(xì)介紹網(wǎng)絡(luò)的每個(gè)組成部分。
本文提出的FCN網(wǎng)絡(luò)如圖1所示。整個(gè)網(wǎng)絡(luò)主要由三部分組成:兩個(gè)卷積塊、四個(gè)特征濃縮塊(CBlocks)和一個(gè)重建模塊。此外,本文添加了雙三次插值運(yùn)算和全局殘差學(xué)習(xí)。雙三次插值運(yùn)算在圖像超分辨率領(lǐng)域應(yīng)用廣泛,它能創(chuàng)造出比其他插值方法更平滑的圖像邊緣,增加網(wǎng)絡(luò)收斂速度。全局殘差學(xué)習(xí)可以有效緩解由于模型深度引起的梯度爆炸問(wèn)題,提升訓(xùn)練速度。
圖1 整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Overall structure of network
所提出網(wǎng)絡(luò)處理流程如下:首先將高清圖像下采樣為低分辨率圖像,將低清圖像存儲(chǔ)為張量輸入網(wǎng)絡(luò),維度為3。圖像張量進(jìn)入兩個(gè)輸出維度為64并接入激活函數(shù)LRelu的卷積層初步提取特征信息,從第一層卷積分出一條全局殘差學(xué)習(xí)的支路。然后,初步提取的特征信息進(jìn)入特征濃縮塊CBlock中,通過(guò)將CBlock塊中的切片操作分為兩支路徑,可以有效提取局部的長(zhǎng)路徑和短路徑特征,CBlock塊組成在2.2節(jié)中詳細(xì)說(shuō)明。具體地,所提出的CBlock塊將兩種不同類型的特征混合在一起,并且最后加入的1×1壓縮單元可以降低特征圖的維度,減少參數(shù),緩解訓(xùn)練難度。本文將多個(gè)特征濃縮塊堆疊起來(lái)以逐步濃縮殘留特征信息,這也是該網(wǎng)絡(luò)主要結(jié)構(gòu)。經(jīng)過(guò)級(jí)聯(lián)的特征濃縮塊處理的特征信息加上全局殘差的支路一起通過(guò)重建模塊生成殘差圖像。為了得到HR圖像,對(duì)生成的殘差圖像和經(jīng)過(guò)雙三次插值運(yùn)算的上采樣LR圖像進(jìn)行逐元素加法運(yùn)算。
本文用x和y分別代表網(wǎng)絡(luò)的輸入(LR圖像)和輸出(HR圖像)。在兩個(gè)卷積塊中,首先使用3×3卷積塊從原始LR圖像中提取底層特征。卷積塊的處理過(guò)程可以表示為:
其中,f代表原始圖像中卷積塊的特征提取過(guò)程,A0代表卷積塊處理結(jié)果和下一層的輸入。下一步是使用特征濃縮塊來(lái)處理特征信息。這個(gè)過(guò)程可以表示為:
其中,F(xiàn)k代表第k個(gè)CBlock的處理過(guò)程,Ak-1和Ak分別代表第k個(gè)CBlock的輸入和輸出。最后,添加重建模塊以處理上層發(fā)送的特征信息。因此,F(xiàn)CN可以表示為:
其中,T代表重建模塊的處理,U代表全局殘差學(xué)習(xí),N代表雙三次插值運(yùn)算。
CBlock塊的結(jié)構(gòu)如圖2所示。該塊大致分為三部分:第一部分和第二部分都使用兩個(gè)3×3卷積塊并且都有一個(gè)切片操作(S)和串聯(lián)操作(C),每個(gè)卷積塊都有一個(gè)修正線性單元(LRelu)激活函數(shù),這里不做表示。第三部分由兩個(gè)3×3卷積塊組成。在之前諸多文獻(xiàn)中已經(jīng)證明,通過(guò)多個(gè)3×3卷積層疊加來(lái)獲得與大卷積核相同的感受野,同時(shí)引入更多的非線性,減少了參數(shù)。因此本文采取多個(gè)3×3卷積層疊加。最后加入的1×1壓縮單元可以降低特征圖的維度,減少參數(shù),緩解訓(xùn)練難度,這在之前的文獻(xiàn)中已經(jīng)得到應(yīng)用。
圖2 CBlock塊結(jié)構(gòu)Fig.2 Structure of CBlock
通過(guò)第一部分短路徑(2層)提取上層模塊的特征圖,因此它們可以被視為本地短路徑特征??紤]到深度網(wǎng)絡(luò)具有更強(qiáng)的表達(dá)能力,將輸出維度為64的特征圖切分為維度為16和48的特征圖(S切片操作),維度為48的特征圖表示保留的短路徑功能,另一部分維度為16的特征圖表示將要增強(qiáng)的短路徑功能。維度為48的短路徑特征發(fā)送到下一部分,通過(guò)第二部分和第三部分之后的特征圖自然成為本地長(zhǎng)路徑特征。維度為16的短路徑也向下傳遞進(jìn)行串聯(lián)操作(C)。獲得長(zhǎng)路徑和短路徑特征圖后,將這兩種類型的特征匯總以獲取更豐富和有效的特征信息。綜上所述,每部分的短路徑主要是提高網(wǎng)絡(luò)的表達(dá)能力,最后添加一個(gè)1×1的卷積層來(lái)壓縮特征中的冗余信息。
CBlock塊的第一部分輸出為兩個(gè)路徑,第一路徑代表上面提到的維度為48的本地短路徑,第二路徑代表維度為16的將要增強(qiáng)的短路徑。本文用Ak-1表示第一部分的輸入,可以得到:
其中,Ak-1代表上一個(gè)CBlock塊的輸出和當(dāng)前CBlock塊的輸入,Ca表示卷積運(yùn)算,S1表示切片運(yùn)算,表示第k個(gè)CBlock塊第一部分第一路徑的輸出。第一部分的第二路徑的串聯(lián)操作可以表示為:
其中,C代表串聯(lián)操作,S代表切片操作,1/s代表維度為16的部分。第二部分可以表示為:
其中,S2代表切片操作,代表第k個(gè)CBlock塊第二部分第一路徑的輸出。第二部分的第二路徑的串聯(lián)操作可以表示為:
其中,2/s代表從第二部分切下維度為16的部分。上述兩部分本地短路徑特征通過(guò)第三部分自然成為本地長(zhǎng)路徑特征。經(jīng)過(guò)三部分的處理可以組合不同的特征信息,而且可以向后發(fā)送特征信息。最后,通過(guò)1×1卷積層的處理可以表示為:
其中,f代表1×1卷積層的處理。這里省略了激活函數(shù)和權(quán)重參數(shù)。
經(jīng)過(guò)四個(gè)CBlock處理后,本文添加了一個(gè)重建模塊來(lái)處理生成的特征圖。在這個(gè)模塊中,使用亞像素卷積算法[2]。整個(gè)網(wǎng)絡(luò)的輸入都是LR圖像,不需要通過(guò)傳統(tǒng)插值進(jìn)行處理,通過(guò)插值獲得輸入圖像將增加整個(gè)網(wǎng)絡(luò)的參數(shù)數(shù)量。通過(guò)直接輸入原始的低分辨率圖像以加快訓(xùn)練過(guò)程,最終的輸出可以由重建模塊重構(gòu)出與高清圖像相同大小的圖像。
對(duì)于損失函數(shù),本文使用了平均絕對(duì)誤差(MAE),其公式如下:
其中,Ii代表預(yù)測(cè)的HR圖像代表原始高清圖像。
實(shí)驗(yàn)數(shù)據(jù)集,選擇數(shù)據(jù)集DIV2K[29],它具有1 000張高質(zhì)量圖片。在實(shí)驗(yàn)中分別使用800張圖片和200張圖片作為訓(xùn)練集和驗(yàn)證集。本文使用常用的數(shù)據(jù)集進(jìn)行測(cè) 試:Set5包 含5張 圖 片,Set14[30]包 含14張 圖 片,BSD100[31]包含100張圖片,Urban100同樣包含了100張圖片。使用兩個(gè)客觀指標(biāo)來(lái)驗(yàn)證最終HR圖像的性能:峰值信噪比(PSNR)[32]和結(jié)構(gòu)相似性指數(shù)(SSIM)[33]。將本文提出的算法與現(xiàn)有算法在3個(gè)不同尺度上(×2、×3、×4)進(jìn)行比較。
為了方便進(jìn)行結(jié)果對(duì)比,首先以不同的尺度(×2、×3、×4)對(duì)原始高清圖像進(jìn)行下采樣以獲得訓(xùn)練所需的圖像。網(wǎng)絡(luò)中大多數(shù)的卷積層使用64通道、3×3卷積核和1步長(zhǎng)。在每個(gè)CBlock塊的末尾,使用1×1卷積核。整個(gè)網(wǎng)絡(luò)使用4個(gè)CBlock。全局殘差學(xué)習(xí)也輸入1×1卷積并將其添加到最后一個(gè)CBlock中。批處理量大小設(shè)置為16。初始學(xué)習(xí)率設(shè)置為2E-4,并伴隨著每2 000個(gè)周期衰減0.5。整個(gè)培訓(xùn)過(guò)程設(shè)置為10 000個(gè)周期。實(shí)驗(yàn)環(huán)境是基于Ubuntu系統(tǒng)的TensorFlow深度學(xué)習(xí)框架。使用CUDA9+cuDNN7來(lái)加速GPU操作。訓(xùn)練和測(cè)試的硬件配置是:Intel Xeon E5-2630 v4 CPU,Nvidia GeForce GTX2080Ti GPU和32 GB內(nèi)存。
為了驗(yàn)證CBlock塊真實(shí)有效,本文通過(guò)增多數(shù)量來(lái)驗(yàn)證其性能。如表1所示,隨著CBlock塊的數(shù)量增加,效果越好。實(shí)驗(yàn)中嘗試了不同深度的多個(gè)網(wǎng)絡(luò)模型。測(cè)試了不同數(shù)量的CBlock(K=2,K=4,K=6,K=8)。從結(jié)果可以看出,隨著CBlock的數(shù)量增加,Set5數(shù)據(jù)集的PSNR指數(shù)也更好。當(dāng)K=4時(shí),該網(wǎng)絡(luò)模型的效果已經(jīng)高于IDN[13]。隨著模型深度的增加,模型的效果穩(wěn)步提高。
表1 具有不同CBlock數(shù)量的模型在Set5數(shù)據(jù)集上的結(jié)果Table 1 Results of models with different number of CBlocks in Set5 dataset
為了驗(yàn)證該網(wǎng)絡(luò)的效果,將其與其他超分辨率算法進(jìn)行了比較,包括雙三次、SRCNN[1]、VDSR[4]、DRRN[5]、IDN[13]、MFFRnet[34]。表2顯示了在4個(gè)公開(kāi)數(shù)據(jù)集上測(cè)試了不同尺度(×2、×3、×4)的平均PSNR和SSIM結(jié)果。根據(jù)結(jié)果可以看出在2尺度上Set5和BSD100的效果略低于IDN,但是在其他尺度的不同數(shù)據(jù)集上均取得了最佳結(jié)果。
文獻(xiàn)[4]提到的VDSR方法是由20層卷積組成的網(wǎng)絡(luò),它使用插值將LR圖片放大到期望的尺寸,再作為網(wǎng)絡(luò)的輸入,每經(jīng)過(guò)一層,特征圖都會(huì)變小,論文中采用補(bǔ)0的方法來(lái)保持其尺寸不變。通過(guò)補(bǔ)0操作后,圖像特征經(jīng)過(guò)多層傳輸后會(huì)丟失大量的細(xì)節(jié)信息,導(dǎo)致重建效果不理想。文獻(xiàn)[5]中DRRN引入了遞歸塊,這兩種方法都需要在將原始LR圖像應(yīng)用到網(wǎng)絡(luò)前將其插入到所需的大小。該預(yù)處理步驟不僅增加了計(jì)算復(fù)雜度,而且使原始LR圖像過(guò)度平滑和模糊,從而丟失了一些細(xì)節(jié)。這些方法從內(nèi)插的LR圖像中提取特征,從而無(wú)法建立從原始LR到HR圖像的端到端映射。文獻(xiàn)[13]提到的IDN網(wǎng)絡(luò)在重建層使用了反卷積層放大到原始圖像尺寸,一般的反卷積里會(huì)存在大量補(bǔ)0的區(qū)域,這可能對(duì)結(jié)果產(chǎn)生不利影響。文獻(xiàn)[34]提出一種多級(jí)特征融合的遞歸卷積神經(jīng)網(wǎng)絡(luò),雖然可以學(xué)習(xí)較少的參數(shù)來(lái)提高模型效率,但最后重構(gòu)的效果并不理想。針對(duì)上述問(wèn)題,本文提出的方法中輸入的圖像為下采樣后的低清圖像,不僅可以降低計(jì)算復(fù)雜度,也不會(huì)導(dǎo)致圖像過(guò)渡平滑和模糊,在重建模塊中采用了亞像素卷積算法[2],通過(guò)將多通道特征圖上的單個(gè)像素組合成一個(gè)特征圖上的單位,每個(gè)特征圖上的像素就相當(dāng)于新的特征圖上的亞像素,實(shí)現(xiàn)從低分辨圖到高分辨圖的重構(gòu)。通過(guò)表2可以看出本文提出的FCN比其他方法具有更好的性能。
表2 數(shù)據(jù)集在不同尺度的平均值Table 2 Average value of datasets in different scales
圖3 、圖4和圖5顯示了不同算法的重建效果,并標(biāo)出了每幅圖像所對(duì)應(yīng)的PSNR和SSIM數(shù)值。Set5中butterfly圖像重建效果具有較大的模糊性,但本文方法仍具有最佳效果。在圖4中,所有方法的重構(gòu)效果都比較差,本文方法仍然具有最好的重構(gòu)效果。在圖5中,本文方法可以明顯看出具有更好的重建效果。
圖4 Set14數(shù)據(jù)集中comic圖像在3尺度下的結(jié)果Fig.4 Comic image from Set14 dataset with scale factor 3
圖5 BSD100數(shù)據(jù)集中78004圖像在3尺度下的結(jié)果Fig.5 78004 image from BSD100 dataset with scale factor 3
表3 列出了不同算法的參數(shù)數(shù)量、運(yùn)行速度和PSNR。本文方法在速度上并沒(méi)有明顯的優(yōu)勢(shì),這也是下一步進(jìn)行改進(jìn)的地方。本文方法在速度上僅比DRRN[5]快,但PSNR指標(biāo)最高,重構(gòu)效果最佳。
表3 不同方法在Set5數(shù)據(jù)集上的性能Table 3 Performance of different methods on Set5 dataset
本文提出了一種新型的特征濃縮網(wǎng)絡(luò)(FCN)。該網(wǎng)絡(luò)使用多個(gè)特征濃縮塊連續(xù)提取有效特征,以重建高清圖像。此外,還添加了雙三次插值運(yùn)算和全局殘差學(xué)習(xí)。通過(guò)實(shí)驗(yàn),與其他方法的PSNR和SSIM指標(biāo)對(duì)比顯示,本文方法具有更好的效果,但是在速度方面沒(méi)有明顯的優(yōu)勢(shì)。在接下來(lái)的工作中,將繼續(xù)探索本文方法,以提高速度并減少模糊,獲得更好的重建效果。