李思平 林志賢 郭太良
(福州大學(xué)物理與信息工程學(xué)院 福建 福州 350116)
圖像超分辨率(Super-Resolution,SR)重建技術(shù)旨在從一幅或多幅低分辨率圖像重建出一幅高分辨率圖像。本文主要研究單幅圖像超分辨率重建(Single Image Super-Resolution,SISR)。
Dong等[1]首次提出了端到端的圖像超分辨率重建方法SRCNN,通過圖像特征提取層、非線性映射層和重建層完成對單幀低分辨率圖像的超分辨率重建。Kim等[2]提出了一種極深的卷積網(wǎng)絡(luò)VDSR,該網(wǎng)絡(luò)達(dá)到20層,運(yùn)用了殘差學(xué)習(xí)與梯度裁剪來解決梯度爆炸問題。Ledig等[3]提出SRGAN,將基于生成模型的對抗網(wǎng)絡(luò)GAN[4]用于超分辨率重建中。
盡管目前深度學(xué)習(xí)方法應(yīng)用在圖像超分辨率重建技術(shù)上已經(jīng)取得了巨大的進(jìn)步,但是仍然存在以下問題:(1) 隨著網(wǎng)絡(luò)的加深,會(huì)出現(xiàn)梯度消失的現(xiàn)象,訓(xùn)練時(shí)間久且難以訓(xùn)練;(2) 大部分深度學(xué)習(xí)方法獲取低分辨率圖像的方法是簡單的通過人為假定的下采樣過程獲得,比如雙三次插值(Bicubic),因此訓(xùn)練出來的模型不能處理現(xiàn)實(shí)生活中由于各種模糊、噪聲及運(yùn)動(dòng)干擾的低分辨率圖像;(3) 高質(zhì)量數(shù)據(jù)集的缺失。
本文提出了一個(gè)端到端的雙向?qū)股删W(wǎng)絡(luò),包括一個(gè)重建網(wǎng)絡(luò)(Low to High)旨在將低分辨率圖片恢復(fù)成高分辨率圖片,及模擬現(xiàn)實(shí)生活中的低分辨率圖像的下采樣網(wǎng)絡(luò)(High to Low),該網(wǎng)絡(luò)將高分辨率圖片通過學(xué)習(xí)的方法生成低分辨率圖片從而取代人為簡單的通過降采樣而產(chǎn)生的低分辨率圖像。較之前的SRCNN、VDSR、SRGAN等方法,本文提出的算法在Set5、DIV2K等通用測試數(shù)據(jù)集的主觀視覺評價(jià)和客觀量化指標(biāo)均超越它們。
SRGAN是將基于生成模型的對抗網(wǎng)絡(luò)用于超分辨率重建中。基于生成對抗網(wǎng)絡(luò)的圖像超分辨率重建流程如圖1所示。
圖1 基于生成對抗網(wǎng)絡(luò)的超分辨率重建流程
GAN存在訓(xùn)練困難、生成器和判別器的損失函數(shù)無法指示訓(xùn)練過程,缺乏一個(gè)有意義的指標(biāo)和生成圖片的質(zhì)量相關(guān)聯(lián),生成的圖片雖然看起來像是真的,但是缺乏多樣性。Arjovsky等[5]針對生成對抗網(wǎng)絡(luò)這些問題,提出了WGAN。WGAN通過Wasserstein距離來優(yōu)化生成數(shù)據(jù)和真實(shí)數(shù)據(jù)之間的差距以替代GAN中的JS散度衡量標(biāo)準(zhǔn)。本文中的雙向生成對抗網(wǎng)絡(luò)的訓(xùn)練策略將采用WGAN中提出的損失函數(shù)優(yōu)化方法以保證訓(xùn)練過程的穩(wěn)定性。
本文提出的算法旨在解決現(xiàn)實(shí)生活中圖像超分辨率重建問題。該算法框架如圖2所示,包括兩個(gè)生成對抗網(wǎng)絡(luò),分別為重建網(wǎng)絡(luò)(Low-to-High)和下采樣網(wǎng)絡(luò)(High-to-Low)。
圖2 雙向?qū)股删W(wǎng)絡(luò)
本文與之前的超分辨率研究工作(SRCNN、VDSR、SRGAN)的第一個(gè)基本區(qū)別是如何生成低分辨率(LR)圖像。在以往的大多數(shù)工作中,低分辨率圖像是由相應(yīng)的原始圖像(HR圖像)進(jìn)行降采樣(Bicubic)而產(chǎn)生的,人工設(shè)定的下采樣過程完全忽略了圖像退化過程(如運(yùn)動(dòng)干擾、各種模糊算子等)。為了緩解這種情況,本文受到了CycleGAN[6]的啟發(fā),提出了另外一個(gè)下采樣網(wǎng)絡(luò)來模擬生成現(xiàn)實(shí)低分辨率圖像。值得關(guān)注的是,訓(xùn)練下采樣網(wǎng)絡(luò)并不需要匹配的低分辨率和高分辨率圖像對,從而大大減少了采集相對應(yīng)高低分辨率圖像對的工作。
本文與基于單個(gè)生成對抗網(wǎng)絡(luò)的SRGAN工作的第二個(gè)根本區(qū)別是,選擇新的損失函數(shù)訓(xùn)練兩個(gè)網(wǎng)絡(luò),本文將傳統(tǒng)的GAN損失函數(shù)換成了WGAN的損失函數(shù),且與L1像素?fù)p失相結(jié)合,同時(shí)為了保證圖像的空間信息,還引入了結(jié)構(gòu)感知損失函數(shù)。
圖像超分辨率重建面臨的最大問題是缺乏真實(shí)的數(shù)據(jù)集,即低分辨率的噪聲圖像和相應(yīng)的高分辨率圖像。生成這樣的用于訓(xùn)練的圖像對的困難主要有兩方面。一是對低分辨率(LR)圖像進(jìn)行建模和仿真,二是生成像素相對應(yīng)的圖像對。為了解決這個(gè)問題,本文提出了下采樣網(wǎng)絡(luò)(H2L),低分辨率圖片產(chǎn)生的方式如公式所示:
LR=fH2L(HR,θ1)
(1)
式中:LR表示生成的低分辨率圖片;HR表示清晰的高分辨率圖片;θ1表示網(wǎng)絡(luò)要學(xué)習(xí)的參數(shù)。
下采樣網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu)如圖3所示,高分辨率圖首先會(huì)經(jīng)過一個(gè)卷積層和ReLU激活函數(shù)層提取低層特征,然后將提取的低層特征輸入到后面八個(gè)殘差塊中。每個(gè)殘差塊包含了兩層卷積層和一層激活函數(shù)層,相比于SRGAN的殘差塊,本文設(shè)計(jì)的殘差塊遵循EDSR[7]去除了歸一化(BN)層,以保證網(wǎng)絡(luò)可以減少參數(shù),加快訓(xùn)練速度。每兩個(gè)殘差塊間的設(shè)計(jì)運(yùn)用了ResNet[8]中的跳躍連接(Short-Cut)方式,同時(shí)將低層特征與殘差塊輸出的高層特征進(jìn)行了融合操作,促使網(wǎng)絡(luò)模擬生成更逼真的帶噪聲的低分辨率圖片。最后融合的特征圖經(jīng)過卷積層和子像素卷積層(Sub-pixel)生成低分辨率圖片。重建網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu)如圖4所示,和下采樣網(wǎng)絡(luò)架構(gòu)類似。
圖3 下采樣網(wǎng)絡(luò) 圖4 重建網(wǎng)絡(luò)
下采樣網(wǎng)絡(luò)的損失函數(shù)由兩部分組成,分別為生成網(wǎng)絡(luò)的對抗損失及結(jié)構(gòu)感知損失。下采樣網(wǎng)絡(luò)的生成器生成的低分辨率圖片需要騙過判別器,因此產(chǎn)生了對抗損失函數(shù),其定義如下公式所示:
(2)
式中:D表示下采樣網(wǎng)絡(luò)的判別器;G代表了下采樣網(wǎng)絡(luò)的生成器;N代表了圖像的數(shù)量。
為了保護(hù)生成的圖像與原圖像之間的空間結(jié)構(gòu)信息不發(fā)生改變,本文引入了用于風(fēng)格遷移[9](Style-transfer)工作的結(jié)構(gòu)感知損失函數(shù),其定義如下所示:
(3)
式中:N代表了圖像塊的數(shù)量;P表示VGG網(wǎng)絡(luò)的卷積層的特征圖;y是生成的低分辨率圖片;x是輸入的高分辨率圖片。在計(jì)算損失的時(shí)候,圖片會(huì)被裁剪到同一尺寸。
本文提出的重建網(wǎng)絡(luò)(L2H)實(shí)現(xiàn)了低分辨率圖像超分辨率,可以用以下公式來描述:
HR=fL2H(LR,θ2)
(4)
式中:HR表示重建的超分辨率圖片;LR表示輸入的低分辨率圖片;θ2表示重建網(wǎng)絡(luò)要學(xué)習(xí)的參數(shù)。
低分辨率圖片首先經(jīng)過一個(gè)卷積層和ReLU激活函數(shù)層以提取函數(shù)的低層特征。低層特征經(jīng)過20層殘差塊學(xué)習(xí)高分辨率圖片的高頻細(xì)節(jié)部分,最后將融合了低層和高層的特征圖輸入到子像素卷積層進(jìn)行圖像超分辨重建。反卷積層沒有使用經(jīng)典的轉(zhuǎn)置卷積,引入了子像素卷積層(Sub-pixel),從而避免了重建圖像有棋盤效應(yīng)和邊緣模糊。
重建網(wǎng)絡(luò)的損失函數(shù)由三部分組成,分別為生成網(wǎng)絡(luò)的對抗損失、結(jié)構(gòu)感知損失和L1像素?fù)p失組成。其中對抗損失及結(jié)構(gòu)感知損失與下采樣一致。L1像素?fù)p失的定義如下所示:
(5)
式中:N表示圖像塊數(shù)量;y表示重建的超分辨率圖像;x表示真實(shí)的標(biāo)簽高分辨率圖片。
網(wǎng)絡(luò)訓(xùn)練采用的數(shù)據(jù)集包括了兩部分,分別為公開數(shù)據(jù)集DIV2K(800幅高分辨率圖片)及利用黑莓手機(jī)采集的真實(shí)數(shù)據(jù)集對RMSR,包括了500幅4 032×3 024的圖像對。其中450幅圖像對用于訓(xùn)練集,50幅用于測試集。在訓(xùn)練過程中圖片按步幅14切分成224×224的小圖片。本實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境基于Linux服務(wù)器,顯卡為NVIDIA P100,訓(xùn)練所利用框架為Pytorch1.0。
本文所提生成對抗網(wǎng)絡(luò)中的每個(gè)卷積層都使用64×64大小為3×3的濾波器。反卷積層沒有使用經(jīng)典的轉(zhuǎn)置卷積,引入了子像素卷積層,從而避免了重建圖像有棋盤效應(yīng)和邊緣模糊。同時(shí)訓(xùn)練時(shí),輸入圖像的批次為64,采用了Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.001,總迭代次數(shù)為200 000次,每迭代50 000次,學(xué)習(xí)率下降十倍。
雖然本文提出算法的主要目標(biāo)是學(xué)習(xí)一種能夠處理真實(shí)世界圖像超分辨率的重建模型,但是很難獲得用于評估結(jié)果的真實(shí)圖像(Ground-truth)。因此,為了驗(yàn)證本文方法的有效性,首先將重建模型與其他基于卷積神經(jīng)網(wǎng)絡(luò)的單幅圖像超分辨率重建方法進(jìn)行比較,這些方法是專門為基于雙三次插值退化的超分辨率設(shè)計(jì)的,比如SRCNN、SRGAN、ESGANG[10]等。
表1和表2給出了本文提出的算法與其他算法在測試集Set5、DIV2K及本文提出的數(shù)據(jù)集RMSR上的定量分析。在測試集Set5、DIV2K上的測試過程是對所有的圖像運(yùn)用雙三次插值方法進(jìn)行4倍的下采樣,然后將下采樣的圖像輸入進(jìn)不同的重建模型中得出重建結(jié)果。由表1和表2中結(jié)果得出,本文提出的方法在處理現(xiàn)實(shí)生活的低分辨率圖像具有較優(yōu)秀的能力。
表1 本文方法與其他重建算法的PSNR
表2 本文方法與其他重建算法的SSIM
圖5的實(shí)驗(yàn)結(jié)果是基于測試集DIV2K上的一幅企鵝圖片分別對各種深度學(xué)習(xí)模型進(jìn)行了超分辨率重建。從重建圖像的部分可看出,本文的算法重建的圖像細(xì)節(jié)清晰,且企鵝尖嘴部分無奇怪的紋理,與原圖最為相近。
(a) 原始圖像 (b) 雙三次插值法
(c) SRCNN方法 (d) SRGAN方法
(e) ESRGAN方法 (f) 本文方法圖5 測試圖像1
圖6為一幅現(xiàn)實(shí)世界的芯片圖像通過各種模型超分重建的效果圖,可以看出本文提出的算法重建視覺效果最好,邊界明顯、細(xì)節(jié)清晰。
(a) 原始圖像 (b) 雙三次插值法
(c) SRCNN方法 (d) SRGAN方法
(e) ESRGAN方法 (f) 本文方法圖6 測試圖像2
綜上所述,本文所提出的基于雙向?qū)股删W(wǎng)絡(luò)的圖像超分辨率重建算法可以很好地把現(xiàn)實(shí)世界低分辨率圖片重建為視覺良好、細(xì)節(jié)豐富的高分辨率圖片。
本文提出的新型雙向聯(lián)合對抗生成網(wǎng)絡(luò)旨在解決現(xiàn)實(shí)生活中圖像超分辨率重建問題。該方法利用降采樣模塊生成逼真的低分辨率圖像,利用生成的逼真低分辨率圖像經(jīng)過重建網(wǎng)絡(luò)實(shí)現(xiàn)高分辨率圖像的超分辨。在訓(xùn)練GAN網(wǎng)絡(luò)時(shí),利用Wasserstein距離優(yōu)化網(wǎng)絡(luò),以保證算法訓(xùn)練的穩(wěn)定性。通過Set5、DIV2K和RMSR等數(shù)據(jù)集對算法驗(yàn)證,本文提出的算法要優(yōu)于SRGAN的重建效果,下一步工作準(zhǔn)備優(yōu)化網(wǎng)絡(luò),將網(wǎng)絡(luò)參數(shù)減少,在保證精度的同時(shí)提高網(wǎng)絡(luò)運(yùn)行速度。