1. 程式人生 > >Face Aging with Contextual Generative Adversarial Nets

Face Aging with Contextual Generative Adversarial Nets

這裡寫圖片描述

網路結構如圖2所示,首先按照68個人臉特徵點對輸入影象進行對齊,之後,採用Deeplab v2演算法將輸入影象分割為

人臉區域,和非人臉區域,並將非人臉區域標記為灰色.

生成網路-Transformer network

將處理後的影象,與年齡lable y 輸入到條件變換網路(G,Transformer),得到合成影象

G ( x , y ) (fake image).

生成網路結構如下,

這裡寫圖片描述

輸入影象,輸出影象大小都為

128 × 128 × 3 ,畫素值範圍為[-1,1].條件向量即為年齡向量,為一個7維的one hot向量,將該項了reshape為與輸入影象相同的空間維度的7通道的變數,並將其值也變換到[-1,1]範圍-1對應於0.將輸入影象與年齡向量串聯,輸入生成網路,得到目標年齡的生成影象.前三個residual blocks將feature maps大小降低到輸入的一半,之後的為反捲積層,將feature maps大小上取樣到與輸入同樣大小.

判別網路

存在兩個判別網路,分別為年齡判別網路,即Age Discriminative Network,另一個為Transition Pattern Discriminative Network,分別用於判別生成影象是否為目標年齡,以及生成影象是否符合真實目標影象分別.

Age Discriminative Network

Age Discriminative Network輸入為fake image與年齡lable y的特徵向量串聯(判別為real),以及real image與年齡label y的特徵向量串聯(判別為fake).也就是是說,Age Discriminative Network用於判別生成影象是否為輸入影象的指定年齡的生成影象.

年齡判別網路結構為,

這裡寫圖片描述

與生成網路一樣,將年齡label resized為一個變數,輸入到一個卷積層,得到年齡特徵向量,將輸入影象輸入卷積層,得到feature maps,並將兩者串聯,輸入到之後的5個卷積層,判別網路損失函式為,

這裡寫圖片描述

Transition Pattern Discriminative Network

為了得到更好的年齡生成影象,加入了一個年齡轉換判別網路,用於判別不同年齡段的影象的transition pattern(轉移模式),即判別不同年齡段的人臉是否變換正確.為了簡化,在本文中,只考慮相鄰的年齡組的transition pattern.

這裡寫圖片描述

如圖5所示,隨著頭骨的成長,年齡從10到20歲的臉的形狀會發生變化,然而,對於50到60歲的臉,主要的變化是在臉上的皺紋增多了.也就是不同年齡段的臉有不同的特徵,但是他們都是同一個人.

Transition Pattern Discriminative Network輸入為年齡y,對應的人臉影象 x y ,以及臨近年齡y+1,對應的影象 x y + 1 的串聯值,損失函式如下,

這裡寫圖片描述

整體的損失函式

這裡寫圖片描述

為了是生成影象儘量平滑,引入了TV損失函式(total variation).

不同年齡段圖片生成效果

這裡寫圖片描述