彭晏飛,高 藝,杜婷婷,桑 雨,訾玲玲
遼寧工程技術大學電子與信息工程學院,遼寧葫蘆島 125105
圖像超分辨率問題,特別是單圖像超分辨率,近年來受到越來越多的關注,已成為一個研究的熱點問題。單圖像超分辨率是一個病態(tài)的求逆問題,目標是從一幅低分辨率的圖像中恢復出具有更多紋理細節(jié)和高頻信息的高分辨率圖像,在衛(wèi)星成像[1]、監(jiān)控設備[2]、遙感影像[3]、醫(yī)學成像[4]等許多現(xiàn)實領域中都有廣泛的應用。
圖像超分辨率重建主要有:基于插值的[5]、基于重建的[6]和基于學習的[7]三種方法?;诓逯档某直媛史椒▽崿F(xiàn)簡單,重建速度快,但同時也存在依賴自然圖像的先驗知識,使重建圖像細節(jié)較差的缺點?;谥亟ǖ某直媛矢鶕?jù)已有的退化模型,通過提取低分辨率圖像中的關鍵信息,并結(jié)合對未知的超分辨率圖像的先驗知識來約束超分辨率圖像的生成。由于所獲得的先驗知識有限,因此如果遇到復雜的圖像所重建出的圖像性能也有限。基于學習的超分辨率利用大量的訓練數(shù)據(jù),通過訓練建立低分辨率與高分辨率的映射關系,根據(jù)學習到的先驗信息從低分辨率圖像中重建出高分辨率圖像。相比其他方法,基于學習的方法可以利用學習到的先驗知識來預估對應的高分辨率圖像,重建圖像質(zhì)量高,目前已成為主流的重建方法。
近年來,隨著深度學習在計算機視覺的成功應用,深度神經(jīng)網(wǎng)絡受到了廣泛關注,其影響力也已擴展到圖像超分辨率領域,使用基于卷積神經(jīng)網(wǎng)絡的圖像超分辨率,其質(zhì)量大大改善。Dong等人[7]首先提出了一種基于3層卷積神經(jīng)網(wǎng)絡的超分辨率方法(super-resolution convolutional neural network,SRCNN),成功將深度學習引入到超分辨率領域,該網(wǎng)絡結(jié)構(gòu)簡單,易于實現(xiàn),但仍然存在由于感受野小、泛化能力差、卷積層數(shù)少而導致的重建性能差的問題。Shi等人[8]提出增加亞像素卷積層來減少計算開銷,提高圖像的重建效率。Kim等人[9]加深網(wǎng)絡結(jié)構(gòu)到20層,提高了感受野,并通過殘差學習來提高訓練的收斂速度。Lim等人[10]去掉了殘差塊中不必要的批規(guī)范化層(batch normalization,BN),使模型更加緊湊,提高了圖像的重建質(zhì)量。Lai等人[11]提出的深層拉普拉斯金字塔網(wǎng)絡(LapSRN)將L2損失函數(shù)換為Charbonnier損失函數(shù),通過級聯(lián)學習逐步上采樣,逐步輸出殘差結(jié)果,一步步得到重建圖像。Haris等人[12]提出一種不斷進行上采樣和下采樣的網(wǎng)絡(deep backprojection networks,DBPN),通過為每個階段建立錯誤反饋機制來指導重建。以上方法多數(shù)以MSE(mean squared error)為目標函數(shù),雖然生成圖像有著較高的PSNR(peak signal-to-noise ratio),但生成質(zhì)量卻缺少高頻信息和紋理細節(jié),且感知效果不盡如人意。
隨著生成對抗網(wǎng)絡(generative adversarial network,GAN)[13]的提出,大家開始嘗試利用生成對抗網(wǎng)絡處理各種計算機視覺任務。2017年,Ledig等人[14]首次將生成對抗網(wǎng)絡用于圖像超分辨率重建(superresolution generative adversarial networks,SRGAN),提升了生成圖像的視覺效果。2018年,Wang等人[15]去除掉生成器中所有的BN層,并提出用殘差密集塊代替原始基礎塊來訓練一個非常深的網(wǎng)絡,進一步提升了視覺質(zhì)量。受其啟發(fā),本文在SRGAN模型的基礎上,使用支持向量機(support vector machine,SVM)中的hinge損失作為目標函數(shù),在生成網(wǎng)絡中使用更加穩(wěn)定、抗噪性更強的Charbonnier損失函數(shù)來代替L2損失,改善使用L2損失函數(shù)會使重建圖像在普通區(qū)域產(chǎn)生斑點偽影的問題。同時去掉了殘差塊和判別器中會使特征歸一化的BN層,并在生成器和判別器中使用譜歸一化(spectral normalization,SN)來減少計算開銷,穩(wěn)定模型訓練。在激活函數(shù)的選擇上,本文在判別器中使用了復雜度更小、對噪聲魯棒性更好的指數(shù)線性單元(exponential linear units,ELU)激活函數(shù)代替LeakyReLU激活函數(shù),通過以上方法進一步提升圖像的視覺效果,使其更接近人類的視覺感知。
受二人零和博弈的啟發(fā),2014年,Ian Goodfellow提出生成對抗網(wǎng)絡[14]的概念,其由兩個神經(jīng)網(wǎng)絡相互競爭的特殊對抗過程組成,具體結(jié)構(gòu)如圖1所示。生成網(wǎng)絡G(z)捕捉真實樣本數(shù)據(jù)的潛在分布,并生成新的樣本數(shù)據(jù),判別網(wǎng)絡D(x)是一個二分類器,試圖區(qū)分真實數(shù)據(jù)與生成網(wǎng)絡創(chuàng)造出來的假數(shù)據(jù),即判別輸入是真實數(shù)據(jù)還是生成的樣本。判別網(wǎng)絡會生成一個在[0,1]范圍內(nèi)的標量,代表數(shù)據(jù)是真實數(shù)據(jù)的概率。生成對抗網(wǎng)絡的訓練實際是一個極小極大博弈的過程,優(yōu)化目標是達到納什平衡,即生成器生成的樣本與真實樣本無差別,判別器無法準確判斷生成的數(shù)據(jù)與真實數(shù)據(jù),此時判別器認為生成器輸出的結(jié)果是真實數(shù)據(jù)的概率為0.5。生成器與判別器的對抗過程如式(1)所示:
其中,V(D,G)表示GAN優(yōu)化的目標函數(shù),E(·)表示數(shù)學期望,x表示從真實的數(shù)據(jù)分布pdata(x)中獲取的數(shù)據(jù),D(x)表示真實數(shù)據(jù)經(jīng)由判別器判別為真的概率,z為隨機噪聲信號,生成器G(z)從概率分布P(z)中接收輸入z,并把它輸入到判別器網(wǎng)絡D(x)。
Fig.1 Structure diagram of GAN圖1 GAN結(jié)構(gòu)圖
判別器部分如式(2)所示:
其中,固定生成器,對于真實樣本x,即公式的前一項,希望得到的結(jié)果D(x)越大越好,因為得到真樣本的結(jié)果越接近1越好。對于假樣本,希望得到的結(jié)果D(G(z))越小越好,也就是1-D(G(z))的結(jié)果越大越好,因為它的標簽是0。
生成器部分如式(3)所示:
在其優(yōu)化過程中,沒有真樣本,希望假樣本的標簽為1,D(G(z))的結(jié)果越大越好,即1-D(G(z))的結(jié)果越小越好。
本文以SRGAN為基礎,首先遷移了SVM中的hinge損失作為目標函數(shù),又在原有的感知損失中加入了更加穩(wěn)定、抗噪性更強的Charbonnier損失函數(shù)和TV正則項,最后去除了會使圖像特征歸一化且會使網(wǎng)絡參數(shù)大量增加的BN層,并在生成器和判別器中同時加入SN來穩(wěn)定GAN的訓練。
Hinge損失作為SVM中著名的目標函數(shù),常用于二分類問題,在SAGAN[16]和BigGAN[17]中均有應用。SVM優(yōu)化的目標是最大化兩個類之間的邊界,這意味著判別器的更新也可以很容易地與SVM的更新相結(jié)合,因為判別器更新的目標也可以被認為是最大化兩個類之間的邊界。這里摒棄了原始GAN的目標函數(shù),在判別器中使用hinge損失,利用支持向量機分離超平面。SVM代價函數(shù)值不依賴于邊界外的特征向量,完全由支持向量決定。為更新判別器參數(shù),只需將支持向量推向邊緣邊界。同時,生成器更新嘗試將偽特征向量向分離超平面的法向量方向移動,以便將它們分類為真特征向量。然后,通過交替極小化實現(xiàn)判別器與生成器之間的對抗性訓練,最終模型的目標函數(shù)如式(4)、式(5)所示:
同SRGAN不同,本文在感知損失中加入了Charbonnier損失函數(shù)和TV正則項。
為保證生成器構(gòu)建圖像低頻部分的正確性,引入了Charbonnier損失。如表1所示,現(xiàn)今基于卷積神經(jīng)網(wǎng)絡的SR方法大多以L2損失優(yōu)化網(wǎng)絡。L2損失可以直接優(yōu)化PSNR值,但不可避免地會產(chǎn)生模糊的預測。由于L2損失未能捕捉到潛在的HR patch的多模式分布,即同樣的LR patch可能有很多對應的HR patch,重構(gòu)的圖像往往過于平滑,無法接近人類對自然圖像的視覺感知。與L1損失相比,L2損失雖可以更好地重建圖像高頻信息,卻在普通區(qū)域留下偽影。而L1損失雖然能以更清晰的邊緣重建為代價函數(shù)去除斑點和偽影,卻花費更多的重建時間。相比之下,本文使用一個魯棒的Charbonnier損失函數(shù)代替L2損失來優(yōu)化深度網(wǎng)絡處理異常值,提高重構(gòu)精度,不僅訓練時間更少,重建結(jié)果的PSNR值也更高。Charbonnier損失函數(shù)的數(shù)學表示如式(6)所示:
其中,α為超參數(shù),y表示HR圖像,G(x)表示SR圖像,為Charbonnier損失函數(shù)的懲罰項,σ為常數(shù)項,這里取值為σ=10-8。
Table 1 Comparison of loss function表1 損失函數(shù)對比
與SRGAN相同,本文使用預訓練的VGG網(wǎng)絡的Relu激活層來重定義內(nèi)容損失,這里使用的是16層VGG網(wǎng)絡,如式(7)所示:
其中,φi,j表示VGG16網(wǎng)絡中第i個最大池化層之前的第j個卷積(激活后)得到的特征映射。Wi,j和Hi,j描述了在VGG網(wǎng)絡中各個特征映射的大小,β為超參數(shù)。
對抗損失同SRGAN一樣,如式(8)所示:
其中,G(x)為重建圖像;D(G(x))為重建圖像的概率;γ為超參數(shù)。
為保持圖像的平滑性,消除圖像重建過程中可能帶來的偽影,同時保持圖像邊緣和細節(jié)的清晰,本文在損失函數(shù)中加入了TV正則項,如式(9)所示,其中δ為超參數(shù)。
綜上,本文改進的感知損失如式(10)所示:
Miyato等人[18]首先提出將譜歸一化應用于判別器網(wǎng)絡來穩(wěn)定GAN的訓練,通過限制每層的譜范數(shù)來約束判別器的Lipschitz常數(shù),與其他歸一化技術相比,譜歸一化不需要額外的超參數(shù)調(diào)整(將所有加權層的光譜范數(shù)設置為1)。此外,計算成本也相對較小。這里,在生成器和判別器中均加入了譜歸一化。
在生成網(wǎng)絡的設計上,使用5個相同結(jié)構(gòu)的殘差塊,每個殘差塊包含兩個卷積層,每層由64個3×3大小的卷積核構(gòu)成,并使用參數(shù)化修正線性單元(PRelu)作為激活函數(shù),原始SRGAN中殘差塊中含有BN層,由于批處理的歸一化層會將圖像的特征歸一化,降低網(wǎng)絡的靈活性,這里去除了BN層,簡化了網(wǎng)絡結(jié)構(gòu)。之后采用2個亞像素卷積層來對圖像進行上采樣,具體結(jié)構(gòu)如圖2所示。
同樣,去除判別網(wǎng)絡中的BN層。判別器網(wǎng)絡結(jié)構(gòu)采用8組卷積層+ELU激活函數(shù)的形式,每組卷積核大小均為3×3,深度依次為64、64、128、128、256、256、512、512。如圖3所示,經(jīng)過8層卷積加1層平均池化后,最后通過全連接層Dense將圖像數(shù)據(jù)的維度壓平。
模型整體訓練細節(jié)流程圖如圖4所示。
Fig.2 Structure of generator network圖2 生成器網(wǎng)絡結(jié)構(gòu)
Fig.3 Structure of discriminator network圖3 判別器網(wǎng)絡結(jié)構(gòu)
Fig.4 Training details flow chart圖4 訓練細節(jié)流程圖
本文實驗硬件設備為Intel?CoreTMi7-9750H@2.60 GHz處理器,16 GB運行內(nèi)存,NVIDIA GeForce GTX 1660Ti(6 GB)顯卡。相關設計軟件有Anaconda3-4.3.14-Windows-x86_64,cuda_10.0.132,PyCharm。
實驗使用的數(shù)據(jù)集為近年來新提出的一組高質(zhì)量(2K分辨率)的圖像數(shù)據(jù)集DIV2K[19],其包含800張訓練圖像,100張驗證圖像,100張測試圖像。但由于測試圖像還未發(fā)布,這里采用基準數(shù)據(jù)集Set5[20]、Set14[21]來進行測試。訓練時,將訓練集圖像雙三次下采樣4倍作為網(wǎng)絡的輸入LR圖像。
由于實驗設備限制,圖像被裁剪為88×88大小,batch_size設置為16,epochs設置為100,生成器和判別器均使用Adam優(yōu)化器,文中涉及的超參數(shù)分別為α=10-4,β=10-3,γ=6×10-3,δ=2×10-6。訓練時嘗試將判別器的卷積核大小設置為5×5,雖然測試的圖像效果有所增強,但是訓練參數(shù)也增加了將近3倍,增加了計算成本,權衡考慮,實驗仍使用3×3的卷積核。
本文使用的評價指標為圖像超分辨率領域常用的峰值信噪比(peak signal to noise ratio,PSNR)和結(jié)構(gòu)相似性(structural similarity index measure,SSIM),如式(11)、式(12)所示。PSNR的值越大,說明圖像失真越?。籗SIM的值越大,說明SR圖像與原圖像結(jié)構(gòu)越相似。
其中,W、H、C分別表示圖像的寬、長和通道數(shù),xˉ表示SR圖像,x表示原始圖像。
其中,μX、μY分別表示圖像X和Y的均值,σX、σY分別表示圖像X和Y的方差,σXY表示圖像X和Y的協(xié)方差,C1、C2為常數(shù)。
同時,本文對不同方法在測試集上的運行時間進行比較。由于同一方法每次的測試時間不同,這里取前5次測試時間的平均值來進行比較。
實驗在數(shù)據(jù)集Set5和Set14上測試本文模型,在與Bicubic、ESPCN等經(jīng)典圖像超分辨率方法比較的同時,也與SRGAN及最新的ESRGAN進行了比較。為了使測試結(jié)果更加公平,實驗在所有測試方法中均使用DIV2K數(shù)據(jù)集進行訓練,因此對比方法的實驗結(jié)果與原論文數(shù)據(jù)有所出入。表2、表3、表4分別為各超分辨率重建方法的測試時間、PSNR和SSIM值的對比。
Table 2 Comparison of testing time for each super-resolution reconstruction method表2 各超分辨率重建方法測試時間對比 s
Table 3 Comparison of PSNR for each super-resolution reconstruction method表3 各超分辨率重建方法PSNR 對比 dB
Table 4 Comparison of SSIM values for each superresolution reconstruction method表4 各超分辨率重建方法SSIM值對比
通過表2發(fā)現(xiàn),ESPCN的測試時間要快很多,可能是由于基于卷積神經(jīng)網(wǎng)絡的方法要比基于生成對抗網(wǎng)絡的方法要快;在生成對抗網(wǎng)絡的基礎上,本文方法要比SRGAN快1 s左右,在Set5上比ESRGAN慢1 s左右,而在Set14上要快很多,說明了本文方法的優(yōu)越性。從表3、表4可以看出,在4倍放大尺度因子下,相比基于插值的方法,基于學習的超分辨率重建方法在PSNR和SSIM值上有著顯著的優(yōu)勢,這是因為深度學習對外部樣本具有良好的學習能力,充分融合了學習樣本的有效信息。在基于學習的方法中,相比SRGAN,本文方法的PSNR和SSIM值均有大幅提高;相比ESRGAN,除了Set5上的PSNR值,本文方法的其他值均高于ESRGAN,說明本文的網(wǎng)絡模型是有效的;但是與ESPCN相比,本文模型提高得并不明顯,PSNR值大約提高了0.2 dB,SSIM值大約提高了0.02。表中取得的結(jié)果雖有一定進展但似乎不盡如人意。實驗又在Set5和Set14測試集中選取“baby”“butterfly”“zebra”“woman”“l(fā)enna”等圖像來展示上述各方法的可視化效果,如圖5~圖9所示。從截取區(qū)域可以看出,bicubic重建的圖像嚴重模糊,重建效果最差。ESPCN重建的圖像比Bicubic重建的圖像更加清晰,但是出現(xiàn)較多偽影,SRGAN、ESRGAN與本文方法重建的圖像主觀上比前兩種更好,但是本文重建圖像與ESRGAN重建圖像的視覺效果要優(yōu)于SRGAN。本文方法與ESRGAN的重建效果相似但本文方法幾乎在全部圖像上擁有更高的PSNR和SSIM值。從圖中可以看出,本文方法重建的圖像在所有方法中PSNR和SSIM值幾乎都是更高的,只在“baby”和“l(fā)enna”圖像中略低于ESPCN,在“butterfly”圖像中略低于ESRGAN,但是本文方法重建的圖像具有較好的視覺效果,再次證明了更高的PSNR值不一定有更好的感知效果。
Fig.5 Reconstruction comparison graph of image“baby”in Set5 test set圖5 Set5測試集中圖像“baby”重建對比圖
Fig.6 Reconstruction comparison graph of image“butterfly”in Set14 test set圖6 Set14測試集中圖像“butterfly”重建對比圖
Fig.7 Reconstruction comparison graph of image“zebra”in Set14 test set圖7 Set14測試集中圖像“zebra”重建對比圖
Fig.8 Reconstruction comparison graph of image“woman”in Set14 test set圖8 Set14測試集中圖像“woman”重建對比圖
Fig.9 Reconstruction comparison graph of image“l(fā)enna”in Set14 test set圖9 Set14測試集中圖像“l(fā)enna”重建對比圖
為了使超分辨率重建圖像在大尺度因子下也能有更多的高頻信息和紋理細節(jié),提高超分辨率重建圖像的視覺效果,本文在SRGAN的基礎上,提出了一種生成對抗網(wǎng)絡的單圖像超分辨率重建方法。該方法使用hinge損失作為目標函數(shù),引入Charbonnier損失代替L2損失函數(shù),去掉了殘差塊和判別器中不必要的BN層,并在生成器和判別器中使用譜歸一化來穩(wěn)定模型訓練。本文使用DIV2K數(shù)據(jù)集進行實驗,使用PSNR、SSIM和測試時間作為圖像超分辨率重建的客觀評價指標,并在實驗中證明了與其他方法相比,本文方法重建的圖像具有較好的視覺效果、較高的PSNR及SSIM值和較快的測試時間,證明了本文方法的有效性。未來的研究工作將主要放在如何減少訓練參數(shù),減小網(wǎng)絡結(jié)構(gòu)同時獲得更好的重建質(zhì)量上。