?

基于高頻小波損失的生成對抗人臉補全方法研究

2021-02-25 07:48黃俊健林家駿鄭兵兵
計算機應用與軟件 2021年2期
關鍵詞:人臉人臉識別卷積

黃俊健 朱 煜 林家駿 鄭兵兵 韓 飛

(華東理工大學信息科學與工程學院 上海 200237)

0 引 言

圖像補全一直以來是計算機視覺領域研究和應用的熱點。研究人員針對人臉有遮擋的部分提出了各種圖像補全算法。

傳統的基于擴散的方法[1-2]使用偏微分方程確定擴散系數,并利用被遮擋區域周圍的鄰域信息進行加權平均。Bertalmio等[3]使用局部直方圖的統計數據來補全被遮擋區域,但這種方法主要用于缺少小面積區域的情況,不能很好地生成較大面積缺損區域。傳統的基于稀疏性的方法[4]將被遮擋的圖像轉換為變換域,并利用其在變換域中的稀疏性來重建圖像,但該方法也適用于修復較小區域中的被遮擋圖像,對于被遮擋面積較大或紋理缺失區域較多的圖像容易產生平滑效果。

在深度學習算法中,生成式對抗網絡[5-6](Generative Adversarial Networks,GAN)可以通過兩個網絡之間的不斷博弈從而生成接近真實圖像的結果,在圖像生成與數據增強等方面有著其他深度學習模型無法達到的效果。因此,研究者們主要以GAN網絡及其變形作為基于深度學習模型的人臉補全問題的主要算法?;贕AN網絡的人臉補全算法主要過程是:(1) 將被遮擋的人臉圖像作為生成器的輸入得到一幅偽人臉圖像;(2) 將未被遮擋的真實人臉圖像與生成的偽人臉圖像作為判別器的輸入,判別輸入是真實人臉還是偽人臉;(3) 生成器與判別器相互博弈,使生成的偽人臉圖像與真實人臉圖像更為接近。

使用先驗信息來進行圖像補全也取得了很多進展。例如,Yeh等[7]采用GAN網絡訓練完好的圖片進行圖像補全,然而該方法在圖像補全時需要對每幅圖片都進行反向傳播,導致其速度較慢。Dolhansky等[8]說明了在圖像補全中模板信息的重要性,所提出的方法可以達到與繪畫相當的效果,但是該方法僅僅適用于正面人臉的眼睛部分補全。CE算法[9]設計了一種編碼器到解碼器的網絡結構,用于生成圖像中缺失部分,并結合了生成對抗網絡的訓練方式,提高了生成圖像的質量。GLCIC算法[10]使用空洞卷積[11]增加網絡的感受野,并通過全局和局部兩個判別器,提高生成的圖像在局部的一致性。

針對于有遮擋的人臉補全問題,本文結合生成對抗架構設計了一個人臉補全框架,用于修復人臉遮擋區域的圖像,在網絡層引入了空洞卷積來提升感受野的基礎上,本文提出基于小波分解的高頻損失函數,用于提高生成人臉的清晰度。首先將圖像從圖像空間轉換為小波空間,圖像分解為高頻分量和低頻分量,修復后圖像的模糊與缺乏高頻信息有關,本文在所設計的損失函數中使用小波分解圖的l1損失進行網絡訓練,有效提升了生成人臉的質量。通過生成網絡將有遮擋的人臉補全成全臉。再采用ArcFace[23]模型作為人臉識別框架對修復后的人臉進行人臉識別驗證。實驗結果表明,該方法恢復的人臉是有效的。

1 基于GAN的人臉補全網絡

1.1 人臉補全生成器網絡結構

在人臉識別任務中,遮擋物覆蓋了真實人臉區域,導致識別的信息有缺損,網絡無法作出準確判斷。而人臉補全可以在一定程度上彌補這種信息缺損,讓網絡對完整的人臉信息進行識別。本文考慮的遮擋區域相對固定,比如戴口罩、圍巾等遮擋下半臉的情況。所以在訓練網絡時,預先定義了遮擋物的位置,而不考慮對遮擋物的識別與定位。

基于GAN的人臉補全網絡由生成網絡和判別網絡構成。本文所設計的生成網絡的目標是將有遮擋的人臉補全成完整的人臉,結構如圖1所示。

圖1 生成網絡框架

圖1的每個模塊中,K表示網絡卷積核大小,N表示通道數目,S表示卷積核的步長,D表示空洞率。網絡的輸入是一幅被掩碼遮擋的半臉圖像,分別經過編碼層、中間層和解碼層,最后輸出一幅補全后的全臉圖像。編碼層的設計是為了縮小網絡輸入圖像的空間尺寸,保證后續的網絡運算能夠在較小的空間尺寸下進行,提升網絡的運行效率。因為空間尺寸的縮小伴隨著一定的量化誤差,誤差越小生成的圖像質量越好,所以編碼層先采用K7N64S1的結構設計,即卷積核大小為7×7×64,步長為1的卷積層在不縮小網絡空間尺寸大小的情況下提取圖像全局特征。之后再使用兩個卷積核空間大小為4×4,步長為2的卷積層將網絡尺寸縮小4倍。中間層由M個類ResNet模塊[11]組成,更深的網絡是為了得到更好的泛化能力以及特征的表達能力。同時模塊采用空洞率為2的空洞卷積代替普通卷積,增加了網絡的感受野,增強網絡感受全局特征的能力,類ResNet模塊如圖2所示。

圖2 類ResNet模塊

解碼層則將前面提取的特征解碼成完整的人臉圖像,主要通過兩個反卷積層將圖像尺寸大小擴大4倍,恢復成原圖尺寸大小。最后再經過一個7×7×3的卷積層將通道恢復成三通道。

1.2 判決器設計

判別器是一個二分類網絡,結構如圖3所示。輸入是原始完整的圖像或者生成器生成的圖像,輸出是一個二分類結果,判斷是原始圖像還是生成圖像。

圖3 判別網絡框架

2 損失函數

2.1 總損失設計

(1)

式中:⊙表示矩陣元素逐點對應相乘。將I作為生成網絡輸入,得到一個填充缺失區域后的彩色圖像Ip,其分辨率與輸入圖像相同:

(2)

定義網絡訓練的總損失函數L:

L=αLl1+βLadv+γLperc+μLstyle+δLwavelet

(3)

式中:各損失系數α、β、γ、μ、δ分別取值為1、0.1、0.1、200、0.1;Ll1表示重構的l1損失[13]。除重構的l1損失外,在網絡訓練的過程中對抗損失定義保證了生成對抗的過程,使補全后的圖片更加接近原圖:

(4)

式中:EIgt表示真實樣本的分布;D(·)表示判決器的輸出;EIcomp表示生成補全圖像后的生成樣本分布。

(5)

式中:φi為預訓練網絡中第i層網絡輸出的特征圖,本文使用了在ImageNet上預訓練的VGG19網絡的relu43層輸出的特征圖。同時這些特征圖還用于計算風格損失,對于給定的特征圖尺寸Ci×Hi×Wi,風格損失使用Gram矩陣計算:

(6)

為了補充生成圖像中所缺乏的高頻信息,本文基于小波分解設計了一種高頻損失函數Lwavelet。

2.2 小波損失

像素方式的損失有l1損失和均方誤差(MSE)損失[16],有許多先進的方法依賴于此,然而在實現較高的峰值信噪比(PSNR)[17]的同時,往往缺乏圖像的高頻信息,從而導致生成圖像的紋理過度平滑,生成出的圖像在視覺上不滿意。針對這一問題,本文基于小波分解提出一個高頻小波損失,如圖4所示。

圖4 小波損失

定義一個二維圖像f(u,v),其中u和v分別是二維圖像的寬和高的像素,本文利用小波[18]對二維圖像進行f(u,v)一層分解:

(7)

(8)

我們提取其中水平和垂直方向上的高頻信息,對一個二維圖像I,重定義ζ(I)j為原圖像I的一層小波分解的高頻信息部分。

(9)

2.3 網絡訓練

兩個網絡的訓練過程如下:

輸入:初始化判別器和生成器網絡參數θd、θg,全臉數據data。

輸出:判別器D和生成器G。

3 實 驗

實驗的硬件環境是CPU:E5-2683 v3@2.00 GHz x56,GPU:GTX1080Ti。模型使用PyTorch實現網絡所有功能模塊。

3.1 實驗數據集

本文使用VGGFace2[19]作為人臉補全和人臉識別的訓練數據集,為體現網絡的泛化能力,以LFW[20]作為人臉識別的測試數據集。VGGFace2數據集有9 131個不同人物的331萬幅圖片,每個人的姿態、年齡、種族各不相同,場景也非常豐富,每幅圖像都經過人為篩選,確保數據集標簽的準確性,所以是質量非常高的數據集。LFW數據集有5 749個不同人物的13 233幅圖像,主要用于評測非限制性環境下的人臉識別算法的性能。數據集提供6 000組圖片對作為測試集,3 000組相同的人,3 000組不同的人,需要測試網絡能給出對應的分類結果。所有圖片都由MTCNN算法[21]進行人臉檢測和對齊,縮放到112×112尺寸大小。由于并沒有針對遮擋問題的人臉識別數據集,VGGFace2和LFW都是完整臉的數據集,所以本文對圖片進行了遮擋處理,模擬有遮擋的情況。

3.2 評價指標

本文使用了三個圖像補全的通用指標來衡量模型生成圖像的質量,包括結構相似性指數(SSIM)[22]、峰值信噪比(PSNR)和平均絕對誤差(MAE)。這些指標假設像素間具有獨立性。結構相似性指數定義如下:

(10)

c1=(k1×L)2c2=(k2×L)2

k1=0.01,k2=0.03,L=255

(11)

定義C、W、H分別為圖像的通道數、寬和高,峰值信噪比通過均方誤差(MSE)進行定義:

(12)

(13)

同時真實圖像和補全圖像的平均絕對誤差定義如下:

(14)

3.3 人臉補全模型的生成結果

將VGGFace2數據集作為人臉補全模型的訓練集,LFW數據集作為其測試集。所有訓練和測試圖遮擋下半臉,最后輸入人臉補全模型。

人臉補全網絡訓練完成后,只保留生成網絡作為人臉生成器,用于將遮擋的人臉補全為完整的全臉。

表1為CE算法[9]、GLCIC算法[10]和本文人臉補全模型在LFW遮擋數據集上的客觀評價指標PSNR、SSIM和MAE。

表1 人臉補全模型的實驗結果

從表1的實驗結果分析,與其他人臉生成網絡相比,本文提出的網絡模型所生成的人臉圖像質量更高,結構相似性(SSIM)達到0.803 4,峰值信噪比(PSNR)達到20.946 7。相比于其他網絡,本文方法獲得的補全圖像與原圖結構更為相似并且失真度小。由于接近真實世界的大型數據集,如VGGFace2數據集背景復雜,包含不同種族和不同年齡的面孔,圖像中的細節非常豐富,這增加了圖像補全的難度。針對現有圖像補全網絡生成圖像模糊的問題,本文提出的模型在訓練過程中加入了小波損失,圖像的高頻分量中包含更多的圖像細節,使得網絡在整個生成過程中學習到真實的高頻細節,因而生成補全出的人臉圖像更加清晰。

同時對總損失中不同的損失函數進行了消融實驗,對于訓練時不同損失函數的影響如表2所示。

表2 不同損失函數的實驗結果

可以看出,移除風格損失后,指標降低很少,而移除本文設計的小波損失后指標下降最多,說明小波損失對性能的整體提升影響較大。風格損失主要為了消除在反卷積過程中造成的棋盤偽影現象。感知損失使得補全圖像在語義上與原圖更加相近。本文提出的小波損失使補全后的圖像高頻信息更加豐富,因而有效改善了圖像補全的質量,生成圖像與原圖更為近似。

圖5為生成網絡所生成的全臉圖像,其中最左側人臉為真實人臉,往右依次是生成網絡的輸入和訓練2 000、5 000、20 000、100 000次迭代后所生成的人臉??梢钥吹阶罱K生成的人臉和真實人臉較為接近,有利于人臉識別驗證。

圖5 生成人臉過程迭代結果

3.4 人臉補全后的識別結果

本節以被黑幕遮擋處理后的LFW人臉為半臉,補全后的人臉輸出為補全臉,送入ArcFace[23]分類器訓練的人臉識別模型中進行測試,結果如表3所示。

表3 補全臉的識別結果

其中評價指標為準確率和召回率如下:

(15)

(16)

式中:TP表示正確判斷為真;FP表示錯誤的判斷為真;TN表示正確判斷為假;FN表示錯誤的判斷為假;AllSamples表示樣本數量。

由表3可知,將有遮擋的人臉補全成無遮擋的人臉能有效提高其人臉識別的準確率,說明補全的信息對于識別任務有顯著幫助,并且驗證了本文提出的生成模型的有效性。

4 結 語

本文主要研究有遮擋人臉補全問題,設計一種基于空洞卷積和小波損失的生成對抗網絡的人臉補全模型;提出使用小波分解將圖像從圖像空間轉換到小波空間,提取圖像高頻分量信息來完善網絡的訓練;將被遮擋的半臉補全成完整的全臉后再使用人臉識別進行驗證。本文采用黑幕遮擋的方式模擬人臉被遮擋的情況,使用了ArcFace人臉識別算法作為基礎人臉識別網絡。實驗結果表明,本文提出的人臉補全網絡具有良好的人臉生成效果。

猜你喜歡
人臉人臉識別卷積
基于全卷積神經網絡的豬背膘厚快速準確測定
人臉識別 等
一種基于卷積神經網絡的地磁基準圖構建方法
基于3D-Winograd的快速卷積算法設計及FPGA實現
有特點的人臉
一種并行不對稱空洞卷積模塊①
玻璃窗上的人臉
人臉識別的“國標”來了
榮耀暢玩7C:人臉識別
“領家系”可愛臉VS“高冷系”美人臉
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合