王先傲,林樂平,歐陽寧
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
人臉超分辨率重建是從低分辨率(low resolution,簡稱LR)圖像中恢復高分辨率(high resolution,簡稱HR)圖像,因為一張低分辨率圖像對應的高分辨率圖像擁有較多的可能性,所以人臉重建的過程是一個不適定問題。目前大多數(shù)解決方法是通過卷積神經(jīng)網(wǎng)絡(convolutional neural network,簡稱CNN)建立從LR圖像到HR圖像的映射關系,以峰值信噪比(peak signal to noise ratio,簡稱PSNR)作為圖像重建質量的評價標準,其數(shù)值越高就表明重建效果越好。
LR圖像由于缺乏高頻信息,丟失了圖像的紋理細節(jié)信息,因此重建圖像的高頻信息至關重要。Dong等[1]首次將稀疏表示與CNN相結合,設計了一個3層的卷積神經(jīng)網(wǎng)絡,重建圖像的PSNR數(shù)值超過了傳統(tǒng)算法。以MSE為目標函數(shù)優(yōu)化模型參數(shù),可得到PSNR更高的超分辨率圖像,但細節(jié)并不一定更加突出。針對此問題,Ledig等[2]提出了一種基于生成對抗網(wǎng)絡(generative adversarial networks,簡稱GAN)[3]與感知損失[4]的圖像超分辨率重建方法,其能夠得到細節(jié)更突出的人臉圖像。Huang等[5]針對極低分辨率的人臉圖像,提出一種結合哈爾小波的低分辨率人臉重建算法,通過CNN預測對應的小波系數(shù),以小波逆變換重構出超分辨率圖像,重建質量得到較大提高。上述大多數(shù)算法以均方誤差(mean squared error,簡稱MSE)作為損失函數(shù)進行優(yōu)化,雖然能夠得到PSNR值較高的重建圖像,但生成圖像過于平滑。
為了得到細節(jié)豐富的高分辨率人臉圖像,提出一種基于生成對抗網(wǎng)絡的人臉超分辨率重建算法。其中生成模型與對抗模型均采用了利于圖像重建的網(wǎng)絡結構,算法優(yōu)點如下:
1)生成模型由2條支路構成,并主要對圖像的高頻信息進行重建,由深度殘差網(wǎng)絡構成的判別模型對真假圖像進行判別,最終可得到更加自然真實的超分辨率圖像。
2)通過融合對抗損失WGAN-GP[6]與MSE損失對網(wǎng)絡參數(shù)進行聯(lián)合優(yōu)化,并以對抗損失為主導,能夠賦予重建圖像更多細節(jié),MSE用以保證圖像重建前后身份的一致性,最終網(wǎng)絡可迅速收斂。
大多數(shù)基于CNN的人臉重建算法可分為3步:1)HR圖像通過插值下采樣,得到LR圖像作為模型輸入;2)通過網(wǎng)絡得到放大后的超分辨率(super resolution,簡稱SR)圖像;3)以HR圖像為標簽,通過損失函數(shù)的反向傳播優(yōu)化網(wǎng)絡參數(shù)。
受文獻[7-9]提出方法的啟發(fā),設計了一種基于生成對抗網(wǎng)絡的重建算法來解決人臉超分辨率問題。模型結構如圖1所示。
圖1 生成對抗網(wǎng)絡結構圖
圖1(a)為生成器結構,圖1(b)為判別器結構,Real表示真實圖像,F(xiàn)ake表示生成器生成的圖像。其中生成器由2條支路組成,分別對應圖像的高頻分量與低頻分量。由插值上采樣層組成的低頻支路對應圖像的輪廓信息,由深度殘差網(wǎng)絡組成的高頻支路則對應人臉圖像的細節(jié)信息。判別器的作用是對真假圖像進行區(qū)分,網(wǎng)絡訓練的過程就是判別器與生成器不斷博弈的過程,當最終生成器生成的圖像能夠騙過判別器時,模型即達到了收斂,生成器的設計思路如圖1所示。
一幅高分辨率人臉圖像由高頻信息與低頻信息組成,
IHR=Ilf+Ihf。
(1)
(2)
(3)
(4)
為了能夠得到更加真實的超分辨率圖像,提供了一個由深度殘差網(wǎng)絡組成的判別器對生成圖像與真實圖像進行區(qū)分,如圖1(b)所示。判別網(wǎng)絡由14個卷積層組成,卷積通道由64遞增至512。生成器與判別器的卷積核大小均為3×3,小尺寸的卷積核能夠減少參數(shù),并且可以通過堆疊多個3×3卷積核達到相同的感受野,同時提高非線性映射能力。采用的殘差模塊結構如圖2所示。
圖2 殘差模塊結構
圖2(a)為生成器所用殘差單元,圖2(b)為判別器所采用的殘差單元。通過借鑒文獻[8-9]中的網(wǎng)絡設計思想,生成器與判別器中采用了更適用于超分辨率重建的殘差模塊,卷積核尺寸均為3×3,padding為1,卷積前后特征圖大小不變。生成器中采用雙線性插值進行上采樣操作,而判別器中采用池化層對特征圖進行下采樣。殘差單元以及批歸一化層(batch normalization,簡稱BN)[10]的加入可以一定程度上緩解深度網(wǎng)絡帶來的梯度消失與梯度爆炸問題,加速網(wǎng)絡收斂。
RPSN作為圖像質量評價指標,其定義為
(5)
由式(5)可看出,當2幅圖像之間的EMS越小時,對應的RPSN值越高。因此,以EMS作為損失函數(shù)可以帶來較高的RPSN值。與此同時,EMS越小,說明2幅圖像之間的像素平均值越接近,容易導致生成圖像過于平滑。
針對上述原因,將WGAN-GP[6]損失與MSE加權融合作為網(wǎng)絡的目標函數(shù),并以對抗損失為主導,MSE的加入是為了保證重建前后身份的一致性,優(yōu)化方法為
l=αlWGAN-GP+lMSE。
(6)
其中:lMSE為均方誤差損失;α為權重系數(shù),用來平衡對抗損失與重建損失,lWGAN-GP是一種改進的GAN損失。
(7)
(8)
其中:W、H為圖像的寬度和高度;ISR、IHR分別為生成圖像和目標圖像;i,j為像素所在位置的索引。通過優(yōu)化lMSE可使得生成圖像的像素點均值逐漸向目標圖像逼近。
本實驗基于Ubuntu14.04 操作系統(tǒng),使用GTX1080Ti 顯卡加速,pytorch深度學習框架實現(xiàn)模型搭建。
采用公開的人臉數(shù)據(jù)庫CelebA[11]、LS3D[12]中的圖像作為高分辨率人臉數(shù)據(jù),CelebA數(shù)據(jù)集中大部分為正面人臉,LS3D則含有多種姿態(tài)的人臉圖像,共選取30 000人臉作為高分辨率人臉數(shù)據(jù)庫。
在保證訓練與測試數(shù)據(jù)不重復的前提下,從CelebA中選取3 000張高分辨率人臉進行重建測試。對所有訓練和測試樣本都做相同的預處理,高分辨率人臉大小為64×64,通過下采樣得到16×16的低分辨率人臉圖像。
在本實驗中,平衡系數(shù)α=0.05,λ=10。生成器學習速率為0.000 1,判別器學習率為0.000 4,進行交替迭代訓練。權重衰減設為0.000 5,批次大小為64,采用Adam[13](β1=0.9,β2=0.999)算法進行隨機梯度優(yōu)化,共迭代200個周期。
實驗測試結果分為2個方面:1)針對CelebA數(shù)據(jù)集中的3 000張高分辨率人臉圖像,以不同算法進行重建結果對比,以人的視覺主觀判斷為標準;2)重建圖像的FID(fréchet inception distance)[14]分數(shù)和RPSN數(shù)值對比。
2.3.1 重建結果對比
分別與雙三次插值算法(Bicubic)、Wavelet-SRNet[5]、SRGAN[2]進行對比,放大4倍的重建結果如圖3所示。其中圖3(a)為16×16的低分辨率圖像,圖3(e)為本算法得到的重建結果,圖3(f)為64×64的目標圖像。從圖3可看出,Wavelet-SRNet與SRGAN算法所得到的圖像相較于原圖更為平滑,而本方法能夠生成紋理細節(jié)豐富的圖像,在視覺上與原圖更加接近。SRGAN與本方法都是基于GAN進行超分辨率人臉重建,不同的是本方法充分利用了GAN的生成能力,而SRGAN仍是以MSE為主導,因而本方法可得到五官更加清晰的人臉圖像,但是某些紋理與原圖存在一些差別,這是本方法仍然需要改進的地方。
圖3 重建結果對比
2.3.2 重建圖像的RPSN與FID對比
分別對重建圖像的RPSN值與FID分數(shù)進行對比,如表1所示。FID[14]是圖像數(shù)據(jù)之間的相似性度量,用于評估重建圖像的質量,計算重建圖像與目標圖像之間的FID分數(shù),其數(shù)值越小,表明跟實際圖像越接近。
表1 重建圖像的RPSN與FID分數(shù)對比
Wavelet-SRNet與SRGAN的RPSN值相對更高,而本算法可以達到更低的FID分數(shù),表明重建結果與實際圖像更加接近。由于網(wǎng)絡參數(shù)優(yōu)化過程中,并未主要針對MSE進行訓練,而是更加注重利用生成器的生成能力賦予圖像更多紋理,導致RPSN值并不突出。
為了得到紋理豐富的高分辨率圖像,提出了一種基于生成對抗網(wǎng)絡的人臉重建算法。算法采用了更適用于圖像重建的殘差單元模塊,優(yōu)化過程中以對抗損失為主導,可生成與目標圖像更相似的超分辨率人臉圖像?;贑elebA數(shù)據(jù)集對重建結果進行對比,實驗結果表明,本算法能夠得到細節(jié)豐富的人臉圖像,且FID分數(shù)高于其他人臉重建算法。