郭鋒鋒,馬 璐
(宿州職業(yè)技術(shù)學(xué)院,安徽宿州234000)
圖像超分辨率重建是低分辨率圖像經(jīng)過一系列操作獲得對應(yīng)高分辨率圖像的技術(shù)。在生產(chǎn)生活中,由于硬件設(shè)備的限制和后續(xù)圖像處理的需要,需要對低分辨率圖像進(jìn)行超分辨重建。圖像超分辨率重建技術(shù)具有較低的成本和較好的靈活應(yīng)用的特點,因此被廣泛應(yīng)用在醫(yī)學(xué)影像[1]、遙感監(jiān)測[2]、人臉識別[3]和其他一些領(lǐng)域[4-5]。
圖像超分辨率重建方法存在很多,其中傳統(tǒng)的方法主要有插值法和基于重建的方法[6-7],這些方法重建速度快,但重建圖像邊緣比較模糊,細(xì)節(jié)信息丟失比較嚴(yán)重。隨著信息技術(shù)的發(fā)展,基于學(xué)習(xí)的超分辨率技術(shù)開始迅速發(fā)展起來。楊建超提出基于稀疏編碼的圖像超分辨率重建,并獲得了較好的重建效果[8]。Dong等人優(yōu)化字典學(xué)習(xí)過程,提高的了圖像超分辨率重建速度和準(zhǔn)確度[9]。另有基于樣例的超分辨率重建方法被提出,利用結(jié)構(gòu)相似的圖像塊對高分辨率圖像重建[10]。2014年ANR方法和A+方法在基于流型學(xué)習(xí)和錨點鄰域回歸等理論上進(jìn)一步提高了超分辨率重建的圖像質(zhì)量[11-12]。而隨著深度學(xué)習(xí)在圖像處理領(lǐng)域的廣泛應(yīng)用,SRCNN[13]借鑒基于字典學(xué)習(xí)的超分辨率重建方法,提出利用深度卷積網(wǎng)絡(luò)進(jìn)行超分辨率重建圖像,并獲得不錯的結(jié)果,但網(wǎng)絡(luò)模型訓(xùn)練時間比較長。后來,VDSR[14]網(wǎng)絡(luò)模型被提出,只對低分辨率圖像中缺失的高頻信息進(jìn)行重建,并增加卷積網(wǎng)絡(luò)深度,顯著的提高了重建圖像的質(zhì)量和網(wǎng)絡(luò)模型學(xué)習(xí)效率。而后,利用殘差網(wǎng)絡(luò)的超分辨率重建模型SRResNet[15]和EDSR[16]進(jìn)一步的提高了超分辨重建圖像的質(zhì)量。
但是圖像超分辨率重建的網(wǎng)絡(luò)模型多為單支網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí),不能夠充分學(xué)習(xí)高低分辨率圖像之間的映射關(guān)系。而為了增強網(wǎng)絡(luò)學(xué)習(xí)能力,本文提出了基于多路徑殘差網(wǎng)絡(luò)交叉學(xué)習(xí)的網(wǎng)絡(luò)模型。首先利用訓(xùn)練更快、學(xué)習(xí)能力更強的殘差網(wǎng)絡(luò)進(jìn)行訓(xùn)練學(xué)習(xí)訓(xùn)練數(shù)據(jù)集中高低分辨率圖像映射先驗信息,再擴展單支殘差網(wǎng)絡(luò)為3支獨立的殘差網(wǎng)絡(luò)并聯(lián)為網(wǎng)絡(luò)模型,并使用原來學(xué)習(xí)的網(wǎng)絡(luò)模型進(jìn)行初始化,以增強超分辨率重建網(wǎng)絡(luò)模型的先驗信息學(xué)習(xí)能力。為了進(jìn)一步充分利用多路徑網(wǎng)絡(luò)的信息,采用一種網(wǎng)絡(luò)交叉學(xué)習(xí)的方法實現(xiàn)不同路徑網(wǎng)絡(luò)的信息共享。通過文中實驗可證明,利用本文提出的超分辨率重建網(wǎng)絡(luò)獲得的高分辨率圖像,在主客觀評價中都優(yōu)于其他一些深度卷積網(wǎng)絡(luò)模型。
殘差網(wǎng)絡(luò)(ResNet)是一類主要由殘差塊構(gòu)成的卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)是由何凱明等人于2015年提出[17]。傳統(tǒng)卷積網(wǎng)絡(luò)在達(dá)到一定深度后,常常在淺層網(wǎng)絡(luò)參數(shù)更新時造成深層網(wǎng)絡(luò)的梯度消失,從而導(dǎo)致無法更新淺層網(wǎng)絡(luò)的參數(shù)。另一方面,隨著卷積網(wǎng)絡(luò)深度的增加,網(wǎng)絡(luò)也會出現(xiàn)退化問題,網(wǎng)絡(luò)深度增加反而會造成網(wǎng)絡(luò)性能下降。由此,ResNet為了解決上述問題,引入了跳躍連接的殘差塊,殘差塊結(jié)構(gòu)如圖1。殘差塊的輸出x0為:
其中,xi為殘差塊的輸入,F(xiàn)(xi)為xi經(jīng)過卷積層1、激活層relu和卷積層2后得到的結(jié)果。在普通卷積網(wǎng)絡(luò)中,如圖1,當(dāng)卷積網(wǎng)絡(luò)深度過大而深層的卷積層出現(xiàn)冗余時,即理想中的卷積層映射為恒等映射xo=xi,則卷積層優(yōu)化函數(shù)為H(xi)=xi。而如果殘差塊出現(xiàn)最優(yōu)輸出xo=xi時,其卷積層優(yōu)化公式為F(xi)=x0-xi=0。顯然,殘差塊的卷積層優(yōu)化更簡單,有效解決了卷積網(wǎng)絡(luò)退化問題。
另一方面,在ResNet中假設(shè)某一淺層單元的特征為xl,任意深層的特征xL可以計算為:
在反向傳播中假設(shè)損失函數(shù)為C,則根據(jù)鏈?zhǔn)椒▌t可計算淺層單元傳遞:
從公式中可見反向傳播中網(wǎng)絡(luò)的深層單元梯度信息可不通過權(quán)重層直接傳遞到淺層單元,并且1+]保證了不會出現(xiàn)梯度消失的情況。
圖1 無跳遠(yuǎn)連接單元和殘差塊單元
相比于傳統(tǒng)卷積網(wǎng)絡(luò),ResNet通過加入跳躍連接而使網(wǎng)絡(luò)優(yōu)化變得更容易。跳躍連接類似于執(zhí)行了簡單映射,并不會使網(wǎng)絡(luò)參數(shù)增加,其計算復(fù)雜度也不會增大。此外,網(wǎng)絡(luò)退化和梯度消失的問題得以解決,也使得ResNet允許實現(xiàn)更深層的網(wǎng)絡(luò)訓(xùn)練和學(xué)習(xí)并表現(xiàn)出更出色的性能。
在將ResNet網(wǎng)絡(luò)用于單幅圖像的超分辨率重建問題時,假設(shè)高分辨率圖像由低分辨率圖像信息和丟失高分辨率信息構(gòu)成,則利用殘差網(wǎng)絡(luò)可只進(jìn)行丟失高分辨率信息的學(xué)習(xí),而低分辨率信息采用跳躍連接的方式直接映射,避免了重建工作的重復(fù),降低圖像重建任務(wù)的計算復(fù)雜度。
為了增強殘差網(wǎng)絡(luò)對于單幅圖像的超分辨率重建,提高卷積網(wǎng)絡(luò)的學(xué)習(xí)能力,本文提出了多路徑交叉學(xué)習(xí)的殘差網(wǎng)絡(luò)。其結(jié)構(gòu)如圖2:
圖2 多路徑交叉學(xué)習(xí)殘差網(wǎng)絡(luò)
該殘差網(wǎng)絡(luò)主要由3支子殘差網(wǎng)絡(luò)構(gòu)成,每支殘差網(wǎng)絡(luò)互相交叉共享特征信息。低分辨率圖像Image先分別通過不同的預(yù)處理操作Pre0,Pre1,和Pre2進(jìn)行圖像的初級變換,再分別通過特征層Conv1進(jìn)行特征分解為多個特征層,然后通過交叉學(xué)習(xí)的殘差網(wǎng)絡(luò)重建高分辨率圖像,最后通過Pro_t層對3支不同路徑獲得的高分辨率圖像進(jìn)行疊加獲得最終的圖像SR。
單一路徑的殘差網(wǎng)絡(luò)直接使用待重建的低分辨率圖像最為輸入數(shù)據(jù),雖然能夠比較好的實現(xiàn)圖像超分辨率重建的任務(wù),但對低分辨率圖像信息處理比較簡單,沒有很好利用圖像數(shù)據(jù)先驗信息在不同特征表達(dá)中的信息側(cè)重。為了對低分辨率圖像特征進(jìn)行更具有針對性的學(xué)習(xí),多路徑殘差網(wǎng)絡(luò)被提出。該網(wǎng)絡(luò)主要由3支殘差網(wǎng)絡(luò)組成,每支殘差網(wǎng)絡(luò)由預(yù)處理操作層(Pre0,Pre1,和Pre2)、特征層(Conv1)、殘差網(wǎng)絡(luò)層和重建層(Conv2和Pro_t)構(gòu)成。
預(yù)處理操作層主要對低分辨率圖像進(jìn)行一定的預(yù)處理操作,使圖像數(shù)據(jù)從多個角度進(jìn)行下游任務(wù)的學(xué)習(xí)。其中,Pre0層為對低分辨率圖像進(jìn)行簡單的雙三次插值操作??紤]到高分辨率圖像到低分辨率圖像的映射關(guān)系之間,丟失的主要是高頻邊緣和紋理信息,Pre1層則為低分辨率圖像進(jìn)行雙三次插值操作和Sobel邊緣檢測操作。而根據(jù)一些傳統(tǒng)圖像重建方法可知,不同幾何變換后進(jìn)行重建的圖像進(jìn)行融合會使圖像質(zhì)量有一定的提升,因此Pre2層則對低分辨率圖像進(jìn)行雙三次插值、旋轉(zhuǎn)180度并鏡像變換。
特征層Conv1由1個大小為3*64*H*W(H和W分別為輸入圖像的高度和寬度)的卷積層組成,主要用來對輸入圖像進(jìn)行特征分解為64通道的特征圖,為下游殘差網(wǎng)絡(luò)學(xué)習(xí)做準(zhǔn)備。
殘差網(wǎng)絡(luò)層為由16個殘差塊單元(如圖1)級聯(lián)組成的殘差網(wǎng)絡(luò),其中每個殘差單元中的2個conv卷積層大小為64*64*H*W,激活函數(shù)采用relu函數(shù)。3支路徑的殘差網(wǎng)絡(luò)層結(jié)構(gòu)相同。殘差網(wǎng)絡(luò)層是該網(wǎng)絡(luò)的主體部分,用來學(xué)習(xí)高低分辨率圖像之間的先驗映射信息。同時,采用相同的結(jié)構(gòu)也更方便網(wǎng)絡(luò)的訓(xùn)練。
重建層由初級重建層Conv2和融合層Pro_t組成。其中Conv2為大小64*3*H*W的卷積層,主要用來將64通道的特征圖重建為3通道圖像。融合層Pro_t主要是將3支路徑重建的圖像進(jìn)行融合。假設(shè)3個通道初級重建后的圖像分別為SR1,SR2和SR3,對應(yīng)的融合系數(shù)矩陣分別為w1,w2和w3,則最后的重建圖像SR為:
因此,融合層采用大小為9*3*H*W的卷積層。
在網(wǎng)絡(luò)訓(xùn)練階段,由于每支路徑的殘差網(wǎng)絡(luò)結(jié)構(gòu)相同,可采用由簡到繁的訓(xùn)練步驟。本文先單獨進(jìn)行1路徑(Pre0路徑)的網(wǎng)絡(luò)訓(xùn)練,再以該訓(xùn)練好的網(wǎng)絡(luò)權(quán)重參數(shù)為基礎(chǔ)對其他兩支路徑的網(wǎng)絡(luò)進(jìn)行初始化,并分別單獨訓(xùn)練,最后將3支路徑網(wǎng)絡(luò)進(jìn)行聯(lián)合訓(xùn)練。這能夠大大較少訓(xùn)練所花費的時間。
為了更進(jìn)一步增強多路徑殘差網(wǎng)絡(luò)的特征學(xué)習(xí)能力,且考慮到增加殘差網(wǎng)絡(luò)深度會大大增加網(wǎng)絡(luò)的計算復(fù)雜度,本文提出采用多路徑殘差網(wǎng)絡(luò)進(jìn)行交叉學(xué)習(xí)的策略。交叉學(xué)習(xí)使得不同路徑的殘差網(wǎng)絡(luò)可以共享特征信息。
在多路徑殘差網(wǎng)絡(luò)基礎(chǔ)上,對殘差網(wǎng)絡(luò)層進(jìn)行調(diào)整。殘差層由殘差單元(ResUnit)和擴展殘差塊(ResBlock2)構(gòu)成。每支交叉學(xué)習(xí)路徑的殘差層如圖3:
圖3 交叉學(xué)習(xí)框架中的殘差層
其中ResUnit由3個殘差塊單元(ResBlock)級聯(lián)組成,而擴展殘差塊單元ResBlock2結(jié)構(gòu)如圖4所示。
圖4 擴展殘差塊單元ResBlock2
交叉學(xué)習(xí)采用在殘差層的每個ResBlock2前兩兩交叉共享信息的方式進(jìn)行學(xué)習(xí),即Pre0路徑和Pre1路徑、Pre1路徑和Pre2路徑、Pre1路徑和Pre3路徑。
在多路徑交叉學(xué)習(xí)殘差網(wǎng)絡(luò)進(jìn)行訓(xùn)練時,仍然使用單支網(wǎng)絡(luò)逐一訓(xùn)練的方式。其中,待訓(xùn)練的殘差網(wǎng)絡(luò)交叉學(xué)習(xí)的另一支路徑的信息直接采用特征層的輸出信息。在完成單支網(wǎng)絡(luò)訓(xùn)練后再進(jìn)行整體網(wǎng)絡(luò)的訓(xùn)練。
為了驗證提出的多路徑交叉學(xué)習(xí)殘差網(wǎng)絡(luò)在圖像超分辨率重建中的性能,本文利用Pytorch框架搭建了多路徑交叉學(xué)習(xí)殘差網(wǎng)絡(luò)(Proposed),并利用配置為i7 CPU、顯卡為GTX1080Ti的計算機上進(jìn)行訓(xùn)練。同時,引用了 SRCNN[13]、VDSR[14]、算法 1[18]、GEGREEMV[19]與本文方法在標(biāo)準(zhǔn)數(shù)據(jù)集 Set5、Set14和B100上進(jìn)行對比。
本文搭建的網(wǎng)絡(luò)訓(xùn)練集采用DIV2K數(shù)據(jù)集,初始學(xué)習(xí)速率為0.01,網(wǎng)絡(luò)卷積層的其它參數(shù)則采用第3、4節(jié)中所設(shè)定數(shù)值。實驗結(jié)果如表1。
表1 不同超分辨率重建算法的PSNR(dB)比較
圖5 butterfly(SRCNN、算法1、GEGREEMV、VDSR、Proposed
圖7 woman(SRCNN、算法1、GEGREEMV、VDSR、Proposed)
根據(jù)表1中的實驗結(jié)果可以看到,相對其他幾種用于單幅圖像超分辨重建的算法,本文提出的多路徑交叉學(xué)習(xí)殘差學(xué)習(xí)網(wǎng)絡(luò)獲得重建圖像的PSNR最高。這客觀反映了本文所提出的算法的有效性和優(yōu)越性。
而圖5~7為實驗中幾種算法在SET5上尺度因子為4時重建的部分結(jié)果圖像,從圖中可以看到,本文算法對于圖像邊緣的重建更清晰,且沒有重影,優(yōu)越于其他幾種方法。這也可以證明邊緣信息學(xué)習(xí)路徑可以增強殘差網(wǎng)絡(luò)對于圖像邊緣信息的學(xué)習(xí)能力。
此外,多路徑殘差網(wǎng)絡(luò)(Proposed 1)和多路徑交叉學(xué)習(xí)殘差網(wǎng)絡(luò)(Proposed 2)在SET5和SET14測試的結(jié)果如下。根據(jù)表2可知多路徑交叉學(xué)習(xí)殘差網(wǎng)絡(luò)比多路徑殘差網(wǎng)絡(luò)重建的圖像PSNR高,這證明了交叉學(xué)習(xí)策略的應(yīng)用在增強殘差網(wǎng)絡(luò)學(xué)習(xí)能力中的有效性。而交叉學(xué)習(xí)則在不增加網(wǎng)絡(luò)卷積層深度的情況下,擴展了多路徑殘差網(wǎng)絡(luò)學(xué)習(xí)的信息數(shù)據(jù),有效增強了超分辨率重建網(wǎng)絡(luò)的特征表達(dá)能力。
基于深度學(xué)習(xí)的單幅圖像超分辨重建問題在近幾年被越來越多的研究學(xué)者所關(guān)注。而針對當(dāng)前殘差網(wǎng)絡(luò)在圖像超分辨率重建應(yīng)用中存在的問題,本文提出了多路徑殘差網(wǎng)絡(luò)交叉學(xué)習(xí)來增強卷積網(wǎng)絡(luò)對高低分辨率圖像之間先驗映射信息的學(xué)習(xí)能力。通過擴展圖像數(shù)據(jù)邊緣和幾何變換下的特征學(xué)習(xí),多路徑殘差網(wǎng)絡(luò)能夠更精確的學(xué)習(xí)先驗映射中的邊緣細(xì)節(jié)。另一方面,提出殘差網(wǎng)絡(luò)交叉學(xué)習(xí)的策略,在增加少量參數(shù)的情況下實現(xiàn)不同路徑通道信息的共享,提高單支網(wǎng)絡(luò)的特征表達(dá)能力,從而進(jìn)一步優(yōu)化最終的超分辨重建圖像。本文所提算法分別在多個數(shù)據(jù)集上與當(dāng)前的一些殘差網(wǎng)絡(luò)模型進(jìn)行了對比,實驗結(jié)果在客觀和主觀評價中均表現(xiàn)出本文算法超分辨率重建的圖像質(zhì)量更好。