歐奕敏,魏朝勇,梁 艷,江世杰
(華南師范大學 軟件學院,佛山 528225)
在日常生活中,圖像隨處可見.但受成像設備分辨率、物體與成像設備距離等因素影響,獲得的圖像分辨率較低,無法滿足實際應用的需求.因此,圖像超分辨率重建技術應運而生.該技術可以將模糊低分辨率圖像重建為高分辨率圖像[1],目前已被廣泛應用于人臉識別[2]、社會安全[3]、醫學成像[4]、軍事遙感[5]等領域.
早期的圖像超分辨率重建算法以基于傳統機器學習的方法為主[6],常見的包括基于重建[7]和基于插值[8]等方法.這些方法具有較大的局限性,例如,基于重建方法[7]只能處理結構比較簡單的圖像;基于插值方法[8]得到的重建圖像的邊緣容易出現模糊現象.近年來,隨著深度學習的蓬勃發展,越來越多學者將深度學習的方法引入該領域[9].Dong 等人[10]最早從事相關研究,采用一個3 層卷積神經網絡實現單張圖像的超分辨率重建,該方法提高了重建圖像的質量,但無法滿足實時性要求,且網絡訓練難于收斂.針對該問題,Dong 等人[11]在此基礎上對網絡進行改進,縮小網絡的輸入特征維數,采用更小的過濾器尺寸,使網絡結構更為緊湊,從而有效地加快了網絡的訓練過程.為了減少網絡的參數量,Tai 等人[12]引入了殘差學習和遞歸學習,有效防止梯度爆炸或消失問題.Lai 等人[13]提出基于拉普拉斯金字塔結構的 LapSRN 算法,采用逐級放大來感知更多信息,通過參數共享能夠較高質量地實現實時超分辨率重建.Zhang 等人[14]提出能夠充分融合低分辨率圖像中所有層次特征的殘差密集網絡(residual dense network,RDN),該算法取得較好的重建效果,但模型參數量過多,存在特征冗余.
受生成對抗網絡(generative adversarial networks,GAN)[15]啟發,Ledig 等人[16]提出了超分辨率生成對抗網絡(super-resolution generative adversarial networks,SRGAN),通過生成網絡和判別網絡不斷交替對抗訓練,并引入感知損失函數提高圖像的視覺效果,使得重建圖像的紋理細節更為清晰.但SRGAN 模型的參數量過多,導致訓練收斂速度較慢,此外,重建圖像的高頻紋理往往過于銳化,導致部分細節出現扭曲現象,而且在一些原本光滑的地方也產生尖銳的噪聲.針對SRGAN 算法存在的問題,本文提出了一種改進的SRGAN 算法,一方面,優化了它的網絡結構,另一方面,提出了聯合感知損失,從而獲得更優的圖像超分辨率重建性能.本文主要工作如下:
(1)針對模型參數量多而導致訓練收斂速度慢的問題,本文提出了稀疏殘差密集網絡(sparse residual dense network,SRDN),并將其代替傳統的 SRResNet作為生成網絡;此外,采用深度可分離卷積[17]思想改進生成網絡,進一步降低參數量;移除生成網絡的 BN(batch normalization)層,提高模型的泛化能力.
(2)針對重建圖像的高頻紋理過于銳化而導致部分細節扭曲、噪聲過多的問題,本文分析并改進了感知損失函數,提出融合 VGG[18]的低頻特征和高頻特征的聯合感知損失,并結合均方誤差損失來定義總損失.
(3)分別在Set5[19]、 Set14[20]、BSD100[21]數據集進行實驗,對本文算法的性能進行評價,證明本文算法的優越性.
SRGAN 網絡由一個生成網絡和一個判別網絡組成.生成網絡的主要作用是將低分辨率圖像重建成高分辨率圖像;判別網絡的主要作用則是判斷給定圖像是真實圖像還是生成圖像[16].兩個網絡通過相互對抗的訓練過程,使得生成網絡最終可以將低分辨率圖像重建為高分辨率圖像.SRGAN 網絡框架如圖1所示.

圖1 SRGAN 網絡框架
SRGAN 網絡模型能夠提高重建圖像的感知質量,但其參數量過多,訓練收斂速度較慢,重建圖像高頻紋理過度銳化,導致部分細節扭曲、產生噪聲.因此,本文對 SRGAN 的網絡結構進行改進,采用 SRDN(移除了 BN 層)代替傳統的 SRResNet 作為生成網絡,以實現對低分辨率圖像特征的充分利用,同時利用 SRDN稀疏性的連接方式和深度可分離卷積[17]思想,減少模型的參數量;此外,融合 VGG 中低頻特征和高頻特征的聯合感知損失,結合均方誤差損失對網絡的感知損失函數進行改進.
本文采用稀疏殘差密集網絡 SRDN 代替傳統的SRResNet 作為生成網絡,同時,為了進一步減少計算量,在稀疏殘差密集塊(sparse residual dense block,SRDB)中融入深度可分離卷積[17]的思想,即將 SRDB中3×3 的卷積替換為1×3 和3×1 的卷積.SRDN 以及SRDB 的構成將在第3.1.1 節詳細闡述.
傳統的 SRGAN 網絡利用卷積層加 BN 層的方式,讓每一層的值在一個有效范圍內進行傳遞,加快網絡收斂速度.然而,研究表明[22],在 GAN 框架下進行訓練或者在模型的網絡層數較多時,BN 層很容易引入偽影問題,并且會對模型的泛化能力產生一定的限制.這些偽影一般情況下可能會出現在迭代時或者是不同設置之間,不利于性能的穩定.因此,我們移除生成網絡中的BN 層,從而保證網絡訓練的穩定性,同時令模型的泛化能力得到提高.此外,移除BN 層也有利于減少計算復雜度.本文采用的SRDN 網絡結構如圖2所示.

圖2 SRDN 網絡結構
2.1.1 稀疏殘差密集網絡
稀疏殘差密集網絡 SRDN 是在殘差密集網絡RDN[14]的基礎上改進而來.RDN 結合殘差網絡和密集網絡兩者的特性,其中,殘差網絡[23]利用殘差學習的思想,對低頻特征和通過卷積層提取的特征進行加權求和,有效降低了訓練誤差;密集網絡[24]則引入了密集跳躍連接,從而實現低頻和高頻特征的有效結合,緩解了梯度消失的問題.
RDN 的網絡主體架構是利用殘差密集塊 RDB,通過特征相連的方式聚合輸出,其連接方式包含殘差連接和密集連接.殘差連接和密集連接有一定的差異,因而RDN 通過這兩種連接進行聚合存在以下問題:(1)密集連接的數量和參數量的增長速率為O(n2),n是網絡深度,這表明隨著網絡的加深,網絡的參數量將爆炸性增長.(2)密集連接很大一部分都用于處理先前的特征表示,這表明密集聚合將始終保持一些不相關的狀態,存在特征冗余.
針對 RDN 網絡在聚合連接上的問題,本文結合稀疏聚合網絡的思想對 RDN 進行改進,提出了稀疏殘差密集網絡 SRDN.對于RDN 中單個模塊的聚合連接,其公式如下:


式中,x表示輸入特征,F表示卷積操作,k表示網絡層數,滿足k≤n(n為最大模塊數),yi(0 ≤i≤k)表示第i層的輸出.由公式可以看出,每層的輸入都聚合了之前所有層的特征,但是這種連接方式容易造成特征冗余.因此,本文提出了一種新的聚合方式,其公式如下:

式中,c表示正整數,k表示滿足的最大非負整數.這種改進的密集連接方式能夠將每個輸出特征進行稀疏性的密集連接,使得網絡結構更加簡單,從而大大減少網絡的參數和計算量,提供更好的性能.
SRDN 的網絡結構和 RDN 類似,但我們以式(3)聚合每一個輸出塊,從而達到相同的計算資源可以構建更多網絡層的目的.
類似的,我們采用基于稀疏聚合網絡的思想對殘差密集塊 RDB 進行改進,提出了稀疏殘差密集塊SRDB.與 RDB 類似,SRDB 允許將前一個 SRDB 的狀態與接下來的其他層相連接,從而形成連續內存機制,不同之處在于采用式(3)進行不同層之間的特征傳遞,這種連接方式有利于避免無關特征參與到網絡的運算中造成特征冗余.SRDB 的連接方式如圖3所示.

圖3 SRDB 的連接方式
2.1.2 深度可分離卷積
傳統的 SRGAN 模型存在參數量過多而導致訓練收斂速度較慢的問題,為了減少計算量,本文在稀疏性連接的基礎上進一步采用深度可分離卷積(depthwise separable convolution,DSC)[17]的思想來改進生成網絡,將稀疏殘差密集塊 SRDB 中3×3 的卷積替換為1×3和3×1 的卷積.
深度可分離卷積包含深度卷積和逐點卷積[17].卷積過程通常是先進行深度卷積,再進行逐點卷積.圖4分別展示了標準卷積和深度可分離卷積的卷積核結構.

圖4 標準卷積和深度可分離卷積的卷積核結構
為了比較兩種卷積的參數計算量,我們假設輸入K通道大小為A×B的特征圖,采用大小為C×C的卷積核進行卷積后,輸出L通道大小為A×B的特征圖.那么,標準卷積的參數計算量為:

深度可分離卷積的參數計算量為:

因此,兩種結構參數計算量之比為:

由式(6)可以看出,當輸出通道和卷積核的大小遠大于1 的時候,采用深度可分離卷積代替標準卷積,可顯著降低模型的參數量.
本文的判別網絡模型如圖5所示,參考了 Ledig等人[16]提出的 SRGAN 模型中的判別器網絡結構.判別器網絡包含8次卷積過程,所有的卷積層,除用于接收圖像的前端卷積層外,其它均連接 BN 層,同時選取Leaky ReLU 作為激活函數.隨著卷積次數的增多,提取的特征圖數量不斷增多,而特征圖的大小在持續變小,最后的連接層則是對網絡所有的特征作統一處理,并通過最終的激活函數 Sigmoid 來對輸出的圖像進行概率的預測.
為生產優質乳產品,公司不斷提升檢測能力,配置國際先進檢測設備,對產品全過程進行檢測,每批次原料奶需經過62項檢測,生產過程關鍵控制點54個,成品出廠檢測項目23項。產品出廠,全程冷鏈配送至終端賣場。如今,雪蘭牛奶已經成為我省甚至是全國區域型乳企的發展模板,為“云乳”產業發展貢獻著自己的力量。

圖5 判別網絡模型
SRGAN 沒有對傳統的均方誤差損失(MSE)作優化,而是提出一種新的感知損失函數,其中包括內容損失和對抗損失.由于較深的網絡層表示的特征更加抽象,因此 SRGAN 將內容損失定義在 VGG-54(VGG19網絡中第5 次池化前的第4 個卷積層之前的特征圖)的高頻特征的特征圖上,這些深層的特征圖只關注內容,而對抗損失則關注紋理細節.VGG-22(VGG19網絡中第2 次池化前的第2 個卷積層之前的特征圖)定義在較淺的網絡層,提取的特征大部分為輪廓、形狀等低頻特征[25],這些特征無法體現出明顯的細節差別.文獻[16]通過實驗證明了使用高頻特征作為內容損失的有效性.
然而,僅以 VGG-54 定義損失會使重建圖像的紋理過于銳化,從而導致細節部分扭曲,容易產生尖銳的噪聲,偽影也較為嚴重;而傳統的MSE 雖然能使重建圖像的細節較為平滑,但不能有效重構圖像的高頻紋理細節信息.為了有效地解決以上問題,本文引入 VGG-22 和 MSE 兩個部分,與 VGG-54 一起定義為聯合感知損失,使得重建圖像既能具備細節平滑的特性,抵消一部分產生的噪聲,在主觀上具有較好的視覺效果,同時在客觀評價中也能取得較好的指標結果.
研究表明[22],激活函數激活后的特征非常稀疏,而稀疏特征只能提供非常弱的監督效果,會導致性能低下.因此,本文均采用激活函數前的特征來計算 VGG-22 和 VGG-54 兩種特征圖,并對其賦予不同的權重值來對整體的對比損失進行調整,使得重建圖像的高頻特征和低頻特征更加均衡.改進后的內容損失函數如式(7)所示.

式中,lVGG-22表示 VGG19 網絡中第2 次池化前的第2 個卷積層之前的特征圖,即低頻特征;lVGG-54表示VGG19 網絡中第5 次池化前的第4 個卷積層之前的特征圖,即高頻特征;α和β為超參數,本文將在第4.4 節設計交叉驗證實驗來確定兩個超參數的取值.
本文改進后的損失函數如式(8)所示:

式中,lMSE表示均方誤差損失,表示對抗損失.對于,其主要作用是使生成網絡重建的圖像能夠盡可能地欺騙判別網絡.為了使重建圖像在視角感知方面更具表現力,l權重占比較小,具體取值參考了文獻[16]中對抗損失的權重選取.
對于訓練數據,本文采用DIV2K 數據集[26],利用雙三次插值對其中的800 幅高分辨率RGB 圖像進行降采樣,得到低分辨率圖像作為訓練數據.其中,降采樣因子r為 4,Batch_size 設置為16.使用Adam 優化器對每次的更新進行優化,學習率初始值設為0.000 1.
對于測試數據,本文選用Set5[19]、Set14[20]和BSD100[21]3 個數據集,對網絡模型進行評價.
為了客觀評價本文算法的性能,我們使用了峰值信噪比(PSNR)和結構相似度(SSIM)[9]作為評價指標.其中,PSNR 使用均方誤差損失(MSE)來衡量兩幅圖像像素點之間的區別,PSNR 值愈高,說明圖像失真度愈小.SSIM 則結合了亮度、對比度、結構對圖像相似性進行度量,SSIM 值愈高,說明兩幅圖像的相似度愈高.
此外,本文引用文獻[16] 提出的平均選項得分(mean option score,MOS)作為主觀評價指標,量化不同算法的重建效果.具體評價操作如下,我們讓20 個評分員在未知圖像版本的前提下使用1~5 五個分數對圖像質量進行評分,分數越高代表圖像質量越好,最后求分數平均值作為評價指標.20 個評分員分別對Set5、Set14 和BSD100 三個數據集的每張圖片的6 個版本,即:原始高分辨率圖像(HR)、Bicubic[8]、SRCNN[10]、SRResNet[16]、SRGAN[16]和本文方法得到的超分辨率圖像進行打分.
為了確定式(7)中低頻特征權重α和高頻特征權重β的取值,本文在Set5 數據集上測試,計算在不同的α和β取值下獲得的 PSNR 值和 SSIM 值.
表1 展示了不同特征權重下獲得的結果.由表1可知,當α和β都較小時,導致所得的內容損失權重占比較小,而均方誤差損失的權重占比也很小,因此計算損失時沒有偏重的一面,不僅導致計算得到的 PSNR值和 SISM 值過小,而且重建圖像的視覺感知效果也并不理想.當α較大而β較小時(如α=0.1,β=0.01),雖然計算得到的 PSNR 值和 SSIM 值取得最好的結果,但是高頻特征損失的占比較小,會導致重建圖像在細節特征上的表現有所不足;當α和β都較大時,計算得到的 PSNR 值和 SSIM 值都有較好的結果,且計算損失時偏重于感知損失上,重建圖像會有較好的視覺效果.經過綜合比較,當α和β的值分別為0.01 和1 時,無論是在視角效果上還是高頻細節上,重建圖像都表現較好.因此,本文最終確定α和β值分別為0.01 和1.

表1 特征權重選取表
3.5.1 實驗分析
本文采用客觀評價和主觀評價兩種方式,在3 個公開數據集上測評Bicubic[8]、SRCNN[10]、SRResNet[16]、SRGAN[16]以及本文方法的重建效果.表2 展示了在不同數據集上采用不同算法獲得的評價指標值.表中的HR 表示原始高分辨率圖像.

表2 不同算法的評價指標對比(最優者以粗體表示)
由表2 可知,深度殘差網絡 SRResNet 在 PSNR 和SSIM 兩個客觀評價指標上取得了最好的結果,但是在主觀評價指標 MOS 上卻表現不佳,這是因為客觀評價指標是基于對應像素點計算亮度顏色等差異,并未考慮到人眼的視覺特性,因而導致客觀評價指標與人眼視覺感受不一致的情況.而 SRResNet 以均方誤差損失MSE 作為損失函數,能夠取得較好的 PSNR 和 SSIM值,但是重建圖像丟失了高頻細節信息,不能很好的符合人眼主觀感受,因而在主觀評價指標 MOS 上表現不佳.
由于 MSE 損失函數會讓模型過多關注圖像像素之間的差異,而忽略重建圖像的固有特征.因而,SRGAN 較多關注圖像感知質量上的提高,利用感知損失和對抗損失來提升重建圖像的真實感,能夠在主觀評價指標MOS 上表現較好.本文提出的基于改進SRGAN 的圖像超分辨率重建算法,相對于視覺感官效果較好的SRGAN 而言,其客觀評價指標PSNR 和SSIM 值均有所提升,且主觀評價指標MOS 也明顯高于其他算法,證明本文算法具有更優的綜合性能.
3.5.2 視覺效果對比
為了更加有效地證明本文方法的重建效果,本文選取了部分圖像細節特征進行對比.圖6 和圖7 中的原圖分別是來自Set14 數據集的圖像baboon 和comic.在這兩幅圖中,我們還展示了5 種不同算法重建后的圖像細節特征對比.從圖6、圖7 可以清晰地看出,與其他算法相比,SRResNet 雖然在客觀評價指標上表現較好,但視覺效果并不理想;SRGAN 雖然能夠提升重建圖像的細節信息,但與HR 圖像相比仍然存在部分紋理細節模糊、噪聲過多、偽影也較為嚴重等問題.而本文提出來的方法能夠很好地彌補SRGAN 的不足,例如圖6 中baboon 的胡須部分,本文方法重建出來的圖像,胡須清晰可見,根根分明;圖7 中comic 頭上的鎖飾紋理細節更加飽滿,充分證明本文方法能夠更好地處理圖像細節信息,使重建圖像更加清晰,視覺效果更加優秀.

圖6 圖像baboon 的重建效果對比

圖7 圖像comic 的重建效果對比
本文提出了一種基于改進的 SRGAN圖像超分辨率重建算法,針對模型參數量多而導致訓練收斂速度慢的問題,采用稀疏殘差密集網絡 SRDN 來代替傳統的 SRResNet 作為生成網絡,同時采用深度可分離卷積的思想來改進生成網絡.針對重建圖像的高頻紋理過于銳化而導致部分細節扭曲、噪聲過多等問題,本文分析并改進了感知損失函數,提出融合 VGG 的低頻特征和高頻特征的聯合感知損失,并結合均方誤差損失來定義總損失.實驗結果表明,本文算法的PSNR、SSIM和MOS 這3 個評價指標結果均優于傳統SRGAN 算法,重建圖像的細節部分更加清晰,整體表現出較好的魯棒性和綜合性能.
雖然本文提出的超分辨率重建算法取得了一定的效果,但仍有待改進的地方:(1)本文提出的 SRDN 網絡主要調整了密集連接方式,但對殘差連接的研究較少,并且本文的稀疏性網絡架構未應用到其他算法上,難以證明架構的可移植性;(2)本文僅研究了基于VGG 的感知損失,但未深入探討所有維度特征的有效性.今后將會在此基礎上研究如何進一步提升圖像重建效果.