劉嘉佩 ,曹 林 ,杜康寧
1.北京信息科技大學 光電測試技術及儀器教育部重點實驗室,北京100101
2.北京信息科技大學 信息與通信工程學院,北京 100101
圖像超分辨率重建是計算機視覺領域一個經典問題,旨在從低分辨率圖像中恢復高頻細節。其中,人臉作為視頻和圖像等媒介中經常出現的一類對象,對其進行超分辨率具有廣泛的應用價值。例如,人臉檢測與處理、驗證與識別;公共區域安防檢查、終端解鎖與快捷支付等。經典的人臉超分辨率復原方法可分為兩大類[1]:基于復原的方法和基于學習的方法。基于復原的方法通過求解圖像降質的逆過程獲取高分辨率圖像,但計算量大,不同圖像退化模型不唯一,重建結果與原圖存在較大差距。基于學習的方法則通過學習高低分辨率圖像之間的內在聯系完成重建任務[1],由于基于學習的方法能夠自主的學習圖像規律,已成為超分辨率的主流方法[2]。基于學習的方法中,通過訓練神經網絡完成重建任務的思想隨SRCNN(Super-Resolution Convolutional Neural Network)[3]的提出得到了廣泛關注。SRCNN 堆疊了三個卷積層學習高低分辨率圖像對之間的非線性映射,從而完成超分辨率任務。但由于SRCNN 的網絡層數較少,只能提取淺層信息,重建的圖像較模糊。以SRCNN為基礎,Wang 等人[4]將網絡深度擴展到20 層提取深層特征,將高低分辨率圖像殘差作為學習目標,減輕模型運算量。Kim等人[5]提出DRCN(Deeply-Recursive Convolutional Network)使用遞歸網絡循環處理數據,并在網絡層中加入跳躍連接,緩解梯度消失與爆炸現象,充分利用低分辨率信息。Tong 等人[6]用稠密塊減輕網絡梯度消失等問題,支持特征復用,減少參數,降低訓練難度。這些方法證明加深網絡層數、學習殘差圖像、層間跳躍連接等方法在重建多種類別的圖像,包括人臉重建任務時的有效性,但由于人臉是一類具有規則結構表達的對象。利用普通超分辨率算法進行重建往往無法獲得最佳效果。
針對人臉圖像,Yu 等人[7]提出UR-DGN,首次將生成對抗網絡引入人臉超分辨率過程,并使用近似對齊的正面人臉圖像訓練模型。解決了由于輸入分辨率過低,難以定位五官等信息,導致重建結果出現偽影的情況。但由于數據集中的圖片類別單一,重建側面及其他姿勢的面部圖像存在較大誤差。Zhu等人[8]通過交替優化面部重建任務與面部密集場估計重建輪廓清晰的人臉圖像,但由于采用非端到端的網絡結構,學習過程較復雜。Song等人[9]則將輸入圖像依照五官劃分為5個不同區域,經過對應的卷積神經網絡生成重建圖像,使用區域增強方法生成具有豐富五官細節的完整重建圖像。但由于拼接的原因,重建效果不均勻并會出現明顯的不連續區域。Li 等人[10]提出GFRNet,將屬于同一人的待重建圖像與另一張高分辨率引導圖像作為共同輸入,估計稠密流場以對齊引導圖像與待重建圖像,利用對齊后的圖像完成重建。重建結果能夠很好的保留人物特征,但這種方法需要同一人的高清圖像輔助重建,而這一條件在實際應用中較難滿足。
針對以上人臉超分辨率算法的不足,考慮到逐漸提高圖片清晰度有利于達到圖像從粗糙到精細的特性[11],本文設計了一種雙層級聯神經網絡重建人臉圖像。
其中,第一層基于深度殘差網絡提取輸入圖像的深層特征;第二層將面部估計模塊與殘差模塊結合,提取輸入圖像的面部關鍵點信息,約束重建圖像人臉五官的精確性。訓練過程中,使用不同的下采樣因子(×2、×3、×4)降質高分辨率圖像構成訓練樣本,交叉訓練網絡模型。
綜上,本文提出的雙層級聯神經網絡人臉超分辨率重建方法主要完成以下任務:
(1)基于深度殘差模塊以端到端的方式構建雙層神經網絡,逐層提取圖像高頻特征完成重建。
(2)針對人臉的特有結構,在重建網絡中加入人臉信息估計模塊輔助重建,從幾何層面約束重建結果,有效應對多姿態人臉的重建任務。
(3)使用混合放大因子訓練模型,提高模型泛化能力。
本文提出一種基于雙層級聯神經網絡的超分辨率重建方法,包含兩部分:先驗恢復網絡以及結構約束網絡。網絡流程如圖1 所示。給定低分辨率輸入圖像為ILR,經過雙三次插值放大,得到與對應的高分辨率圖像IHR相同大小(128×128)。輸入圖像ILR首先經過第一層先驗恢復網絡得到初步重建的圖像:

隨后,第一層的輸出IMID通過第二層結構約束網絡,得到最終的重建圖像:

圖1 雙層級聯神經網絡結構圖

在訓練階段,重建圖像ISR與真實高分辨率圖像IHR一并作為判別器的輸入,判別器隨機選擇一張圖像判別其真偽并輸出判別結果。
為了從低分辨率輸入中提取深層特征,重建高頻信息豐富的人臉圖像,同時避免由于網絡過深而導致的梯度消失等現象。本文以殘差塊[12]為設計先驗恢復網絡的基本架構,殘差塊包含兩個大小為3×3 的卷積層,每層均連接一個批量歸一化層,中間使用PReLU 作為激活函數。
由于當輸入圖片分辨率過低時,從中提取出人臉的準確結構信息難度較大。因此,網絡首先從輸入的低分辨率人臉圖像中提取圖像的深層先驗特征。網絡結構如圖1(a)所示。低分辨率輸入首先經過一個大小為3×3 的卷積核,為減少運算,設置移動步長為2,特征圖大小為輸入的一半。隨后20層殘差塊對圖像進行特征提取,再由反卷積層放大圖像至初始大小并使用一個卷積層重建圖像。
通過約束第一層網絡的MSE 損失及感知損失(詳細描述見3.1、3.2 節)能夠獲得高頻細節豐富的良好重建圖像,但由于沒有將人臉的面部結構信息加入到面部重建過程中,在重建一些表情豐富或姿勢多樣的圖像時,重建圖像的五官細節可能會出現明顯錯誤。
為減輕這種錯誤的影響,第二層結構約束網絡引入一種對稱的沙漏結構(Hourglass,HG)[13]估計人臉先驗信息。一個四階沙漏塊的基本結構如圖2所示,通過在對稱層之間使用跳躍連接,沙漏塊能夠有效整合各種尺度特征并且保留不同尺度的空間信息。多層堆疊的沙漏塊(Stucked HG,SHG)能夠捕捉面部各個關鍵點的空間位置信息進行面部估計。此外,疊加的HG模塊通過復用上一級的信息能夠極大地提高估計精度[13]。結構約束網絡如圖1(b)示,上層的重建結果經過淺層特征提取后通過兩層疊加的HG模塊獲得面部關鍵點熱圖,隨后,經過三層殘差塊對特征解碼,兩層反卷積層將特征恢復至初始大小,最后由一個卷積層完成重建。通過對關鍵點熱圖進行中繼監督,加強重建圖像與真實圖像的面部一致性。此外,在重建過程中,HG模塊也可以提供更多的高頻信息[14],有助提高重建效果。

圖2 Hourglass模塊結構圖
給定低分辨率輸入圖像為ILR,對應的高分辨率真實圖像為IHR。經過第一層先驗恢復網絡的輸出為IMID=G1(ILR) ,第二層結構約束網絡的輸出為ISR=G2(IMID)=G(ILR)。定義訓練集為,N為訓練樣本對數量。則重建損失用來最小化重建圖像與真實圖像間的像素距離,定義為:

單獨使用重建損失能夠約束兩張圖像在底層像素上的一致性,提高PSNR 值,但重建圖像還應與真實圖像在高層特征上也保持良好的一致性。SRGAN[15]以及Johnson 等人[16]提出的感知損失,通過約束兩張圖片在特征空間的相似度,使重建圖像在細節上更接近真實圖像。SRGAN 使用VGG-19[11]結構中第五個池化層之前的第四個卷積層后的高級特征,定義感知損失定義:

其中,?i,j表示在VGG19網絡中第i個卷積層之前的第j個卷積層(在激活層之后)的特征圖,VGG loss是重構圖像和參考圖像的特征圖的歐式距離,上式中的Wi,j和Hi,j表示特征圖的維度。
為加強重建人臉圖像與高分辨率圖像的空間一致性,本文分別將高分辨率圖像與重建圖像通過2.2 節第二層結構約束網絡,得到各自圖像對應的的人臉關鍵點熱圖,并將關鍵點損失定義為:

基于生成對抗思想[15],本文將雙層級聯神經網絡整體作為生成器,使用判別器網絡在無監督學習下通過約束對抗損失強制生成更真實的高分辨率人臉圖像。在訓練過程中,判別器在重建圖像與真實圖像中隨機選取一張,區分實際數據分布與生成數據分布。判別器與生成器相互作用,促使生成器產生逼真細節的圖像。為了避免普通GAN難收斂的問題,本文使用WGAN-GP[17]將對抗損失定義為:

綜上,整個網絡的目標函數為:

其中,α、β、χ、δ為各自損失對應的權重。
本文選取CelebA 數據集中的2 000 張圖片作為高分辨率圖像構建訓練樣本集,并在CelebA與Helen數據集中各選擇100 張圖片構成測試集。為確保測試集樣本的多樣性,正面人臉圖像以1∶1的男女比例占測試集的50%,側面人臉、遮擋人臉各自占20%,其余10%為非常規表情人臉。樣本集中的每張圖像以人臉區域為中心,被裁剪至128×128的大小并進行降質處理,

式中,圖像I首先與標準差為ρ的高斯模糊核kρ做卷積運算,之后進行系數為s的下采樣操作↓s后疊加噪聲系數為σ的加性高斯白噪聲nσ,最后使用質量系數q對圖像進行JPEG壓縮得到降質圖像Id,s。為使網絡的輸入與輸出大小一致,使用雙三次線性插值(Bicubic)將Id,s放大至初始大小作為低分辨率樣本:

為增強模型泛化能力,設置s∈{2:1:4},ρ=1,σ=3,q=50。
在訓練階段,各個損失函數對應的權重分別為α=1,β=0.1,χ=0.005,δ=0.01,設置Batchsize為10,初始學習率為0.1×10-3,使用RMSprop優化網絡,所有模型均在PyTorch 中實現,使用Titan XpGPU 迭代300次共用9小時。
考慮到從低分辨率圖像中直接估計面部結構較困難,本文以先驗恢復網絡為第一層初步重建圖像,再通過第二層的結構約束網絡提高人臉重建效果。因此,為驗證結構約束網絡在人臉重建任務中的有效性與網絡整體結構的合理性,分別搭建Net_1 與Net_2 進行驗證。其中,Net_1 從原網絡中移除第二層結構約束網絡,將判別器直接作用于第一層網絡的輸出;Net_2 則調換兩層網絡的位置,其余部分保持不變。Net_1 與Net_2 均使用與本文方法完全相同的數據集和參數進行訓練。
如圖3分別展示了Net_1與本文方法在2、3、4倍放大因子下的重建效果,圖中代表性的區域以紅色方框進行標注,并在右下角放大顯示。可以看出,與去掉結構約束網絡的Net_1相比,本文方法具有更清晰的面部輪廓,對五官的表現更加準確與銳利,還原了更多的高頻細節(如頭發、飾品、背景)。此外,本文能夠正確地恢復五官,而Net_1的重建圖像在放大倍數較高時均出現了不同程度的錯誤。

圖3 結構約束網絡在重建圖像視覺效果上的對比
如圖4,比較了Net_2 與本文方法在CelebA 測試集下的峰值信噪比(Peak Signal to Noise Ratio,PSNR)。由圖可見,在多種放大倍數下,本文方法均取得了更優的PSNR 值,放大倍數越高,本文與Net_2 的PSNR 差距也越大。因此,有必要使用先驗恢復網絡初步重建輸入圖像,之后再進行優化,以達到更好的效果。

圖4 網絡層順序在重建結果PSNR值上的對比
本文使用2~4 倍放大因子對Bicubic 放大后的低分辨率人臉圖像進行重建,并與Bicubic 方法、SRGAN 方法以及WGAN方法的重建結果進行對比。量化對比采用圖像處理任務中經常使用的PSNR 值和圖像結構相似度(Structural Similarity Index,SSIM),結果如表1 所示。由表可見,在CelebA 數據集下放大因子分別為2、3、4 倍時,本文的PSNR 值相比其他方法分別平均提高了 1.91 dB、2.34 dB、2.58 dB,SSIM 值 分 別 提 高 了0.044 3、0.067 8、0.082 7。可以看出,盡管隨著放大倍數提高,本文的PSNR與SSIM值有不同程度的降低,但相比其他方法,本文在高放大倍數時能夠恢復更多細節,在 Helen 數據集上,平均PSNR 值提高 1.24 dB,SSIM 值提高了0.040。由于選擇CelebA作為訓練集,因此Helen測試集的數值結果提升較小。

表1 不同算法在不同數據集中重建效果比較
從視覺效果上對比了以上方法與本文的重建效果:圖 5 分別使用 2、3、4 倍放大因子在 CelebA 測試集上進行對比。可見,在不同放大因子下,本文均能重建出清晰的面部輪廓,相比其他算法,也能恢復更接近原始圖像的五官形狀以及更精致的紋理細節。盡管隨放大因子的增大,重建圖像的清晰度逐漸降低。但放大倍數越高,重建效果提高越大,與量化指標相一致。圖6以3倍放大因子在Helen測試集上進行對比。依然能夠獲得清晰的重建圖像。

圖5 CelebA數據集上不同方法在多放大因子下的重建效果比較
圖7展示了本文方法在以放大因子3重建多姿態人臉(例如表情人臉、側面人臉、有遮擋人臉)時的表現。在此類面部五官難以準確識別的圖像中,本文方法仍可準確重建面部輪廓與五官。

圖6 Helen數據集上放大因子為3時重建效果比較

圖7 不同場景下重建效果比較
本文提出一種基于雙層級聯神經網絡的人臉圖像超分辨率重建算法。首先,構建深度殘差網絡提取圖像深層先驗信息,初步恢復重建圖像;再疊加人臉結構估計模塊,提取圖像中人臉關鍵點信息約束重建結果;最后引入生成對抗損失,提高圖像視覺效果,使用混合放大因子訓練模型,提高模型泛化能力。實驗結果表明,本文方法在主觀視覺與客觀量化上均可得到較普通方法更好的評價,獲得細節豐富、輪廓清晰的重建圖像,并能充分應對復雜情況下的重建任務。