龔蘭蘭 ,劉 凱,凌興宏,
(1.蘇州大學文正學院,江蘇 蘇州 215006;2.蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006)
超分辨率圖像重建指的是將現有的一幅或者多幅低分辨率圖像,通過超分辨率技術手段,如信號處理等,重構得到相同圖片內容的包含更多像素信息的高分辨率圖像。目前,大量基于插值、基于重建、基于學習等算法被提出用以實現超分辨率圖像重建,多種領域已經開始采用該技術代替昂貴的圖像傳感器,如醫療領域、安全監控、影視領域等。
1964年,Harris[1]首先提出了圖像差值的方法實現超分辨率圖像重建,自此之后超分辨率圖像重建便逐漸成為熱點研究課題。目前超分辨率圖像重建關鍵技術主要分為兩類[2-3],一類是基于單幀圖像的超分辨率重建技術,另一類則是基于多個圖像的超分辨率重建技術。主流的基于單幀圖像的超分辨率重建技術主要分為基于插值的超分辨率技術、基于重建的超分辨率技術[4]以及基于學習的超分辨率技術[5]。最鄰近插值、雙線性插值和雙三次插值是基于插值的超分辨率主要實現技術。三種插值方法中,雙三次插值方法超分辨率效果最好,但是復雜度更大[6]。
目前最受關注的超分辨率方法是基于學習的超分辨率方法[7],這種方法也是效果最好的一類算法。該算法采用預設的模型,構建低分辨率圖像與高分辨率圖像之間的映射關系,然后將低分辨率圖像作為模型的輸入,原始高分辨率圖像作為模型的預期輸出,對模型進行訓練,調整模型各部分參數,從而使得該映射模型最終實現重建高分辨率圖像的功能。因此對于該方法,如何建立映射模型就成為了研究的關鍵問題。Dong等[8]針對超分辨率圖像問題,嘗試采用卷積神經網絡的解決方法并提出了基于深度CNN的超分辨率圖像重建算法(SRCNN),經研究該模型無論在訓練速度還是超分辨率效果方面仍存在一定問題。
該文對超分辨率圖像的原理進行研究,驗證了SRCNN模型在多種訓練通道下的超分辨率效果,并提出了基于多層特征提取層的圖像超分辨率模型,采用新的優化方法,驗證了多種包含不同層數體征提取層的卷積神經網絡模型。
作為深度學習在圖像超分辨率重建問題的經典SRCNN模型如圖1所示。其中LR(low resolution)表示以低分辨率圖像作為輸入的輸入端,n1,n2表示2層卷積層,其中n1作為非線性映射層,激活函數為ReLU,n2作為圖像重建層,用于重建輸出的Y通道圖像,除此之外在LR端還有一層卷積層用于對圖像做特征提取。

圖1 SRCNN模型
卷積層input作為輸入層以及特征提取層,由64個9*9大小的卷積核構成,輸入數據矩陣大小設置為33*33*1,通道數為1,即Y通道。卷積層n1作為非線性映射層,由32個1*1大小的卷積核構成。卷積層n2作為圖像重建層,由1個5*5大小的卷積核構成,最終的輸出結果為Y通道重建的高分辨率圖像。假設L層卷積核為WL,上一層輸出為OL-1,偏置為b,那么該卷積層的輸出按照式(1)計算,其中?表示卷積運算。
OL=WL?OL-1+b
(1)
除了重建層外,每層卷積層都連接著一個激活層,該激活層采用的激活函數為線性整流函數(ReLU)[9],又稱為修正線性單元,具體公式如下:
f(x)=max(0,x)
(2)
因此每一層的輸出最終結果為式(3)。
OL=max(WL?OL-1+b,0)
(3)
采用ReLU函數,一方面可以保留圖像數據的基本特征,另一方面將數據都表示為成大部分為零的稀疏矩陣,既加快了網絡的訓練速度,也在一定程度上避免了小于0的數據所帶來的傳播過程中產生的特征消失等問題。
與大多數神經網絡相同,損失函數是整個神經網絡經過訓練趨向擬合的核心。常用的損失函數包括最小絕對偏差、最小平方誤差、交叉熵損失函數以及均方誤差(MSE),SRCNN模型中采用MSE作為卷積神經網絡損失函數。
均方誤差[10]是一種計算兩個相同類型數據或數據集差異度的評估方法。假設有輸出圖像X,標簽圖像Y,兩個圖像大小均為N*M,那么這兩個圖像之間的均方誤差計算如下:
(4)
針對機器學習,目前已有多種優化方法[11],可以適用于任何模型尋找的最優解。優化方法可以被分為三類,分別是梯度下降法、動量優化法、自適應學習率優化算法。
(1)梯度下降法:梯度下降法是一種最基本的優化方法,該類方法中最為常見的,使用范圍最廣的是標準梯度下降法(stochastic gradient descent,SGD)。雖然SGD梯度計算快,訓練速度快,但抗噪能力較差,并且沒能克服局部最優問題,SRCNN模型訓練采用該方法。
(2)動量優化法:動量優化法是基于梯度下降法進行了改進,能夠在模型訓練的過程中,加速損失函數梯度的下降,從而加快模型收斂。
(3)自適應學習率優化法:傳統的優化方法極大忽視了模型訓練過程中梯度下降信息的總體利用,學習率隨信息變化的可能性。然而,學習率對于模型的性能有著顯著的影響,學習率的過大或過小都會造成網絡的振蕩,無法收斂到最優解,因此需要利用梯度下降中的總體信息更新學習率的優化方法提高模型訓練速度。AdaGrad算法、RMSProp算法、Adam算法以及AdaDelta算法是目前自適應學習率優化法中最常用的方法[12]。
在超分辨率圖像評價中,最常用、最直接的方法就是將圖像質量分為1到5,5個等級,然后由人眼觀察超分辨率之后的結果圖像與低分辨率圖像、原圖像之間的差距,進行等級評價。但由于主觀評價的限制,仍需要客觀質量評價對圖像質量進行分析。客觀評價方法主要分為三類:全參考、部分參考、無參考。該文采用了第一類方法中的峰值信噪比[13](PSNR)。PSNR越高,超分辨率處理后的輸出圖像比照原圖失真就越小,超分辨率圖像質量也就越高。PSNR公式見式(5),其中MSE計算公式見式(4)。
(5)
為了驗證基于卷積神經網絡的超分辨率算法的有效性,實驗采用SRCNN模型進行圖像超分辨率重建。該模型使用了3層卷積神經網絡,前兩層都組合了ReLU層。三層的網絡參數分別為9*9*64、1*1*32、5*5*1。實驗所采用的訓練集為包含100張不同種類的光學圖像集合General-100[14],所采用的測試集為公共數據集Set5。
為了測試不同的參數,如訓練通道,圖像表示空間,卷積神經網絡損失函數對該模型的影響,該文訓練了以RGB及YCrCb為圖像表示空間和訓練通道的SRCNN模型,以及不同模型在放大倍數不同情況下的效果,如表1所示。

表1 4放大倍數下的不同模型結果

續表1
從表1可見,在4倍縮放情況下,僅使用Y通道訓練的SRCNN模型在4張圖片上展現出比其他兩種模型以及雙三次插值更好的超分辨率果。
表2為4種方法在2、4、8倍圖像縮放情況下的超分辨率效果。從表中可以發現,2倍圖像縮放情況下基于RGB三通道的SRCNN模型的超分辨率效果最好,而在4、8倍情況下僅基于Y通道的SRCNN模型的超分辨率效果最好。

表2 不同放大倍數下的不同模型結果
三種基于不同訓練通道的SRCNN模型中,在三種縮放情況下,僅基于Y通道的SRCNN模型其超分辨率取得了PSNR和主觀評價兩方面的最優結果,基于RGB通道的模型效果次之,基于YCrCb模型的效果最差。
在實驗過程中發現,相對于僅基于Y通道的SRCNN模型,基于RGB和YCrCb三通道的SRCNN模型,在網絡的訓練過程中更加緩慢。首先是因為RGB和YCrCb三通道對比Y通道,需要訓練更多的神經元,其次是因為RGB和YCrCb所包含的信息更為豐富,使用三層卷積神經網絡進行擬合需要更多的訓練時間。同時SRCNN作者也說明,由于SRCNN沒有池化層和全連接層,導致網絡對于初始參數和學習率非常敏感,網絡在訓練過程中難以收斂。
針對SRCNN中對圖像細節信息還原仍存在缺陷,以及訓練過程中該模型收斂較慢、對于初始參數和學習率敏感等問題,該文提出了一種在SRCNN基礎上改進的卷積神經網絡模型。該模型對比傳統SRCNN,增加了多層的作為特征提取層的卷積層,并調整了各層卷積核的大小。
SRCNN的基礎思想中以第一層卷積層作為特征提取層,提取特征,但是該層卷積核設置為9*9,第三層重建層卷積核設置為5*5,使用單個特征提取層,會導致對于特征的細節提取不顯著,與此同時,卷積核增大會導致網絡參數的增多,從而導致網絡的整體訓練速度下降。對此,該文提出了4層模型,如圖2所示。

圖2 4層模型
如圖2所示,LR表示低分辨率Y通道圖片,C1為第一層特征提取層,C2為第二層特征提取層,C3為非線性映射層,C4為圖像重建層。在特征提取層和非線性映射層后都添加了激活層,其激活函數為ReLU函數。類似這樣多特征提取層的超分辨率卷積神經網絡就是在C1之前,添加卷積核大小以及個數適當的卷積層。該文實現了4層、5層模型。4層卷積神經網絡的具體結構如圖3所示。
如圖2所示,LR表示所需超分辨率圖像的Y通道圖像。卷積層C1為第一個特征提取層,由64個11*11大小的卷積核構成,這是考慮到圖像填充后既可以提取圖像塊的邊緣細節,還可以提取整體圖像塊細節特征。卷積層C2為第二個特征提取層,由48個9*9大小的卷積核構成,在C1卷積層輸出的特征圖的基礎上對圖像的特征進行進一步的細化和提取。卷積層C3為非線性映射層,由32個1*1大小的卷積核構成,主要是加深網絡的深度,增強網絡擬合能力,并且實現特征圖像與高分辨率圖像塊之間的線性關系。卷積層C4為圖像重建層,由1個5*5大小的卷積核構成,主要負責Y通道的高分辨率圖像塊的重建。而對于5層模型來說,在4層模型的C1層之前,添加了一個由32個13*13大小的卷積核,為了彌補圖像在卷積后特征塊大小為負數的情況,對第一層特征提取層使用了填充。

圖3 4層網絡結構
該文提出的4層卷積神經網絡模型,采用的損失函數依舊是MSE(均方誤差),因為MSE作為檢測失真圖像失真度的有效方法,與PSNR之間關系緊密,通過式(5)不難發現,MSE與PSNR實際上是一個值。
相對于SRCNN模型中采用的隨機梯度下降法(SGD),該模型在訓練過程中采用了一種新型的優化方法AdaDelta。該優化方法的學習率將隨著梯度的倒數增長,也就是說較大梯度具有較小的學習率,而較小的梯度具有較大的學習率,可以解決普通的SGD方法中學習率一直不變的問題。與此同時,在多種訓練模型中,根據各種優化方法的實際梯度下降速度來看,從平均速度上來講,AdaDelta的下降速度最快。與此同時AdaDelta方法能夠有效地避免模型在訓練過程中陷入局部最優解。
算法如下:
(6)

雖然AdaDelta能夠比SGD有效地加快模型的訓練過程,但是當模型采用此方法訓練到后期時,模型會在最小點不斷振蕩,無法收斂。這時就需要采用SGD的方法,推動模型收斂到最小值點。
2.3.1 實驗結果
實驗所采用的數據集依舊是General-100數據集,測試集依舊是Set5測試集。得到SRCNN與文中方法在5張圖片上的超分辨率結果,此外還設置了SRCNN原模型將特征提取層擴大為13*13大小的模型,為了驗證單純地擴大特征提取層卷積核大小是否也會對卷積效果產生影響。與原圖對比的PSNR表格如表3所示。

表3 4種方法在不同倍數下的超分辨率效果
從圖4與圖5可以看出,無論是單獨擴大特征提取層的卷積核還是增加網絡的卷積層層數,這些方法所創建模型的超分辨率效果都要優于僅基于Y通道的SRCNN的效果,但是從主觀角度來說,在后三種改進方法中,無法分辨別出最終超分辨率效果的好壞。只能通過表3中的PSNR數值大小來判別最終各模型超分辨率效果的差距。

圖4 2倍縮放超分辨率效果

圖5 4倍縮放超分辨率效果
2.3.2 實驗結果分析
從圖4、圖5可以看出,無論哪種方法,2倍縮放大小情況下的效果總是好于4倍縮放情況下的效果。對比圖4、圖5中的SRCNN超分辨率的圖像效果與文中方法所產生的超分辨率圖像效果,可以看出文中方法所產生的還原效果略優于SRCNN還原出的效果,同時SRCNN中在圖像高分辨率后對圖像中缺失部分的信息,其還原出的細節部分,對比文中方法,較為偏離原圖的細節。
最后從表3可以看出,在4倍縮放情況下,4組模型超分辨率效果差距并不明顯,但是在2倍縮放情況下,后三組模型與SRCNN模型之間的超分辨率效果差距就比較明顯。而且在4倍超分辨率效果對比中,文中方法優于SRCNN原本模型以及SRCNN增大卷積核之后的模型。這是由于文中的4、5層模型,加深了網絡深度,使得網絡擬合能力增強。而在2倍縮放的效果對比中,呈現出與4倍效果相反的情形,除去SRCNN模型,在后面3種改進中,單一增加SRCNN特征提取層卷積核大小的模型超分辨率效果最好,文中的4層模型次之,5層模型最差,但這三種模型效果都優于SRCNN原本模型。對此結果,由于SRCNN沒有池化層和全連接層,網絡對初始參數和學習率特別敏感,網絡收斂難度大,即使收斂也可能停在非優局部最小值。而增加網絡層數以及卷積核個數,使得網絡需要更多的時間收斂,并且更容易陷入壞的局部最小值。
此外,增加網絡深度,添加更多的卷積核,顯著增加了網絡訓練時間。
除了上述的結果分析外,在網絡的訓練過程中,采用AdaDelta方法從開始訓練,很快就能夠收斂。
從圖6中可以明顯看出,在對圖形進行100輪訓練的過程中,采用AdaDelta作為優化方法時,在訓練的第一輪圖像已經很快地開始擬合,并且在第9輪訓練中已經達到了預期誤差,在100輪訓練結束后,整個模型已經收斂。而在SRCNN實驗中直到400輪迭代,SRCNN模型才開始趨向于擬合。一方面是采用AdaDelta方法加速了網絡的訓練速度,另一方面這也是由于文中模型在圖像預處理時,切割成更小的圖像塊,有利于整個網絡模型的訓練。

圖6 訓練過程
主要圍繞基于卷積神經網絡的圖像超分辨率重建技術,闡述了SRCNN算法的3層模型及其實現的具體細節。采用了不同的圖像訓練空間,以及圖像縮放倍數,訓練了多個不同的SRCNN模型并進行比較,研究了不同參數對于該模型的影響效果,提出了SRCNN模型存在的缺陷。
在SRCNN模型的基礎上,提出了基于多層卷積層的圖像超分辨率模型,以解決SRCNN模型的缺陷。在這部分主要采用了雙層特征提取層,并且放大了特征提取窗口,縮小圖像的切割大小,從而增強網絡模型在圖像細節上的學習。并且將兩種優化方法相結合,加快了整體模型訓練的速度。通過實驗證明,該方法在一定程度上優于SRCNN方法,并且AdaDelta與SGD優化方法的結合,對比單用SGD方法,能夠有效加快網絡整體的訓練速度。