李思平 林志賢 郭太良
(福州大學物理與信息工程學院 福建 福州 350116)
圖像超分辨率(Super-Resolution,SR)重建技術旨在從一幅或多幅低分辨率圖像重建出一幅高分辨率圖像。本文主要研究單幅圖像超分辨率重建(Single Image Super-Resolution,SISR)。
Dong等[1]首次提出了端到端的圖像超分辨率重建方法SRCNN,通過圖像特征提取層、非線性映射層和重建層完成對單幀低分辨率圖像的超分辨率重建。Kim等[2]提出了一種極深的卷積網絡VDSR,該網絡達到20層,運用了殘差學習與梯度裁剪來解決梯度爆炸問題。Ledig等[3]提出SRGAN,將基于生成模型的對抗網絡GAN[4]用于超分辨率重建中。
盡管目前深度學習方法應用在圖像超分辨率重建技術上已經取得了巨大的進步,但是仍然存在以下問題:(1) 隨著網絡的加深,會出現梯度消失的現象,訓練時間久且難以訓練;(2) 大部分深度學習方法獲取低分辨率圖像的方法是簡單的通過人為假定的下采樣過程獲得,比如雙三次插值(Bicubic),因此訓練出來的模型不能處理現實生活中由于各種模糊、噪聲及運動干擾的低分辨率圖像;(3) 高質量數據集的缺失。
本文提出了一個端到端的雙向對抗生成網絡,包括一個重建網絡(Low to High)旨在將低分辨率圖片恢復成高分辨率圖片,及模擬現實生活中的低分辨率圖像的下采樣網絡(High to Low),該網絡將高分辨率圖片通過學習的方法生成低分辨率圖片從而取代人為簡單的通過降采樣而產生的低分辨率圖像。較之前的SRCNN、VDSR、SRGAN等方法,本文提出的算法在Set5、DIV2K等通用測試數據集的主觀視覺評價和客觀量化指標均超越它們。
SRGAN是將基于生成模型的對抗網絡用于超分辨率重建中。基于生成對抗網絡的圖像超分辨率重建流程如圖1所示。

圖1 基于生成對抗網絡的超分辨率重建流程
GAN存在訓練困難、生成器和判別器的損失函數無法指示訓練過程,缺乏一個有意義的指標和生成圖片的質量相關聯,生成的圖片雖然看起來像是真的,但是缺乏多樣性。Arjovsky等[5]針對生成對抗網絡這些問題,提出了WGAN。WGAN通過Wasserstein距離來優化生成數據和真實數據之間的差距以替代GAN中的JS散度衡量標準。本文中的雙向生成對抗網絡的訓練策略將采用WGAN中提出的損失函數優化方法以保證訓練過程的穩定性。
本文提出的算法旨在解決現實生活中圖像超分辨率重建問題。該算法框架如圖2所示,包括兩個生成對抗網絡,分別為重建網絡(Low-to-High)和下采樣網絡(High-to-Low)。

圖2 雙向對抗生成網絡
本文與之前的超分辨率研究工作(SRCNN、VDSR、SRGAN)的第一個基本區別是如何生成低分辨率(LR)圖像。在以往的大多數工作中,低分辨率圖像是由相應的原始圖像(HR圖像)進行降采樣(Bicubic)而產生的,人工設定的下采樣過程完全忽略了圖像退化過程(如運動干擾、各種模糊算子等)。為了緩解這種情況,本文受到了CycleGAN[6]的啟發,提出了另外一個下采樣網絡來模擬生成現實低分辨率圖像。值得關注的是,訓練下采樣網絡并不需要匹配的低分辨率和高分辨率圖像對,從而大大減少了采集相對應高低分辨率圖像對的工作。
本文與基于單個生成對抗網絡的SRGAN工作的第二個根本區別是,選擇新的損失函數訓練兩個網絡,本文將傳統的GAN損失函數換成了WGAN的損失函數,且與L1像素損失相結合,同時為了保證圖像的空間信息,還引入了結構感知損失函數。
圖像超分辨率重建面臨的最大問題是缺乏真實的數據集,即低分辨率的噪聲圖像和相應的高分辨率圖像。生成這樣的用于訓練的圖像對的困難主要有兩方面。一是對低分辨率(LR)圖像進行建模和仿真,二是生成像素相對應的圖像對。為了解決這個問題,本文提出了下采樣網絡(H2L),低分辨率圖片產生的方式如公式所示:
LR=fH2L(HR,θ1)
(1)
式中:LR表示生成的低分辨率圖片;HR表示清晰的高分辨率圖片;θ1表示網絡要學習的參數。
下采樣網絡的網絡架構如圖3所示,高分辨率圖首先會經過一個卷積層和ReLU激活函數層提取低層特征,然后將提取的低層特征輸入到后面八個殘差塊中。每個殘差塊包含了兩層卷積層和一層激活函數層,相比于SRGAN的殘差塊,本文設計的殘差塊遵循EDSR[7]去除了歸一化(BN)層,以保證網絡可以減少參數,加快訓練速度。每兩個殘差塊間的設計運用了ResNet[8]中的跳躍連接(Short-Cut)方式,同時將低層特征與殘差塊輸出的高層特征進行了融合操作,促使網絡模擬生成更逼真的帶噪聲的低分辨率圖片。最后融合的特征圖經過卷積層和子像素卷積層(Sub-pixel)生成低分辨率圖片。重建網絡的網絡架構如圖4所示,和下采樣網絡架構類似。

圖3 下采樣網絡 圖4 重建網絡
下采樣網絡的損失函數由兩部分組成,分別為生成網絡的對抗損失及結構感知損失。下采樣網絡的生成器生成的低分辨率圖片需要騙過判別器,因此產生了對抗損失函數,其定義如下公式所示:
(2)
式中:D表示下采樣網絡的判別器;G代表了下采樣網絡的生成器;N代表了圖像的數量。
為了保護生成的圖像與原圖像之間的空間結構信息不發生改變,本文引入了用于風格遷移[9](Style-transfer)工作的結構感知損失函數,其定義如下所示:
(3)
式中:N代表了圖像塊的數量;P表示VGG網絡的卷積層的特征圖;y是生成的低分辨率圖片;x是輸入的高分辨率圖片。在計算損失的時候,圖片會被裁剪到同一尺寸。
本文提出的重建網絡(L2H)實現了低分辨率圖像超分辨率,可以用以下公式來描述:
HR=fL2H(LR,θ2)
(4)
式中:HR表示重建的超分辨率圖片;LR表示輸入的低分辨率圖片;θ2表示重建網絡要學習的參數。
低分辨率圖片首先經過一個卷積層和ReLU激活函數層以提取函數的低層特征。低層特征經過20層殘差塊學習高分辨率圖片的高頻細節部分,最后將融合了低層和高層的特征圖輸入到子像素卷積層進行圖像超分辨重建。反卷積層沒有使用經典的轉置卷積,引入了子像素卷積層(Sub-pixel),從而避免了重建圖像有棋盤效應和邊緣模糊。
重建網絡的損失函數由三部分組成,分別為生成網絡的對抗損失、結構感知損失和L1像素損失組成。其中對抗損失及結構感知損失與下采樣一致。L1像素損失的定義如下所示:
(5)
式中:N表示圖像塊數量;y表示重建的超分辨率圖像;x表示真實的標簽高分辨率圖片。
網絡訓練采用的數據集包括了兩部分,分別為公開數據集DIV2K(800幅高分辨率圖片)及利用黑莓手機采集的真實數據集對RMSR,包括了500幅4 032×3 024的圖像對。其中450幅圖像對用于訓練集,50幅用于測試集。在訓練過程中圖片按步幅14切分成224×224的小圖片。本實驗的實驗環境基于Linux服務器,顯卡為NVIDIA P100,訓練所利用框架為Pytorch1.0。
本文所提生成對抗網絡中的每個卷積層都使用64×64大小為3×3的濾波器。反卷積層沒有使用經典的轉置卷積,引入了子像素卷積層,從而避免了重建圖像有棋盤效應和邊緣模糊。同時訓練時,輸入圖像的批次為64,采用了Adam優化器,初始學習率設置為0.001,總迭代次數為200 000次,每迭代50 000次,學習率下降十倍。
雖然本文提出算法的主要目標是學習一種能夠處理真實世界圖像超分辨率的重建模型,但是很難獲得用于評估結果的真實圖像(Ground-truth)。因此,為了驗證本文方法的有效性,首先將重建模型與其他基于卷積神經網絡的單幅圖像超分辨率重建方法進行比較,這些方法是專門為基于雙三次插值退化的超分辨率設計的,比如SRCNN、SRGAN、ESGANG[10]等。
表1和表2給出了本文提出的算法與其他算法在測試集Set5、DIV2K及本文提出的數據集RMSR上的定量分析。在測試集Set5、DIV2K上的測試過程是對所有的圖像運用雙三次插值方法進行4倍的下采樣,然后將下采樣的圖像輸入進不同的重建模型中得出重建結果。由表1和表2中結果得出,本文提出的方法在處理現實生活的低分辨率圖像具有較優秀的能力。

表1 本文方法與其他重建算法的PSNR

表2 本文方法與其他重建算法的SSIM
圖5的實驗結果是基于測試集DIV2K上的一幅企鵝圖片分別對各種深度學習模型進行了超分辨率重建。從重建圖像的部分可看出,本文的算法重建的圖像細節清晰,且企鵝尖嘴部分無奇怪的紋理,與原圖最為相近。

(a) 原始圖像 (b) 雙三次插值法

(c) SRCNN方法 (d) SRGAN方法

(e) ESRGAN方法 (f) 本文方法圖5 測試圖像1
圖6為一幅現實世界的芯片圖像通過各種模型超分重建的效果圖,可以看出本文提出的算法重建視覺效果最好,邊界明顯、細節清晰。

(a) 原始圖像 (b) 雙三次插值法

(c) SRCNN方法 (d) SRGAN方法

(e) ESRGAN方法 (f) 本文方法圖6 測試圖像2
綜上所述,本文所提出的基于雙向對抗生成網絡的圖像超分辨率重建算法可以很好地把現實世界低分辨率圖片重建為視覺良好、細節豐富的高分辨率圖片。
本文提出的新型雙向聯合對抗生成網絡旨在解決現實生活中圖像超分辨率重建問題。該方法利用降采樣模塊生成逼真的低分辨率圖像,利用生成的逼真低分辨率圖像經過重建網絡實現高分辨率圖像的超分辨。在訓練GAN網絡時,利用Wasserstein距離優化網絡,以保證算法訓練的穩定性。通過Set5、DIV2K和RMSR等數據集對算法驗證,本文提出的算法要優于SRGAN的重建效果,下一步工作準備優化網絡,將網絡參數減少,在保證精度的同時提高網絡運行速度。