王夢露
(合肥工業(yè)大學(xué) 數(shù)學(xué)學(xué)院,合肥 230601)
近年來,隨著計算機(jī)科學(xué)技術(shù)的進(jìn)步和卷積神經(jīng)網(wǎng)絡(luò)的引入,單圖像超分辨率存在的諸如抽取、噪聲或模糊等多種退化問題有了更好的解決途徑.在深度神經(jīng)網(wǎng)絡(luò)[7]提出“越深越好”的思想后,加深模型的深度成為提高圖像質(zhì)量的新途徑,深層神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)結(jié)構(gòu)非常敏感,因此模型結(jié)構(gòu)的設(shè)計在訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)中非常重要.利用激活函數(shù)為神經(jīng)網(wǎng)絡(luò)引入非線性,可以任意逼近任何非線性映射,進(jìn)而應(yīng)用于許多非線性模型.線性整流函數(shù)ReLU解決了反向傳播過程中的梯度消失問題,降低了計算復(fù)雜度,但是當(dāng)一個非常大的梯度通過ReLU時,在參數(shù)更新后,該單元不再激活任何數(shù)據(jù),因此梯度將始終保持不變?yōu)榱?,?shí)驗上,如果學(xué)習(xí)率太高了,ReLU將無法正常工作.引入周期性激活函數(shù)來代替ReLU,由于它的可微性和連續(xù)性,可以更好地保留圖像的細(xì)節(jié),網(wǎng)絡(luò)實(shí)驗表明,改進(jìn)后的結(jié)構(gòu)產(chǎn)生了更好的效果.
解決超分辨率問題主要有兩種方法,一種是基于恢復(fù)的方法,更側(cè)重于空間信息的增強(qiáng),但主要缺點(diǎn)是先驗信息利用不足,它們需要精確的亞像素運(yùn)動估計,對模型的要求也很嚴(yán)格.第二種是基于學(xué)習(xí)[4]的方法,它可以將機(jī)器學(xué)習(xí)和模式識別算法相結(jié)合,采用學(xué)習(xí)模式有針對性地重建目標(biāo)類.與基于恢復(fù)的方法相比,基于學(xué)習(xí)的方法性能更好,大大降低了計算復(fù)雜度,但訓(xùn)練數(shù)據(jù)庫和訓(xùn)練時間的巨大需求限制了其發(fā)展.
傳統(tǒng)的圖像超分辨率方法起源于光學(xué)領(lǐng)域提出的基于插值[1]的超分辨率方法.隨后又提出了基于小波變換的方法和基于稀疏表示的方法,但上述方法仍舊不能很好地恢復(fù)到符合人眼視覺的分辨率.而SRCNN[4]首先將CNN引入圖像超分辨率處理,使用三個卷積層構(gòu)造從LR到HR的端到端映射.然后引入反卷積方法代替雙三次采樣作為一種新的上采樣方法,并通過增加卷積層數(shù)到深網(wǎng)絡(luò)深度來設(shè)計FSRCNN模型[5].
為了改進(jìn)上采樣技術(shù),提出了利用亞像素卷積層對每個特征圖進(jìn)行單獨(dú)上采樣的ESPCN[6]模型,目前ESPCN模型已成為應(yīng)用最廣泛的上采樣方法.由Kim提出的非常深的超分辨率卷積網(wǎng)絡(luò)[7]和深度循環(huán)卷機(jī)神經(jīng)網(wǎng)絡(luò)[8]以及Tai提出的深度殘差卷積神經(jīng)網(wǎng)絡(luò)模型[9]在前人的工作基礎(chǔ)上,對模型結(jié)構(gòu)進(jìn)行了改進(jìn),使網(wǎng)絡(luò)更加深入.雖然深層神經(jīng)網(wǎng)絡(luò)的性能較好,但在訓(xùn)練過程中存在梯度消失或爆炸梯度的問題.殘差學(xué)習(xí)算法設(shè)計出殘差塊結(jié)構(gòu),采用模塊化結(jié)構(gòu)加深網(wǎng)絡(luò)的深度,進(jìn)一步提高了重建圖像的質(zhì)量.
然而,單尺度超分辨不能適用于多尺度超分辨問題,不同尺度的上采樣需要不同的網(wǎng)絡(luò),效率低下,大規(guī)模計算復(fù)雜度高,LapSRN模型[10]采用了一種啟發(fā)性結(jié)構(gòu),利用網(wǎng)絡(luò)進(jìn)行多種上采樣處理,而不是以往工作中只在開始或結(jié)束時進(jìn)行一次上采樣,在遞歸上采樣過程中,每次遞歸后,圖像放大兩次,構(gòu)成一個逐步放大的過程,提高圖像質(zhì)量.由于ResNet[11]是為解決更高層次的計算機(jī)視覺問題而設(shè)計的,直接應(yīng)用于圖像超分辨率問題是次優(yōu)的,EDSR算法模型[2]通過去除批處理規(guī)范化層來優(yōu)化前一個殘差塊,降低了計算復(fù)雜度,提高了穩(wěn)定性和可擴(kuò)展性.
雖然L2損失函數(shù)在PSNR值上取得了很好的效果,但重建圖像過于平滑,不能滿足人眼視覺的要求.將生成對抗模型的知覺損失函數(shù)應(yīng)用到超分辨率任務(wù)中,進(jìn)一步改善重建圖像的紋理細(xì)節(jié).然而,生成對抗模型的訓(xùn)練過程極不穩(wěn)定,而且生成器和鑒別器的損失函數(shù)不能反映訓(xùn)練過程,生成的樣本缺乏多樣性.
將殘差網(wǎng)絡(luò)作為整個網(wǎng)絡(luò)的組成部分,用新的激活函數(shù)對殘差網(wǎng)絡(luò)進(jìn)行了改進(jìn),從而提出了周期殘差塊.
在圖1中對比來自DRRN、ResNet和提出的網(wǎng)絡(luò)的塊,受之前工作[4]的啟發(fā)從殘差單元移除了批處理規(guī)范化層.批處理規(guī)范化是深度學(xué)習(xí)中一項非常重要的技術(shù),它不僅可以簡化深層網(wǎng)絡(luò)的訓(xùn)練,加快收斂速度,而且對防止模型過度擬合具有一定的正則化效果.然而,批處理標(biāo)準(zhǔn)化拉伸圖像對比度.歸一化后,任何圖像的顏色分布都將被歸一化.圖像原有的對比度信息被破壞,影響了網(wǎng)絡(luò)輸出圖像的質(zhì)量.此外,由于沒有批量規(guī)范化層,與以往的工作相比,GPU在訓(xùn)練過程中也有效地節(jié)省了資源.
圖1 周期殘差塊結(jié)構(gòu)
對于每一個周期殘差塊,可以表示為如下形式:
yl=h(xl)+F(xl,Wl),xl+1=Sin(yl),
其中xl,xl+1分別表示l層的輸入和輸出,h(xl)為恒等映射,F(xiàn)代表殘差函數(shù),Sin表示周期殘差塊內(nèi)部所使用的正弦激活函數(shù),Wl表示權(quán)重矩陣.
輸入圖像在周期殘差塊內(nèi)部,首先通過一個卷積層進(jìn)行卷積操作,提取圖像粗糙特征,然后通過正弦函數(shù)激活層,目的是使模型獲得非線性,再次通過卷積層進(jìn)行深層特征提取,提取特征后的圖像與原輸入圖像融合,這樣做是為了保留輸入的低像素圖像的原始特征信息,每一個周期殘差塊最終輸出融合后的圖像.
神經(jīng)網(wǎng)絡(luò)將低分辨率到高分辨率圖像的隱式的映射進(jìn)行參數(shù)化,無法對像素進(jìn)行更加細(xì)致、連續(xù)的重建.為了還原真實(shí)圖像中含有的多種真實(shí)分布,使用周期性激活函數(shù)來進(jìn)行改進(jìn).過去的采樣結(jié)果是得到離散的數(shù)據(jù),而使用周期性激活函數(shù)之后,網(wǎng)絡(luò)將具有周期性,數(shù)據(jù)以連續(xù)的方式進(jìn)行存儲和重建.
根據(jù)周期性激活函數(shù)所具有的連續(xù)可微性[3],模型能夠更好的模擬真實(shí)圖像的像素分布,并且精細(xì)地參數(shù)化真實(shí)圖像空間,使得重建圖像具有更好的紋理細(xì)節(jié)特征.同時,由于處處可微的性質(zhì),使用周期性激活函數(shù)使得模型收斂速度更快,并且不損失重建圖像的質(zhì)量.
為了提高網(wǎng)絡(luò)的性能,最有效的方法是增加模型的深度,即在卷積神經(jīng)網(wǎng)絡(luò)中疊加更多的層.但是,增加卷積層數(shù)會帶來梯度消失或爆炸的問題,在不增加層數(shù)的情況下,增加了特征通道的數(shù)目來擴(kuò)展模型的屬性,同時節(jié)省了計算資源.
增加通道數(shù)目將會引入更多的參數(shù),進(jìn)而使得訓(xùn)練過程在數(shù)值上變得不穩(wěn)定,為了解決這個問題,引入一個非常小的常數(shù)作為殘差縮放的參數(shù)值,使得模型在使用較多的卷積濾波器時也能夠穩(wěn)定地訓(xùn)練,殘差縮放模塊被放在每個周期殘差塊結(jié)構(gòu)的末端,在求和操作之前.實(shí)驗顯示,加入這樣的結(jié)構(gòu)很好的保證了訓(xùn)練過程的穩(wěn)定和計算效率.
設(shè)定殘差塊的個數(shù)為PB,模型的深度為d=PB×2+1.
令x和y分別為模型輸入的模糊圖像和輸出的重建圖像,為Pb第b個周期殘差塊的運(yùn)算法則,當(dāng)b=0 時令x0=x即原輸入圖像,F(xiàn)Con為模型第一個卷積層的運(yùn)算法則,F(xiàn)Re為模型最后一個卷積層的運(yùn)算法則,則模型可以表示為
xb=Pb(xb-1)=Sin(h(xb-1)+F(xb-1,Wb-1)),
y=FRe(PPB(PPB-1(…P1(FCon(x))…)…)+x).
模型結(jié)構(gòu)如圖2所示,由多個周期殘差塊串聯(lián)組成單尺度網(wǎng)絡(luò)的主要部分,在周期殘差塊中去掉了求和之后的激活函數(shù),僅在周期殘差塊內(nèi)部進(jìn)行激活,使用正弦函數(shù)代替ReLU函數(shù)作為激活函數(shù),在每個卷積層中使用256個特征通道,并在每個周期殘差塊中加入殘差縮放模塊.
圖2 單尺度模型結(jié)構(gòu)
輸入圖像首先通過一個用于預(yù)處理的卷積層進(jìn)行淺層次特征提取,提取后的特征圖像通過一列周期殘差塊組進(jìn)行深層次特征提取后,與最初提取的特征圖像進(jìn)行融合,融合圖像通過上采樣層進(jìn)行放大,并最終由重建卷積層重建為超分辨圖像.
在訓(xùn)練過程中設(shè)置放大因子為×2和×4,在訓(xùn)練×2之后,使用預(yù)先訓(xùn)練好的×2模型對×4模型的訓(xùn)練進(jìn)行參數(shù)初始化,相比較于獨(dú)立地對不同尺度的模型進(jìn)行初始化,使用預(yù)先訓(xùn)練的模型進(jìn)行初始化可以縮短模型訓(xùn)練時間,并提高最終重建圖像的質(zhì)量.
為了建立多尺度網(wǎng)絡(luò)結(jié)構(gòu),引入與尺度相關(guān)的特殊模塊,這些模塊被放置在模型前端,目的是將輸入圖像按不同尺度進(jìn)行預(yù)處理操作,多尺度網(wǎng)絡(luò)結(jié)構(gòu)與單尺度網(wǎng)絡(luò)主體結(jié)構(gòu)類似,不同之處在于,在模型的開端,多尺度網(wǎng)絡(luò)的預(yù)處理層包括兩個不同尺度的殘差塊,在模型的末端,多尺度網(wǎng)絡(luò)使用不同尺度的上采樣模塊,對圖像進(jìn)行獨(dú)立的上采樣操作,上采樣模塊的結(jié)構(gòu)與單尺度模型中的結(jié)構(gòu)相同,每個尺度的上采樣模塊具有獨(dú)立的輸出.為了在網(wǎng)絡(luò)初期使得模型具有較大的感受野,我們在尺度預(yù)處理模塊中應(yīng)用尺寸較大的濾波器,并同時保證尺度預(yù)處理模塊的淺度.
圖3 與其他模型對比
使用目前最新也是最廣泛使用的DIV2K數(shù)據(jù)集進(jìn)行訓(xùn)練,DIV2K數(shù)據(jù)集為圖像超分辨任務(wù)提供高質(zhì)量的圖片集,包括800張用于訓(xùn)練的圖片以及100張測試圖片,同時用DIV2K數(shù)據(jù)集給出的圖像以及其他數(shù)據(jù)集進(jìn)行輔助測試,包括Urban100,Set5,Set14.
選擇×2和×4作為訓(xùn)練模型時的上采樣因子,使用帶有相應(yīng)高分辨圖像的低分辨圖像進(jìn)行訓(xùn)練,尺寸大小為48×48.在訓(xùn)練之前,通過減去DIV2K數(shù)據(jù)集的平均RGB值來預(yù)處理所有圖像.這樣做的目的是移除統(tǒng)計平均值所代表的相同部分,放大個體特征的差異.模型使用ADAM優(yōu)化函數(shù)并設(shè)定相關(guān)參數(shù)為:β1=0.9,β2=0.999,ε=10-8.學(xué)習(xí)率初始化為10-4,批量大小設(shè)置為16,并在每2×105個批量后將學(xué)習(xí)率半數(shù)退化.
對于×2尺度模型使用上述方法進(jìn)行訓(xùn)練,并在模型收斂之后,用作訓(xùn)練其他模型的預(yù)處理參數(shù).使用MAE代替MSE作為訓(xùn)練模型時的損失函數(shù),真實(shí)圖像因為含有多種特征而被成為多模態(tài)圖像,且真實(shí)樣本并不來源于同一高斯分布,如果用MSE損失函數(shù)去擬合包含多種特征的數(shù)據(jù)分布,將會平均化多模態(tài)數(shù)據(jù)樣本的特征信息,導(dǎo)致模糊圖像的產(chǎn)生.
實(shí)驗評估采用PSNR標(biāo)準(zhǔn):
與SSIM標(biāo)準(zhǔn):
表1 與其他算法進(jìn)行對比,評估標(biāo)準(zhǔn)為PSNR/SSIM
本文提出了一種使用周期性激活函數(shù)的超分辨率算法,在模型結(jié)構(gòu)上移除了冗余模塊,使得模型更加簡潔的同時保證重建圖像的質(zhì)量,有效地降低了運(yùn)算復(fù)雜度.通過引入周期性激活函數(shù)提升重建圖像在紋理細(xì)節(jié)上的復(fù)原度,同時引入殘差縮放技術(shù)使得大型網(wǎng)絡(luò)在訓(xùn)練時穩(wěn)定.
此外,通過采用預(yù)先訓(xùn)練好的模型作為初始化設(shè)置,減少了不同尺度模型的訓(xùn)練時間,通過將尺度相關(guān)的模塊在網(wǎng)絡(luò)主結(jié)構(gòu)中共享,進(jìn)而提出多尺度的超分辨率網(wǎng)絡(luò),可以僅通過一個網(wǎng)絡(luò)就處理不同尺度的超分辨率問題,有效地提高了模型的靈活性和可擴(kuò)展性.
致謝作者非常感謝相關(guān)文獻(xiàn)對本文的啟發(fā)以及審稿專家提出的寶貴意見.