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