最近在讀關於人臉老化方面的論文,這是一篇發表在CVPR2018上的論文,原文鏈接。
水平有限,如有錯誤或者不妥之處,歡迎指正和交流。
1、簡介
論文提出了基於條件生成對抗網絡的身份保持人臉老化網絡(IPCGANs,Identity-Preserved Conditional Generative Adversatial Networks)。網絡包括三個部分,一個條件生成對抗網絡模塊(CGANs module),一個身份保持模塊(identity-preserved module),一個年齡分類器(age classifier)。
(1)條件生成對抗網絡模塊:CGANs的生成器部分輸入時一張圖片和一個目標年齡的編碼。對於生成器來說,最好的結果是,判別器不能分辨出生成的人臉和指定組的真實人臉的區別。
(2)身份保持模塊: 爲了保留身份信息,論文介紹了一種感知損失(perceptual loss),並將其加入損失函數。
(3)年齡分類器:爲了保證生成的人臉在指定的年齡組,把生成的人臉放進一個預訓練好的年齡分類器中,並且把年齡分類損失(age classification loss)加到目標函數中。
論文所做的貢獻總結如下:
(1)提出把身份保持階段和年齡分類階段加入到網絡的目標中。前一階段作用是使加入年齡生成的人臉跟原來輸入的人臉是同一個人,後一階段確保生成的人臉在指定的年齡段中。
(2)除了定量評估生成人臉的質量,還用作者的研究成果,提出了爲生成的指定年齡的人臉作人臉驗證和人臉年齡分類。提出的數據增強實驗也證實了IPCGANs的有效性。
(3)IPCGANs不是僅侷限於處理人臉年齡老化問題,他是一個生成框架。不用做任何改動,IPCGANs可以應用於多屬性生成任務中,例如頭髮顏色,面部表情等不平衡數據分類場景中。
2、相關工作
2.1 人臉老化
現有的人臉老化方法的歸類總結,以及缺點。
2.2 生成對抗網絡
2.3 風格遷移
生成指定年齡人臉的目標與風格遷移的工作有關聯。在風格遷移彙總,會採用content loss 和style loss 相結合。他們都被叫做感知損失。
3、身份保持條件生成對抗網絡
3.1 概述
將人臉分成按照年齡分成5個不同的年齡段,給定一個人臉圖片x,用表示x屬於的分組。其中,h和w代表特徵圖的高和寬,5是年齡組別號。像one-hot編碼,只有一個特徵圖填滿1,其餘的特徵圖全是0。人臉老化的目標是生成一個在指定年齡組的生成臉。有以下特徵:
i) 看起來像真實的人臉。
ii) 與x是同一個人。
iii) 的人臉年齡在年齡段中。
在本文的實踐中,根據x所屬的不同年齡組訓練多個模型,換句話說,模型只與年齡組別有關。這樣一來,模型可以將任何屬於的人臉映射到指定的年齡分組中。
3.2 身份保持條件生成對抗網絡
整個架構分爲三個部分,第一部分是一個基於CGANs的生成模塊,作用是生成 年齡段的人臉,並保證生成的人臉看起來真實。第二部分是身份保持模塊,保證與x是同一個人。第三部分是年齡分類器模塊,進一步促使在中。
(1) 基於CGANs的生成模塊。y代表指定年齡組的真是人臉,x和y的分佈分別是和,在CGANs中年齡組的生成人臉應該被判別器D判別爲假,對於真實的人臉屬於真的概率D(x|)應當比較高。除此之外D還負責校準與生成的圖片。由此得出目標函數爲:
與標準GANs相似,CGANs是不穩定的。導致生成的圖片不真實,質量不高。論文借鑑《 Least squares generative adversarial networks》,此論文推動生成的人臉和真是的人臉全部接近決策便捷,從而使他們不可分。因此,LSGANs能夠生成更高質量的圖片並且訓練是更加穩定的。因此,本論文選擇了一個條件LSGANs表達爲:
爲了優化C-LSGANs,此論文用了在《Generative Adversarial Text to Image Synthesis》中提出的判別器很好地校準條件和生成的圖片。
(2) 身份保持模塊。adversarial loss只能夠使得生成器生成服從於指定數據分佈的樣本,因此,生成的樣本可能像指定年齡組的任何一個人,因此論文提出了一個perceptual loss :
其中h(.) 是在一個預訓練好的神經網絡中的特定的特徵層中取出的特徵。不用像素空間上的x和他的指定年齡生成臉G(x|)之間的均方誤差(MSE)的原因是,指定年齡生成臉包括在頭髮顏色、鬍鬚、皺紋、後移的髮際線等的變化,因此他跟x變得不同了。MSE loss 會使G(x|)與x接近。在相同的特徵空間,perceptual loss 使得生成的圖片很接近輸入人臉的特徵。
從一個合適的層h(.)取得特徵對於保留身份信息來說是非常重要的。在風格遷移中的實驗顯示,底層的特徵層更加擅長保持原來的內容,高層的層更能保持像顏色,質地等的風格。所以採用一個預訓練的神經網絡的lower feature layer來作爲h(.)。爲了平衡生成圖片的質量和人臉的身份信息,論文在第四節取用了在ImageNet中的Alexnet pre-trained的fc7到conv2,並且依據經驗設定h(x)爲conv5層的特徵。
(3) 年齡分類模塊。爲了進一步保證生成的人臉在指定的年齡段中,論文作者預訓練了一個年齡分類器,並且把它應用於人臉屬於哪一個年齡段。在訓練IPCGANs時,修正這個年齡分類器的參數,並把它應用於給生成的人臉G(x|)分類。如果生成的人臉確實屬於中,年齡分類器則給一個小的penalty,相反,如果不屬於,則各一個大的penalty。在這裏將age classification loss 放到目標函數中,他代表了年齡分類器的損失。定義爲:
其中,l(.)岱廟了一個softmax loss。通過一個反向傳播,年齡分類損失促使生成器的參數改變從而生成指定年齡段的人臉。
(4) 目標函數。如下:
控制輸入圖像被老化處理的程度,控制我們想要保持身份信息的程度,並且讓生成的樣本落入指定的年齡分組。在第四節找到了最合適的。
3.3 網絡結構
生成器和判別器的網絡結構。受到風格遷移和不匹配圖片翻譯的啓發,生成器的設計與《 Unpaired imageto-image translation using cycle-consistent adversarial networks》中的除了第一個卷積層之外都相同。生成器接收128*128*3的圖片,和128*128*5的條件特徵圖作爲輸入,所以在生成器中選取了6個residual blocks。輸入圖片和條件特徵圖合併,將合併後的特診圖發送到第一個卷積層。
判別器的結構採用自《Invertible Conditional GANs for image editing》和 《Unpaired imageto-image translation using cycle-consistent adversarial networks》。輸入條件到判別器的方法與《Invertible Conditional GANs for image editing》一致,命名規則與《Perceptual Losses for Real-Time Style Transfer and Super-Resolution》一致,代表一個4*4的convolution-Batchnorm-leakyRelu layer,步長爲2,k個輸出通道。判別器的結構是。在第一個層中不用Batchnorm,將如數條件的操作放在這一層之後。LeakyRelu的斜率設爲0.2。特徵圖經過層之後的大小爲64*64,因此條件特徵圖被喂進生成器時也由128變爲64。的特徵圖和條件特徵圖合併後送到層中。
年齡分類網絡結構採用自Alexnet,與其到是一致的,在之後增加了兩個全連接層和一個softmax layer 。
4 實驗和評價
4.1 數據集
使用Cross-Age-Celebrity Dataset(CACD)訓練和測試。CACD中包含160000張2000個名人從16歲到62歲的人臉圖像。經過處理得到163104張400*400的CACD圖像。90%用來訓練,10%用來測試。