蔣文杰,羅曉曙,戴沁璇
廣西師范大學(xué) 電子工程學(xué)院,廣西 桂林 541004
隨著現(xiàn)代航天技術(shù)的快速發(fā)展,遙感圖像已經(jīng)廣泛應(yīng)用到獲取地理數(shù)據(jù)、地球資源和應(yīng)急災(zāi)害等領(lǐng)域[1-3]。在獲取遙感圖像的過程中,由于受到頻率干擾、大氣擾動(dòng)和成像設(shè)備等多因素的影響,導(dǎo)致傳統(tǒng)的遙感圖像分辨率普遍偏低。高分辨率遙感圖像相比低分辨率遙感圖像,圖像細(xì)節(jié)信息更加豐富,更有利于遙感數(shù)據(jù)的后續(xù)處理,因此,圖像超分辨率重建作為提高圖像分辨率的方法,在遙感圖像和醫(yī)學(xué)影像等領(lǐng)域展現(xiàn)出巨大的潛力和應(yīng)用價(jià)值。
超分辨率重建技術(shù)作為一種提高圖像分辨率的有效方法,其最早于20 世紀(jì)60 年代由Harris 等人[4]提出。目前超分辨率重建方法主要分為學(xué)習(xí)法[5]、插值法[6]和重建法[7]。其中,插值法用于估計(jì)未知像素值,該方法簡單可行,但對(duì)紋理細(xì)節(jié)恢復(fù)不明顯。重建法是根據(jù)先驗(yàn)知識(shí)對(duì)重建過程進(jìn)行約束,雖然重建效果較好,但是計(jì)算復(fù)雜,運(yùn)算時(shí)間長。學(xué)習(xí)法主要是通過高低分辨率圖像間的映射關(guān)系來約束超分辨率重建,效果一般優(yōu)于差值法和重建法。
2014 年Dong[8]等首次將卷積神經(jīng)網(wǎng)絡(luò)SRCNN(Super-Resolution Convolutional Neural Network)應(yīng)用于圖像超分辨率重建,該算法極大地提高了重建圖像的視覺效果和量化指標(biāo)。Kim等[9]提出了將殘差思想引入卷積神經(jīng)網(wǎng)絡(luò)VDSR(Very Deep Super-Resolution),并將其運(yùn)用到圖像超分辨率重建上,該方法在降低學(xué)習(xí)成本的同時(shí)加快了學(xué)習(xí)速率。Lai等[10]提出了基于拉普拉斯金字塔的卷積神經(jīng)網(wǎng)絡(luò)模型,通過逐步上采樣的方式實(shí)現(xiàn)了圖像超分辨率重建?;诂F(xiàn)有圖像超分辨率重建算法的研究,提出了一種改進(jìn)的遙感圖像超分辨率重建模型,主要工作有以下三點(diǎn):
(1)改進(jìn)CGAN(Conditional Generative Adversarial Nets)[11],用于遙感圖像超分辨率重建。
(2)在判別器網(wǎng)絡(luò)中,引入梯度懲罰損失函數(shù)[12],提高訓(xùn)練的穩(wěn)定性和收斂速度。
(3)相較于傳統(tǒng)使用隨機(jī)向量作為輸入,采用低分辨率圖像作為生成器輸入,實(shí)現(xiàn)了四倍上采樣的遙感圖像超分辨率重建。
Goodfellow[13]及其學(xué)生于2014 年提出了生成對(duì)抗網(wǎng)絡(luò)GAN[13](Generative Adversarial Network)。該網(wǎng)絡(luò)作為一種概率生成模型包含了判別器D 和生成器G 兩個(gè)模塊,分別用于估計(jì)輸入圖片的真實(shí)概率和抓取數(shù)據(jù)的分布特征。判別器盡可能將真實(shí)圖像和生成圖像區(qū)別開來,而生成器則盡可能生成真實(shí)圖片來欺騙判別器,兩者進(jìn)行極大極小值博弈,最終達(dá)到動(dòng)態(tài)平衡,其過程如式(1)所示:
由于GAN 網(wǎng)絡(luò)不可控,難以對(duì)輸出進(jìn)行控制。為了解決這個(gè)問題,條件對(duì)抗網(wǎng)絡(luò)CGAN 是在GAN 的生成器和判別器都額外添加了一個(gè)條件y,生成器必須要生成和條件y匹配的樣本,判別器不僅要判別圖像是否真實(shí),還要判別圖像和條件y是否匹配。生成器G,輸入為一個(gè)噪聲z,輸出一個(gè)圖像G(z)。判別器D,輸入為一個(gè)圖像x,輸出該圖像為真實(shí)的概率D(x),CGAN的損失函數(shù)如式(2)所示:
CGAN結(jié)合了卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征提取能力,在此基礎(chǔ)上加以條件輔助生成樣本。為得到高分辨率的遙感圖像,在對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí)可將高分辨率的遙感圖像作為額外輸入,其作用相當(dāng)于網(wǎng)絡(luò)訓(xùn)練的控制條件,在訓(xùn)練過程中將上述的控制條件作為標(biāo)簽加到訓(xùn)練數(shù)據(jù)中,最后得到所需要的高分辨率遙感圖像。
然而,如果CGAN網(wǎng)絡(luò)中訓(xùn)練分布和生成分布之間存在的差異較少,且對(duì)生成分布和真實(shí)分布的度量采用JS散度衡量,這會(huì)導(dǎo)致判別器更容易分辨是生成圖片還是訓(xùn)練圖片,由此梯度問題將被放大,這會(huì)導(dǎo)致模型不收斂,難以訓(xùn)練,從而存在梯度消失的問題。
為了解決網(wǎng)絡(luò)訓(xùn)練收斂速度慢的問題,WGAN[14](Wasserstein Generative Adversarial Nets)提出了使用Wasserstein距離作為網(wǎng)絡(luò)訓(xùn)練的優(yōu)化目標(biāo),其具體表達(dá)式如式(3)所示:
WGAN 使用Wassertein 距離去衡量生成數(shù)據(jù)分布和真實(shí)數(shù)據(jù)分布之間的距離,理論上解決了網(wǎng)絡(luò)訓(xùn)練不穩(wěn)定的問題。為了將Wassertein距離作為優(yōu)化方式來訓(xùn)練網(wǎng)絡(luò),WGAN 需要滿足Lipschitz連續(xù)性,最后只能將權(quán)重壓縮到一個(gè)范圍來強(qiáng)制滿足Lipschitz 連續(xù)性。這會(huì)造成對(duì)深度神經(jīng)網(wǎng)絡(luò)擬合能力的極大浪費(fèi),另外對(duì)權(quán)重進(jìn)行強(qiáng)制剪切容易導(dǎo)致梯度消失或者爆炸。
針對(duì)上述問題,提出了采用梯度懲罰來滿足Lipschitz連續(xù)性。為了盡可能將判別器的梯度?D(x)變大,而Lipschitz 連續(xù)性限制要求判別器的梯度?D(x)不能超過K,所以兩者的歐氏距離表達(dá)式如式(4)所示:
由于K是一個(gè)大于等于零的常數(shù)并且梯度?D(x)不能超過K,為了方便計(jì)算,設(shè)K的數(shù)值為1,則與原來WGAN判別器的目標(biāo)函數(shù)表達(dá)式結(jié)合的表達(dá)式如式(5)所示:
上式中λ是一個(gè)常數(shù)并且取值范圍是0到1,由于式(5)的最后一項(xiàng)描述需要在整個(gè)樣本空間進(jìn)行采樣,而實(shí)際訓(xùn)練網(wǎng)絡(luò)的時(shí)候只需要在生成樣本空間和真實(shí)樣本空間兩個(gè)空間的重疊區(qū)域進(jìn)行采樣。所以采用隨機(jī)抽取一對(duì)真假樣本以及0~1均勻分布的隨機(jī)數(shù)的采樣方式,如式(6)所示:
接著在xr和xg之間的連線上隨機(jī)采樣,如式(7)所示:
最后將采樣的結(jié)果所滿足的分布為p~x,此時(shí)可以得到判別器的損失函數(shù),如式(8)所示:
這樣做不僅解決了原先網(wǎng)絡(luò)訓(xùn)練梯度消失和爆炸的問題,還使得網(wǎng)絡(luò)實(shí)現(xiàn)了比WGAN 更快的收斂速度和更高質(zhì)量的樣本。
本文的CNN 生成器網(wǎng)絡(luò)采用了包含兩個(gè)1/2 間隔的卷積單元,9個(gè)剩余殘差單元和兩個(gè)反卷積單元,每個(gè)殘差模塊由一個(gè)卷積層,實(shí)例歸一化層[15]和ReLU[16]激活組成。殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 殘差網(wǎng)絡(luò)結(jié)構(gòu)
深度學(xué)習(xí)對(duì)于網(wǎng)絡(luò)深度遇到的主要問題是梯度消失和梯度爆炸,傳統(tǒng)對(duì)應(yīng)的解決方案是數(shù)據(jù)的初始化和正則化,但是這樣雖然解決了梯度的問題,卻存在網(wǎng)絡(luò)性能的退化問題。而殘差用來設(shè)計(jì)解決退化問題,其結(jié)構(gòu)使得網(wǎng)絡(luò)在輸入特征基礎(chǔ)上學(xué)習(xí)到新的特征,使得網(wǎng)絡(luò)的性能進(jìn)一步得以提升,同時(shí)也解決了梯度問題,殘差單元的公式如式(9)所示:
其中,Xi表示殘差學(xué)習(xí)的輸入,θ表示殘差學(xué)習(xí)的參數(shù),Xi+1表示殘差學(xué)習(xí)的輸出。
在圖像生成過程中,以高分辨率遙感圖像作為條件變量,引導(dǎo)低分辨率圖像重建。不同于一般的對(duì)抗網(wǎng)絡(luò)生成器輸入為任意隨機(jī)向量,輸入為1/4 采樣的低分辨率遙感圖像,輸入的每張低分辨率遙感圖像對(duì)應(yīng)有高分辨率遙感圖像進(jìn)行重建。
對(duì)于判別器網(wǎng)絡(luò)D,判別器采用PatchGAN[17]的方法,即對(duì)每張輸出圖像的每個(gè)N×N小塊(Patch)計(jì)算概率,然后再將這些概率求平均值作為整體的輸出。這樣的結(jié)果通常通過卷積層來達(dá)到,最終輸出的矩陣中的每一個(gè)元素,實(shí)際上代表著原圖中一個(gè)比較大的感受野,也就是對(duì)應(yīng)著原圖中的一個(gè)Patch。該方法能夠加快模型收斂和計(jì)算速度。PatchGAN結(jié)構(gòu)如圖2所示。
圖2 PatchGAN結(jié)構(gòu)
在對(duì)模型進(jìn)行算法改進(jìn)后,采取了適用于圖像超分辨率重建的網(wǎng)絡(luò)模型,生成器與判別器整體的網(wǎng)絡(luò)結(jié)構(gòu)如圖3和圖4所示。
其中,判別器的損失函數(shù)如式(10)所示:
損失函數(shù)包含對(duì)抗損失和內(nèi)容損失,其中對(duì)抗損失如式(11)所示:
內(nèi)容損失是估計(jì)生成圖像和真實(shí)圖像兩者的差距,這里的內(nèi)容損失為L2損失,它反映的是生成的特征圖和真實(shí)的特征圖之間的距離,具體的公式如式(12)所示:
圖3 生成器網(wǎng)絡(luò)結(jié)構(gòu)
圖4 判別器網(wǎng)絡(luò)結(jié)構(gòu)
最終得到的損失函數(shù)如式(13)所示:
上式中由于是加權(quán)合并,所以λ為0到1的常數(shù)。
由于在模型訓(xùn)練中需要大量的卷積計(jì)算,相對(duì)于CPU而言,GPU的運(yùn)用將極大地縮短訓(xùn)練時(shí)間,加快訓(xùn)練速度。本實(shí)驗(yàn)使用的計(jì)算機(jī)配置是雙E5-2637 v4 CPU,操作系統(tǒng)為Ubuntu 16.04,同時(shí)還使用了GTX1080Ti顯卡、12 GB內(nèi)存來加速訓(xùn)練。實(shí)驗(yàn)使用的平臺(tái)是機(jī)器學(xué)習(xí)框架Tensorflow1.9。
本文采用的數(shù)據(jù)集,大約包含了1萬張30類的高分影像,包含了機(jī)場、立交橋和車場等15 個(gè)類別,訓(xùn)練集和測試集的比例8∶2,進(jìn)行1/4 采樣,使用SSIM(結(jié)構(gòu)相似度)和PSNR(峰值信噪比)兩種評(píng)價(jià)算法對(duì)重建圖像進(jìn)行評(píng)價(jià),同時(shí)使用SRCNN、FSRCNN、SRGAN重構(gòu)出的超分辨率圖像作為結(jié)果對(duì)比,其中紅色矩形框代表的是感興趣區(qū)域,如圖5所示。
圖5 輸入圖像
訓(xùn)練時(shí),為了避免模型陷入局部最優(yōu)解,首先預(yù)訓(xùn)練好VGG19 模型作為初始化模型。訓(xùn)練過程中,將生成器和判別器進(jìn)行交替訓(xùn)練,學(xué)習(xí)率設(shè)置為0.000 2,迭代次數(shù)為500,訓(xùn)練時(shí)間為72 h,ROI 重建效果如圖6所示。
重建效果由圖6 可知,SRCNN 模型重建效果較為模糊,只能顯示物體的輪廓;FSRCNN 的效果相較于SRCNN 有一定的改進(jìn),去模糊性效果顯著并且顯示出物體的部分細(xì)節(jié)紋理;SRGAN 模型在去模糊的基礎(chǔ)上對(duì)圖像細(xì)節(jié)恢復(fù)顯著,但同時(shí)圖像出現(xiàn)了部分失真,圖像局部出現(xiàn)了扭曲;本文的方法相較于前面三種在去模糊和細(xì)節(jié)恢復(fù)上均取得了顯著提升,重建效果最接近于原圖。
評(píng)價(jià)超分辨率圖像質(zhì)量主要分為主觀評(píng)價(jià)和客觀評(píng)價(jià),前者是通過觀察人員的主觀感受來評(píng)價(jià)重構(gòu)圖像質(zhì)量,后者是根據(jù)量化指標(biāo)[18-19]來衡量輸出圖像質(zhì)量。選取了均方誤差MSE(Mean Squared Error),峰值信噪比 PSNR(Peak Signal to Noise Ratio)和結(jié)構(gòu)相似度SSIM(Structural Similarity Index)來綜合評(píng)價(jià)重構(gòu)圖像性能,其中,MSE如下所示:
PSNR表示為:
SSIM如下所示:
在公式(14)中h,w,k分別表示圖像的長、寬和通道;式(15)中的n等于 8;式(16)中的l(x,y)、c(x,y)、s(x,y) 分別表示圖像的亮度、對(duì)比度和結(jié)構(gòu)相似度。MSE越小代表重建圖像和原圖像誤差越小,PSNR和SSIM越大表示重構(gòu)圖像越接近原始圖像。
圖6 各種超分辨率重建結(jié)果對(duì)比
為了更加客觀和準(zhǔn)確評(píng)價(jià)各種算法的重建圖像,通過測試集(100張圖片)對(duì)各種算法進(jìn)行了比較,實(shí)驗(yàn)的對(duì)比結(jié)果如表1 所示。從表1 可知,相較于SRCNN、FSRGAN、SRGAN算法在測試集的評(píng)價(jià)結(jié)果,MSE分別減少了 29.03,5.09 和41.97,PSNR 分別提高了4.27 dB、1.79 dB 和0.76 dB,SSIM 指標(biāo)略有提高。根據(jù)實(shí)驗(yàn)結(jié)果,證實(shí)了本文改進(jìn)算法能夠有效提升模型的準(zhǔn)確率與穩(wěn)定性。
表1 各超分辨率重建方法客觀指標(biāo)
提出了一種基于改進(jìn)條件生成對(duì)抗網(wǎng)絡(luò)的遙感圖像超分辨率重建算法,構(gòu)建了遙感圖像超分辨率重建模型。通過在判別器中引入梯度懲罰函數(shù)對(duì)判別器梯度進(jìn)行限制,同時(shí)訓(xùn)練了CNN生成器,使用內(nèi)容損失和對(duì)抗損失作為目標(biāo)函數(shù),輸入圖像為低分辨率圖像。實(shí)驗(yàn)結(jié)果表明在輸出圖像在視覺效果和評(píng)價(jià)指標(biāo)均優(yōu)于其他對(duì)比算法,提現(xiàn)了本文算法的優(yōu)越性和先進(jìn)性,后續(xù)將對(duì)特定類型的遙感圖像做超分辨率重建。