劉嘉佩 ,曹 林 ,杜康寧
1.北京信息科技大學(xué) 光電測(cè)試技術(shù)及儀器教育部重點(diǎn)實(shí)驗(yàn)室,北京100101
2.北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101
圖像超分辨率重建是計(jì)算機(jī)視覺領(lǐng)域一個(gè)經(jīng)典問題,旨在從低分辨率圖像中恢復(fù)高頻細(xì)節(jié)。其中,人臉作為視頻和圖像等媒介中經(jīng)常出現(xiàn)的一類對(duì)象,對(duì)其進(jìn)行超分辨率具有廣泛的應(yīng)用價(jià)值。例如,人臉檢測(cè)與處理、驗(yàn)證與識(shí)別;公共區(qū)域安防檢查、終端解鎖與快捷支付等。經(jīng)典的人臉超分辨率復(fù)原方法可分為兩大類[1]:基于復(fù)原的方法和基于學(xué)習(xí)的方法。基于復(fù)原的方法通過求解圖像降質(zhì)的逆過程獲取高分辨率圖像,但計(jì)算量大,不同圖像退化模型不唯一,重建結(jié)果與原圖存在較大差距。基于學(xué)習(xí)的方法則通過學(xué)習(xí)高低分辨率圖像之間的內(nèi)在聯(lián)系完成重建任務(wù)[1],由于基于學(xué)習(xí)的方法能夠自主的學(xué)習(xí)圖像規(guī)律,已成為超分辨率的主流方法[2]?;趯W(xué)習(xí)的方法中,通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)完成重建任務(wù)的思想隨SRCNN(Super-Resolution Convolutional Neural Network)[3]的提出得到了廣泛關(guān)注。SRCNN 堆疊了三個(gè)卷積層學(xué)習(xí)高低分辨率圖像對(duì)之間的非線性映射,從而完成超分辨率任務(wù)。但由于SRCNN 的網(wǎng)絡(luò)層數(shù)較少,只能提取淺層信息,重建的圖像較模糊。以SRCNN為基礎(chǔ),Wang 等人[4]將網(wǎng)絡(luò)深度擴(kuò)展到20 層提取深層特征,將高低分辨率圖像殘差作為學(xué)習(xí)目標(biāo),減輕模型運(yùn)算量。Kim等人[5]提出DRCN(Deeply-Recursive Convolutional Network)使用遞歸網(wǎng)絡(luò)循環(huán)處理數(shù)據(jù),并在網(wǎng)絡(luò)層中加入跳躍連接,緩解梯度消失與爆炸現(xiàn)象,充分利用低分辨率信息。Tong 等人[6]用稠密塊減輕網(wǎng)絡(luò)梯度消失等問題,支持特征復(fù)用,減少參數(shù),降低訓(xùn)練難度。這些方法證明加深網(wǎng)絡(luò)層數(shù)、學(xué)習(xí)殘差圖像、層間跳躍連接等方法在重建多種類別的圖像,包括人臉重建任務(wù)時(shí)的有效性,但由于人臉是一類具有規(guī)則結(jié)構(gòu)表達(dá)的對(duì)象。利用普通超分辨率算法進(jìn)行重建往往無法獲得最佳效果。
針對(duì)人臉圖像,Yu 等人[7]提出UR-DGN,首次將生成對(duì)抗網(wǎng)絡(luò)引入人臉超分辨率過程,并使用近似對(duì)齊的正面人臉圖像訓(xùn)練模型。解決了由于輸入分辨率過低,難以定位五官等信息,導(dǎo)致重建結(jié)果出現(xiàn)偽影的情況。但由于數(shù)據(jù)集中的圖片類別單一,重建側(cè)面及其他姿勢(shì)的面部圖像存在較大誤差。Zhu等人[8]通過交替優(yōu)化面部重建任務(wù)與面部密集場(chǎng)估計(jì)重建輪廓清晰的人臉圖像,但由于采用非端到端的網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)過程較復(fù)雜。Song等人[9]則將輸入圖像依照五官劃分為5個(gè)不同區(qū)域,經(jīng)過對(duì)應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)生成重建圖像,使用區(qū)域增強(qiáng)方法生成具有豐富五官細(xì)節(jié)的完整重建圖像。但由于拼接的原因,重建效果不均勻并會(huì)出現(xiàn)明顯的不連續(xù)區(qū)域。Li 等人[10]提出GFRNet,將屬于同一人的待重建圖像與另一張高分辨率引導(dǎo)圖像作為共同輸入,估計(jì)稠密流場(chǎng)以對(duì)齊引導(dǎo)圖像與待重建圖像,利用對(duì)齊后的圖像完成重建。重建結(jié)果能夠很好的保留人物特征,但這種方法需要同一人的高清圖像輔助重建,而這一條件在實(shí)際應(yīng)用中較難滿足。
針對(duì)以上人臉超分辨率算法的不足,考慮到逐漸提高圖片清晰度有利于達(dá)到圖像從粗糙到精細(xì)的特性[11],本文設(shè)計(jì)了一種雙層級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)重建人臉圖像。
其中,第一層基于深度殘差網(wǎng)絡(luò)提取輸入圖像的深層特征;第二層將面部估計(jì)模塊與殘差模塊結(jié)合,提取輸入圖像的面部關(guān)鍵點(diǎn)信息,約束重建圖像人臉五官的精確性。訓(xùn)練過程中,使用不同的下采樣因子(×2、×3、×4)降質(zhì)高分辨率圖像構(gòu)成訓(xùn)練樣本,交叉訓(xùn)練網(wǎng)絡(luò)模型。
綜上,本文提出的雙層級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)人臉超分辨率重建方法主要完成以下任務(wù):
(1)基于深度殘差模塊以端到端的方式構(gòu)建雙層神經(jīng)網(wǎng)絡(luò),逐層提取圖像高頻特征完成重建。
(2)針對(duì)人臉的特有結(jié)構(gòu),在重建網(wǎng)絡(luò)中加入人臉信息估計(jì)模塊輔助重建,從幾何層面約束重建結(jié)果,有效應(yīng)對(duì)多姿態(tài)人臉的重建任務(wù)。
(3)使用混合放大因子訓(xùn)練模型,提高模型泛化能力。
本文提出一種基于雙層級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法,包含兩部分:先驗(yàn)恢復(fù)網(wǎng)絡(luò)以及結(jié)構(gòu)約束網(wǎng)絡(luò)。網(wǎng)絡(luò)流程如圖1 所示。給定低分辨率輸入圖像為ILR,經(jīng)過雙三次插值放大,得到與對(duì)應(yīng)的高分辨率圖像IHR相同大小(128×128)。輸入圖像ILR首先經(jīng)過第一層先驗(yàn)恢復(fù)網(wǎng)絡(luò)得到初步重建的圖像:
隨后,第一層的輸出IMID通過第二層結(jié)構(gòu)約束網(wǎng)絡(luò),得到最終的重建圖像:
圖1 雙層級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
在訓(xùn)練階段,重建圖像ISR與真實(shí)高分辨率圖像IHR一并作為判別器的輸入,判別器隨機(jī)選擇一張圖像判別其真?zhèn)尾⑤敵雠袆e結(jié)果。
為了從低分辨率輸入中提取深層特征,重建高頻信息豐富的人臉圖像,同時(shí)避免由于網(wǎng)絡(luò)過深而導(dǎo)致的梯度消失等現(xiàn)象。本文以殘差塊[12]為設(shè)計(jì)先驗(yàn)恢復(fù)網(wǎng)絡(luò)的基本架構(gòu),殘差塊包含兩個(gè)大小為3×3 的卷積層,每層均連接一個(gè)批量歸一化層,中間使用PReLU 作為激活函數(shù)。
由于當(dāng)輸入圖片分辨率過低時(shí),從中提取出人臉的準(zhǔn)確結(jié)構(gòu)信息難度較大。因此,網(wǎng)絡(luò)首先從輸入的低分辨率人臉圖像中提取圖像的深層先驗(yàn)特征。網(wǎng)絡(luò)結(jié)構(gòu)如圖1(a)所示。低分辨率輸入首先經(jīng)過一個(gè)大小為3×3 的卷積核,為減少運(yùn)算,設(shè)置移動(dòng)步長為2,特征圖大小為輸入的一半。隨后20層殘差塊對(duì)圖像進(jìn)行特征提取,再由反卷積層放大圖像至初始大小并使用一個(gè)卷積層重建圖像。
通過約束第一層網(wǎng)絡(luò)的MSE 損失及感知損失(詳細(xì)描述見3.1、3.2 節(jié))能夠獲得高頻細(xì)節(jié)豐富的良好重建圖像,但由于沒有將人臉的面部結(jié)構(gòu)信息加入到面部重建過程中,在重建一些表情豐富或姿勢(shì)多樣的圖像時(shí),重建圖像的五官細(xì)節(jié)可能會(huì)出現(xiàn)明顯錯(cuò)誤。
為減輕這種錯(cuò)誤的影響,第二層結(jié)構(gòu)約束網(wǎng)絡(luò)引入一種對(duì)稱的沙漏結(jié)構(gòu)(Hourglass,HG)[13]估計(jì)人臉先驗(yàn)信息。一個(gè)四階沙漏塊的基本結(jié)構(gòu)如圖2所示,通過在對(duì)稱層之間使用跳躍連接,沙漏塊能夠有效整合各種尺度特征并且保留不同尺度的空間信息。多層堆疊的沙漏塊(Stucked HG,SHG)能夠捕捉面部各個(gè)關(guān)鍵點(diǎn)的空間位置信息進(jìn)行面部估計(jì)。此外,疊加的HG模塊通過復(fù)用上一級(jí)的信息能夠極大地提高估計(jì)精度[13]。結(jié)構(gòu)約束網(wǎng)絡(luò)如圖1(b)示,上層的重建結(jié)果經(jīng)過淺層特征提取后通過兩層疊加的HG模塊獲得面部關(guān)鍵點(diǎn)熱圖,隨后,經(jīng)過三層殘差塊對(duì)特征解碼,兩層反卷積層將特征恢復(fù)至初始大小,最后由一個(gè)卷積層完成重建。通過對(duì)關(guān)鍵點(diǎn)熱圖進(jìn)行中繼監(jiān)督,加強(qiáng)重建圖像與真實(shí)圖像的面部一致性。此外,在重建過程中,HG模塊也可以提供更多的高頻信息[14],有助提高重建效果。
圖2 Hourglass模塊結(jié)構(gòu)圖
給定低分辨率輸入圖像為ILR,對(duì)應(yīng)的高分辨率真實(shí)圖像為IHR。經(jīng)過第一層先驗(yàn)恢復(fù)網(wǎng)絡(luò)的輸出為IMID=G1(ILR) ,第二層結(jié)構(gòu)約束網(wǎng)絡(luò)的輸出為ISR=G2(IMID)=G(ILR)。定義訓(xùn)練集為,N為訓(xùn)練樣本對(duì)數(shù)量。則重建損失用來最小化重建圖像與真實(shí)圖像間的像素距離,定義為:
單獨(dú)使用重建損失能夠約束兩張圖像在底層像素上的一致性,提高PSNR 值,但重建圖像還應(yīng)與真實(shí)圖像在高層特征上也保持良好的一致性。SRGAN[15]以及Johnson 等人[16]提出的感知損失,通過約束兩張圖片在特征空間的相似度,使重建圖像在細(xì)節(jié)上更接近真實(shí)圖像。SRGAN 使用VGG-19[11]結(jié)構(gòu)中第五個(gè)池化層之前的第四個(gè)卷積層后的高級(jí)特征,定義感知損失定義:
其中,?i,j表示在VGG19網(wǎng)絡(luò)中第i個(gè)卷積層之前的第j個(gè)卷積層(在激活層之后)的特征圖,VGG loss是重構(gòu)圖像和參考圖像的特征圖的歐式距離,上式中的Wi,j和Hi,j表示特征圖的維度。
為加強(qiáng)重建人臉圖像與高分辨率圖像的空間一致性,本文分別將高分辨率圖像與重建圖像通過2.2 節(jié)第二層結(jié)構(gòu)約束網(wǎng)絡(luò),得到各自圖像對(duì)應(yīng)的的人臉關(guān)鍵點(diǎn)熱圖,并將關(guān)鍵點(diǎn)損失定義為:
基于生成對(duì)抗思想[15],本文將雙層級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)整體作為生成器,使用判別器網(wǎng)絡(luò)在無監(jiān)督學(xué)習(xí)下通過約束對(duì)抗損失強(qiáng)制生成更真實(shí)的高分辨率人臉圖像。在訓(xùn)練過程中,判別器在重建圖像與真實(shí)圖像中隨機(jī)選取一張,區(qū)分實(shí)際數(shù)據(jù)分布與生成數(shù)據(jù)分布。判別器與生成器相互作用,促使生成器產(chǎn)生逼真細(xì)節(jié)的圖像。為了避免普通GAN難收斂的問題,本文使用WGAN-GP[17]將對(duì)抗損失定義為:
綜上,整個(gè)網(wǎng)絡(luò)的目標(biāo)函數(shù)為:
其中,α、β、χ、δ為各自損失對(duì)應(yīng)的權(quán)重。
本文選取CelebA 數(shù)據(jù)集中的2 000 張圖片作為高分辨率圖像構(gòu)建訓(xùn)練樣本集,并在CelebA與Helen數(shù)據(jù)集中各選擇100 張圖片構(gòu)成測(cè)試集。為確保測(cè)試集樣本的多樣性,正面人臉圖像以1∶1的男女比例占測(cè)試集的50%,側(cè)面人臉、遮擋人臉各自占20%,其余10%為非常規(guī)表情人臉。樣本集中的每張圖像以人臉區(qū)域?yàn)橹行模徊眉糁?28×128的大小并進(jìn)行降質(zhì)處理,
式中,圖像I首先與標(biāo)準(zhǔn)差為ρ的高斯模糊核kρ做卷積運(yùn)算,之后進(jìn)行系數(shù)為s的下采樣操作↓s后疊加噪聲系數(shù)為σ的加性高斯白噪聲nσ,最后使用質(zhì)量系數(shù)q對(duì)圖像進(jìn)行JPEG壓縮得到降質(zhì)圖像Id,s。為使網(wǎng)絡(luò)的輸入與輸出大小一致,使用雙三次線性插值(Bicubic)將Id,s放大至初始大小作為低分辨率樣本:
為增強(qiáng)模型泛化能力,設(shè)置s∈{2:1:4},ρ=1,σ=3,q=50。
在訓(xùn)練階段,各個(gè)損失函數(shù)對(duì)應(yīng)的權(quán)重分別為α=1,β=0.1,χ=0.005,δ=0.01,設(shè)置Batchsize為10,初始學(xué)習(xí)率為0.1×10-3,使用RMSprop優(yōu)化網(wǎng)絡(luò),所有模型均在PyTorch 中實(shí)現(xiàn),使用Titan XpGPU 迭代300次共用9小時(shí)。
考慮到從低分辨率圖像中直接估計(jì)面部結(jié)構(gòu)較困難,本文以先驗(yàn)恢復(fù)網(wǎng)絡(luò)為第一層初步重建圖像,再通過第二層的結(jié)構(gòu)約束網(wǎng)絡(luò)提高人臉重建效果。因此,為驗(yàn)證結(jié)構(gòu)約束網(wǎng)絡(luò)在人臉重建任務(wù)中的有效性與網(wǎng)絡(luò)整體結(jié)構(gòu)的合理性,分別搭建Net_1 與Net_2 進(jìn)行驗(yàn)證。其中,Net_1 從原網(wǎng)絡(luò)中移除第二層結(jié)構(gòu)約束網(wǎng)絡(luò),將判別器直接作用于第一層網(wǎng)絡(luò)的輸出;Net_2 則調(diào)換兩層網(wǎng)絡(luò)的位置,其余部分保持不變。Net_1 與Net_2 均使用與本文方法完全相同的數(shù)據(jù)集和參數(shù)進(jìn)行訓(xùn)練。
如圖3分別展示了Net_1與本文方法在2、3、4倍放大因子下的重建效果,圖中代表性的區(qū)域以紅色方框進(jìn)行標(biāo)注,并在右下角放大顯示??梢钥闯?,與去掉結(jié)構(gòu)約束網(wǎng)絡(luò)的Net_1相比,本文方法具有更清晰的面部輪廓,對(duì)五官的表現(xiàn)更加準(zhǔn)確與銳利,還原了更多的高頻細(xì)節(jié)(如頭發(fā)、飾品、背景)。此外,本文能夠正確地恢復(fù)五官,而Net_1的重建圖像在放大倍數(shù)較高時(shí)均出現(xiàn)了不同程度的錯(cuò)誤。
圖3 結(jié)構(gòu)約束網(wǎng)絡(luò)在重建圖像視覺效果上的對(duì)比
如圖4,比較了Net_2 與本文方法在CelebA 測(cè)試集下的峰值信噪比(Peak Signal to Noise Ratio,PSNR)。由圖可見,在多種放大倍數(shù)下,本文方法均取得了更優(yōu)的PSNR 值,放大倍數(shù)越高,本文與Net_2 的PSNR 差距也越大。因此,有必要使用先驗(yàn)恢復(fù)網(wǎng)絡(luò)初步重建輸入圖像,之后再進(jìn)行優(yōu)化,以達(dá)到更好的效果。
圖4 網(wǎng)絡(luò)層順序在重建結(jié)果PSNR值上的對(duì)比
本文使用2~4 倍放大因子對(duì)Bicubic 放大后的低分辨率人臉圖像進(jìn)行重建,并與Bicubic 方法、SRGAN 方法以及WGAN方法的重建結(jié)果進(jìn)行對(duì)比。量化對(duì)比采用圖像處理任務(wù)中經(jīng)常使用的PSNR 值和圖像結(jié)構(gòu)相似度(Structural Similarity Index,SSIM),結(jié)果如表1 所示。由表可見,在CelebA 數(shù)據(jù)集下放大因子分別為2、3、4 倍時(shí),本文的PSNR 值相比其他方法分別平均提高了 1.91 dB、2.34 dB、2.58 dB,SSIM 值 分 別 提 高 了0.044 3、0.067 8、0.082 7。可以看出,盡管隨著放大倍數(shù)提高,本文的PSNR與SSIM值有不同程度的降低,但相比其他方法,本文在高放大倍數(shù)時(shí)能夠恢復(fù)更多細(xì)節(jié),在 Helen 數(shù)據(jù)集上,平均PSNR 值提高 1.24 dB,SSIM 值提高了0.040。由于選擇CelebA作為訓(xùn)練集,因此Helen測(cè)試集的數(shù)值結(jié)果提升較小。
表1 不同算法在不同數(shù)據(jù)集中重建效果比較
從視覺效果上對(duì)比了以上方法與本文的重建效果:圖 5 分別使用 2、3、4 倍放大因子在 CelebA 測(cè)試集上進(jìn)行對(duì)比??梢姡诓煌糯笠蜃酉?,本文均能重建出清晰的面部輪廓,相比其他算法,也能恢復(fù)更接近原始圖像的五官形狀以及更精致的紋理細(xì)節(jié)。盡管隨放大因子的增大,重建圖像的清晰度逐漸降低。但放大倍數(shù)越高,重建效果提高越大,與量化指標(biāo)相一致。圖6以3倍放大因子在Helen測(cè)試集上進(jìn)行對(duì)比。依然能夠獲得清晰的重建圖像。
圖5 CelebA數(shù)據(jù)集上不同方法在多放大因子下的重建效果比較
圖7展示了本文方法在以放大因子3重建多姿態(tài)人臉(例如表情人臉、側(cè)面人臉、有遮擋人臉)時(shí)的表現(xiàn)。在此類面部五官難以準(zhǔn)確識(shí)別的圖像中,本文方法仍可準(zhǔn)確重建面部輪廓與五官。
圖6 Helen數(shù)據(jù)集上放大因子為3時(shí)重建效果比較
圖7 不同場(chǎng)景下重建效果比較
本文提出一種基于雙層級(jí)聯(lián)神經(jīng)網(wǎng)絡(luò)的人臉圖像超分辨率重建算法。首先,構(gòu)建深度殘差網(wǎng)絡(luò)提取圖像深層先驗(yàn)信息,初步恢復(fù)重建圖像;再疊加人臉結(jié)構(gòu)估計(jì)模塊,提取圖像中人臉關(guān)鍵點(diǎn)信息約束重建結(jié)果;最后引入生成對(duì)抗損失,提高圖像視覺效果,使用混合放大因子訓(xùn)練模型,提高模型泛化能力。實(shí)驗(yàn)結(jié)果表明,本文方法在主觀視覺與客觀量化上均可得到較普通方法更好的評(píng)價(jià),獲得細(xì)節(jié)豐富、輪廓清晰的重建圖像,并能充分應(yīng)對(duì)復(fù)雜情況下的重建任務(wù)。