丁明航, 鄧然然, 邵 恒
(長安大學 信息工程學院, 西安 710064)
圖像超分辨率是一種典型的不適定[1]問題, 其作為一種基礎的視覺問題, 在學界和人工智能公司中引起了越來越多的關注, 并被廣泛地引用于安全和監控成像, 醫學成像和圖像生成等領域.圖像超分辨率目的在于通過模糊的低分辨率(Low Resolution, LR)圖像生成視覺質量較好的高分辨率(High Resolution, HR)圖像.為了解決這個不適定問題, 已經提出了眾多的圖像超分辨率算法, 包括基于插值的[2], 基于重構的[3]和基于學習的方法[4-10].
其中基于插值的方法[11]能較好地保護圖像的邊緣,但該方法不考慮圖像的內容, 只是簡單地進行像素點之間的計算, 容易丟失大量細節信息, 從而導致模糊.另一種基于重構的超分辨率方法[12]結合了圖像的降質模型, 解決了基于插值方法無法引入先驗信息的問題.該方法雖然對復雜度低的圖像效果較好, 但對紋理結構豐富的圖像則效果一般.隨后研究人員提出了基于學習的方法, 如Dong C 等[13]提出的SRCNN.該方法結構簡單, 結果相較于其他方法更精確, 但是會損失許多圖像的細節信息, 同時數據來源并不多, 所恢復出的圖像紋理在視覺上還是無法令人滿意.
為了進一步提高視覺質量, 生成對抗網絡[14](Generative Adversarial Network, GAN)被引入超分辨率領域, 以改善圖像超分辨率后失真的視覺效果.然而,SRGAN[15]由于網絡結構復雜, 不能穩定訓練更深層的網絡, 因此其結果仍與真實圖像存在差距.隨后, Wang XT 等[16]研究了SRGAN 網絡體系結構的兩個關鍵組成部分: 對抗損失和感知損失, 并對每個部分進行了改進, 得到了一個增強的SRGAN (ESRGAN).該方法可以訓練出更深層的網絡, 提取更多紋理細節特征, 但在圖像恢復時容易產生更多與真實圖像不一致的偽紋理.同時該方法無法充分利用低分辨率局部特征層信息,因此, 在無法生成更加自然圖像的同時浪費了深層網絡的優良設計.
為了解決網絡容易生成偽紋理的問題, 本文首先將注意力生成對抗網絡[17]引入超分辨率方法中, 以此作為超分辨率模型的基礎架構.其次, 為了降低網絡結構的復雜性以更多地利用低分辨率的局部特征層信息, 本文還對注意力生成對抗網絡中生成器部分進行了改進, 引入了密集殘差塊結構[18].最后, 在圖像超分辨率重建后, 本文還利用峰值信噪比[19](Peak Signal to Noise Ratio, PSNR)和結構相似性[20](Structural Similarity Index, SSIM)這兩種普遍的超分辨率評價標準對結果進行定量分析, 對比說明所設計方法的優良性能.
生成對抗網絡(GAN)的理論基礎源自于博弈論中的二人零和博弈.GAN 強大的圖片生成能力, 使其在圖像合成、圖像修補、超分辨率、草圖復原等領域內均有廣泛應用.同樣, 生成對抗網絡的結構也被應用于本文的基礎框架中.GAN 的基本框架包含一個生成器模型(Generator model, G)和一個判別器模型(Discriminator model, D), 如圖1 所示.

圖1 生成對抗網絡基礎結構
如圖1 所示的GAN 的基礎框架中, 生成器模型可用函數 G(x) 表示, 判別器模型可用函數 D(x)表示, 每個函數都有可調參數.圖1(a)所示為判別器結構, 其處理流程是從訓練高分辨率真實圖像中采樣作為輸入x, 送入判別器模型 D(x) 中, D(x)通過自身的訓練學習, 盡可能地輸出接近1 的概率值.圖1(b)所示為生成器結構,其處理流程是從訓練低分辨圖像中采樣作為輸入z, 經生成器模型生成偽造樣本G (z), 然后將其作為判別器模型的輸入.判別器模型的目的是盡量使 D( G(z))接近0,而生成器模型的目的盡量使它接近1, 最終在二者的互相博弈中達到平衡.
殘差網絡(Residual Network, ResNet)和跳躍連接(skip connection)結構經研究可以更加容易地訓練深層的網絡, 因而GAN 可以通過加入該結構來增加網絡層數提升超分辨率圖像生成能力.殘差網絡和跳躍連接的基本結構如圖2 所示.

圖2 殘差網絡和跳躍連接結構
圖2 中, 殘差網絡在原始的卷積層上增加跳躍連接支路構成基本殘差塊, 使原始要學習的 H(x)被表示成 H( x)=F(x)+x .殘差網絡的殘差結構使得對 H(x)的學習轉為對 F(x) 的學習, 而對 F(x) 的學習較 H(x)容易.殘差網絡通過層層累加的殘差塊結構, 有效緩解了GAN 深層網絡的退化問題, 使得GAN 更易穩定訓練,更易生成自然真實的圖像.
基于生成對抗網絡的基礎框架, 本文將注意力遞歸網絡引入到生成器中, 并將常規殘差塊替換為密集殘差結構, 通過此設計來盡可能生成在視覺質量上更為理想的圖像.同時, 改進判別器和感知損失函數, 以此作為用于平衡視覺質量和峰值信噪比(PSNR)的網絡策略.
如圖3 所示, 本文所設計的生成器主要由淺層特征提取網絡, 注意力遞歸網絡, 非線性映射網絡和最后的上采樣網絡組成.圖3 中, ILR和 ISR分別表示網絡的輸入和輸出.具體地, 淺層特征提取網絡使用兩個卷積層(Conv)來提取低分辨率圖像的淺層信息.第一個Conv 層從 ILR輸 入中提取特征 F-1. 然后對 F-1做進一步的淺層特征提取, 輸出為 F0, 用公式可以表示為:

其中, HSFE1(·) 和 HSFE2(·)表示卷積運算.

圖3 生成器結構
在對原始輸入 ILR進行淺層特征提取后, 其輸出F0作為新的輸入被送入注意力遞歸網絡中.詳細的注意力遞歸網絡結構如圖4 所示.注意力遞歸網絡的主要目的是在輸入的圖像中提取出需要恢復的紋理細節,這些紋理細節將會被之后的非線性映射網絡所增強并用于高分辨率圖像的生成.因此能否重建出逼真自然的圖像, 取決于低分辨率紋理細節提取的好壞.

圖4 注意力遞歸網絡結構
如圖4 中的架構所示, 本文采用遞歸網絡來生成視覺注意力.遞歸網絡中的每個時間步長均包含3 層密集殘差塊(Residual Dense Block, RDB), 1 個循環門控單元(Gated Recurrent Unit, GRU)和1 層卷積層, 以此用來生成二維注意力圖像.每個時間步長所學習到的注意力圖都是一個取值介于0 到1 之間的矩陣, 其中每個矩陣元素值越大, 表示注意力就越大.在圖4 中,An為注意力學習過程生成的可視化注意力圖, 其中n 代表遞歸的次數.隨著遞歸次數的增加, 訓練出的注意力圖就越能凸顯細節紋理和相關結構.
遞歸注意力網絡中用到的循環門控單元(GRU)包括一個重置門 rt和一個更新門 zt.GRU 的計算公式被定義為如下公式:

其中, ht-1和 ht分別表示上一時刻和當前時刻的隱藏層狀態, 而表示當前更新狀態.Wz, Wr分別表示更新門和重置門的權重, *代表卷積運算.將GRU 的輸出特征送入其后的卷積層中, 即可生成二維的注意力圖像.在訓練過程中, 每個時間步長內輸入圖像均與生成的注意力圖像相連, 同時它們會作為新的輸入被送到遞歸網絡的下一層中.
假設通過n 層遞歸注意力網絡后的輸出為Fn, 并用如下公式表示:

其中, HATT表示注意力網絡的函數, n 代表經過幾層遞歸操作.
在經遞歸注意力網絡進行紋理細節特征提取后,要對這些特征進行映射.所設計的非線性映射網絡具有8 層conv+ReLU 結構, 并添加了跳躍連接提升網絡訓練的穩定性.非線性映射網絡可表示為如下公式:

其中, FNMN是 利用非線性網絡函數 HNMN輸出的結果.
最后, 在生成高分辨率圖像前加入了一個上采樣網絡, 其是由一個卷積層構成的, 以此來獲得4 倍放大的超分辨率圖像輸出.可表示為如下公式:

其中, HUPN為上采樣網絡函數, ISR為超分辨率圖像輸出.
為了進一步提高GAN 的圖像恢復質量, 本文設計了密集殘差塊結構, 并將其應用到注意力遞歸網絡中,其結構如圖5 所示.如圖5(a), 首先在原有殘差塊基礎上移除BN 層.當訓練和測試數據集的統計數據差異很大時, BN 層往往會在生成圖像中引入偽紋理并限制泛化能力.因此, 為了網絡的穩定訓練, 需要移除BN 層.同時, 移除BN 層有助于降低計算復雜性和減小內存開銷.如圖5(b), 在移除BN 層后又將密集塊與跳躍連接進行結合, 前面的RDB 和后續每一層都的輸出都有直接連接, 這不僅保留了前饋性質, 還充分提取了局部特征層信息, 提升了網絡的容量.

圖5 密集殘差塊結構
除了改進的生成器結構, 本文還改進了判別器.如圖6 所示, 改進的判別器的網絡結構和參數設置與原始SRGAN 的判別器不同.具體來說, 輸入待判別的高分辨率圖片, 先經過7 層的卷積層抽取圖片特征, 再將圖像數據的維度壓平(flatten), 最后經全連接層(Fully Connected layer, FC)和Sigmoid 函數輸出判別的結果.本文生成對抗網絡經判別器對真實圖像與生成圖像的判別, 反饋到生成器中, 使得權重參數變化更加靈敏,以此改善了網絡退化的問題.原始GAN 生成器G 在初始訓練時其性能遠不如判別器D, 這樣便會產生模型崩潰(model collapse)問題.為此, 本文改進了原始GAN 的損失函數.該損失函數是基于L1 范數設計的,同時包含了判別器的重構誤差.判別器使用該損失函數在提升圖像質量的同時還提升了生成器G 的學習能力.

圖6 判別器結構
首先圖像像素級誤差可以認為是服從高斯分布的,基于L1 范數的損失函數被定義為:

式中, 高分辨率圖像用 IHR表 示, 低分辨圖像用 ILR表示.需要迭代的生成器和判別器損失函數其優化規則由式(11)表示:

其中,

其中, 高分辨率圖像用 x 表示, 低分辨圖像用 z表示, 超分辨率圖像用 y表示, 判別器關于高分辨率圖像的損失用 LDr表示, 低分辨率圖像的損失用 LDf表示.λk表示k 的增量, kt表示k 的第t 次迭代結果, k的值改變可以用來提升生成器的學習能力.γ是超分辨率圖像誤差的期望與高分辨率圖像的期望值之比, 該參數的值可以提升生成圖像的質量.
本文使用峰值信噪比(PSNR)和結構相似性(SSIM)這兩種基礎方法作為評價指標, 以此來說明圖像超分辨率方法性能的優劣.在圖像超分辨率評價中,PSNR 的值越高就說明圖像分辨率越高, 或圖像越接近真實高分辨率圖像, 其是利用均方誤差(Mean Square Error, MSE)進行計算的:

式中, m ×n尺寸的圖像均用I 與K 表示.
PSNR 被定義為:

一般情況下, PSNR 的單位被設置為dB, 數值越大圖像視覺質量越高.
圖像結構相似性是一種符合人類主觀感受的評價指標.通常情況下, SSIM 的值越靠近1, 代表超分辨率圖像與原始圖像結構越相似, 也就是失真越小, 質量越好.SSIM 被定義為:

式中, uf表示真實高分辨率圖像的平均灰度值, σf表示真實高分辨率圖像的方差, 而表示超分辨率圖像的灰度值,表示超分辨率圖像的方差, 最后真實高分辨率圖像與超分辨率圖像之間的協方差用來表示,C1和C2是常數, 這兩個常數被設置為, C1=(k1*L)2,C2=(k2*L)2, k1=0.01, k2=0.03 , L =255.
本文利用超分辨率中被廣泛使用的Set5, Set14和BSD100 3 個基準數據集進行實驗.所有實驗均是將低分辨率圖像進行4 倍放大得到超分辨率圖像的.訓練樣本使用來自ImageNet 數據庫的10 萬張圖像的隨機樣本.并在配置有NVIDIA GTX 1080Ti 的硬件設備上進行網絡的訓練.低分辨率圖像的獲取方法是利用4 倍雙三次下采樣方法獲取.同時, 因為網絡設計為全卷積網絡, 所以可以向生成器中送入任意大小的圖像.為了優化網絡的訓練效果, 本文使用Adam 作為網絡優化器.并設置初始學習速率為 1 0-4, 進行200次迭代.
本文將測試結果同已有方法(包括雙三次方法Bicubic, SRCNN 和SRGAN)作對比.測試結果均為4倍放大的公平對比.為了對比結果清楚公平地展示, 要對超分辨率圖像進行相同區域的裁切放大.如圖7 所示,本文超分辨率方法相較于其他方法, 無論是視覺效果還是紋理細節均有較優的表現.因此, 本文方法在兼顧降低偽紋理的產生的同時改善了圖像超分辨率后的視覺質量.

圖7 不同方法超分辨率圖像視覺效果對比
表1 展示了不同超分辨率方法的定量比較.可以看出, 在相同放大倍數和相同數據集下, 本文方法在PSNR 和SSIM 數值上均表現最佳.表1 中, 本文方法PSNR 值為31.62, SSIM 值為0.903, 相較于其他方法評價指標的數據均有所提升.這表明本文方法所采用的注意力遞歸網絡和密集殘差結構是有效的.

表1 不同方法超分辨率結果的PSNR 和SSIM 數值對比
同時, 為了說明本文方法在訓練穩定性上的優秀表現, 還同其他方法在訓練過程中的PSNR 值進行了比較.如圖8 所示, 在前期訓練迭代中本文方法就較快地提升了PSNR 值, 并較快地趨于穩定.這說明, 相較于其他方法本文所采用的方法有較快的收斂速度和較好的網絡性能表現.

圖8 不同方法PSNR 趨勢
在生成對抗網絡的基礎上, 本文改進生成對抗網絡中生成器部分, 加入了注意力遞歸網絡, 設計了新的密集殘差結構, 實現了端到端的圖像超分辨率網絡.在每個密集殘差塊中, 低分辨率的局部特征層被充分提取, 這樣不僅可以穩定訓練網絡, 還可以快速地使網絡收斂, 減小網絡參數計算和內存消耗.此外, 通過注意力遞歸網絡更加突出了圖像的細節紋理, 使紋理恢復得更加自然真實, 同時減少了偽紋理的生成.最后, 本文利用普遍采用的PSNR 和SSIM 評價指標, 對本文方法產生的超分辨率圖像同其他方法進行了對比, 證明了本文方法的網絡性能和重建圖像在視覺質量上與數值評價上的優異表現.