變老 - 2 - Attribute-aware Face Aging with Wavelet-based Generative Adversarial Networks - 1 - 論文學習


 

Attribute-aware Face Aging with Wavelet-based Generative Adversarial Networks

Abstract

由於很難在大范圍的年齡跨度內收集同一對象的面部圖像,所以現有的大多數面部老化方法都采用非配對數據集來學習年齡映射。然而,未配對訓練數據所固有的年輕與老年人臉圖像的匹配模糊性,可能會導致人臉屬性在老化過程中發生非自然的變化,而這並不能像現有的大多數研究一樣,僅僅通過加強身份一致性來解決。針對上述問題,本文提出了一種基於小波生成對抗網絡的屬性感知人臉老化模型。具體來說,我們將人臉屬性向量嵌入到模型的生成器和判別器中,以鼓勵每個合成的老年人臉圖像忠實於其相應輸入的屬性。在此基礎上,結合小波包變換(WPT)模塊,通過在頻率空間的多個尺度上捕獲與年齡相關的紋理細節,提高生成圖像的視覺保真度。定性結果證明了我們的模型在合成視覺上可信的人臉圖像方面的能力,廣泛的定量評估結果表明,該方法在現有的數據集上達到了最先進的性能。
 

1. Introduction

以前使用帶有不匹配屬性的人臉圖像對的方法將誤導模型學習除了老化以外的轉換,導致嚴重的ghosting artifacts,甚至是合成結果中出現不正確的人臉屬性,如圖1所示:

 

 可見有些女性變老后變成了男性,並長出了胡子。這是因為模型學習過程中,發現長胡子是一個典型的老化的跡象,但沒有辦法知道這不會發生在一個女人身上,因為如果沒有條件信息被考慮進來的話,年輕女性和老年男性的人臉圖像對就可以被視為正的訓練樣本。

為了解決上述問題,本文提出了一個基於生成式對抗網絡(GANs)的框架。與文獻中已有的方法不同,我們通過在生成器和判別器中嵌入人臉屬性向量的方法來加入輸入的語義條件信息,從而引導模型輸出 屬性忠實於每個對應輸入 的老年人臉圖像。此外,為了增強老化細節,在觀察到老化跡象主要表現為皺紋、笑紋、眼袋等局部紋理的基礎上,我們利用小波包變換有效地提取了頻率空間中的多尺度特征

該論文的主要貢獻有:

  • 人臉屬性作為條件信息被合並到人臉老化的生成器和判別器中,因為僅僅使用身份的保存不足以產生合理的結果。
  • 采用小波包變換在頻域內提取多尺度紋理細節特征,生成老化效果的細粒度細節。
  • 大量的實驗表明,該方法能夠准確地描述老化效應,並保留身份和面部特征信息。定量結果表明,我們的方法達到了最先進的性能。

 

3. Approach

所以該論文的主要兩點在於:

  • 嵌入人臉屬性到生成器和判別器中
  • 使用小波轉換模塊獲取紋理信息作為判別器的輸入

網絡如下圖所示:

 

與以往的工作不同,輸入不再只是低層次的圖像信息(即圖片input face)我們提出將低層次的圖像信息(像素值,input face)和高層次的語義信息(面部屬性,facial attribute vector)結合到人臉老化模型中,以規范圖像的轉換模式,減少未配對的年輕和年老人臉之間的映射模糊性。該模型以年輕人臉圖像及其對應的屬性向量作為輸入,生成與輸入屬性一致的老年人臉圖像。

我們沒有簡單地采用一個附加的損失項來監督生成結果的屬性,而是將屬性向量嵌入生成器中,以便在生成過程中充分考慮語義面部信息,並鼓勵模型更有效地生成具有一致屬性的面部圖像。

 

生成器結構為:

具體來說,我們使用沙漏形的全卷積網絡作為生成器,這在之前的圖像翻譯研究中已經取得了成功[6,29]。它由一個編碼器網絡、一個解碼器網絡和中間的四個剩余塊作為瓶頸組成。將輸入的面部屬性向量復制並連接到最后剩余塊的輸出blob,因為它們都包含高級語義特征。組合之后,解碼器網絡將連接的特征塊轉換回圖像空間。

由於人臉老化可以看作是在輸入年輕人臉圖像的條件下產生的老化效果,我們將輸入圖像加入解碼器的輸出中,形成一個residual連接。與合成整個人臉圖像相比,這種結構自動使得生成器更專注於建模輸入和輸出人臉圖像之間的差異,即老化的代表性標志,更不容易被背景等與衰老無關的視覺內容分散注意力。最后,利用雙曲正切映射(tanh)對生成的張量的數值尺度進行歸一化處理,得到了生成的老年人臉圖像。

 

3.2. Wavelet-based Discriminator

該判別器有兩個主要部分:

  • 區分合成的人臉圖像(合成老人)和一般的人臉圖像(一般的有年輕的,也有老的)
  • 檢查每個合成的結果的屬性(合成老人臉的老化屬性)是否與對應輸入的屬性(真實老人臉的老化屬性)一致。

具體來說,考慮到皺紋、笑紋、眼袋等典型的衰老信號可以被視為局部圖像紋理,我們采用小波包變換(WPT)來捕捉與年齡相關的紋理特征。如圖3所示:

在該論文中對應的是:

具體來說,多層WPT是為了對給定圖像中的紋理進行更全面的分析,在每個分解級別的小波系數被輸入到判別器的卷積路徑中。注意,這與[9]不同,因為在我們的工作中,小波系數僅用於判別,不涉及預測或重構。

為了使判別器獲得能在在生成的圖像中判別是否保留了屬性的能力,還將輸入的屬性向量復制並連接到每個路徑的中間卷積塊的輸出。在判別器的末端,所有路徑的相同大小的輸出被融合成一個單獨的張量,然后根據標簽張量估計對抗損失。

與[25]中通過卷積層序列提取多尺度特征相比,使用WPT的優點是計算小波系數可以看作是通過單個卷積層進行前向傳播,大大降低了計算成本。因此,WPT大大減少了每個轉發過程中執行的卷積的數量。雖然對模型的這一部分進行了簡化,但仍然利用了多尺度圖像紋理分析的優勢,有助於提高生成圖像的視覺保真度。

從圖上可知,其WPT進行的操作就是對輸入的圖像level 0進行一層小波變換,假設輸入level 0是一張224*224*3的原始圖像,得到的level1的大小就是112*112*(3*4),然后再將這4張圖作為輸入再進行一層小波變化,得到大小為56*56*(3*16)的level 2。這里假設使用的是haar小波變換

詳情可見:

pytorch_wavelets包實現的小波變換和MWCNN中的小波變換的異同點

MWCNN中使用的haar小波變換 pytorch

 

3.3. Overall Objective Functions

GAN模型模擬訓練的過程優化生成器G和判別器D之間的minimax-max雙方博弈游戲。不像常規的GANs[5],我們采用最小平方損失而不是負對數似然損失,用於最小化生成樣本和特征空間的決策邊界之間的邊際,這也進一步提高了合成圖片[12]的質量。實際操作中,我們將年輕人臉圖像xi和它們對應的p維的屬性向量αi配對起來,表示為(xii)~Pyoung(x,α),並將他們作為模型的輸入。只有帶有屬性向量αi的原有的老人人臉圖片的輸入,即(xii)~Pyoung(x,αi)才會在判別器D中被判定為正樣本,真實的年輕人臉,即(xii)~Pyoung(x,α)會被判定為負樣本來幫助D在老化方面獲得判別能力

從公式上來說,G和D的目標函數為:

 

 PyoungPold分別表示收集的年輕人和老年人的人臉圖像分布

LGAN(G)的意思是訓練G時,通過生成器G合成的老年人臉輸入判別器D中優化使結果趨緊於1,即判定為正樣本

LGAN(D)的意思是在訓練D時,判別真正的老年人臉圖像為正樣本,即結果趨緊於1;而生成器生成的合成老年人臉則判別為負樣本,結果趨近於0;真正的年輕人樣本也被判定為負樣本,結果趨近於0。這樣就能讓判別器的判別能力越來越好

此外,還采用了像素損失和身份損失來保持圖像級和個性化特征級的一致性。具體而言,我們利用VGG-Face描述器[14],表示為φ,提取一個人臉圖像身份相關的語義表征。這兩個損失項可以表述為:

 

身份損失Lid是使用了另一個已經訓練好的identity模型得到一個中間向量來計算得損失,將G合成的老年人臉和其對應的年輕人臉輸入都輸入這個identity模型,計算兩個向量的最小平方損失來讓兩張圖片的身份信息趨近相同。

像素損失λpix就是簡單地對生成的老年人臉照片和對應的輸入的年輕人臉照片求最小平方差

 

總之,完整的目標函數為:

λid和λpix是分別用於平衡身份和像素損失的重要性的系數。我們通過最小化LG和LD來優化模型,直到達到最優結果。

至於權衡參數,λpix和λid首先設置使得損失Lpix和Lid是和損失LGAN(G)有着相同的數量級的,然后除以10來強調對抗損失LGAN(G)的重要性。

 

4. Experiments

4.6. Ablation Study

判斷人臉屬性向量的嵌入(FAE)和小波包轉換(WPT)這兩部分的影響,如下圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM