?

基于改進生成式對抗網絡的圖像超分辨率重建

2020-09-09 03:14賈振堂
計算機應用與軟件 2020年9期
關鍵詞:網絡結構殘差卷積

米 恒 賈振堂

(上海電力大學電子與信息工程學院 上海 200090)

0 引 言

圖像超分辨率重建是機器視覺領域的經典應用分支,基于低分辨率圖像(LR),重構得到一幅高分辨率圖像(HR),并還原低分辨率圖像(LR)中的細節信息。該技術被廣泛應用于高清成像、軍事衛星、醫學構圖等領域,所以圖像超分辨率技術一直廣受學術界關注。

深度學習技術出現于2006年,并發表于《科學》雜志,近年來得到快速發展[1-3]。2014年,Dong等[9-11]應用深度學習方法來完成圖像超分辨率,將卷積神經網絡(CNN)用于圖像超分辨率,即SRCNN。該神經網絡學習數據集中大量的HR、LR圖像對數據,可以建立一個輸入低分辨率圖像(LR),輸出高分辨率圖像(HR)的函數映射關系[6-8]。SRCNN算法的提出,證明了深度學習應用于圖像超分辨率領域的理論可行性。

自SRCNN問世以來,前人增加了卷積神經網絡的結構層數,圖像超分辨率重建性能也隨之提高。研究結果表明,增加網絡的層數可以得到更好的重建效果,但也會增加數據的維度和計算量,容易導致網絡訓練梯度過大或消失,使網絡不易收斂,在一定程度上限制了網絡結構的發展[5]。Kim等[4]引入了殘差網絡(Resnet)思想,在深層網絡結構上采用跳躍連接(skip connection)的方式,通過將特征圖累加的方式來解決梯度過大和消失的問題,極大地改善了深層次網絡收斂難的問題,也可以加入更多深層次的網絡結構,擴大了網絡層數?;跉埐罹W絡思想,Ledig等[20]提出了基于生成式對抗網絡的圖像超分辨率(SRGAN)。SRGAN設計了深層次的生成網絡重建圖像(SR),鑒別網絡將重建圖像(SR)與高清圖像(HR)進行比較,給出鑒別結果[11-13]。經過生成網絡和鑒別網絡的相互博弈,重建圖像(SR)的質量不斷朝著更像真實圖像(HR)的方向改進。與SRCNN相比,SRGAN使重建效果更加真實,質量更好。

然而,在實驗中發現,SRGAN的重建圖像觀感仍然不夠真實,與真實圖像仍有差距。本文對SRGAN的組成部分進行研究,并對損失函數和網絡結構進行改進。首先,SRGAN的感知損失函數仍然以像素差異為目標進行優化,并且損失函數的主體是均方誤差形式的L2型損失函數,因此該形式的損失函數不符合人類視覺系統(human visual system,HVS)的定義。該形式的損失函數一味追求極小的像素值均方誤差,而忽略了圖像的SSIM指標,導致仍然存在結果過度平滑、缺少高頻信息、圖像觀感不真實等問題。本文在SRGAN的感知損失函數基礎上設計了L1型的基于SSIM優化的損失函數,使重建效果更符合人眼能夠接受的本質特征。在SRGAN中,LR圖像的特征信息都是通過單一尺度的特征提取層提取的,這樣會導致無法充分提取LR圖像的特征信息,遺漏掉某些頻段的信息[16-17]。本文在SRGAN生成網絡結構基礎上加入3種不同尺度的卷積核,通過多個不同尺度的卷積核提取LR圖像更多層次的特征信息,然后將提取到的特征圖輸入到殘差網絡中進行全局殘差學習,輸出特征與低分辨率圖像特征融合初步重建出HR圖像。接著去除生成網絡中的批規范化層(BN層),引入圖像上采樣步驟,再加入1×1像素值尺度的卷積核對高頻信息降維,最終輸出HR圖像。

1 理論基礎

1.1 生成式對抗網絡

生成式對抗網絡(GAN)理論基礎受博弈論啟發[18],GAN網絡中博弈雙方分別為生成器(Generator)和鑒別器(Discriminator)。生成器不斷學習真實數據的分布,基于該分布的噪聲生成一個類似于真實數據的樣本。而鑒別器目的是判別樣本數據是否是真實數據,如果是,則輸出1,反之,則輸出0?;谶@種博弈思想,生成器不斷學習并生成和真實數據一樣的數據樣本,使鑒別器無法分辨真假,達到騙過鑒別器的目的,而鑒別器則試著鑒別生成器生成的樣本[14-15]。在這個過程中,雙方不斷更新網絡權值配置,最終雙方達到一個動態平衡的狀態,此時生成器生成了和真實數據一樣的樣本,鑒別器無法準確判別出結果,優化過程目標函數為:

minGmaxDV(D,G)=Ex~pdata[logD(x)]+

Ez~pz[log(1-D(G,Z))]

(1)

在更新參數時,采用交替更新,即采用固定一邊,更新另一邊的方式,更新方式如下:

當固定G更新D時,對于來自真實數據pdata的樣本x而言,通常希望D確定為真實數據樣本,即D的輸出接近1的大概率,logD(x)數值比較大。對于生成器學習生成的數據G(z),通常希望D能夠分辨出真假數據,即D輸出接近0的小概率,D(G(z))數值比較小,接近于0,所以log(1-D(G(z)))數值應該比較大,也需要最大化更新。

當固定D更新G時,通常希望生成數據G(z)盡可能接近真實數據,即pg=pdata,此時要求D(G(z))盡量接近1,即log(1-D(G(z)))數值應該比較小,因此需要最小化G。

1.2 基于生成式對抗網絡的圖像超分辨率重建

基于GAN的架構,Goodfellow等[21]將GAN與圖像超分辨率重建結合,提出了用于圖像超分辨率重建的GAN網絡(SRGAN)。與SRCNN相比,由于引用了殘差網絡思想,SRGAN能夠加入更多網絡層數,處理較大的放大倍數,網絡性能優于SRCNN。并且SRGAN重新定義了生成模型G和鑒別器D,網絡對生成器G進行訓練生成重建高分辨率圖像(SR),再通過訓練鑒別器D鑒別生成圖像(SR)是否是真實圖像,通過GAN網絡里的博弈思想使生成重建圖像(SR)騙過鑒別器D,使輸出重建圖像SR的視覺效果更加真實,一定程度上改善了SRCNN重建圖像過度平滑、缺少高頻的問題。

如圖1所示,生成器網絡結構由3個3×3卷積層,2個完成上采樣的視覺層,1個特征融合層以及1個殘差網絡構成。其中,殘差網絡由若干個殘差塊相互跳躍連接組成,每個殘差塊中包含2個3×3的卷積層,卷積層后接批規范層,激活函數為LeakyRelu,2層上采樣層被用來增大尺寸,特征融合層與LR短接用來重建生成圖像。在鑒別器網絡中,網絡中有多層卷積層,激活函數采用LeakyRelu,最后由2層全連接層輸出判定概率,輸出激活函數為sigmoid函數。

圖1 生成器網絡結構

SRGAN的損失函數為:

(2)

(3)

式中:r、W、H是單幅圖像的尺度數據,分別是圖像通道數、寬度、高度。

(4)

式中:φi,j是通過VGG19網絡得到的特征圖;i表示VGG19網絡中的第i個最大池化層;j表示卷積層的層數,VGG損失函數定義了重建圖像特征分布GθG(ILR)和真實圖像IHR之間的歐式距離。相應地,Wi,j和Hi,j是VGG網絡中對應特征圖的維數。通過VGG損失函數,可以準確提取VGG19網絡上某一層的特征圖,并將提取的特征圖和真實圖像的特征圖進行比較。對抗損失函數就是GAN模型定義的鑒別器在所有的生成重建圖像樣本上的概率判斷:

(5)

由式(3)-式(5)可以看出,SRGAN定義了基于內容損失與對抗損失加權和的感知損失函數,并將VGG損失引入到內容損失中,使網絡能夠根據VGG19網絡提取的特征圖之間的歐式距離來進行優化,并且能夠將博弈思想中的對抗性質的相似性引入到傳統的像素空間的像素差異中,基于這些改進,達到改善效果的目的。

2 改進方法設計

2.1 方法介紹

通過研究發現,SRGAN重建圖像效果相比SRCNN模型在紋理細節和觀感上均有提升,但與真實圖像相比,效果仍然還有提升空間。通常對于圖像超分辨率,特征提取網絡結構的設定和損失函數的定義至關重要。因此,本文從網絡的特征提取結構和損失函數這兩個關鍵組件入手。首先,雖然SRGAN網絡引入了VGG損失函數,使網絡更容易提取圖像的高層特征圖,相比以MSE為目標優化的損失函數提升了細節,但是在損失函數的定義上是針對空間像素值差異進行優化的,沒有將圖像更多的觀察特性定義到損失函數中去,并且損失函數形式是基于均方誤差的L1形式導致重建圖像在實際觀感上和真實圖像仍然有差距。其次,單一尺度的卷積核進行特征提取會造成LR圖像細節信息丟失。本文對SRGAN的感知損失函數和生成器網絡結構進行改進,基于SSIM設計L1形式的損失函數并加入到現有的感知損失函數中,替換掉基于MSE的L2型損失函數,保留VGG損失函數,將SSIM損失函數、VGG損失函數以及對抗損失函數進行加權求和作為改進后的感知損失函數。在SRGAN的生成器網絡結構里加入多尺度卷積核對輸入圖像進行特征提取,使SRGAN從LR圖像里提取更多細節信息。

2.2 損失函數的改進

本文基于結構相似性(SSIM)設計損失函數,在深度學習中,處理真值和預測值的歐式距離等回歸問題通常采用L2形式的損失函數,非凸形式而且可微分[19],例如常用的MSE損失函數。這種形式的損失函數問題在于沒有考慮人類的視覺系統HVS(human visual system),HVS包含了圖像局部光照、顏色變化等細微變化信息,基于像素值差異的損失函數沒有將符合HVS的指標,所以,本文設計了以SSIM為目標的損失函數,SSIM損失函數形式上屬于L1形式,沒有均方誤差項,并且SSIM的理論設計和HVS一致,即可以體現圖像局部結構、色彩、光照等變化,損失函數形式可導,可以用作損失函數。通常,PSNR定義為:

(6)

可以看出,PSNR的計算是以MSE為基本進行計算的,這就造成了SRGAN網絡在訓練時過度追求極小的MSE,得到較高的PSNR值,但重建出來的圖片通常缺乏高頻內容,細節紋理過于平滑,圖像整體觀感失真。而本文基于人眼對圖像局部光照、灰度變和結構化敏感的光學特性,設計了SSIM損失函數,定義如下:

(7)

對于兩個圖像之間的結構相似性,0表示完全不同,1表示完全相似。其中:μxμy是圖像X,Y所有像素的平均值;σxy是圖像X,Y像素值的方差;C1、C2和C3均為常數。SSIM可以看作3個比較部分,分別是:

圖像照明度比較部分:

(8)

圖像對比度比較部分:

(9)

圖像結構比較部分:

(10)

可以看出,因為SSIM加入了圖像照明度、圖像對比度、圖像結構這3個更加符合人類眼球觀感的衡量指標,所以重建出來的圖像更貼近人眼的光學觀測特性。SSIM數值大小通常在0~1之間,越接近1表示兩幅圖像之間的差異性越小,由于在網絡訓練的過程中損失函數是朝著不斷變小直至收斂的方向迭代優化的,要使重建圖像和真實圖像之間的SSIM數值隨著迭代次數增加接近1,可以設計SSIM損失函數如下:

(11)

式中:Xi與Yi表示重建圖像SR與真實圖像HR;θ表示網絡權值參數和偏置;i表示遍歷整個訓練集的序號。

2.3 網絡結構的改進

在生成器網絡結構上,本文基于SRGAN生成器網絡結構基礎上引入了多尺度底層特征提取結構,如圖2所示。

圖2 改進的生成器網絡結構

本文使用尺度分別為3×3、5×5、7×7像素值的卷積核提取特征?;贕ooglenet思想進行直接連接,會造成經過多尺度卷積層后,輸出維度過大的狀況,故本網絡采用Maxout激活函數,使最終的輸出維度不會很大,并對輸出特征經過一個1×1大小的卷積核,再次起到降維的作用。將提取到的底層特征圖輸入密集殘差網絡進行處理,由于密集殘差網絡內部每一層的卷積層之間采用跳躍連接的方式,每一層之間都可以保證短接,這樣最終輸出特征既不會維度過大導致梯度爆炸,也不會出現梯度消失的情況。另外,去除BN層,使用上采樣層替代,因為根據He等的實驗結果,使用BN層來歸一化特征會大量增加網絡計算量,占用較多內存。

F=H3×3(ILR)

(12)

式中:H3×3表示用3×3像素的卷積核進行卷積操作得到低分辨率圖像特征圖。同理,基于式(12)可以提取到5×5像素和7×7像素卷積核的圖像特征圖。

如圖3所示,殘差塊網絡內部的特征提取單元由多個卷積層和激活層的組合單元構成,加深了網絡的結構層數。

圖3 殘差網絡結構

同時,網絡內部采用跳躍連接的連接方式,即各個單元之間相互串接。具有相同特征映射大小的所有特征映射通過此方式連接,并且每個層的輸入被添加到所有先前層的輸出。從前層到后續層的這條短路徑不僅減輕了梯度消失的問題,而且增強了特征傳播,促進了特征重用,并保留了前向傳播的特性將卷積層和活動層的輸出附加到后續卷積層的輸入。這種方法使網絡具有連續存儲功能并連續發送每層的狀態。這樣可以高效地利用每一層網絡,防止網絡梯度冗雜,造成梯度爆炸。

經過殘差網絡里的卷積層和激活層后,第一個殘差塊的輸出為:

F1=max(c(RDBn-1),0)

(13)

后續特征圖經過d個特征提取單元后的結果為:

Fd=Fd-1(…(F1)…)

(14)

特征圖輸入到殘差塊網絡中,殘差塊網絡的內部殘差塊之間也采用跳躍連接的方式,即上一個殘差塊的輸出會接入到下一層殘差塊的輸出,達到內部殘差學習的效果。

fRDBn+1=fRDBn-1+F1×1(PFF(F1,F2,…,Fm))

(15)

式(15)表示經過n+1個殘差塊的殘差網絡后的輸出;m表示提取特征單元的數目;n表示殘差塊的數目;PFF表示特征融合;F1×1表示用1×1像素值的卷積核卷積,進行降維。

在殘差網絡提取到圖像多層局部密集特征后,進行全局特征融合,在重建前與未經過殘差網絡處理的特征圖再次融合,形成全局殘差學習,有利于保持網絡訓練時的梯度,防止梯度彌散或梯度消失。

3 實 驗

3.1 實驗參數設置

本文實驗基于Google云服務器完成,配置為Kaggle k80圖形處理器,12 GB運行內存,運行環境為Windows 10系統,深度學習環境框架為TensorFlow,CUDA加速版本為CUDA Toolkit 8.0,OpenCV3.4版本。本文將學習率設置初始值為0.000 1,當訓練到一半的epoch時更新學習率,學習率會適當衰減以防止訓練時間過長。本文優化器采用隨機梯度下降法(SGD)來訓練網絡。

3.2 訓練過程

本文的訓練集和測試集采用DIV2K數據集,該數據集包括了1 000幅HR圖像,圖像細節部分比較清晰,適合用作圖像超分辨率。

在訓練過程中,訓練每個LR圖像生成重建的SR圖像,并且在數據集中使用相應的HR圖像來計算兩個圖像之間的損失值。神經網絡模型通過這種從LR到SR再到HR這種端到端的映射關系學習網絡中的權值參數配置。

3.3 實驗結果及分析

為了具體評價本文方法的效果,在同一數據集下分別對比測試了SRCNN方法、SRGAN方法和本文方法。實驗結果采用主觀觀感感受評價和客觀數據指標評價。主觀觀感感受評價就是直接通過人眼觀察給出評價意見,客觀數據指標評價是以目前主流的峰值信噪比PSNR和結構相似性SSIM來評價分析。

峰值信噪比是用來衡量兩幅圖像之間的像素值差的量度,可以用于評價圖像質量,單位為dB,定義如下:

(16)

(17)

式中:m和n分別為圖像的長和寬。

結構相似性衡量兩幅圖像的相似度,度量范圍[0,1],值越大就表示兩幅圖像相似度越大

(18)

表1和表2分別表示本文方法和對比測試方法的PSNR和SSIM值,本文選取了部分圖像作為展示效果。從圖4(a)和圖4(b)的展示結果可以看出,SRGAN相比于SRCNN的效果,在圖片明亮度、清晰度、對比度上均有提升。例如對城堡墻壁的還原,使用SRCNN方法還原得到的圖像較模糊,而使用SRGAN方法還原得到的細節較清晰真實,相比SRCNN有明顯提升。對于本文方法,從圖片展示效果可以看出,在圖4(c)城堡頂部的陰影處的紋理和背景紋理過度的地方,本文方法的銳化處理更加自然一些,在圖5(c)蝴蝶背部翅膀的花紋圖案上,本文方法相比SRCNN和SRGAN都更加柔和真實、觀感更加舒適、翅膀上的斑點細節還原的最多,也是這幾種方法中最接近真實圖像的。同樣,從圖6(c)與圖6(a)和圖6(b)的對比也可以看出,企鵝后腦部位的黃色羽毛細節也是本文方法還原較多,黑白兩色羽毛間的紋理過度也處理得較好。

表1 重建圖像的PSNR值 dB

表2 重建圖像的SSIM值

(c) 本文方法 (d) 真實圖像圖4 城堡圖結果對比

(a) SRCNN方法 (b) SRGAN方法

(c) 本文方法 (d) 真實圖像圖5 蝴蝶背部結果對比

(a) SRCNN方法 (b) SRGAN方法

(c) 本文方法 (d) 真實圖像圖6 企鵝圖結果對比

而在客觀評價指標下,本文方法的表現均優于其他主流方法,相比SRGAN模型本文模型在峰值信噪比(PSNR)上提高了1.22、1.23、0.93 dB,在結構相似性(SSIM)上提高了0.013 3、0.024 5、0.010 4,可以證明本文方法訓練的模型測試得到的效果顯著好于其他方法。

4 結 語

本文對前人提出的SRGAN網絡算法上進行了改進,重新設計了損失函數的形式并引入了多尺度卷積核模型,改善了圖像超分辨率后過度平滑,丟失細節的問題,提升了圖像重建效果。實驗結果表明,使用本文方法得到的重建效果在主觀評價和客觀指標評價上均好于SRCNN和SRGAN,證明了其有效性。

猜你喜歡
網絡結構殘差卷積
基于殘差-注意力和LSTM的心律失常心拍分類方法研究
基于雙向GRU與殘差擬合的車輛跟馳建模
基于3D-Winograd的快速卷積算法設計及FPGA實現
一種并行不對稱空洞卷積模塊①
快遞網絡結構研究進展
基于殘差學習的自適應無人機目標跟蹤算法
基于深度卷積的殘差三生網絡研究與應用
基于AutoML的保護區物種識別①
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合