龔蘭蘭 ,劉 凱,凌興宏,
(1.蘇州大學(xué)文正學(xué)院,江蘇 蘇州 215006;2.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
超分辨率圖像重建指的是將現(xiàn)有的一幅或者多幅低分辨率圖像,通過(guò)超分辨率技術(shù)手段,如信號(hào)處理等,重構(gòu)得到相同圖片內(nèi)容的包含更多像素信息的高分辨率圖像。目前,大量基于插值、基于重建、基于學(xué)習(xí)等算法被提出用以實(shí)現(xiàn)超分辨率圖像重建,多種領(lǐng)域已經(jīng)開(kāi)始采用該技術(shù)代替昂貴的圖像傳感器,如醫(yī)療領(lǐng)域、安全監(jiān)控、影視領(lǐng)域等。
1964年,Harris[1]首先提出了圖像差值的方法實(shí)現(xiàn)超分辨率圖像重建,自此之后超分辨率圖像重建便逐漸成為熱點(diǎn)研究課題。目前超分辨率圖像重建關(guān)鍵技術(shù)主要分為兩類[2-3],一類是基于單幀圖像的超分辨率重建技術(shù),另一類則是基于多個(gè)圖像的超分辨率重建技術(shù)。主流的基于單幀圖像的超分辨率重建技術(shù)主要分為基于插值的超分辨率技術(shù)、基于重建的超分辨率技術(shù)[4]以及基于學(xué)習(xí)的超分辨率技術(shù)[5]。最鄰近插值、雙線性插值和雙三次插值是基于插值的超分辨率主要實(shí)現(xiàn)技術(shù)。三種插值方法中,雙三次插值方法超分辨率效果最好,但是復(fù)雜度更大[6]。
目前最受關(guān)注的超分辨率方法是基于學(xué)習(xí)的超分辨率方法[7],這種方法也是效果最好的一類算法。該算法采用預(yù)設(shè)的模型,構(gòu)建低分辨率圖像與高分辨率圖像之間的映射關(guān)系,然后將低分辨率圖像作為模型的輸入,原始高分辨率圖像作為模型的預(yù)期輸出,對(duì)模型進(jìn)行訓(xùn)練,調(diào)整模型各部分參數(shù),從而使得該映射模型最終實(shí)現(xiàn)重建高分辨率圖像的功能。因此對(duì)于該方法,如何建立映射模型就成為了研究的關(guān)鍵問(wèn)題。Dong等[8]針對(duì)超分辨率圖像問(wèn)題,嘗試采用卷積神經(jīng)網(wǎng)絡(luò)的解決方法并提出了基于深度CNN的超分辨率圖像重建算法(SRCNN),經(jīng)研究該模型無(wú)論在訓(xùn)練速度還是超分辨率效果方面仍存在一定問(wèn)題。
該文對(duì)超分辨率圖像的原理進(jìn)行研究,驗(yàn)證了SRCNN模型在多種訓(xùn)練通道下的超分辨率效果,并提出了基于多層特征提取層的圖像超分辨率模型,采用新的優(yōu)化方法,驗(yàn)證了多種包含不同層數(shù)體征提取層的卷積神經(jīng)網(wǎng)絡(luò)模型。
作為深度學(xué)習(xí)在圖像超分辨率重建問(wèn)題的經(jīng)典SRCNN模型如圖1所示。其中LR(low resolution)表示以低分辨率圖像作為輸入的輸入端,n1,n2表示2層卷積層,其中n1作為非線性映射層,激活函數(shù)為ReLU,n2作為圖像重建層,用于重建輸出的Y通道圖像,除此之外在LR端還有一層卷積層用于對(duì)圖像做特征提取。
圖1 SRCNN模型
卷積層input作為輸入層以及特征提取層,由64個(gè)9*9大小的卷積核構(gòu)成,輸入數(shù)據(jù)矩陣大小設(shè)置為33*33*1,通道數(shù)為1,即Y通道。卷積層n1作為非線性映射層,由32個(gè)1*1大小的卷積核構(gòu)成。卷積層n2作為圖像重建層,由1個(gè)5*5大小的卷積核構(gòu)成,最終的輸出結(jié)果為Y通道重建的高分辨率圖像。假設(shè)L層卷積核為WL,上一層輸出為OL-1,偏置為b,那么該卷積層的輸出按照式(1)計(jì)算,其中?表示卷積運(yùn)算。
OL=WL?OL-1+b
(1)
除了重建層外,每層卷積層都連接著一個(gè)激活層,該激活層采用的激活函數(shù)為線性整流函數(shù)(ReLU)[9],又稱為修正線性單元,具體公式如下:
f(x)=max(0,x)
(2)
因此每一層的輸出最終結(jié)果為式(3)。
OL=max(WL?OL-1+b,0)
(3)
采用ReLU函數(shù),一方面可以保留圖像數(shù)據(jù)的基本特征,另一方面將數(shù)據(jù)都表示為成大部分為零的稀疏矩陣,既加快了網(wǎng)絡(luò)的訓(xùn)練速度,也在一定程度上避免了小于0的數(shù)據(jù)所帶來(lái)的傳播過(guò)程中產(chǎn)生的特征消失等問(wèn)題。
與大多數(shù)神經(jīng)網(wǎng)絡(luò)相同,損失函數(shù)是整個(gè)神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)訓(xùn)練趨向擬合的核心。常用的損失函數(shù)包括最小絕對(duì)偏差、最小平方誤差、交叉熵?fù)p失函數(shù)以及均方誤差(MSE),SRCNN模型中采用MSE作為卷積神經(jīng)網(wǎng)絡(luò)損失函數(shù)。
均方誤差[10]是一種計(jì)算兩個(gè)相同類型數(shù)據(jù)或數(shù)據(jù)集差異度的評(píng)估方法。假設(shè)有輸出圖像X,標(biāo)簽圖像Y,兩個(gè)圖像大小均為N*M,那么這兩個(gè)圖像之間的均方誤差計(jì)算如下:
(4)
針對(duì)機(jī)器學(xué)習(xí),目前已有多種優(yōu)化方法[11],可以適用于任何模型尋找的最優(yōu)解。優(yōu)化方法可以被分為三類,分別是梯度下降法、動(dòng)量?jī)?yōu)化法、自適應(yīng)學(xué)習(xí)率優(yōu)化算法。
(1)梯度下降法:梯度下降法是一種最基本的優(yōu)化方法,該類方法中最為常見(jiàn)的,使用范圍最廣的是標(biāo)準(zhǔn)梯度下降法(stochastic gradient descent,SGD)。雖然SGD梯度計(jì)算快,訓(xùn)練速度快,但抗噪能力較差,并且沒(méi)能克服局部最優(yōu)問(wèn)題,SRCNN模型訓(xùn)練采用該方法。
(2)動(dòng)量?jī)?yōu)化法:動(dòng)量?jī)?yōu)化法是基于梯度下降法進(jìn)行了改進(jìn),能夠在模型訓(xùn)練的過(guò)程中,加速損失函數(shù)梯度的下降,從而加快模型收斂。
(3)自適應(yīng)學(xué)習(xí)率優(yōu)化法:傳統(tǒng)的優(yōu)化方法極大忽視了模型訓(xùn)練過(guò)程中梯度下降信息的總體利用,學(xué)習(xí)率隨信息變化的可能性。然而,學(xué)習(xí)率對(duì)于模型的性能有著顯著的影響,學(xué)習(xí)率的過(guò)大或過(guò)小都會(huì)造成網(wǎng)絡(luò)的振蕩,無(wú)法收斂到最優(yōu)解,因此需要利用梯度下降中的總體信息更新學(xué)習(xí)率的優(yōu)化方法提高模型訓(xùn)練速度。AdaGrad算法、RMSProp算法、Adam算法以及AdaDelta算法是目前自適應(yīng)學(xué)習(xí)率優(yōu)化法中最常用的方法[12]。
在超分辨率圖像評(píng)價(jià)中,最常用、最直接的方法就是將圖像質(zhì)量分為1到5,5個(gè)等級(jí),然后由人眼觀察超分辨率之后的結(jié)果圖像與低分辨率圖像、原圖像之間的差距,進(jìn)行等級(jí)評(píng)價(jià)。但由于主觀評(píng)價(jià)的限制,仍需要客觀質(zhì)量評(píng)價(jià)對(duì)圖像質(zhì)量進(jìn)行分析??陀^評(píng)價(jià)方法主要分為三類:全參考、部分參考、無(wú)參考。該文采用了第一類方法中的峰值信噪比[13](PSNR)。PSNR越高,超分辨率處理后的輸出圖像比照原圖失真就越小,超分辨率圖像質(zhì)量也就越高。PSNR公式見(jiàn)式(5),其中MSE計(jì)算公式見(jiàn)式(4)。
(5)
為了驗(yàn)證基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率算法的有效性,實(shí)驗(yàn)采用SRCNN模型進(jìn)行圖像超分辨率重建。該模型使用了3層卷積神經(jīng)網(wǎng)絡(luò),前兩層都組合了ReLU層。三層的網(wǎng)絡(luò)參數(shù)分別為9*9*64、1*1*32、5*5*1。實(shí)驗(yàn)所采用的訓(xùn)練集為包含100張不同種類的光學(xué)圖像集合General-100[14],所采用的測(cè)試集為公共數(shù)據(jù)集Set5。
為了測(cè)試不同的參數(shù),如訓(xùn)練通道,圖像表示空間,卷積神經(jīng)網(wǎng)絡(luò)損失函數(shù)對(duì)該模型的影響,該文訓(xùn)練了以RGB及YCrCb為圖像表示空間和訓(xùn)練通道的SRCNN模型,以及不同模型在放大倍數(shù)不同情況下的效果,如表1所示。
表1 4放大倍數(shù)下的不同模型結(jié)果
續(xù)表1
從表1可見(jiàn),在4倍縮放情況下,僅使用Y通道訓(xùn)練的SRCNN模型在4張圖片上展現(xiàn)出比其他兩種模型以及雙三次插值更好的超分辨率果。
表2為4種方法在2、4、8倍圖像縮放情況下的超分辨率效果。從表中可以發(fā)現(xiàn),2倍圖像縮放情況下基于RGB三通道的SRCNN模型的超分辨率效果最好,而在4、8倍情況下僅基于Y通道的SRCNN模型的超分辨率效果最好。
表2 不同放大倍數(shù)下的不同模型結(jié)果
三種基于不同訓(xùn)練通道的SRCNN模型中,在三種縮放情況下,僅基于Y通道的SRCNN模型其超分辨率取得了PSNR和主觀評(píng)價(jià)兩方面的最優(yōu)結(jié)果,基于RGB通道的模型效果次之,基于YCrCb模型的效果最差。
在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn),相對(duì)于僅基于Y通道的SRCNN模型,基于RGB和YCrCb三通道的SRCNN模型,在網(wǎng)絡(luò)的訓(xùn)練過(guò)程中更加緩慢。首先是因?yàn)镽GB和YCrCb三通道對(duì)比Y通道,需要訓(xùn)練更多的神經(jīng)元,其次是因?yàn)镽GB和YCrCb所包含的信息更為豐富,使用三層卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行擬合需要更多的訓(xùn)練時(shí)間。同時(shí)SRCNN作者也說(shuō)明,由于SRCNN沒(méi)有池化層和全連接層,導(dǎo)致網(wǎng)絡(luò)對(duì)于初始參數(shù)和學(xué)習(xí)率非常敏感,網(wǎng)絡(luò)在訓(xùn)練過(guò)程中難以收斂。
針對(duì)SRCNN中對(duì)圖像細(xì)節(jié)信息還原仍存在缺陷,以及訓(xùn)練過(guò)程中該模型收斂較慢、對(duì)于初始參數(shù)和學(xué)習(xí)率敏感等問(wèn)題,該文提出了一種在SRCNN基礎(chǔ)上改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)模型。該模型對(duì)比傳統(tǒng)SRCNN,增加了多層的作為特征提取層的卷積層,并調(diào)整了各層卷積核的大小。
SRCNN的基礎(chǔ)思想中以第一層卷積層作為特征提取層,提取特征,但是該層卷積核設(shè)置為9*9,第三層重建層卷積核設(shè)置為5*5,使用單個(gè)特征提取層,會(huì)導(dǎo)致對(duì)于特征的細(xì)節(jié)提取不顯著,與此同時(shí),卷積核增大會(huì)導(dǎo)致網(wǎng)絡(luò)參數(shù)的增多,從而導(dǎo)致網(wǎng)絡(luò)的整體訓(xùn)練速度下降。對(duì)此,該文提出了4層模型,如圖2所示。
圖2 4層模型
如圖2所示,LR表示低分辨率Y通道圖片,C1為第一層特征提取層,C2為第二層特征提取層,C3為非線性映射層,C4為圖像重建層。在特征提取層和非線性映射層后都添加了激活層,其激活函數(shù)為ReLU函數(shù)。類似這樣多特征提取層的超分辨率卷積神經(jīng)網(wǎng)絡(luò)就是在C1之前,添加卷積核大小以及個(gè)數(shù)適當(dāng)?shù)木矸e層。該文實(shí)現(xiàn)了4層、5層模型。4層卷積神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu)如圖3所示。
如圖2所示,LR表示所需超分辨率圖像的Y通道圖像。卷積層C1為第一個(gè)特征提取層,由64個(gè)11*11大小的卷積核構(gòu)成,這是考慮到圖像填充后既可以提取圖像塊的邊緣細(xì)節(jié),還可以提取整體圖像塊細(xì)節(jié)特征。卷積層C2為第二個(gè)特征提取層,由48個(gè)9*9大小的卷積核構(gòu)成,在C1卷積層輸出的特征圖的基礎(chǔ)上對(duì)圖像的特征進(jìn)行進(jìn)一步的細(xì)化和提取。卷積層C3為非線性映射層,由32個(gè)1*1大小的卷積核構(gòu)成,主要是加深網(wǎng)絡(luò)的深度,增強(qiáng)網(wǎng)絡(luò)擬合能力,并且實(shí)現(xiàn)特征圖像與高分辨率圖像塊之間的線性關(guān)系。卷積層C4為圖像重建層,由1個(gè)5*5大小的卷積核構(gòu)成,主要負(fù)責(zé)Y通道的高分辨率圖像塊的重建。而對(duì)于5層模型來(lái)說(shuō),在4層模型的C1層之前,添加了一個(gè)由32個(gè)13*13大小的卷積核,為了彌補(bǔ)圖像在卷積后特征塊大小為負(fù)數(shù)的情況,對(duì)第一層特征提取層使用了填充。
圖3 4層網(wǎng)絡(luò)結(jié)構(gòu)
該文提出的4層卷積神經(jīng)網(wǎng)絡(luò)模型,采用的損失函數(shù)依舊是MSE(均方誤差),因?yàn)镸SE作為檢測(cè)失真圖像失真度的有效方法,與PSNR之間關(guān)系緊密,通過(guò)式(5)不難發(fā)現(xiàn),MSE與PSNR實(shí)際上是一個(gè)值。
相對(duì)于SRCNN模型中采用的隨機(jī)梯度下降法(SGD),該模型在訓(xùn)練過(guò)程中采用了一種新型的優(yōu)化方法AdaDelta。該優(yōu)化方法的學(xué)習(xí)率將隨著梯度的倒數(shù)增長(zhǎng),也就是說(shuō)較大梯度具有較小的學(xué)習(xí)率,而較小的梯度具有較大的學(xué)習(xí)率,可以解決普通的SGD方法中學(xué)習(xí)率一直不變的問(wèn)題。與此同時(shí),在多種訓(xùn)練模型中,根據(jù)各種優(yōu)化方法的實(shí)際梯度下降速度來(lái)看,從平均速度上來(lái)講,AdaDelta的下降速度最快。與此同時(shí)AdaDelta方法能夠有效地避免模型在訓(xùn)練過(guò)程中陷入局部最優(yōu)解。
算法如下:
(6)
雖然AdaDelta能夠比SGD有效地加快模型的訓(xùn)練過(guò)程,但是當(dāng)模型采用此方法訓(xùn)練到后期時(shí),模型會(huì)在最小點(diǎn)不斷振蕩,無(wú)法收斂。這時(shí)就需要采用SGD的方法,推動(dòng)模型收斂到最小值點(diǎn)。
2.3.1 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)所采用的數(shù)據(jù)集依舊是General-100數(shù)據(jù)集,測(cè)試集依舊是Set5測(cè)試集。得到SRCNN與文中方法在5張圖片上的超分辨率結(jié)果,此外還設(shè)置了SRCNN原模型將特征提取層擴(kuò)大為13*13大小的模型,為了驗(yàn)證單純地?cái)U(kuò)大特征提取層卷積核大小是否也會(huì)對(duì)卷積效果產(chǎn)生影響。與原圖對(duì)比的PSNR表格如表3所示。
表3 4種方法在不同倍數(shù)下的超分辨率效果
從圖4與圖5可以看出,無(wú)論是單獨(dú)擴(kuò)大特征提取層的卷積核還是增加網(wǎng)絡(luò)的卷積層層數(shù),這些方法所創(chuàng)建模型的超分辨率效果都要優(yōu)于僅基于Y通道的SRCNN的效果,但是從主觀角度來(lái)說(shuō),在后三種改進(jìn)方法中,無(wú)法分辨別出最終超分辨率效果的好壞。只能通過(guò)表3中的PSNR數(shù)值大小來(lái)判別最終各模型超分辨率效果的差距。
圖4 2倍縮放超分辨率效果
圖5 4倍縮放超分辨率效果
2.3.2 實(shí)驗(yàn)結(jié)果分析
從圖4、圖5可以看出,無(wú)論哪種方法,2倍縮放大小情況下的效果總是好于4倍縮放情況下的效果。對(duì)比圖4、圖5中的SRCNN超分辨率的圖像效果與文中方法所產(chǎn)生的超分辨率圖像效果,可以看出文中方法所產(chǎn)生的還原效果略優(yōu)于SRCNN還原出的效果,同時(shí)SRCNN中在圖像高分辨率后對(duì)圖像中缺失部分的信息,其還原出的細(xì)節(jié)部分,對(duì)比文中方法,較為偏離原圖的細(xì)節(jié)。
最后從表3可以看出,在4倍縮放情況下,4組模型超分辨率效果差距并不明顯,但是在2倍縮放情況下,后三組模型與SRCNN模型之間的超分辨率效果差距就比較明顯。而且在4倍超分辨率效果對(duì)比中,文中方法優(yōu)于SRCNN原本模型以及SRCNN增大卷積核之后的模型。這是由于文中的4、5層模型,加深了網(wǎng)絡(luò)深度,使得網(wǎng)絡(luò)擬合能力增強(qiáng)。而在2倍縮放的效果對(duì)比中,呈現(xiàn)出與4倍效果相反的情形,除去SRCNN模型,在后面3種改進(jìn)中,單一增加SRCNN特征提取層卷積核大小的模型超分辨率效果最好,文中的4層模型次之,5層模型最差,但這三種模型效果都優(yōu)于SRCNN原本模型。對(duì)此結(jié)果,由于SRCNN沒(méi)有池化層和全連接層,網(wǎng)絡(luò)對(duì)初始參數(shù)和學(xué)習(xí)率特別敏感,網(wǎng)絡(luò)收斂難度大,即使收斂也可能停在非優(yōu)局部最小值。而增加網(wǎng)絡(luò)層數(shù)以及卷積核個(gè)數(shù),使得網(wǎng)絡(luò)需要更多的時(shí)間收斂,并且更容易陷入壞的局部最小值。
此外,增加網(wǎng)絡(luò)深度,添加更多的卷積核,顯著增加了網(wǎng)絡(luò)訓(xùn)練時(shí)間。
除了上述的結(jié)果分析外,在網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,采用AdaDelta方法從開(kāi)始訓(xùn)練,很快就能夠收斂。
從圖6中可以明顯看出,在對(duì)圖形進(jìn)行100輪訓(xùn)練的過(guò)程中,采用AdaDelta作為優(yōu)化方法時(shí),在訓(xùn)練的第一輪圖像已經(jīng)很快地開(kāi)始擬合,并且在第9輪訓(xùn)練中已經(jīng)達(dá)到了預(yù)期誤差,在100輪訓(xùn)練結(jié)束后,整個(gè)模型已經(jīng)收斂。而在SRCNN實(shí)驗(yàn)中直到400輪迭代,SRCNN模型才開(kāi)始趨向于擬合。一方面是采用AdaDelta方法加速了網(wǎng)絡(luò)的訓(xùn)練速度,另一方面這也是由于文中模型在圖像預(yù)處理時(shí),切割成更小的圖像塊,有利于整個(gè)網(wǎng)絡(luò)模型的訓(xùn)練。
圖6 訓(xùn)練過(guò)程
主要圍繞基于卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率重建技術(shù),闡述了SRCNN算法的3層模型及其實(shí)現(xiàn)的具體細(xì)節(jié)。采用了不同的圖像訓(xùn)練空間,以及圖像縮放倍數(shù),訓(xùn)練了多個(gè)不同的SRCNN模型并進(jìn)行比較,研究了不同參數(shù)對(duì)于該模型的影響效果,提出了SRCNN模型存在的缺陷。
在SRCNN模型的基礎(chǔ)上,提出了基于多層卷積層的圖像超分辨率模型,以解決SRCNN模型的缺陷。在這部分主要采用了雙層特征提取層,并且放大了特征提取窗口,縮小圖像的切割大小,從而增強(qiáng)網(wǎng)絡(luò)模型在圖像細(xì)節(jié)上的學(xué)習(xí)。并且將兩種優(yōu)化方法相結(jié)合,加快了整體模型訓(xùn)練的速度。通過(guò)實(shí)驗(yàn)證明,該方法在一定程度上優(yōu)于SRCNN方法,并且AdaDelta與SGD優(yōu)化方法的結(jié)合,對(duì)比單用SGD方法,能夠有效加快網(wǎng)絡(luò)整體的訓(xùn)練速度。