李瀚銘,蘇金善
(伊犁師范大學電子信息工程學院,新疆 伊犁 835000)
人臉識別技術通過數十年的發展,已經到了相當成熟的階段[1]。但在實際應用中,由于人臉受到表情、飾品、光線、角度等復雜因素的影響,導致識別率急劇下降[2]。因此,人臉識別技術的研究熱點已經轉變為如何實現在各種復雜條件下的身份識別[1]。如文獻[3]提出了利用PDSN算法實現輕微遮擋條件下的人臉識別;文獻[4]提出了利用小波變換+LBP算法實現復雜光照下的人臉識別,文獻[5]提出了利用CLAHE算法增強對比度的方式實現在低亮度條件下的人臉識別;文獻[6]提出了利用了CVBJ算法實現各種表情下的人臉識別。這些方法雖然在對應條件中取得了較高的準確率,但是這些針對性算法往往只能解決一種復雜條件下的識別問題。
同時,由于樣本數據獲取困難,亟待需要實現基于小樣本的復雜人臉的身份識別。文獻[7]詳細分析了如今主流的各種人臉識別算法,認為數據集中的圖像數量越多、圖像分布越廣則訓練效果越好,并且論證了諸多數據增強方法對人臉識別系統的影響;文獻[8]提出了一種叫做SSPP-DAN的想法,通過一個3D人臉模型生成不同姿態的人臉虛擬樣本從而實現小樣本人臉識別。文獻[9]是通過引入一個人臉特征提取器,并改進Loss計算方法從而實現小樣本的身份識別。文獻[10]將數據不確定性估計理論應用于人臉識別領域,提出DUL算法,并通過實驗證明該算法可以使低質量圖像在1v1情況下的一些指標得到極大的提高。這些方法雖然可以大幅降低數據需求量,但是與算法優化一樣,只能進行一些特定復雜條件下的身份識別。文獻[11]提出了基于GAN的小樣本數據增強的方法,由于GAN具有風格遷移功能,使其生成的虛擬樣本與真實圖像樣本在識別訓練中沒有實質的區別。針對上述問題,本文主要提出了一種利用GAN進行小樣本數據增強的方法,進而實現小樣本復雜人臉的身份識別,主要工作內容如下:
a)利用現有公共人臉數據集對GAN模型在指定域進行預訓練,得到一個虛擬樣本生成模型。
b)通過虛擬樣本生成模型對小樣本中的真實人臉圖像生成大批量各種復雜條件下的人臉虛擬樣本,得到一個分布廣泛、類型全面的復雜人臉數據集,作為本文復雜人臉身份識別模塊的訓練集。
c)通過與不同算法進行對比實驗,驗證本文方法的可行性,并且性能得到一定提升。
為了解決小樣本在復雜條件下的身份識別的問題,本文通過使用GAN對小樣本中少量正常條件下的真實圖像生成大量基于光線、表情、角度、姿態等數據變換的復雜條件下的虛擬樣本,從而創建出一個樣本數量充足、分布廣泛的人臉數據集進行訓練。為了實現上述目標,本文分為兩大模塊:人臉數據生成模塊和身份識別模塊。
文獻[11]分析了對小樣本進行數據增強的方法與可行性,認為利用GAN進行數據增強時存在的最大問題在于GAN需要大量數據進行訓練才能達到較好的生成效果;同時文獻[12]指出,因為在訓練GAN模型時,需要大量的數據進行迭代,而小樣本問題正是在解決數據分布范圍不廣或數據量不足的問題,因此該方法局限性較大。但是針對復雜人臉的身份識別問題,目前有大量的開放公共人臉數據集可以用于對GAN模型進行訓練,因此該問題可以通過使用開放公共數據集進行訓練GAN模型的方法解決。其次文獻[12]還指出,在訓練GAN網絡時想要生成較高分辨率的圖像容易引起網絡的不穩定和不收斂,但是通過實驗發現,生成可以滿足人臉識別所需分辨率的虛擬樣本并不會發生上述問題。而文獻[13]的研究表明,GAN對真實數據進行采樣后所生成的虛擬樣本可以用來進行訓練分類器,其訓練精度和準確率在某些情況下甚至高于使用原始數據集進行訓練的結果。因此可以使用通過公開數據集訓練好的GAN模型對小樣本進行數據增強,生成各種復雜條件下的虛擬樣本進行身份識別網絡的訓練。
因為目前公開數據集的屬性分布問題以及網絡生成方式的不同,一種GAN只能在部分領域做到較好的生成效果。通過分析實際生成效果,決定采用基于域轉換的StarGAN[14]生成遮擋條件下的虛擬樣本,采用基于樣式混合的StyleGAN[15]生成光線、表情、角度等細節變換條件下的虛擬樣本。
2.2.1 StarGAN方法
StarGAN是通過域轉換的方式進行虛擬樣本的生成,它可以同時訓練多個領域,即在同一種模型下,可以做多個圖像翻譯任務,例如更換頭發顏色、添加遮擋等。在網絡結構設計上,鑒別器不僅僅需要學習鑒別樣本是否真實,還需要對真實圖像判斷來自哪個域。即對于給定的輸入圖像x和目標域標簽c,網絡的目標是將x轉換成輸出圖像y,輸出圖像y能夠被歸類成目標域c。為了實現這一點就需要鑒別器有判別域的功能。所以需要在D的頂端加一個額外的域分類器,域分類器loss在優化D和G時都會用到,因此將這一損失分為兩個方向,分別用來優化G和D。
真實圖像的域分類的損失函數定義如下式

(1)
生成圖像的域分類的損失函數如下式

(2)
通過最小化對抗損失與分類損失,G努力嘗試做到生成目標域中的真實圖像。但是這無法保證學習到的轉換只會改變輸入圖像的域相關的信息而不改變圖像內容。所以需要加上周期一致性損失如下式
Lrec=∑x,c,c′[||x-G(G(x,c),c′)||1]
(3)
匯總后的總體損失如下式

(4)

(5)
其中Ladv為GAN的通用函數,用來判斷輸出圖像是否真實。
2.2.2 StyleGAN方法
StyleGAN則可以通過樣式混合的方式進行虛擬樣本的生成,文獻[15]利用了一種混合正則化的方法,在訓練過程中使用兩個Latent Z,通過映射網絡運行Z1、Z2,并讓對應的W1、W2控制樣式,從而以樣式混合的方式生成圖像,這種方法雖然不會提高模型性能,但是它可以從一張生成圖像中提取低級別的特征并從另一張生成圖像中提取其余特征混合出一張新的圖像,從而實現了對生成虛擬樣本的光線、表情、角度等細節方面的控制。
它是在ProGAN的基礎上發展改進而來的,這種網絡首先通過學習在低分辨率圖像中也可以顯示出來的基本特征來構建圖像的基本輪廓,然后隨著分辨率的提高來學習更多細節。但ProGAN控制生成圖像的特定特征能力非常有限,為了解決該問題,文獻[15]提出了一個新的生成器結構,如下圖1,圖中左側為傳統GAN所用結構,右側為StyleGAN所提出的新結構。

圖1 傳統GAN與StyleGAN的生成器結構
這種結構放棄了傳統的輸入層,并添加了一個非線性映射網絡,將輸入Z用8層全連接層進行非線性變化得到W,然后再利用下式進行仿射變化得到歸一化所需的scale和shift

(6)
接下來在AdaIN模塊之前引入噪聲為生成器生成隨機細節,從而使圖像更加真實的同時也增加了輸出圖像的多樣性。
本文旨在解決復雜條件下的身份識別,為了實現在各種復雜條件下準確提取到人臉面部特征,需要建立一個很深的網絡層次,理想情況下,神經網絡的層數越多,模型的效果會越好。主要體現在特征的“等級”隨著網絡層數的增加而變高,深度越深的網絡擁有越強大的表達能力。但是在實際的訓練過程中更深的網絡更難訓練,主要存在兩個問題:其一是梯度消失?;诜聪騻鞑ネㄟ^鏈式法則進行一系列連乘計算隱藏層梯度的網絡模型,導致淺隱藏層的梯度急劇衰減,這是梯度消失問題的根源。其二是退化問題。對于較深的模型會比較淺的模型有更高的訓練誤差,主要原因在于:當模型變得復雜時,算法的優化會變得更加困難,這會導致模型的學習效果變得較差。ResNet網絡則較好的解決了上述問題,其可以實現一個很深的網絡層數,因此有很強的特征提取能力,基本可以滿足從大量復雜條件下的人臉圖像中提取出面部特征的需求。
文獻[16]提出了殘差塊(Residual Block)的想法,并由此避免了梯度消失和性能退化的問題,從而實現了一個很深的網絡。殘差塊一般可以分為直接映射部分和殘差部分。殘差網絡與普通的網絡不同之處在于增加了Shortcut Connection,如下圖2,圖中右側曲線即是直接映射部分,這可以使上一個殘差塊的信息沒有阻礙的流入到下一個殘差塊,提高了信息流通,并且也避免了由于網絡過深所引起的退化問題。

圖2 殘差塊示意圖[16]
在一個殘差塊中,如果其可以擬合的函數為F(x),期望的潛在映射為H(x),則F(x)并不直接學習潛在的映射,而去學習殘差,如下式
F(X)=H(X)-X
(7)
原本的前向路徑上就變成為下式
F′(X)=F(X)+X
(8)
然后用F′(x)擬合H(x),對于冗余的殘差塊,只需F(x)→0就可以得到恒等映射。如果神經網絡已經訓練到較飽和的準確率,那么后續的訓練就轉變為恒等映射的訓練。這樣就可以在不損失性能的條件下加深網絡,提升網絡效果。
該模塊的LOSS使用keras框架中的分類交叉熵損失函數進行計算,這種函數可以計算出實際輸出與期望輸出之間的距離,函數如下式。

(9)
3.1.1 人臉數據生成模塊數據集
StarGAN方法采用已經經過對其處理的CelebA數據集進行訓練。StyleGAN方法采用公開預訓練模型生成目標對象的虛擬樣本。
3.1.2 身份識別模塊數據集
為了利用模型生成虛擬樣本以及進行識別效果的檢驗,搜集了3000名對象每人20張真實圖像,其中8張為在正常條件下正對攝像頭所拍攝;剩余12張分別為輕微遮擋、復雜光線、表情變化以及45°側臉的復雜條件下所拍攝,每種條件下各3張,并以此作為原始數據集。
關于身份識別模塊訓練集的構成,首先從真實圖像中每人抽取4張正常條件下的真實圖像作為生成模塊的輸入,利用StarGAN模型生成每人25張在各種輕微遮擋下的虛擬樣本,再利用StyleGAN模型生成每人25張的各種細節變換下的虛擬樣本,組成每人50張,共計150000張的復雜條件下的虛擬樣本用于訓練。
關于身份識別模塊測試集的構成,根據測試目標的不同,將原始數據集劃分為五個測試集。測試集1包含每名對象未參與生成的4張真實圖片,共計12000張;測試集2到測試集5分別包含每名對象在遮擋、復雜光線、不同表情以及45°側臉的條件下的3張真實圖像,每個測試集均有9000張真實圖像。
關于StarGAN的訓練,以8種屬性標簽為一組,將CelebA數據集所提供的40種屬性標簽分為5組均進行了相同的訓練,詳細訓練參數如表1所示。

表1 人臉數據生成模塊預訓練參數
StarGAN與StyleGAN迭代完成后的生成效果如圖3圖4所示。

圖3 StarGAN生成效果

圖4 StyleGAN生成效果
關于身份識別網絡的訓練,采用ResNet50結構為主體架構;采用動量梯度下降法進行優化;使用虛擬樣本訓練集進行訓練。詳細訓練參數如表2所示。

表2 身份識別模塊參數
身份識別網絡的訓練結果如圖5所示。

圖5 身份識別網絡訓練效果
首先,為了驗證對小樣本利用GAN生成的虛擬樣本用于身份識別訓練的效果,測試樣本使用由正常條件下的真實圖像組成的測試集1并調用訓練好的身份識別模型進行性能測試。選擇從訓練達到理想效果時單個樣本所需的圖片數量和識別準確率兩個方向與現有的一些方法進行對比,對比結果如表3所示。

表3 與經典方法的對比
對比結果表明,利用小樣本使用GAN生成的虛擬樣本進行網絡訓練的效果可以達到使用真實圖像進行訓練的效果,證明了利用GAN進行小樣本數據增強的可行性。
在上述結果的基礎上,為了驗證對小樣本利用GAN生成的復雜條件下的虛擬樣本進行身份識別訓練的效果,測試樣本使用由各種復雜條件下的真實圖像組成的測試集1到測試集4并調用訓練好的身份識別模型分別進行性能測試。選擇從各種復雜條件下的識別率與現有的較新算法進行了對比,對比結果如表4所示。

表4 與現有算法的對比
實驗結果表明,基于域轉換或基于樣式混合的GAN所生成的復雜條件下的人臉虛擬樣本可以脫離真實數據集單獨使用進行網絡的訓練。同時,通過與現有算法的對比,認為利用GAN對小樣本進行數據增強,擴展小樣本的數據分布是可行的。通過該方法可以解決小樣本中樣本數量不足,數據分布不均衡的問題;也可以解決傳統方法中搜集大量數據集困難的問題;也可以對因為光線、表情、角度等條件的變換或者輕微遮擋所導致的識別率下降問題進行解決;同時對比使用先進算法進行訓練的方法也可以在準確率幾乎沒有差距的情況下,解決這些算法只能針對一種復雜條件進行優化的問題,使得身份識別網絡具有更好的魯棒性。
針對目前的復雜條件下的身份識別問題,在僅有小樣本時系統性能不佳;利用算法優化又僅能在部分條件下提高性能,整體泛化能力較弱;通過增加數據量與數據分布改善系統性能又面臨著數據搜集困難的問題。本文提出了一種對小樣本使用GAN進行數據增強從而使得小樣本擴充為數據分布廣泛、樣本數量充足的大數據集,從而進行訓練得到高性能模型的方法。通過實驗首先證明了對小樣本利用GAN進行數據增強的可行性。其次,分別通過GAN對小樣本生成的基于光線、表情、角度等條件的變換或者輕微遮擋等復雜條件下的虛擬樣本,并進行訓練,訓練結束后對模型進行性能評價并與現有公開的識別方法進行對比。對比結果表明利用小樣本進行數據增強所生成的虛擬樣本進行訓練可以達到較好的效果,模型在各種復雜條件下的識別率與現有公開算法幾乎相同,解決傳統算法只能針對一種復雜條件進行優化的弊端,大幅提高了模型的魯棒性。最后,在本次設計中也存在較多的不足,比如在遮擋面積與時間復雜度等方面,這將在下一步研究中進行改進。